📄 researchbuildingpage.php
字号:
<?php
/**
* ResearchBuildingPage.php
*
* @version 1.2
* @copyright 2008 by Chlorel for XNova
*/
// Page de Construction de niveau de Recherche
// $CurrentPlanet -> Planete sur laquelle la construction est lanc茅e
// Parametre pass茅 par adresse, cela permet de mettre les valeurs a jours
// dans le programme appelant
// $CurrentUser -> Utilisateur qui a lanc茅 la construction
// $InResearch -> Indicateur qu'il y a une Recherche en cours
// $ThePlanet -> Planete sur laquelle se realise la technologie eventuellement
function ResearchBuildingPage (&$CurrentPlanet, $CurrentUser, $InResearch, $ThePlanet) {
global $lang, $resource, $reslist, $phpEx, $dpath, $game_config, $_GET;
$NoResearchMessage = "";
$bContinue = true;
// Deja est qu'il y a un laboratoire sur la planete ???
if ($CurrentPlanet[$resource[31]] == 0) {
message($lang['no_laboratory'], $lang['Research']);
}
// Ensuite ... Est ce que la labo est en cours d'upgrade ?
if (!CheckLabSettingsInQueue ( $CurrentPlanet )) {
$NoResearchMessage = $lang['labo_on_update'];
$bContinue = false;
}
// Boucle d'interpretation des eventuelles commandes
if (isset($_GET['cmd'])) {
check_urlaubmodus();
$TheCommand = $_GET['cmd'];
$Techno = $_GET['tech'];
if ( is_numeric($Techno) ) {
if ( in_array($Techno, $reslist['tech']) ) {
// Bon quand on arrive ici ... On sait deja qu'on a une technologie valide
if ( is_array ($ThePlanet) ) {
$WorkingPlanet = $ThePlanet;
} else {
$WorkingPlanet = $CurrentPlanet;
}
switch($TheCommand){
case 'cancel':
if ($ThePlanet['b_tech_id'] == $Techno) {
$costs = GetBuildingPrice($CurrentUser, $WorkingPlanet, $Techno);
$WorkingPlanet['metal'] += $costs['metal'];
$WorkingPlanet['crystal'] += $costs['crystal'];
$WorkingPlanet['deuterium'] += $costs['deuterium'];
$WorkingPlanet['b_tech_id'] = 0;
$WorkingPlanet["b_tech"] = 0;
$CurrentUser['b_tech_planet'] = 0;
$UpdateData = true;
$InResearch = false;
}
break;
case 'search':
if ( IsTechnologieAccessible($CurrentUser, $WorkingPlanet, $Techno) &&
IsElementBuyable($CurrentUser, $WorkingPlanet, $Techno) ) {
$costs = GetBuildingPrice($CurrentUser, $WorkingPlanet, $Techno);
$WorkingPlanet['metal'] -= $costs['metal'];
$WorkingPlanet['crystal'] -= $costs['crystal'];
$WorkingPlanet['deuterium'] -= $costs['deuterium'];
$WorkingPlanet["b_tech_id"] = $Techno;
$WorkingPlanet["b_tech"] = time() + GetBuildingTime($CurrentUser, $WorkingPlanet, $Techno);
$CurrentUser["b_tech_planet"] = $WorkingPlanet["id"];
$UpdateData = true;
$InResearch = true;
}
break;
}
if ($UpdateData == true) {
$QryUpdatePlanet = "UPDATE {{table}} SET ";
$QryUpdatePlanet .= "`b_tech_id` = '". $WorkingPlanet['b_tech_id'] ."', ";
$QryUpdatePlanet .= "`b_tech` = '". $WorkingPlanet['b_tech'] ."', ";
$QryUpdatePlanet .= "`metal` = '". $WorkingPlanet['metal'] ."', ";
$QryUpdatePlanet .= "`crystal` = '". $WorkingPlanet['crystal'] ."', ";
$QryUpdatePlanet .= "`deuterium` = '". $WorkingPlanet['deuterium'] ."' ";
$QryUpdatePlanet .= "WHERE ";
$QryUpdatePlanet .= "`id` = '". $WorkingPlanet['id'] ."';";
doquery( $QryUpdatePlanet, 'planets');
$QryUpdateUser = "UPDATE {{table}} SET ";
$QryUpdateUser .= "`b_tech_planet` = '". $CurrentUser['b_tech_planet'] ."' ";
$QryUpdateUser .= "WHERE ";
$QryUpdateUser .= "`id` = '". $CurrentUser['id'] ."';";
doquery( $QryUpdateUser, 'users');
}
if ( is_array ($ThePlanet) ) {
$ThePlanet = $WorkingPlanet;
} else {
$CurrentPlanet = $WorkingPlanet;
if ($TheCommand == 'search') {
$ThePlanet = $CurrentPlanet;
}
}
}
} else {
$bContinue = false;
}
}
$TechRowTPL = gettemplate('buildings_research_row');
$TechScrTPL = gettemplate('buildings_research_script');
foreach($lang['tech'] as $Tech => $TechName) {
if ($Tech > 105 && $Tech <= 199) {
if ( IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Tech)) {
$RowParse = $lang;
$RowParse['dpath'] = $dpath;
$RowParse['tech_id'] = $Tech;
$building_level = $CurrentUser[$resource[$Tech]];
$RowParse['tech_level'] = ($building_level == 0) ? "" : "( ". $lang['level']. " ".$building_level." )";
$RowParse['tech_name'] = $TechName;
$RowParse['tech_descr'] = $lang['res']['descriptions'][$Tech];
$RowParse['tech_price'] = GetElementPrice($CurrentUser, $CurrentPlanet, $Tech);
$SearchTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Tech);
$RowParse['search_time'] = ShowBuildTime($SearchTime);
$RowParse['tech_restp'] = $lang['Rest_ress'] ." ". GetRestPrice ($CurrentUser, $CurrentPlanet, $Tech, true);
$CanBeDone = IsElementBuyable($CurrentUser, $CurrentPlanet, $Tech);
// Arbre de decision de ce que l'on met dans la derniere case de la ligne
if (!$InResearch) {
$LevelToDo = 1 + $CurrentUser[$resource[$Tech]];
if ($CanBeDone) {
if (!CheckLabSettingsInQueue ( $CurrentPlanet )) {
// Le laboratoire est cours de construction ou d'evolution
// Et dans la config du systeme, on ne permet pas la recherche pendant
// que le labo est en construction ou evolution !
if ($LevelToDo == 1) {
$TechnoLink = "<button disabled>". $lang['Rechercher'] ."</button>";
} else {
$TechnoLink = "<button disabled>". $lang['Rechercher'] ."<br>".$lang['level']." ".$LevelToDo."</button>";
}
} else {//鍙
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -