All pastes #2102568 Raw Edit

Untitled

public text v1 · immutable
#2102568 ·published 2012-01-12 11:39 UTC
rendered paste body
<?php 

define('ReGiftLinks_version',  'IRAs'); 
define('ReGiftLinks_date',     '28 agustus 2011'); 
define('ReGiftLinks_URL',      '/plugins/ReGiftLinks/main.php'); 
define('ReGiftLinks_Path',     'plugins/ReGiftLinks/'); 
define('ReGiftLinks_settings', 'ReGiftLinks_settings.txt'); 
define('ReGiftLinks_links',    'ReGiftLinks_links.txt');
define('ReGiftLinks_SQLITE',   'data.sqlite'); 


/////////////////////////////////////// initialise
function ReGiftLinks_init() 
{ 
	global $hooks; 
	global $this_plugin; 
	global $is_debug;
	$hooks['after_load_settings'] = 'ReGiftLinks_run';
	ReGiftLinks_createInfoTxt();
	echo "ReGiftLinks v" . ReGiftLinks_version . " Ira\r\n"; 

} 
	
////////////////////////////////////////Regrifting
function ReGiftLinks_regift($code,$numbercode,$codename)
{
		AddLog2("ReGiftLinks -> memulai " . $numbercode . " " . $codename . ' akan mendapatkan link');
		$tmp_array = ReGiftLinks_initUser();
		$objects = $tmp_array[0];
		  if (function_exists('ShareEmAll_getGlitchState')) 
      { 
         if(ShareEmAll_getGlitchState($objects,'ReGiftLinks') !== true) 
         { 
            AddLog2("ReGiftLinks -> Kebun tidak di atur untuk membuat link.  kebun kosongkan hanya ada 1 haybale atau 1 bangunan panen."); 
            AddLog2("ReGiftLinks -> keluar dari pengaturan"); 
            return; 
         } 
      } else { 
         if((count($objects) > 1) || (($objects[0]['itemName'] !== 'haybale') && ($objects[0]['itemName'] !== 'animal_breeding_wildlife_finished') && ($objects[0]['itemName'] !== 'animal_breeding_petrun_finished'))) 
         { 
            AddLog2("ReGiftLinks -> Kebun tidak di atur untuk membuat link.  kebun kosongkan hanya ada 1 haybale atau 1 bangunan panen."); 
            AddLog2("ReGiftLinks -> keluar"); 
            return; 
         }    
      } 
		save_array($objects,'ReGiftLinks_objects.txt');
		$vSequence1 = GetSequense();
		$vSequence2 = $vSequence1 + 1;
		$vSequence3 = $vSequence1 + 2;
		$objX = $objects[0]['position']['x'];
		$objY = $objects[0]['position']['y'];
		$objId = $objects[0]['id'];
		$objState = $objects[0]['state'];
		$objItemName = $objects[0]['itemName'];
		$objClassName = $objects[0]['className'];		
			if (isset($objects[0]['direction']))
			{
				$objDirection = $objects[0]['direction'];
			} else {
				$objDirection = 0;
			}
////
	$gift_list = @unserialize(file_get_contents(F('ingiftbox.txt')));
	$con_list = @unserialize(file_get_contents(F('inconbox.txt')));
	$fulllist=array_merge($gift_list, $con_list);
	for ($i = 0; $i < (integer)$numbercode ; $i++) 
	{
	$amf = new AMFObject("");
	$amf->_bodys[0] = new MessageBody();

	$amf->_bodys[0]->targetURI = 'FlashService.dispatchBatch';
	$amf->_bodys[0]->responseURI = '/1/onStatus';
	$amf->_bodys[0]->responseIndex = '/1';

	$amf->_bodys[0]->_value[0] = GetAMFHeaders();

	$amf->_bodys[0]->_value[1][0]['sequence'] = $vSequence1;
	$amf->_bodys[0]->_value[1][0]['functionName'] = 'WorldService.performAction';
	$amf->_bodys[0]->_value[1][0]['params'] = array();

	$amf->_bodys[0]->_value[1][0]['params'][0] = "sell";
	$amf->_bodys[0]->_value[1][0]['params'][1] = array();
	$amf->_bodys[0]->_value[1][0]['params'][1]['id'] = $objId;
	$amf->_bodys[0]->_value[1][0]['params'][1]['deleted'] = false;
	$amf->_bodys[0]->_value[1][0]['params'][1]['tempId'] = -1;
	$amf->_bodys[0]->_value[1][0]['params'][1]['state'] = $objState;
	$amf->_bodys[0]->_value[1][0]['params'][1]['itemName'] = $objItemName;
	$amf->_bodys[0]->_value[1][0]['params'][1]['position'] = array();
	$amf->_bodys[0]->_value[1][0]['params'][1]['position']['x'] = $objX;
	$amf->_bodys[0]->_value[1][0]['params'][1]['position']['y'] = $objY;
	$amf->_bodys[0]->_value[1][0]['params'][1]['position']['z'] = 0;
	$amf->_bodys[0]->_value[1][0]['params'][1]['direction'] = $objDirection;
	$amf->_bodys[0]->_value[1][0]['params'][1]['className'] = $objClassName;
	$amf->_bodys[0]->_value[1][0]['params'][2] = array();

	$amf->_bodys[0]->_value[1][1]['sequence'] = $vSequence2;
	$amf->_bodys[0]->_value[1][1]['functionName'] = 'UserService.giftStoredGiftBoxItems';
	$amf->_bodys[0]->_value[1][1]['params'] = array();
	$amf->_bodys[0]->_value[1][1]['params'][0] = $code;
	$amf->_bodys[0]->_value[1][1]['params'][1] = $fulllist[$code];

	$amf->_bodys[0]->_value[1][2]['sequence'] = $vSequence3;
	$amf->_bodys[0]->_value[1][2]['functionName'] = 'UserService.getBalance';
	$amf->_bodys[0]->_value[1][2]['params'] = array();
			
	$amf->_bodys[0]->_value[2] = 0;

	$amf2 = RequestAMFIntern($amf);
	$vRewardLink = 'none';
	if($amf2->_bodys[0]->_value['errorType'] === 0)
	{
		if($amf2->_bodys[0]->_value['data'][2]['errorType'] === 0)
		{
			if(isset($amf2->_bodys[0]->_value['data'][2]['data']['rewardLink']))
			{
				$vRewardLink = $amf2->_bodys[0]->_value['data'][2]['data']['rewardLink'];
				$amf2->_bodys[0]->_value['data'][0] = $amf2->_bodys[0]->_value['data'][1];
			}
		}
	}
	$res = CheckAMF2Response($amf2);
	if ($res != 'OK') 
	{
		AddLog2("ReGiftLinks -> Error. tidak mendapatkan link..");
		AddLog2("ReGiftLinks -> hentikan jalannya, coba lagi nanti");
	} else {
		if($vRewardLink !== 'none') 
		{
			if(function_exists('ShareEmAll_AddLink'))
			{
				AddLog2("ReGiftLinks -> Generated without any problem!  Adding to list.");
				ShareEmAll_AddLink(array('rewardLink' => $vRewardLink, 'rewardItem' => $codename, 'timestamp' => time()));
			} else {
				AddLog2("ReGiftLinks -> mendapatkan link tanpa masalah!  periksa link di my rewards.");
				}
		} else {
			AddLog2("ReGiftLinks -> Link tidak didapatkan >>> error.");
			}
	      }
	}
}


