function AM_farmGold_moveAnimalsToFarm($building, $left, $getFarm)
{
    global $TB_settings;
    global $AM_settings;
    $tmpNames = array();
    $tmpPositions = array();
    $return = array();
    $farm = array();
    $farm = $getFarm;
    $position = array();
    $i = 0;
    $u = 0;
    foreach (AM_animalInBuilding($building) as $animal => $num) {
        while ($left > 0 && $num > 0) {
            $position = TB_findEmptySpotSection($animal, $farm, 2, 2);
            if ($position == false) {
                //AddLog2('can\'t find position in section -> will use whole farm');
                $position = TB_findEmptySpot($TB_settings['TB_getEmptyPositionUseRandom'], $farm, 2, 2);
            }
            if (empty($animal)) {
                continue;
            }
            $amf = CreateMultAMFRequest($amf, $i, 'place', 'WorldService.performAction');
            $amf->_bodys[0]->_value[1][$i]['params'][1]['className'] = 'Animal';
            $amf->_bodys[0]->_value[1][$i]['params'][1]['itemName'] = $animal;
            $tmpNames[$i] = $animal;
            $amf->_bodys[0]->_value[1][$i]['params'][1]['direction'] = 1;
            $amf->_bodys[0]->_value[1][$i]['params'][1]['position']['x'] = $position['x'];
            $amf->_bodys[0]->_value[1][$i]['params'][1]['position']['y'] = $position['y'];
            $tmpPositions[$i]['x'] = $position['x'];
            $tmpPositions[$i]['y'] = $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'] = -1;
            $amf->_bodys[0]->_value[1][$i]['params'][1]['plantTime'] = time() - 82800 - 1;
            $amf->_bodys[0]->_value[1][$i]['params'][2][0]['isStorageWithdrawal'] = $building['id'];
            $amf->_bodys[0]->_value[1][$i]['params'][2][0]['isGift'] = false;
            $farm[$position['x']][$position['y']] = false;
            if ($building['className'] != 'ChickenCoopBuilding') {
                $farm[$position['x'] + 1][$position['y']] = false;
                $farm[$position['x']][$position['y'] + 1] = false;
                $farm[$position['x'] + 1][$position['y'] + 1] = false;
            }
            $num--;
            $left--;
            $i++;
            if ($i >= $TB_settings['TB_speedAction']) {
                $tmp = TB_sendRequest($amf);
                $amf2 = $tmp['amf2'];
                $res = $tmp['res'];
                $i2 = 0;
                while ($i2 < $i) {
                    $return['IDs'][$u] = $amf2->_bodys[0]->_value['data'][$i2]['data']['id'];
                    $return['itemName'][$u] = $tmpNames[$i2];
                    $return['positions'][$u]['x'] = $tmpPositions[$i2]['x'];
                    $return['positions'][$u]['y'] = $tmpPositions[$i2]['y'];
                    AM_farmGold_addIDs($return['IDs'][$u], $building);
                    $i2++;
                    $u++;
                }
                if ($res == 'OK') {
                    AddLog2('-> ' . $res . ' ' . $left . ' left');
                    $i = 0;
                } else {
                    AddLog2("ERROR - {$res}");
                    return false;
                }
            }
        }
    }
    $return['farm'] = $farm;
    if ($i > 0) {
        $tmp = TB_sendRequest($amf);
        $amf2 = $tmp['amf2'];
        $res = $tmp['res'];
        $i2 = 0;
        while ($i2 < $i) {
            $return['IDs'][$u] = $amf2->_bodys[0]->_value['data'][$i2]['data']['id'];
            $return['itemName'][$u] = $tmpNames[$i2];
            $return['positions'][$u]['x'] = $tmpPositions[$i2]['x'];
            $return['positions'][$u]['y'] = $tmpPositions[$i2]['y'];
            AM_farmGold_addIDs($return['IDs'][$u], $building);
            $i2++;
            $u++;
        }
        if ($res == 'OK') {
            AddLog2('-> ' . $res);
            return $return;
        } else {
            AddLog2("ERROR - {$res}");
            AddLog2(print_r($amf2, true));
            return false;
        }
    } else {
        return $return;
    }
}
Exemple #2
0
function MG_placeEggOrGift($name, $x, $y)
{
    switch ($name) {
        case 'gift':
            $className = 'MysteryGift';
            $itemName = 'mysterygift';
            break;
        default:
            $className = 'LootableDecoration';
            $itemName = $name;
            break;
    }
    $data = array();
    $amf = CreateRequestAMF('place', 'WorldService.performAction');
    $amf->_bodys[0]->_value[1][0]['params'][1]['className'] = $className;
    $amf->_bodys[0]->_value[1][0]['params'][1]['itemName'] = $itemName;
    $amf->_bodys[0]->_value[1][0]['params'][1]['direction'] = 0;
    $amf->_bodys[0]->_value[1][0]['params'][1]['position']['x'] = $x;
    $amf->_bodys[0]->_value[1][0]['params'][1]['position']['y'] = $y;
    $amf->_bodys[0]->_value[1][0]['params'][1]['position']['z'] = 0;
    $amf->_bodys[0]->_value[1][0]['params'][1]['deleted'] = false;
    $amf->_bodys[0]->_value[1][0]['params'][1]['state'] = 'static';
    $amf->_bodys[0]->_value[1][0]['params'][1]['tempId'] = -1;
    $amf->_bodys[0]->_value[1][0]['params'][2][0]['isStorageWithdrawal'] = -1;
    $amf->_bodys[0]->_value[1][0]['params'][2][0]['isGift'] = true;
    $amf->_bodys[0]->_value[1][0]['params'][2][0]['isInventoryWithdrawal'] = false;
    $tmp = TB_sendRequest($amf);
    $amf2 = $tmp['amf2'];
    $res = $tmp['res'];
    $ID = $amf2->_bodys[0]->_value['data'][0]['data']['id'];
    $data['ans'] = $res;
    $data['ID'] = $ID;
    $data['x'] = $x;
    $data['y'] = $y;
    return $data;
}