создаем юзера скажем с ид 2
пишем в ShowOverviewPage или AbstractGamePage мини крон
function show()
// ковчег
if($CONF['rep_event'] < TIMESTAMP) {
$db->delete("DELETE FROM %%PLANETS%% WHERE id_owner = :id;", array(':id' => тут ид юзера));
$galaxy = rand(1,30);
$system = rand(1,250);
$planets = rand(1,9);
$UNI=1;
$cautare = $db->select('SELECT * FROM %%PLANETS%% WHERE galaxy != :galaxy AND system = :system AND planet = :planet AND universe = :universe;',
array(':galaxy' => $galaxy, ':system'=>$system, ':planet'=>$planets, ':universe' => $UNI));
if(empty($cautare)) {
$sqlParams = array(
':name' => 'Ковчег',
':id_owner' => 'ид юзера',
':universe' => $UNI,
':galaxy' => $galaxy,
':system' => $system,
':planet' => $planets,
':planet_type' => '1',
':image' => 'rep',
':diameter' => '9800',
':metal' => '10000000',
':crystal' => '8000000',
':deuterium' => '1000000',
':last_update' => TIMESTAMP,
':light_hunter' => '5000',
':heavy_hunter' => '3000',
':djager' => '5',
':nan_chip' => '1',
':star_crasher' => '1',
':lune_noir' => '1',
':battleship' => '500',
':destructor' => '300',
':bomber_ship' => '100',
':battle_ship' => '500',
':crusher' => '500',
':misil_launcher' => '5000',
':small_laser' => '1000',
':big_laser' => '500',
':gauss_canyon' => '100',
':ionic_canyon' => '150',
':buster_canyon' => '50',
':small_protection_shield' => '1',
':big_protection_shield' => '1',
':graviton_canyon' => '10'
);
$strFields = "";
foreach($sqlParams as $FIELD=>$VAL){
$strFields.= substr($FIELD, 1)." = ".$FIELD.", ";
}
$strFields = substr($strFields, 0, -2);
$sql = 'INSERT INTO %%PLANETS%% SET '.$strFields;
$db->insert($sql, $sqlParams);
$newevkaka = TIMESTAMP + (1*60*60*24);
Database::get()->update('UPDATE %%CONFIG%% SET rep_event = :rep_event WHERE uni = :uni',
array(':rep_event' => $newevkaka, ':uni' => $UNI));
}
}
// конец обработки ковчега
далее
идем в MissionCaseAttack
перед function EndStayEvent()
// Обработка атаки планеты древних, id пирата определяем сами мой 2 (c) shadow
if ($combatResult['won'] == "a" && $targetUser['id'] == 2)
{
$BoosterSize = 3;
Database::get()->update('UPDATE %%USERS%% SET booster = booster + :booster WHERE id = :id',
array('booster' => $BoosterSize, ':id' => $this->_fleet['fleet_owner']));
$SizeTM = 50;
$this->UpdateFleet('fleet_resource_darkmatter', $this->_fleet['fleet_resource_darkmatter'] + $SizeTM);
$Message = $LNG['sys_planetpir_attack'];
$Message = " ускоритель +".$BoosterSize.", Темная материя +".$SizeTM."";
$Message = "<br><br>После боя эта планета неожиданно исчезла и когда и где она появиться никто не знает.";
SendSimpleMessage($this->_fleet['fleet_owner'], 0, TIMESTAMP, 5, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message);
$db->delete("DELETE FROM %%PLANETS%% WHERE id_owner = :id_owner;", array( ':id_owner' => 2));
$vremya = mt_rand(21600, 86400);
$newevkaka = TIMESTAMP + $vremya;
$UNI = 1;
Database::get()->update('UPDATE %%CONFIG%% SET rep_event = :rep_event WHERE uni = :uni',
array(':rep_event' => $newevkaka, ':uni' => $UNI));
}
// конец обработки атаки планеты древних
$this->setState(FLEET_RETURN);
$this->SaveFleet();
}
далее в базу в config создаем ячейку rep_event INT 11 значение = 0 ............. и внимание это быстрый вариант! в идеале обработка должна быть в кроне!
пишем в ShowOverviewPage или AbstractGamePage мини крон
function show()
// ковчег
if($CONF['rep_event'] < TIMESTAMP) {
$db->delete("DELETE FROM %%PLANETS%% WHERE id_owner = :id;", array(':id' => тут ид юзера));
$galaxy = rand(1,30);
$system = rand(1,250);
$planets = rand(1,9);
$UNI=1;
$cautare = $db->select('SELECT * FROM %%PLANETS%% WHERE galaxy != :galaxy AND system = :system AND planet = :planet AND universe = :universe;',
array(':galaxy' => $galaxy, ':system'=>$system, ':planet'=>$planets, ':universe' => $UNI));
if(empty($cautare)) {
$sqlParams = array(
':name' => 'Ковчег',
':id_owner' => 'ид юзера',
':universe' => $UNI,
':galaxy' => $galaxy,
':system' => $system,
':planet' => $planets,
':planet_type' => '1',
':image' => 'rep',
':diameter' => '9800',
':metal' => '10000000',
':crystal' => '8000000',
':deuterium' => '1000000',
':last_update' => TIMESTAMP,
':light_hunter' => '5000',
':heavy_hunter' => '3000',
':djager' => '5',
':nan_chip' => '1',
':star_crasher' => '1',
':lune_noir' => '1',
':battleship' => '500',
':destructor' => '300',
':bomber_ship' => '100',
':battle_ship' => '500',
':crusher' => '500',
':misil_launcher' => '5000',
':small_laser' => '1000',
':big_laser' => '500',
':gauss_canyon' => '100',
':ionic_canyon' => '150',
':buster_canyon' => '50',
':small_protection_shield' => '1',
':big_protection_shield' => '1',
':graviton_canyon' => '10'
);
$strFields = "";
foreach($sqlParams as $FIELD=>$VAL){
$strFields.= substr($FIELD, 1)." = ".$FIELD.", ";
}
$strFields = substr($strFields, 0, -2);
$sql = 'INSERT INTO %%PLANETS%% SET '.$strFields;
$db->insert($sql, $sqlParams);
$newevkaka = TIMESTAMP + (1*60*60*24);
Database::get()->update('UPDATE %%CONFIG%% SET rep_event = :rep_event WHERE uni = :uni',
array(':rep_event' => $newevkaka, ':uni' => $UNI));
}
}
// конец обработки ковчега
далее
идем в MissionCaseAttack
перед function EndStayEvent()
// Обработка атаки планеты древних, id пирата определяем сами мой 2 (c) shadow
if ($combatResult['won'] == "a" && $targetUser['id'] == 2)
{
$BoosterSize = 3;
Database::get()->update('UPDATE %%USERS%% SET booster = booster + :booster WHERE id = :id',
array('booster' => $BoosterSize, ':id' => $this->_fleet['fleet_owner']));
$SizeTM = 50;
$this->UpdateFleet('fleet_resource_darkmatter', $this->_fleet['fleet_resource_darkmatter'] + $SizeTM);
$Message = $LNG['sys_planetpir_attack'];
$Message = " ускоритель +".$BoosterSize.", Темная материя +".$SizeTM."";
$Message = "<br><br>После боя эта планета неожиданно исчезла и когда и где она появиться никто не знает.";
SendSimpleMessage($this->_fleet['fleet_owner'], 0, TIMESTAMP, 5, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message);
$db->delete("DELETE FROM %%PLANETS%% WHERE id_owner = :id_owner;", array( ':id_owner' => 2));
$vremya = mt_rand(21600, 86400);
$newevkaka = TIMESTAMP + $vremya;
$UNI = 1;
Database::get()->update('UPDATE %%CONFIG%% SET rep_event = :rep_event WHERE uni = :uni',
array(':rep_event' => $newevkaka, ':uni' => $UNI));
}
// конец обработки атаки планеты древних
$this->setState(FLEET_RETURN);
$this->SaveFleet();
}
далее в базу в config создаем ячейку rep_event INT 11 значение = 0 ............. и внимание это быстрый вариант! в идеале обработка должна быть в кроне!
Делаю качественно в сроки! на любой версии moons, встрою, или напишу любой мод , но дорого! afire-space.com
The post was edited 2 times, last by Shadow ().