/////////////////////////////////////// run plugin
function ReGiftLinks_run() 
{
	AddLog2("ReGiftLinks v" . ReGiftLinks_version . " mulai"); 

	$userSettings = ReGiftLinks_getUserSettings(); 

	if ($userSettings['run'] === true) 
	{
		foreach ($userSettings['item_array'] as $tmp_item => $tmp_number)
		{
		$item_details = ReGiftLinks_getItemInfo((string)$tmp_item);
		$itemcode = $item_details["code"];
		$numcode = $tmp_number;
		$codename = $tmp_item;
		ReGiftLinks_regift($itemcode,$numcode,$codename);	
		}
	
		AddLog2("ReGiftLinks -> pekerjaan beres, selamat tinggal");
		if ($userSettings['disable']) 
		{
		ReGiftLinks_disableMe();
		}
		else {
		$userSettings['run']=true;
		}


	} else {
		if ($userSettings['run']!= true) AddLog2("ReGiftLinks -> plugin di matikan.");
		AddLog2("ReGiftLinks -> tidak ada yang dilakukan, selamat tinggal");
	}
	
}

function ReGiftLinks_initUser()
{
		// Initialize farm to get current data
		// Create Init request
		global $vCnt63000;
		LoadAuthParams();
		SetSequense(0);
		$vCnt63000=63000;
		$totgifts = 0;
		AddLog2("ReGiftLinks -> Init user. Load Farm");

		$res = 0;

		$amf = CreateRequestAMF('', 'UserService.initUser');
		$amf->_bodys[0]->_value[1][0]['params'][0] = "";
		$amf->_bodys[0]->_value[1][0]['params'][1] = -1;
		$amf->_bodys[0]->_value[1][0]['params'][2] = true;

		$amf2=RequestAMFIntern($amf);
		$res=CheckAMF2Response($amf2);

		if ($res == 'OK') {

			$vWorldtype = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['currentWorldType'];
			LoadAuthParams();
			// get flashSessionKey
			$sequence = 1;
			if (isset($amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['flashSessionKey'])) {
				$flashSessionKey = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['flashSessionKey'];
			}
			$vWorldtype = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['currentWorldType'];
			$servertime = $amf2->_bodys[0]->_value['data'][0]['serverTime'];
			// save to file $flashSessionKey, $xp, $energy
			$xp = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['player']['xp'];
			$energy = $amf2->_bodys[0]->_value['data'][0]['data']['energy'];

			SaveAuthParams();
			$lastrequest = @$amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['player']['featureFrequency']['BreedingAsk_gk'];

			if($vWorldtype = 'currentWorld') {
				$objects = $amf2->_bodys[0]->_value['data'][0]['data']['world']['objectsArray'];
			} else {
				$objects = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['world']['objectsArray'];
			}
			// save giftbox info for plugins
			$storagedata = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['player']['storageData'];
			save_botarray ($storagedata, F('storagedata.txt'));
			$ingiftbox = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['player']['storageData']['-1'];
			foreach ($ingiftbox as $key => $item)
			{
				$ingiftbox[$key] = isset($item[0])?$item[0]:0;
				$totgifts += isset($item[0])?$item[0]:0;
			}
			save_botarray ($ingiftbox, F('ingiftbox.txt'));
			// save consumable info for plugins
			$inconbox = $amf2->_bodys[0]->_value['data'][0]['data']['userInfo']['player']['storageData']['-6'];
			foreach ($inconbox as $key => $item) $inconbox[$key] = isset($item[0])?$item[0]:0;
			save_botarray ($inconbox, F('inconbox.txt'));

		} else {
			AddLog2("ReGiftLinks -> gagal memuat kebun - " . $res);
			$lastrequest = 0;
			$servertime = 0;
		}
	return array($objects,$totgifts,$ingiftbox,$inconbox);
}


/////////////////////////////////////// save info.txt to disk
function ReGiftLinks_createInfoTxt() 
{
	$save_str  = "ReGiftLinks by IRAs\r\n";
	$save_str .= "ReGiftLinks_version - " . ReGiftLinks_date . "\r\n";
	$save_str .= "Glitch by IRAs\r\n";
	$save_str .= "This plugin genrate  ReGift links .\r\n";
	$save_str .= "v 0.2  - Initial Release.\r\n";
	$save_str .= "v 0.1  - Lets start.\r\n";
	
	$f = fopen(ReGiftLinks_Path . 'info.txt', "w+");
	fputs($f, $save_str, strlen($save_str));
	fclose($f);
}

/////////////////////////////////////// safe getter
function ReGiftLinks_getUserSettings()
{
	$userSettings = load_array(ReGiftLinks_settings);
	if ($userSettings !== false)
	{
		$userSettings['run'] = (@$userSettings['run'] === true) ? true : false;
		$userSettings['disable'] = (@$userSettings['disable'] === false) ? false : true;
		$userSettings['item_array'] = (@$userSettings['item_array']) ? $userSettings['item_array'] : array();
		

	} else {
		$userSettings = array();
		$userSettings['run'] = false;
		$userSettings['disable'] = true;
		$userSettings['item_array'] = array();
		save_array($userSettings, ReGiftLinks_settings);
	}
	return $userSettings;
}


////////////////////////////////////////////////SQL Functions 
function ReGiftLinks_SQlite_Connect($vDBFile) 
{
	$vDB = new SQLiteDatabase($vDBFile);
	if (!$vDB) {
		AddLog2('ReGiftLinks -> Parser SQlite Error: tidak bisa membuka '.$vDBFile);
		return(false);
	}
	$vDB->queryExec('PRAGMA cache_size=200000');
	$vDB->queryExec('PRAGMA synchronous=OFF');
	$vDB->queryExec('PRAGMA count_changes=OFF');
	$vDB->queryExec('PRAGMA journal_mode=MEMORY');
	$vDB->queryExec('PRAGMA temp_store=MEMORY');
	return $vDB;
}

function ReGiftLinks_getItemInfo($item_code)
{

	$item_details = array();
	$vDataDB = null;
	$vDataDB = ReGiftLinks_SQlite_Connect(ReGiftLinks_SQLITE);
	$vResult = @$vDataDB->query('SELECT * FROM units WHERE name = "' . $item_code . '" AND field IN ("code","name","giftable","realname","cost","cash","sizeX","sizeY","className","iconurl","limit","market","type","limitedEnd","iphoneonly","multiplace")');

	if ($vResult === false)
		return array();
	while (@$vRow = $vResult->fetch(SQLITE_ASSOC)) {
        	$item_details[$vRow['field']] = $vRow['content'];
	}
	return $item_details;
}

function ReGiftLinks_load_storage()
{
	$store_details = array();
	$gift_list = @unserialize(file_get_contents(F('ingiftbox.txt')));
	$gift_list_string = "";
	foreach ($gift_list as $giftkey => $giftnumItems)
	{
		if ($giftnumItems > 0)
		{
			if ($gift_list_string === "")
			{
				$gift_list_string = '"' . $giftkey . '"';
			} else {
				$gift_list_string = $gift_list_string . ',"' . $giftkey . '"';
			}
		}
	}
	if ($gift_list_string !== "")
	{
		$vDataDB = null;
		$vDataDB = ReGiftLinks_SQlite_Connect(ReGiftLinks_SQLITE);
		$vResult = @$vDataDB->query('SELECT * FROM units WHERE name IN (SELECT name FROM units WHERE field = "code" AND content IN (' . $gift_list_string . ')) AND field IN ("code","name","giftable","realname","cost","sizeX","sizeY","className")');

		if ($vResult === false) {
			return array();
		}
		while (@$vRow = $vResult->fetch(SQLITE_ASSOC)) {
				$store_details[$vRow['name']][$vRow['field']] = $vRow['content'];
		}
	}

	$con_list = @unserialize(file_get_contents(F('inconbox.txt')));
	$con_list_string = "";
	foreach ($con_list as $conkey => $connumItems)
	{
		if ($connumItems > 0)
		{
			if ($con_list_string === "")
			{
				$con_list_string = '"' . $conkey . '"';
			} else {
				$con_list_string = $con_list_string . ',"' . $conkey . '"';
			}
		}
	}
	if ($con_list_string !== "")
	{
		$vDataDB = null;
		$vDataDB = ReGiftLinks_SQlite_Connect(ReGiftLinks_SQLITE);
		$vResult = @$vDataDB->query('SELECT * FROM units WHERE name IN (SELECT name FROM units WHERE field = "code" AND content IN (' . $con_list_string . ')) AND field IN ("code","name","giftable","realname","cost","sizeX","sizeY","className")');

		if ($vResult === false) {
			return array();
		}
		while (@$vRow = $vResult->fetch(SQLITE_ASSOC)) {
				$store_details[$vRow['name']][$vRow['field']] = $vRow['content'];
		}
	}

	return $store_details;
	
}



/////////////////////////////////////// disables plugin
function ReGiftLinks_disableMe() 
{
	$uSet = ReGiftLinks_getUserSettings();
	$uSet['run'] = false;
	save_array($uSet, ReGiftLinks_settings);
}

/////////////////////////////////////// load placeable items with yield
function ReGiftLinks_loaditems()
{
	$storage_array = ReGiftLinks_load_storage();
	$item_list = array();
	foreach($storage_array as $chkopt)
	{
		$tmpstring = $chkopt["giftable"];
		if ($tmpstring == 'true')
		{
			$tmp_item = array();
			$tmp_item["code"] = $chkopt["code"];
			$tmp_item["name"] = $chkopt["name"];
			$tmp_item["realname"] = $chkopt["realname"];
			$item_list[] = $tmp_item;
		}
	}
	save_array($item_list, 'ReGiftLinks_items.txt');
	return $item_list;
}


