function GB_BuyFuel($ObjD, $GB_amount) { global $GB_tempid; if ($GB_tempid < 63000) { $GB_tempid = 63000; } $px_Setopts = LoadSavedSettings(); if (!@$px_Setopts['bot_speed']) { $vSpeed = 1; } if (@$px_Setopts['bot_speed'] < 1) { $vSpeed = 1; } else { $vSpeed = $px_Setopts['bot_speed']; } if (@$px_Setopts['bot_speed'] > 20) { $vSpeed = 8; } $vRunMainLoop = ceil($GB_amount / $vSpeed); for ($vI = 0; $vI < $vRunMainLoop; $vI++) { $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(); $vNumAction = 0; for ($vJ = $vI * $vSpeed; $vJ < $vI * $vSpeed + $vSpeed && $vJ < $GB_amount; $vJ++) { @($amf = CreateMultAMFRequest($amf, $vNumAction, '', 'FarmService.buyFuel')); $amf->_bodys[0]->_value[1][$vNumAction]['params'][0] = $ObjD['_name']; //'fuel5'; $amf->_bodys[0]->_value[1][$vNumAction]['params'][1] = true; $vNumAction++; $GB_tempid++; } $res = RequestAMF2($amf); if ($res == 'OK') { AddLog2('GiftBox: Use ' . $ObjD['_name'] . ' - Result: ' . $res . '[' . $GB_amount - $vJ . ' to Go]'); $need_reload = true; } else { AddLog2("GiftBox: Error - " . $res); return $res; } } return $res; }
function AM_farmGold_moveAnimalsToBuilding($building, $getLeft, $getFarm, $getIDs, $getNames, $getPositions) { global $TB_settings; global $AM_settings; if ($getLeft == 0) { return; } $i = 0; $farm = array(); $farm = $getFarm; $left = $getLeft; $index = 0; while ($left > 0) { if (empty($getNames[$index])) { continue; } $amf = CreateMultAMFRequest($amf, $i, 'store', 'WorldService.performAction'); $amf->_bodys[0]->_value[1][$i]['params'][1]['id'] = $building['id']; $amf->_bodys[0]->_value[1][$i]['params'][1]['contents'][0]['num'] = $index; //$amf->_bodys[0]->_value[1][$i]['params'][1]['contents'][0]['item'] = ''; $amf->_bodys[0]->_value[1][$i]['params'][1]['itemName'] = $building['itemName']; $amf->_bodys[0]->_value[1][$i]['params'][1]['direction'] = 0; $amf->_bodys[0]->_value[1][$i]['params'][1]['buildTime'] = 0; $amf->_bodys[0]->_value[1][$i]['params'][1]['className'] = $building['className']; $amf->_bodys[0]->_value[1][$i]['params'][1]['position']['x'] = $building['position']['x']; $amf->_bodys[0]->_value[1][$i]['params'][1]['position']['y'] = $building['position']['y']; $amf->_bodys[0]->_value[1][$i]['params'][1]['position']['z'] = 0; $amf->_bodys[0]->_value[1][$i]['params'][1]['deleted'] = false; $amf->_bodys[0]->_value[1][$i]['params'][1]['state'] = $building['state']; $amf->_bodys[0]->_value[1][$i]['params'][1]['tempId'] = 'NaN'; //$amf->_bodys[0]->_value[1][$i]['params'][1]['plantTime'] = $time; $amf->_bodys[0]->_value[1][$i]['params'][2][0]['resource'] = $getIDs[$index]; $amf->_bodys[0]->_value[1][$i]['params'][2][0]['cameFromLocation'] = 0; $amf->_bodys[0]->_value[1][$i]['params'][2][0]['storedItemCode'] = TB_GetCodeByName($getNames[$index]); $amf->_bodys[0]->_value[1][$i]['params'][2][0]['storedClassName'] = 'animal'; $amf->_bodys[0]->_value[1][$i]['params'][2][0]['isGift'] = false; $amf->_bodys[0]->_value[1][$i]['params'][2][0]['storedItemName'] = $getNames[$index]; $farm[$getPositions[$index]['x']][$getPositions[$index]['y']] = true; $farm[$getPositions[$index]['x'] + 1][$getPositions[$index]['y']] = true; $farm[$getPositions[$index]['x']][$getPositions[$index]['y'] + 1] = true; $farm[$getPositions[$index]['x'] + 1][$getPositions[$index]['y'] + 1] = true; $i++; $left--; $index++; if ($i >= $TB_settings['TB_speedAction']) { $res = RequestAMF($amf); if ($res == 'OK') { AddLog2('-> ' . $res . ' ' . $left . ' left'); $i = 0; } else { AddLog2("ERROR - {$res}"); return false; } } } if ($i > 0) { $res = RequestAMF($amf); if ($res == 'OK') { AddLog2('-> ' . $res); return $farm; } else { AddLog2("ERROR - {$res}"); return false; } } else { return $farm; } }
private function _fvFarmWork($items, $action = 'harvest') { $count = count($items); if ($count > 0) { $i = 0; $amf = ''; foreach ($items as $plot) { if ($action == 'harvest') { $pUnit = Units_GetUnitByName($plot['itemName'], true); $Seed = $plot['itemName']; $LastSeed = $Seed; if ($this->currbushel != $pUnit['bushelItemCode']) { $this->_fvDoBushels($pUnit['bushelItemCode']); } } $amf = CreateMultAMFRequest($amf, $i, $action, 'WorldService.performAction'); $amf->_bodys[0]->_value[1][$i]['params'][1] = $plot; $amf->_bodys[0]->_value[1][$i]['params'][2] = array(); $amf->_bodys[0]->_value[1][$i]['params'][2][0]['energyCost'] = 0; $prealname = trim(Units_GetRealnameByName($plot['itemName'])); if (@(!$plotsstring)) { $plotsstring = $prealname . " " . $plot['position']['x'] . '-' . $plot['position']['y']; } else { $plotsstring = $plotsstring . ", " . $prealname . " " . $plot['position']['x'] . '-' . $plot['position']['y']; } if (@(!$OKstring)) { $OKstring = ucfirst($action) . " " . $prealname . " " . $plot['position']['x'] . '-' . $plot['position']['y']; } else { $OKstring = $OKstring . "\r\n" . ucfirst($action) . " " . $plot['itemName'] . " " . $plot['position']['x'] . '-' . $plot['position']['y']; } $i++; if ($i == $this->botspeed || $i >= $count) { $count -= $i; $i = 0; AddLog2('fvFarmer: ' . ucfirst($action) . " " . $plotsstring); $res = RequestAMF($amf, true); $amf2 = $res['amf2']; $amf = ''; if ($res['res'] === 'OK') { AddLog2("fvFarmer Result: " . $res['res']); foreach ($amf2->_bodys[0]->_value['data'][0]['data'] as $result) { if (isset($result['data']['foundBushel'])) { $crop = $result['data']['foundBushel']['bushelCode']; $cUnit = Units_GetUnitByCode($crop, true); AddLog2('fvFarmer: Found Bushel ' . $cUnit['realname']); if ($result['data']['foundBushel']['bushelAddedToStall'] == 1) { $this->fmBushels[] = $crop; } } } } else { if ($res['res']) { AddLog("fvFarmer Error: " . $res['res'] . " on {$OKstring}"); if (intval($res['res']) == 29 || intval($res['res']) == 28) { DoInit(); } } } unset($plotsstring, $OKstring); } } } }
function Grifter_TurboSell($name, $x) { Addlog2('selling ' . $name . ' : ' . $x . ' times'); $vSpeed = 8; $Code = Units_GetCodeByName($name); unset($GLOBALS['amfphp']['encoding']); $vRunMainLoop = ceil($x / $vSpeed); for ($vI = 0; $vI < $vRunMainLoop; $vI++) { $vNumAction = 0; for ($vJ = $vI * $vSpeed; $vJ < $vI * $vSpeed + $vSpeed && $vJ < $x; $vJ++) { @($amf = CreateMultAMFRequest($amf, $vNumAction, '', 'UserService.sellStoredItem')); $amf->_bodys[0]->_value[1][$vNumAction]['params'][0]['code'] = $Code; $amf->_bodys[0]->_value[1][$vNumAction]['params'][1] = false; $amf->_bodys[0]->_value[1][$vNumAction]['params'][2] = -1; $vNumAction++; } $res = RequestAMF($amf); if ($res == 'OK') { Addlog2(" result {$res}"); } else { AddLog2("GiftBox: Error - " . $res); return $res; } } return $res; }
private function _fvDoBuildWork($build, $parts) { $amfcount = 0; $amf = ''; foreach ($parts as $code => $values) { if (isset($this->giftbox[$code]) && $values['have'] < $values['need']) { AddLog2($code . ' - Giftbox has: ' . $this->giftbox[$code] . ' - Need: ' . ($values['need'] - $values['have'])); for ($x = 0; $x < $values['need'] - $values['have']; $x++) { if ($this->giftbox[$code] == 0) { unset($this->giftbox[$code]); break; } $amf = CreateMultAMFRequest($amf, $amfcount, 'store', 'WorldService.performAction'); $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['tempId'] = 'NaN'; $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['itemName'] = $build['itemName']; $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['className'] = $build['className']; $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['position'] = $build['position']; $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['contents'] = array(); $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['state'] = $build['state']; $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['plantTime'] = number_format($build['plantTime'], 0, '', ''); $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['deleted'] = false; $amf->_bodys[0]->_value[1][$amfcount]['params'][1]['id'] = $build['id']; $partUnit = Units_GetUnitByCode($code); $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['cameFromLocation'] = 0; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['storedClassName'] = $partUnit['className']; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['isGift'] = true; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['resource'] = 0; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['storedItemName'] = $partUnit['name']; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['isFull'] = 0; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['storedItemCode'] = $code; $tmpArray[$amfcount]['realname'] = $partUnit['realname']; $this->giftbox[$code]--; if ($amfcount < $this->botspeed - 1) { $amfcount++; continue; } $amf2 = $this->_fvAMFSend($amf); $amf = ''; $amfcount = 0; if ($amf2 === false) { DoInit(); continue; } foreach ($amf2->_bodys[0]->_value['data'] as $key => $returned) { $resp = $returned['errorType']; $err = $returned['errorData']; if ($resp == 0) { AddLog2('[' . $key . '] Placed: ' . $tmpArray[$key]['realname'] . ' - Result: ' . $this->zErrCGen[$resp]); } else { AddLog2('fvTools Error: ' . $tmpArray[$key]['realname'] . " Code: " . $resp . ' - ' . $err); } } if ($this->reload === true) { DoInit(); $this->reload = false; } } } } if ($amf != '') { $amf2 = $this->_fvAMFSend($amf); if ($amf2 === false) { continue; } foreach ($amf2->_bodys[0]->_value['data'] as $key => $returned) { $resp = $returned['errorType']; $err = $returned['errorData']; if ($resp == 0) { AddLog2('[' . $key . '] Placed: ' . $tmpArray[$key]['realname'] . ' - Result: ' . $this->zErrCGen[$resp]); } else { AddLog2('fvTools Error: ' . $tmpArray[$key]['realname'] . " Code: " . $resp . ' - ' . $err); } } if ($this->reload === true) { DoInit(); $this->reload = false; } } }
private function _fnGetFriends($returned, $friendtype) { $fr_laston = $returned['data']['user']['lastWorldAction']; $fr_fbid = $returned['data']['user']['id']; $fr_sizeX = ($returned['data']['world']['sizeX'] - 2) / 4; $fr_sizeY = ($returned['data']['world']['sizeY'] - 2) / 4; if (is_array($this->actionlimits)) { foreach ($this->actionlimits as $nkey => $ndata) { if ($ndata['targetId'] == $fr_fbid) { $myactions = $ndata; break; } } } $fr_objects = $returned['data']['world']['objectsArray']; $fr_objectscnt = count($fr_objects); if ($friendtype == 'neighbor') { $fn_SQL = "INSERT OR REPLACE INTO neighbors(neighbors_fbid, neighbors_name, neighbors_worldn, neighbors_lastseen,\n\t\t\t\t\t\t\t\tneighbors_level, neighbors_xp, neighbors_coin, neighbors_cash, neighbors_sizeX,\n\t\t\t\t\t\t\t\tneighbors_sizeY, neighbors_fuel, neighbors_friends, neighbors_objects, neighbors_plots, neighbors_timestamp) "; $fn_SQL .= "VALUES('{$fr_fbid}', '', '', '{$fr_laston}', '', '', '', '',\n\t\t\t\t\t\t\t\t'{$fr_sizeX}', '{$fr_sizeY}', '', '', '{$fr_objectscnt}', '', '" . time() . "')"; $q = $this->_fnNeighborsDBM->query($fn_SQL); } else { $fn_SQL = "UPDATE neighborsn\n\t\t\t\t\t\tSET neighborsn_timestamp='" . time() . "', \n\t\t\t\t\t\t\tneighborsn_lastseen='" . $fr_laston . "' WHERE neighborsn_fbid='" . $fr_fbid . "'"; $q = $this->_fnNeighborsDBM->query($fn_SQL); } AddLog2($fr_fbid . ' - Updated'); $fvSQL = "INSERT OR REPLACE INTO settings(settings_name,settings_value) values('ntracktime','" . time() . "')"; $this->_fnNeighborsDBM->queryExec($fvSQL); //Count My Actions $farmActs = 0; $feedActs = 0; $halloweenActs = 0; $animalFeedActs = 0; $pigslopActs = 0; $Val2011BuildActs = 0; $greenHouseBuildActs = 0; if (!empty($myactions)) { $farmActs = @$myactions['farm']; $feedActs = @$myactions['feed']; $halloweenActs = @$myactions['harvesthalloweencandy']; $animalFeedActs = @$myactions['animalFeed']; $pigslopActs = @$myactions['pigslop']; $Val2011BuildActs = @$myactions['Valentines2011Harvest']; $greenHouseBuildActs = @$myactions['greenhousebuildable_finished']; } if ($farmActs < 5 || $feedActs < 1 || $halloweenActs < 1 || $pigslopActs < 1 || $animalFeedActs < 1 || $Val2011BuildActs < 1 || $greenHouseBuildActs < 1) { foreach (@$fr_objects as $wObjects) { switch ($wObjects['className']) { case 'Plot': if ($farmActs < 5) { switch ($wObjects['state']) { case 'withered': if (@$this->settings['ucrops'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'unwither'); $farmActs++; } break; case 'fallow': if (@$this->settings['pplots'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'plow'); $farmActs++; } break; default: if (@$this->settings['fplots'] == 1 && $wObjects['isJumbo'] === false) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'fert'); $farmActs++; } } } break; case 'Animal': if ($farmActs < 5) { if ($wObjects['state'] == 'ripe') { $uinfo = Units_GetUnitByName($wObjects['itemName']); if (@$uinfo['action'] != 'transform' && @$this->settings['hanimals'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'harvest'); $farmActs++; } } } break; case 'Tree': if ($farmActs < 5) { if ($wObjects['state'] == 'ripe' && @$this->settings['htrees'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'harvest'); $farmActs++; } } break; case 'ChickenCoopBuilding': if ($feedActs < 1) { if ($wObjects['state'] == 'ripe' && @$this->settings['fchickens'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'feedchickens'); $feedActs++; } } break; case 'HalloweenHauntedHouseBuilding': if ($halloweenActs < 1) { if ($wObjects['isFullyBuilt'] === true && @$this->settings['hcandy'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'harvesthalloweencandy'); $halloweenActs++; } } break; case 'FeedTroughBuilding': if ($animalFeedActs < 1) { if ($wObjects['isFullyBuilt'] === true && @$this->settings['ftrough'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'depositAnimalFeed'); $animalFeedActs++; } } break; case 'PigpenBuilding': if ($pigslopActs < 1) { if ($wObjects['isFullyBuilt'] === true && @$this->settings['fpigpen'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'getVisitPigSlopW2W'); $pigslopActs++; } } case 'FeatureBuilding': if ($Val2011BuildActs < 1 && $wObjects['itemName'] == 'valentines2011_finished') { if (@$this->settings['hval2011'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'neighborHarvestFeatureBuilding'); $Val2011BuildActs++; } } if ($greenHouseBuildActs < 1 && $wObjects['itemName'] == 'greenhousebuildable_finished') { if (@$this->settings['hgreenhouse'] == 1) { $work[] = array('objectArray' => $wObjects, 'fbid' => $fr_fbid, 'action' => 'neighborHarvestFeatureBuilding'); $greenHouseBuildActs++; } } } if ($farmActs == 5 && $feedActs == 1 && $halloweenActs == 1 && $animalFeedActs == 1 && $pigslopActs == 1 && $Val2011BuildActs == 1 && $greenHouseBuildActs == 1) { break; } } //Now Submit Work $amf = ''; $tmpArray = array(); $amfcount = 0; if (!empty($work)) { foreach ($work as $wk) { if ($wk['action'] != 'depositAnimalFeed' && $wk['action'] != 'getVisitPigSlopW2W') { $amf = CreateMultAMFRequest($amf, $amfcount, 'neighborAct', 'WorldService.performAction'); $amf->_bodys[0]->_value[1][$amfcount]['params'][1] = $wk['objectArray']; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['actionType'] = $wk['action']; $amf->_bodys[0]->_value[1][$amfcount]['params'][2][0]['hostId'] = $wk['fbid']; } else { $amf = CreateMultAMFRequest($amf, $amfcount, '', 'NeighborActionService.' . $wk['action']); $amf->_bodys[0]->_value[1][$amfcount]['params'][0] = $wk['fbid']; } $tmpArray[$amfcount]['id'] = $wk['fbid']; $tmpArray[$amfcount]['action'] = $wk['action']; $tmpArray[$amfcount]['item'] = $wk['objectArray']['itemName']; if ($amfcount < $this->botspeed - 1) { $amfcount++; continue; } $amf2 = $this->_fnAMFSend($amf); $amf = ''; $amfcount = 0; if ($amf2 === false) { continue; } foreach ($amf2->_bodys[0]->_value['data'] as $key => $returned) { $resp = $returned['errorType']; $err = $returned['errorData']; $harvestItem = @$returned['data']['harvestItem']; $rewardLink = @$returned['data']['rewardLink']; if ($resp == 0) { AddLog2('[' . $key . '] Action: ' . $tmpArray[$key]['action'] . ' ' . $tmpArray[$key]['item'] . ' - Experience: ' . $returned['data']['xpYield'] . ' - Coins: ' . $returned['data']['goldYield'] . ' - Result: ' . $this->zErrCGen[$resp]); if ($harvestItem != '' || $rewardLink != '') { AddLog2("Reward: {$harvestItem}"); AddRewardLog($harvestItem, $rewardLink); } } } } } if ($amf != '') { $amf2 = $this->_fnAMFSend($amf); if ($amf2 !== false) { foreach ($amf2->_bodys[0]->_value['data'] as $key => $returned) { $resp = $returned['errorType']; $err = $returned['errorData']; if ($resp == 0) { AddLog2('[' . $key . '] Action: ' . $tmpArray[$key]['action'] . ' ' . $tmpArray[$key]['item'] . ' - Experience: ' . $returned['data']['xpYield'] . ' - Coins: ' . $returned['data']['goldYield'] . ' - Result: ' . $this->zErrCGen[$resp]); } } } } } if ($this->settings['domissions'] == 1) { //Get A Random Mission $amf = CreateRequestAMF('', 'MissionService.getRandomMission'); $amf->_bodys[0]->_value[1][0]['params'][0] = $fr_fbid; $amf2 = $this->_fnAMFSend($amf); if ($amf2 !== false) { foreach ($amf2->_bodys[0]->_value['data'] as $key => $returned) { $resp = $returned['errorType']; $err = $returned['errorData']; if ($resp == 0 && isset($returned['data']['type'])) { $amf = CreateRequestAMF('', 'MissionService.completeMission'); $amf->_bodys[0]->_value[1][0]['params'][0] = $fr_fbid; $amf->_bodys[0]->_value[1][0]['params'][1] = $returned['data']['type']; $amf2 = $this->_fnAMFSend($amf); $mission = $returned['data']['type']; foreach ($amf2->_bodys[0]->_value['data'] as $key => $returned) { if ($resp == 0) { AddLog2('Do Mission: ' . ucfirst($mission) . ' - Result: ' . $this->zErrCGen[$resp]); } } } } } } AddLog2('-------------------------------------'); }
function SM_doSell($itemName, $unit, $num) { global $TB_settings; AddLog2("Selling " . $unit['realname']); $i = 0; $left = $num; $amf = ''; while ($left > 0) { $amf = CreateMultAMFRequest($amf, $i, '', 'UserService.sellStoredItem'); $amf->_bodys[0]->_value[1][$i]['params'][0]['name'] = $itemName; $amf->_bodys[0]->_value[1][$i]['params'][0]['rank'] = 0; $amf->_bodys[0]->_value[1][$i]['params'][0]['type'] = $unit['type']; $amf->_bodys[0]->_value[1][$i]['params'][0]['code'] = $unit['code']; $amf->_bodys[0]->_value[1][$i]['params'][0]['sellPrice'] = $unit['cost'] * (1 / 20); $amf->_bodys[0]->_value[1][$i]['params'][0]['cost'] = $unit['cost']; $amf->_bodys[0]->_value[1][$i]['params'][0]['localizedName'] = $unit['realname']; $amf->_bodys[0]->_value[1][$i]['params'][1] = false; $amf->_bodys[0]->_value[1][$i]['params'][2] = '-2'; $i++; $left--; if ($i >= $TB_settings['TB_speedAction']) { $res = RequestAMF($amf); if ($res == 'OK') { AddLog2('-> ' . $res . ' ' . $left . ' left'); $amf = ''; $i = 0; } else { AddLog2("ERROR - {$res}"); return false; } } } if ($i > 0) { $res = RequestAMF($amf); if ($res == 'OK') { AddLog2('-> ' . $res); return true; } else { AddLog2("ERROR - {$res}"); return false; } } else { return true; } }