Exemplo n.º 1
0
function DoRessBeam($CurrentUser, $CurrentPlanet)
{
    global $lang, $resource;
    includeLang('infos');
    if ($_POST) {
        $RestString = GetNextJumpWaitTimePlanet($CurrentPlanet);
        $NextJumpTime = $RestString['value'];
        $JumpTime = time();
        // Dit monsieur, j'ai le droit de sauter ???
        if ($NextJumpTime == 0) {
            // Dit monsieur, ou je veux aller ca existe ???
            $TargetPlanet = $_POST['jmpto'];
            $TargetGate = doquery("SELECT `id`, `ressgate`, `last_beam_time` FROM {{table}} WHERE `id` = '" . $TargetPlanet . "';", 'planets', true);
            // Dit monsieur, ou je veux aller y a une porte de saut ???
            if ($TargetGate['ressgate'] > 0) {
                $RestString = GetNextJumpWaitTimePlanet($TargetGate);
                $NextDestTime = $RestString['value'];
                // Dit monsieur, chez toi aussi peut y avoir un saut ???
                if ($NextDestTime == 0) {
                    //Recourcenüberprüfung ob nur ganze Zahl
                    $metal = 0;
                    $crystal = 0;
                    $deut = 0;
                    $appol = 0;
                    $metal = $_POST['res1'];
                    $crystal = $_POST['res2'];
                    $deut = $_POST['res3'];
                    $appol = $_POST['res4'];
                    if (!ctype_digit($metal)) {
                        message($lang['no_er_ress']);
                    } else {
                        round($_POST['res1']);
                    }
                    if (!ctype_digit($crystal)) {
                        message($lang['no_er_ress']);
                    } else {
                        round($_POST['res2']);
                    }
                    if (!ctype_digit($deut)) {
                        message($lang['no_er_ress']);
                    } else {
                        round($_POST['res3']);
                    }
                    if (!ctype_digit($appol)) {
                        message($lang['no_er_ress']);
                    } else {
                        round($_POST['res4']);
                    }
                    //Überprüfung Ende
                    // Planeten aktualisieren und erneut auslesen
                    if ($_POST['res1'] > $CurrentPlanet['metal']) {
                        message($lang['nfo_ress_emty_m']);
                    }
                    if ($_POST['res2'] > $CurrentPlanet['crystal']) {
                        message($lang['nfo_ress_emty_c']);
                    }
                    if ($_POST['res3'] > $CurrentPlanet['deuterium']) {
                        message($lang['nfo_ress_emty_d']);
                    }
                    if ($_POST['res4'] > $CurrentPlanet['appolonium']) {
                        message($lang['nfo_ress_emty_a']);
                    }
                    // Dit monsieur, y avait quelque chose a envoyer ???
                    if ($_POST['res1'] != 0 or $_POST['res2'] != 0 or $_POST['res3'] != 0 or $_POST['res4'] != 0) {
                        // Abziehen vom Ausgangsplaneten !
                        $QryUpdateOri = "UPDATE {{table}} SET ";
                        $QryUpdateOri .= "`metal` = `metal` - '" . $metal . "', ";
                        $QryUpdateOri .= "`crystal` = `crystal` - '" . $crystal . "', ";
                        $QryUpdateOri .= "`deuterium` = `deuterium` - '" . $deut . "', ";
                        $QryUpdateOri .= "`appolonium` = `appolonium` - '" . $appol . "', ";
                        $QryUpdateOri .= "`last_beam_time` = '" . $JumpTime . "' ";
                        $QryUpdateOri .= "WHERE ";
                        $QryUpdateOri .= "`id` = '" . $CurrentPlanet['id'] . "';";
                        doquery($QryUpdateOri, 'planets');
                        // Hinzurechnen zum anderen Planeten !
                        $QryUpdateDes = "UPDATE {{table}} SET ";
                        $QryUpdateDes .= "`metal` = `metal` + '" . $metal . "', ";
                        $QryUpdateDes .= "`crystal` = `crystal` + '" . $crystal . "', ";
                        $QryUpdateDes .= "`deuterium` = `deuterium` + '" . $deut . "', ";
                        $QryUpdateDes .= "`appolonium` = `appolonium` + '" . $appol . "', ";
                        $QryUpdateDes .= "`last_beam_time` = '" . $JumpTime . "' ";
                        $QryUpdateDes .= "WHERE ";
                        $QryUpdateDes .= "`id` = '" . $TargetGate['id'] . "';";
                        doquery($QryUpdateDes, 'planets');
                        // Deplacement vers la lune d'arrivée
                        $QryUpdateUsr = "******";
                        $QryUpdateUsr .= "`current_planet` = '" . $TargetGate['id'] . "' ";
                        $QryUpdateUsr .= "WHERE ";
                        $QryUpdateUsr .= "`id` = '" . $CurrentUser['id'] . "';";
                        doquery($QryUpdateUsr, 'users');
                        $CurrentPlanet['last_beam_time'] = $JumpTime;
                        $RestString = GetNextJumpWaitTimePlanet($CurrentPlanet);
                        $RetMessage = $lang['gate_jump_done'] . " - " . $RestString['string'];
                    } else {
                        $RetMessage = $lang['gate_wait_data'];
                    }
                } else {
                    $RetMessage = $lang['gate_wait_dest'] . " - " . $RestString['string'];
                }
            } else {
                $RetMessage = $lang['gate_no_dest_g'];
            }
        } else {
            $RetMessage = $lang['gate_wait_star'] . " - " . $RestString['string'];
        }
    } else {
        $RetMessage = $lang['gate_wait_data'];
    }
    return $RetMessage;
}
Exemplo n.º 2
0
function ShowBuildingInfoPage($CurrentUser, $CurrentPlanet, $BuildID)
{
    global $dpath, $lang, $resource, $pricelist, $CombatCaps;
    includeLang('infos');
    $GateTPL = '';
    $DestroyTPL = '';
    $TableHeadTPL = '';
    $parse = $lang;
    // Données de base
    $parse['dpath'] = $dpath;
    $parse['name'] = $lang['info'][$BuildID]['name'];
    $parse['image'] = $BuildID;
    $parse['description'] = $lang['info'][$BuildID]['description'];
    if ($BuildID >= 1 && $BuildID <= 4) {
        // Cas des mines
        $PageTPL = gettemplate('info_buildings_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_prod_p_hour}</td><td class=\"c\">{nfo_difference}</td><td class=\"c\">{nfo_used_energy}</td><td class=\"c\">{nfo_difference}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_prod} {build_gain}</th><th>{build_prod_diff}</th><th>{build_need}</th><th>{build_need_diff}</th></tr>";
    } elseif ($BuildID == 11) {
        // Centrale Solaire
        $PageTPL = gettemplate('info_buildings_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_prod_energy}</td><td class=\"c\">{nfo_difference}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_prod} {build_gain}</th><th>{build_prod_diff}</th></tr>";
    } elseif ($BuildID == 12) {
        // Centrale Fusion
        $PageTPL = gettemplate('info_buildings_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_prod_energy}</td><td class=\"c\">{nfo_difference}</td><td class=\"c\">{nfo_used_deuter}</td><td class=\"c\">{nfo_difference}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_prod} {build_gain}</th><th>{build_prod_diff}</th><th>{build_need}</th><th>{build_need_diff}</th></tr>";
    } elseif ($BuildID >= 14 && $BuildID <= 32) {
        // Batiments Generaux
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 33) {
        // Batiments Terraformer
        $PageTPL = gettemplate('info_buildings_general');
    } elseif ($BuildID == 34) {
        // Dépot d'alliance
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 41) {
        // Batiments lunaires
        $PageTPL = gettemplate('info_buildings_general');
    } elseif ($BuildID == 42) {
        // Phalange
        $PageTPL = gettemplate('info_buildings_table');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_range}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_range}</th></tr>";
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 43) {
        // Sprungtor
        $PageTPL = gettemplate('info_buildings_general');
        $GateTPL = gettemplate('gate_fleet_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 44) {
        // Silo de missiles
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 45) {
        // Mondtransformer
        $PageTPL = gettemplate('info_buildings_general');
        $PageTPL .= gettemplate('mondtransformer');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 46) {
        // Resstransmiter
        $PageTPL = gettemplate('info_buildings_general');
        $GateTPL = gettemplate('gate_ress_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID >= 106 && $BuildID <= 199) {
        // Laboratoire
        $PageTPL = gettemplate('info_buildings_general');
    } elseif ($BuildID >= 202 && $BuildID <= 220) {
        // Flotte
        $PageTPL = gettemplate('info_buildings_fleet');
        $parse['element_typ'] = $lang['tech'][200];
        $parse['rf_info_to'] = ShowRapidFireTo($BuildID);
        // Rapid Fire vers
        $parse['rf_info_fr'] = ShowRapidFireFrom($BuildID);
        // Rapid Fire de
        $parse['hull_pt'] = pretty_number($pricelist[$BuildID]['metal'] + $pricelist[$BuildID]['crystal']);
        // Points de Structure
        $parse['shield_pt'] = pretty_number($CombatCaps[$BuildID]['shield']);
        // Points de Bouclier
        $parse['attack_pt'] = pretty_number($CombatCaps[$BuildID]['attack']);
        // Points d'Attaque
        $parse['capacity_pt'] = pretty_number($pricelist[$BuildID]['capacity']);
        // Capacitée de fret
        $parse['base_speed'] = pretty_number($pricelist[$BuildID]['speed']);
        // Vitesse de base
        $parse['base_conso'] = pretty_number($pricelist[$BuildID]['consumption']);
        // Consommation de base
        if ($BuildID == 202) {
            $parse['upd_speed'] = "<font color=\"yellow\">(" . pretty_number($pricelist[$BuildID]['speed2']) . ")</font>";
            // Vitesse rééquipée
            $parse['upd_conso'] = "<font color=\"yellow\">(" . pretty_number($pricelist[$BuildID]['consumption2']) . ")</font>";
            // Consommation apres rééquipement
        } elseif ($BuildID == 211) {
            $parse['upd_speed'] = "<font color=\"yellow\">(" . pretty_number($pricelist[$BuildID]['speed2']) . ")</font>";
            // Vitesse rééquipée
        }
    } elseif ($BuildID >= 401 && $BuildID <= 410) {
        // Defenses
        $PageTPL = gettemplate('info_buildings_defense');
        $parse['element_typ'] = $lang['tech'][400];
        $parse['rf_info_to'] = ShowRapidFireTo($BuildID);
        // Rapid Fire vers
        $parse['rf_info_fr'] = ShowRapidFireFrom($BuildID);
        // Rapid Fire de
        $parse['hull_pt'] = pretty_number($pricelist[$BuildID]['metal'] + $pricelist[$BuildID]['crystal']);
        // Points de Structure
        $parse['shield_pt'] = pretty_number($CombatCaps[$BuildID]['shield']);
        // Points de Bouclier
        $parse['attack_pt'] = pretty_number($CombatCaps[$BuildID]['attack']);
        // Points d'Attaque
    } elseif ($BuildID >= 502 && $BuildID <= 503) {
        // Misilles
        $PageTPL = gettemplate('info_buildings_defense');
        $parse['element_typ'] = $lang['tech'][400];
        $parse['hull_pt'] = pretty_number($pricelist[$BuildID]['metal'] + $pricelist[$BuildID]['crystal']);
        // Points de Structure
        $parse['shield_pt'] = pretty_number($CombatCaps[$BuildID]['shield']);
        // Points de Bouclier
        $parse['attack_pt'] = pretty_number($CombatCaps[$BuildID]['attack']);
        // Points d'Attaque
    } elseif ($BuildID >= 601 && $BuildID <= 615) {
        // Officiers
        $PageTPL = gettemplate('info_officiers_general');
    }
    // ---- Tableau d'evolution
    if ($TableHeadTPL != '') {
        $parse['table_head'] = parsetemplate($TableHeadTPL, $lang);
        $parse['table_data'] = ShowProductionTable($CurrentUser, $CurrentPlanet, $BuildID, $TableTPL);
    }
    // La page principale
    $page = parsetemplate($PageTPL, $parse);
    if ($BuildID == 43) {
        if ($GateTPL != '') {
            if ($CurrentPlanet[$resource[$BuildID]] > 0) {
                $RestString = GetNextJumpWaitTime($CurrentPlanet);
                $parse['gate_start_link'] = BuildPlanetAdressLink($CurrentPlanet);
                if ($RestString['value'] != 0) {
                    $parse['gate_time_script'] = InsertJavaScriptChronoApplet("Gate", "1", $RestString['value'], true);
                    $parse['gate_wait_time'] = "<div id=\"bxx" . "Gate" . "1" . "\"></div>";
                    $parse['gate_script_go'] = InsertJavaScriptChronoApplet("Gate", "1", $RestString['value'], false);
                } else {
                    $parse['gate_time_script'] = "";
                    $parse['gate_wait_time'] = "";
                    $parse['gate_script_go'] = "";
                }
                $parse['gate_dest_moons'] = BuildJumpableMoonCombo($CurrentUser, $CurrentPlanet);
                $parse['gate_fleet_rows'] = BuildFleetListRows($CurrentPlanet);
                $page .= parsetemplate($GateTPL, $parse);
            }
        }
    } elseif ($BuildID == 46) {
        if ($GateTPL != '') {
            $parse['gate_start_moon'] = $lang['gate_start2_moon'];
            $parse['gate_dest_moon'] = $lang['gate_dest2_moon'];
            $parse['gate_use_gate'] = $lang['gate_use2_gate'];
            $parse['gate_ship_sel'] = $lang['gate_ship2_sel'];
            $parse['gate_ship_dispo'] = $lang['gate_shipt2_dispo'];
            $parse['gate_jump_btn'] = $lang['gate_jump2_btn'];
            $parse['gate_jump_done'] = $lang['gate_jump2_done'];
            $parse['gate_wait_dest'] = $lang['gate_wait2_dest'];
            $parse['gate_no_dest_g'] = $lang['gate_no2_dest_g'];
            $parse['gate_wait_star'] = $lang['gate_wait2_star'];
            $parse['gate_wait_data'] = $lang['gate_wait2_data'];
            if ($CurrentPlanet[$resource[$BuildID]] > 0) {
                $RestString = GetNextJumpWaitTimePlanet($CurrentPlanet);
                $parse['gate_start_link'] = BuildPlanetAdressLink($CurrentPlanet);
                if ($RestString['value'] != 0) {
                    $parse['gate_time_script'] = InsertJavaScriptChronoApplet("Gate", "1", $RestString['value'], true);
                    $parse['gate_wait_time'] = "<div id=\"bxx" . "Gate" . "1" . "\"></div>";
                    $parse['gate_script_go'] = InsertJavaScriptChronoApplet("Gate", "1", $RestString['value'], false);
                } else {
                    $parse['gate_time_script'] = "";
                    $parse['gate_wait_time'] = "";
                    $parse['gate_script_go'] = "";
                }
                $parse['gate_dest_moons'] = BuildJumpablePlanetCombo($CurrentUser, $CurrentPlanet);
                //$parse['gate_units_rows'] = BuildUnitsListRows ( $CurrentPlanet );
                $page .= parsetemplate($GateTPL, $parse);
            }
        }
    }
    if ($DestroyTPL != '') {
        if ($CurrentPlanet[$resource[$BuildID]] > 0) {
            // ---- Destruction
            $NeededRessources = GetBuildingPrice($CurrentUser, $CurrentPlanet, $BuildID, true, true);
            $DestroyTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $BuildID) / 2;
            $parse['destroyurl'] = "buildings.php?cmd=destroy&building=" . $BuildID;
            // Non balisé les balises sont dans le tpl
            $parse['levelvalue'] = $CurrentPlanet[$resource[$BuildID]];
            // Niveau du batiment a detruire
            $parse['nfo_metal'] = $lang['Metal'];
            $parse['nfo_crysta'] = $lang['Crystal'];
            $parse['nfo_deuter'] = $lang['Deuterium'];
            $parse['nfo_appolonium'] = $lang['Appolonium'];
            $parse['metal'] = pretty_number($NeededRessources['metal']);
            // Cout en metal de la destruction
            $parse['crystal'] = pretty_number($NeededRessources['crystal']);
            // Cout en cristal de la destruction
            $parse['deuterium'] = pretty_number($NeededRessources['deuterium']);
            // Cout en deuterium de la destruction
            $parse['appolonium'] = pretty_number($NeededRessources['appolonium']);
            // Cout en deuterium de la destruction
            $parse['destroytime'] = pretty_time($DestroyTime);
            // Durée de la destruction
            // L'insert de destruction
            $page .= parsetemplate($DestroyTPL, $parse);
        }
    }
    return $page;
}