/////////////////////////////////////// http form
function ReGiftLinks_form()
{

	if (isset($_GET['submit']))  
	{
		$newSettings = array();
		$newSettings['run'] = isset($_GET['run']) ? true : false;
		$newSettings['disable'] = isset($_GET['disable']) ? true : false;
		$newSettings['item_array'] = array();
		if (isset($_POST['items']))
		{
			$tmp_list = (array)($_POST['items']);
			foreach($tmp_list as $tmp_item)
			{
				if (isset($_POST[$tmp_item])) {
					$newSettings['item_array'][$tmp_item] = (integer)$_POST[$tmp_item];
				}
			}
		}
		save_array($newSettings, ReGiftLinks_settings);
	}
	if (isset($_POST['reload']))
	{
		$item_list = ReGiftLinks_loaditems();
	}

	$userSettings = ReGiftLinks_getUserSettings();
	
	echo '<html><head><style type="text/css"> body {background:#33FF00 url(http://www.freeimagehosting.net/newuploads/lvgwc.jpg);background-repeat:no-repeat;; font-family : Arial, sans-serif; line-height : 160%; font-size : 1.0em; padding : 2em 2em 2em 2em; margin : 0; color: #503080; } '; 
	echo '.myText { padding: 0.4em 0.4em 0.4em 0.4em; margin: 1em 0 1em 0; } h3, h4 { color: blue; } .spaceMe { margin: 0 0 1em 0; }</style></head><body>';  
	echo '<h3>ReGiftLinks v' . ReGiftLinks_version . ' pengaturan</h3>'; 
	echo '<h4>plugins buatan honeyjb .. edit <font color="red">INDONESIA</font> oleh IRAs [ ' . ReGiftLinks_date . ' ] </h4>'; 

	echo '<form action='.ReGiftLinks_URL.'>'; 
	echo '<p><input type="checkbox" name="run" value="true"' . ($userSettings['run'] ? ' checked > ' : ' > ' );
	echo ' <b>jalankan?</b> ';
	echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="checkbox" name="disable" value="true"' . ($userSettings['disable'] ? ' checked > ' : ' > ' );
	echo ' matikan di putaran berikutnya?<br />';
	echo '<br /><b>gunakan item di Giftbox untuk regift dan jumlah hasilnya:</b><br />';

	echo '<br>';
      	echo '<table  width="50%" class="tablewhite">';	
	
	echo '<tr>';
	echo '<td width= "20%" align="left">'; echo '<b>benda </b>';echo '</td>'; 
	echo '<td width= "20%" aling="left">'; echo '<b> banyaknya link  </b>';echo '</td>';
	echo '</tr>';

	$item_list = load_array('ReGiftLinks_item.txt');

	if($item_list == false){
		$item_list = ReGiftLinks_loaditems();
	}
////
	$gift_list = @unserialize(file_get_contents(F('ingiftbox.txt')));
	$con_list = @unserialize(file_get_contents(F('inconbox.txt')));
	$fulllist=array_merge($gift_list, $con_list);
	if($item_list != false)
	{
		foreach($item_list as $opt)
		{
		echo '<tr>';
		$tmp_array = $userSettings["item_array"];
		echo '<td width= "20%" align="left">'; echo '<input type="checkbox" name="items" value="' . $opt["name"] . '"';
			if (array_key_exists($opt["name"],$userSettings["item_array"])) echo ' checked="yes"';
			echo '>'. $opt["realname"] . '</input>';
		echo '<td width= "20%" aling="left">'; echo '<input type="text" name="'. $opt["name"] . '" size="3" value="' . $tmp_array[$opt["name"]] . '"></input>&nbsp;&nbsp;kamu punya : '.$fulllist[$opt["code"]];
		echo '</tr>';
		}
	}

	echo '</table>';
	
	echo '<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;muat ulang item di giftbox: <input type="submit" name="reload" value="refresh">'; 
	if (isset($_POST['reload'])) echo '&nbsp;&nbsp;<i>baru!</i>';
	echo '<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Simpan"></p>'; 
	echo '</form>';
	if (isset($_GET['submit'])) echo '<i>tersimpan!</i>';
	echo '<hr><h4>CATATAN</h4>';
	echo '<br />untuk menjalankan plugin ini anda harus punya kebon kosong yang hanya ada 1 haynale kuning';
	echo '<br />link tersimpan di my reward.';
    echo '<br />selamat mencoba.<br /></p> ';
}

?>