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 /> <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> kamu punya : '.$fulllist[$opt["code"]];
echo '</tr>';
}
}
echo '</table>';
echo '<br /> muat ulang item di giftbox: <input type="submit" name="reload" value="refresh">';
if (isset($_POST['reload'])) echo ' <i>baru!</i>';
echo '<br><br> <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> ';
}
?>