Esempio n. 1
0
/**
 * BuildingPage.php
 *
 * @version 1.0
 * @copyright 2009 by MadnessRed for XNova Redesigned
 */
function BuildingPage($a = 0, $b = 0)
{
    global $lang, $resource, $reslist, $pricelist, $dpath, $game_config, $_GET, $user, $planetrow;
    CheckPlanetUsedFields($planetrow);
    if (!$_GET['page']) {
        return false;
        die;
    }
    // Tables des batiments possibles par type de planete
    if ($_GET['page'] == 'station') {
        $Allowed[1] = array(14, 15, 21, 31, 33, 34, 44);
        $Allowed[3] = array(14, 21, 34, 41, 42, 43);
    } elseif ($_GET['page'] == 'resources') {
        $Allowed[1] = array(1, 2, 3, 4, 12, 212, 22, 23, 24);
        $Allowed[3] = array(212, 22, 23, 24);
    } else {
        die("Hacking attempt");
    }
    //Right, lets see what he has an generate him an image.
    $imgnum = '';
    if ($planetrow[$resource[1]] > 0) {
        $imgnum .= "_1";
    }
    if ($planetrow[$resource[2]] > 0) {
        $imgnum .= "_2";
    }
    if ($planetrow[$resource[3]] > 0) {
        $imgnum .= "_3";
    }
    if ($planetrow[$resource[4]] > 0) {
        $imgnum .= "_4";
    }
    // Boucle d'interpretation des eventuelles commandes
    if (isset($_GET['cmd'])) {
        // On passe une commande
        $bThisIsCheated = false;
        $bDoItNow = false;
        $TheCommand = $_GET['cmd'];
        $Element = $_GET['building'];
        $ListID = $_GET['listid'];
        if (isset($Element)) {
            if (!strchr($Element, " ")) {
                if (!strchr($Element, ",")) {
                    if (in_array(trim($Element), $Allowed[$planetrow['planet_type']])) {
                        $bDoItNow = true;
                    } else {
                        //$bThisIsCheated = true;
                        $bDoItNow = true;
                    }
                } else {
                    $bThisIsCheated = true;
                }
            } else {
                $bThisIsCheated = true;
            }
        } elseif (isset($ListID)) {
            $bDoItNow = true;
        }
        if ($bDoItNow == true) {
            switch ($TheCommand) {
                case 'cancel':
                    //Remove last queue item
                    RemoveFromQueue();
                    break;
                case 'remove':
                    //Remove a specific queue item
                    RemoveFromQueue($ListID);
                    break;
                case 'insert':
                    //Insert into the queue a build
                    $fields_rem = $planetrow['field_max'] - $planetrow['field_current'] + $planetrow[$resource[33]] * 5;
                    if ($fields_rem >= 0) {
                        AddToQueue($Element, 1);
                    } else {
                        echo $fields_rem . " < 0";
                        die("Hacking Attempt!");
                    }
                    break;
                case 'destroy':
                    //Add a deconstrction to the queue
                    AddToQueue($Element, -1);
                    break;
            }
            // switch
        } elseif ($bThisIsCheated == true) {
            //ResetThisFuckingCheater ( $user['id'] );
        }
        //If they want axah_section
        if ($_GET['axah_box']) {
            $q = ShowQueue(false);
            makeAXAH($q['buildlist']);
            die;
        }
    }
    $Queue = ShowQueue(true);
    // On enregistre ce que l'on a modifi� dans planet !
    BuildingSavePlanetRecord($planetrow);
    // On enregistre ce que l'on a eventuellement modifi� dans users
    BuildingSaveUserRecord($user);
    $max_qs = MAX_BUILDING_QUEUE_SIZE;
    if ($max_qs > 0) {
        //fine :)
    } else {
        $max_qs = 10;
    }
    if ($Queue['length'] < $max_qs) {
        $CanBuildElement = true;
    } else {
        $CanBuildElement = false;
    }
    if ($_GET['page'] == 'station') {
        if ($planetrow['planet_type'] == 3) {
            $SubTemplate = gettemplate('buildings/station-moon_buttonz');
        } else {
            $SubTemplate = gettemplate('buildings/station_buttonz');
        }
    } elseif ($_GET['page'] == 'resources') {
        $SubTemplate = gettemplate('buildings/resources_buttonz');
    } else {
        die("Hacking attempt");
    }
    $parse = array();
    $infopg = array();
    foreach ($lang['names'] as $Element => $ElementName) {
        if (!$planetrow['planet_type']) {
            die("no planet type");
        }
        if (in_array($Element, $Allowed[$planetrow['planet_type']]) || $_GET['page'] == 'station') {
            if (@in_array($Element, $Allowed[$planetrow['planet_type']])) {
                if (!IsTechnologieAccessible($user, $planetrow, $Element)) {
                    $parse['state_' . $Element] = "off";
                    $parse['mes_' . $Element] = "Requirements are not met";
                    $parse['canbuild_' . $Element] = "";
                } elseif (!IsElementBuyable($user, $planetrow, $Element, true, false) && $Queue['length'] == 0) {
                    $parse['state_' . $Element] = "disabled";
                    $parse['mes_' . $Element] = "Not enough resources!";
                    $parse['canbuild_' . $Element] = "";
                } elseif (!$CanBuildElement) {
                    $parse['state_' . $Element] = "disabled";
                    $parse['mes_' . $Element] = "Queue is full!";
                    $parse['canbuild_' . $Element] = "";
                } else {
                    $parse['state_' . $Element] = "on";
                    $parse['mes_' . $Element] = "";
                    $parse['canbuild_' . $Element] = "\n\t\t\t\t\t\t<a class=\"fastBuild tips\" href=\"#\" onclick=\"loadpage('./?page=" . $_GET['page'] . "&cmd=insert&building={$Element}&id={$Element}',document.title,document.body.id);\">\n\t\t\t\t\t\t\t<img src=\"" . GAME_SKIN . "/img/layout/sofort_bauen.gif\" height=\"14\" width=\"22\">\n\t\t\t\t\t\t</a>";
                }
            } else {
                $parse['state_' . $Element] = "off";
                $parse['mes_' . $Element] = "Not availble";
                $parse['canbuild_' . $Element] = "";
            }
            $parse['name_' . $Element] = $ElementName;
            $parse['count_' . $Element] = $planetrow[$resource[$Element]];
        }
    }
    //Countdowns
    if ($planetrow['b_building'] > 0) {
        $BuildQueue = explode(";", $planetrow['b_building_id']);
        $CurrBuild = explode(",", $BuildQueue[0]);
        $parse['countdown_' . $CurrBuild[0]] = "\n\t\t\t\t\t\t\t\t\t<div class=\"construction\">\n\n\t\t\t\t\t\t\t\t\t\t<div class=\"pusher\" style=\"height: 80px; margin-bottom: -80px;\">\n\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"time\" id=\"resource\">" . parsecountdown($planetrow['b_building']) . "</span>\n\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t</div>\n";
    }
    $BuildingPage = parsetemplate($SubTemplate, $parse);
    $parse = $lang;
    $Element = idstring($_GET['id']);
    $ElementName = $lang['names'][$Element];
    // Faut il afficher la liste de construction ??
    if ($Queue['length'] > 0) {
        $parse['BuildList'] = $Queue['buildlist'];
    } else {
        $parse['BuildList'] = "";
    }
    $de_planettype = PlanetType($planetrow['image']);
    $parse['type'] = $de_planettype['type'];
    if ($_GET['page'] == 'station') {
        $parse['bg'] = HEADER_CACHE . "station/" . $parse['type'] . ".png";
    } elseif ($_GET['page'] == 'resources') {
        if (url_exists(HEADER_CACHE . "resources/" . $parse['type'] . $imgnum . ".png")) {
            $parse['bg'] = HEADER_CACHE . "resources/" . $parse['type'] . $imgnum . ".png";
        } else {
            $parse['bg'] = HEADER_CACHE . "resources/default.png";
        }
    } else {
        die("Hacking attempt");
    }
    $parse['hideres'] = "display:none;";
    $parse['hidenorm'] = "";
    $parse['planetname'] = $planetrow['name'];
    if (!$Element) {
        if ($_GET['mode'] == "resources") {
            $parse['hideres'] = "";
            $parse['hidenorm'] = "display:none;";
        }
    } else {
        if (!is_array($Allowed[$planetrow['planet_type']])) {
            $message = $user['username'] . " (" . intval($user['id']) . ") does not have a propper planet_type, so \$Allowed[\$planetrow['planet_type']] was not an array, causing the error which is most likely directly below this.";
            trigger_error($message, E_USER_NOTICE);
        }
        if (in_array($Element, $Allowed[$planetrow['planet_type']])) {
            //Something else
            $HaveRessources = IsElementBuyable($user, $planetrow, $Element, true, false);
            $parse['i'] = $Element;
            $parse['dpath'] = $dpath;
            $BuildingLevel = $planetrow[$resource[$Element]];
            $parse['nivel'] = $BuildingLevel == 0 ? "" : " (" . $lang['level'] . " " . $BuildingLevel . ")";
            $parse['n'] = $ElementName;
            $parse['descriptions'] = $lang['res']['descriptions'][$Element];
            $ElementBuildTime = BuildingTime($Element, $BuildingLevel + 1, $planetrow);
            $parse['time'] = ShowBuildTime($ElementBuildTime);
            $parse['price'] = GetElementPrice($user, $planetrow, $Element);
            $parse['rest_price'] = GetRestPrice($user, $planetrow, $Element);
            $parse['click'] = '';
            $NextBuildLevel = $planetrow[$resource[$Element]] + 1;
            $CurrentMaxFields = CalculateMaxPlanetFields($planetrow);
            if ($planetrow["field_current"] < $CurrentMaxFields - $Queue['lenght']) {
                $RoomIsOk = true;
            } else {
                $RoomIsOk = false;
            }
            if ($Element == 31) {
                // Sp�cial Laboratoire
                if ($user["b_tech_planet"] != 0 && $game_config['BuildLabWhileRun'] != 1) {
                    // Variable qui contient le parametre
                    // On verifie si on a le droit d'evoluer pendant les recherches (Setting dans config)
                    $parse['click'] = "<font color=#FF0000>" . $lang['in_working'] . "</font>";
                }
            }
            if (IsTechnologieAccessible($user, $planetrow, $Element)) {
                if ($parse['click'] != '') {
                    // Bin on ne fait rien, vu que l'on l'a deja fait au dessus !!
                } elseif ($RoomIsOk && $CanBuildElement) {
                    if ($Queue['lenght'] == 0) {
                        if ($NextBuildLevel == 1) {
                            if ($HaveRessources == true) {
                                $parse['click'] = "<a href=\"./?page=" . $_GET['page'] . "&cmd=insert&building=" . $Element . "&id=" . $Element . "\"><font color=#00FF00>" . $lang['BuildFirstLevel'] . "</font></a>";
                                $infopg['build_link'] = "./?page=" . $_GET['page'] . "&cmd=insert&building=" . $Element . "&id=" . $Element;
                                $infopg['build_text'] = $lang['BuildFirstLevel'];
                            } else {
                                $parse['click'] = "<font color=#FF0000>4" . $lang['BuildFirstLevel'] . "</font>";
                                $infopg['build_text'] = $lang['BuildFirstLevel'];
                            }
                        } else {
                            if ($HaveRessources == true) {
                                $parse['click'] = "<a href=\"./?page=" . $_GET['page'] . "&cmd=insert&building=" . $Element . "&id=" . $Element . "\"><font color=#00FF00>" . $lang['BuildNextLevel'] . " " . $NextBuildLevel . "</font></a>";
                                $infopg['build_link'] = "./?page=" . $_GET['page'] . "&cmd=insert&building=" . $Element . "&id=" . $Element;
                                $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                            } else {
                                $parse['click'] = "<font color=#FF0000>" . $lang['BuildNextLevel'] . " " . $NextBuildLevel . "</font>";
                                $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                            }
                        }
                    } else {
                        $parse['click'] = "<a href=\"./?page=" . $_GET['page'] . "&cmd=insert&building=" . $Element . "&id=" . $Element . "\"><font color=#00FF00>" . $lang['InBuildQueue'] . "</font></a>";
                        $infopg['build_link'] = "./?page=" . $_GET['page'] . "&cmd=insert&building=" . $Element . "&id=" . $Element;
                        $infopg['build_text'] = $lang['InBuildQueue'];
                    }
                } elseif ($RoomIsOk && !$CanBuildElement) {
                    if ($NextBuildLevel == 1) {
                        $parse['click'] = "<font color=#FF0000>2" . $lang['BuildFirstLevel'] . "</font>";
                        $infopg['build_text'] = $lang['BuildFirstLevel'];
                    } else {
                        $parse['click'] = "<font color=#FF0000>1" . $lang['BuildNextLevel'] . " " . $NextBuildLevel . "</font>";
                        $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                    }
                } else {
                    $parse['click'] = "<font color=#FF0000>" . $lang['NoMoreSpace'] . "</font>";
                    $infopg['build_text'] = $lang['NoMoreSpace'];
                }
            } else {
                $parse['click'] = "<font color=#FF0000>" . $lang['NotAccessible'] . "</font>";
                $infopg['build_text'] = $lang['NotAccessible'];
            }
            //Building Info
            if ($infopg['build_link']) {
                $infopg['buildit_class'] = "build-it";
                $infopg['build_text'] = "Improve";
            } else {
                $infopg['buildit_class'] = "build-it_disabled";
                $infopg['build_text'] = "In queue";
            }
            $infopg['id'] = $Element;
            $infopg['name'] = $ElementName;
            $infopg['level'] = $planetrow[$resource[$Element]];
            if ($planetrow[$resource[$Element]] < 1) {
                $infopg['display_destroy'] = "style=\"display:none;\"";
            }
            $infopg['td_url'] = "./?page=" . $_GET['page'] . "&cmd=destroy&id=" . $Element . "&building=" . $Element;
            $infopg['title'] = "Tear down";
            $infopg['level1'] = $infopg['level'] + 1;
            $infopg['duration'] = pretty_time($ElementBuildTime);
            $infopg['shortdesc'] = $lang['sdesc'][$Element];
            $infopg['skin'] = $user['skin'];
            $infopg['cost_m'] = 1 * floor($pricelist[$Element]['metal'] * pow($pricelist[$Element]['factor'], $planetrow[$resource[$Element]]));
            $infopg['cost_c'] = 1 * floor($pricelist[$Element]['crystal'] * pow($pricelist[$Element]['factor'], $planetrow[$resource[$Element]]));
            $infopg['cost_d'] = 1 * floor($pricelist[$Element]['deuterium'] * pow($pricelist[$Element]['factor'], $planetrow[$resource[$Element]]));
            if ($infopg['cost_m'] > $planetrow['metal'] && $infopg['cost_m'] > 0) {
                $infopg['missing_resource_m'] = "missing_resource";
            }
            if ($infopg['cost_c'] > $planetrow['crystal'] && $infopg['cost_c'] > 0) {
                $infopg['missing_resource_c'] = "missing_resource";
            }
            if ($infopg['cost_d'] > $planetrow['deuterium'] && $infopg['cost_d'] > 0) {
                $infopg['missing_resource_d'] = "missing_resource";
            }
            $infopg['sh_cost_m'] = KMnumber($infopg['cost_m'], 0, 'up');
            $infopg['sh_cost_c'] = KMnumber($infopg['cost_c'], 0, 'up');
            $infopg['sh_cost_d'] = KMnumber($infopg['cost_d'], 0, 'up');
            $infopg['cost_m'] = pretty_number($infopg['cost_m']);
            $infopg['cost_c'] = pretty_number($infopg['cost_c']);
            $infopg['cost_d'] = pretty_number($infopg['cost_d']);
            $infopg['page'] = $_GET['page'];
            $parse['info'] = parsetemplate(gettemplate('buildings/info'), $infopg);
            $parse['extra'] = "style=\"display:none\"";
            if ($_GET['axah_section'] == '1') {
                makeAXAH($parse['info']);
                die;
            }
        }
    }
    $parse['planet_field_current'] = $planetrow["field_current"];
    $parse['planet_field_max'] = $planetrow['field_max'] + $planetrow[$resource[33]] * 5;
    $parse['field_libre'] = $parse['planet_field_max'] - $planetrow['field_current'];
    $parse['buttonz'] = $BuildingPage;
    $parse['BuildingsList'] = $BuildingPage;
    if ($_GET['page'] == 'station') {
        $page = parsetemplate(gettemplate('buildings/station'), $parse);
        $title = $lang['Facilities'];
    } elseif ($_GET['page'] == 'resources') {
        //Resources screen
        $parse['resources_section'] = BuildRessourcePage($user, $planetrow, $parse['hideres']);
        $page = parsetemplate(gettemplate('buildings/resources'), $parse);
        $title = $lang['Resources'];
    } else {
        die("Hacking attempt");
    }
    if ($_GET['axah']) {
        makeAXAH($page);
    } else {
        displaypage($page, $title);
    }
}
Esempio n. 2
0
/**
 * BatimentBuildingPage.php
 *
 * @version 1.1
 * @copyright 2008 by Chlorel for XNova
 */
function ProductionBuildingPage(&$CurrentPlanet, $CurrentUser)
{
    global $lang, $resource, $reslist, $pricelist, $phpEx, $dpath, $game_config, $_GET;
    CheckPlanetUsedFields($CurrentPlanet);
    // Tables des batiments possibles par type de planete
    $Allowed['1'] = array(1, 2, 3, 4, 12, 212, 22, 23, 24);
    $Allowed['3'] = array(212, 22, 23, 24);
    //Right, lets see what he has an generate him an image.
    $imgnum = '';
    if ($CurrentPlanet[$resource[1]] > 0) {
        $imgnum .= "_1";
    }
    if ($CurrentPlanet[$resource[2]] > 0) {
        $imgnum .= "_2";
    }
    if ($CurrentPlanet[$resource[3]] > 0) {
        $imgnum .= "_3";
    }
    if ($CurrentPlanet[$resource[4]] > 0) {
        $imgnum .= "_4";
    }
    // Boucle d'interpretation des eventuelles commandes
    if (isset($_GET['cmd'])) {
        // On passe une commande
        $bThisIsCheated = false;
        $bDoItNow = false;
        $TheCommand = $_GET['cmd'];
        $Element = $_GET['building'];
        $ListID = $_GET['listid'];
        if (isset($Element)) {
            if (!strchr($Element, " ")) {
                if (!strchr($Element, ",")) {
                    if (in_array(trim($Element), $Allowed[$CurrentPlanet['planet_type']])) {
                        $bDoItNow = true;
                    } else {
                        //$bThisIsCheated = true;
                        $bDoItNow = true;
                    }
                } else {
                    $bThisIsCheated = true;
                }
            } else {
                $bThisIsCheated = true;
            }
        } elseif (isset($ListID)) {
            $bDoItNow = true;
        }
        if ($bDoItNow == true) {
            switch ($TheCommand) {
                case 'cancel':
                    // Interrompre le premier batiment de la queue
                    CancelBuildingFromQueue($CurrentPlanet, $CurrentUser);
                    break;
                case 'remove':
                    // Supprimer un element de la queue (mais pas le premier)
                    // $RemID -> element de la liste a supprimer
                    RemoveBuildingFromQueue($CurrentPlanet, $CurrentUser, $ListID);
                    break;
                case 'insert':
                    // Insere un element dans la queue
                    $fields_rem = $CurrentPlanet['field_max'] - $CurrentPlanet['field_current'] + $CurrentPlanet[$resource[33]] * 5;
                    if ($fields_rem >= 0) {
                        AddBuildingToQueue($CurrentPlanet, $CurrentUser, $Element, true);
                    } else {
                        echo $fields_rem . " < 0";
                        die("Hacking Attempt!");
                    }
                    break;
                case 'destroy':
                    // Detruit un batiment deja construit sur la planete !
                    AddBuildingToQueue($CurrentPlanet, $CurrentUser, $Element, false);
                    break;
                default:
                    break;
            }
            // switch
        } elseif ($bThisIsCheated == true) {
            ResetThisFuckingCheater($CurrentUser['id']);
        }
    }
    SetNextQueueElementOnTop($CurrentPlanet, $CurrentUser);
    $Queue = ShowBuildingQueue($CurrentPlanet, $CurrentUser);
    // On enregistre ce que l'on a modifi� dans planet !
    BuildingSavePlanetRecord($CurrentPlanet);
    // On enregistre ce que l'on a eventuellement modifi� dans users
    BuildingSaveUserRecord($CurrentUser);
    $max_qs = MAX_BUILDING_QUEUE_SIZE;
    if ($max_qs > 0) {
        //fine :)
    } else {
        $max_qs = 10;
    }
    if ($Queue['lenght'] < $max_qs) {
        $CanBuildElement = true;
    } else {
        $CanBuildElement = false;
    }
    $SubTemplate = gettemplate('buildings_res_buttonz');
    $parse = array();
    $infopg = array();
    foreach ($lang['tech'] as $Element => $ElementName) {
        if (in_array($Element, $Allowed[1])) {
            if (in_array($Element, $Allowed[$CurrentPlanet['planet_type']])) {
                if (!IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                    $parse['state_' . $Element] = "off";
                    $parse['mes_' . $Element] = "Requirements are not met";
                } elseif (!IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
                    $parse['state_' . $Element] = "disabled";
                    $parse['mes_' . $Element] = "Not enough resources!";
                } else {
                    $parse['state_' . $Element] = "on";
                    $parse['mes_' . $Element] = "";
                }
            } else {
                $parse['state_' . $Element] = "off";
                $parse['mes_' . $Element] = "Not availble";
            }
            $parse['name_' . $Element] = $ElementName;
            $parse['count_' . $Element] = $CurrentPlanet[$resource[$Element]];
        }
    }
    $BuildingPage = parsetemplate($SubTemplate, $parse);
    $parse = $lang;
    $Element = idstring($_GET['id']);
    $ElementName = $lang['tech'][$Element];
    // Faut il afficher la liste de construction ??
    if ($Queue['lenght'] > 0) {
        $parse['BuildListScript'] = '';
        //$parse['BuildListScript']  = InsertBuildListScript ( "buildings" );
        $parse['BuildList'] = $Queue['buildlist'];
    } else {
        $parse['BuildListScript'] = "";
        $parse['BuildList'] = "";
    }
    $de_planettype = PlanetType($CurrentPlanet['image']);
    $parse['type'] = $de_planettype['type'];
    $parse['bg'] = GAME_SKIN . "/img/header/resources/" . $parse['type'] . $imgnum . ".png";
    $parse['hideres'] = "display:none;";
    $parse['hidenorm'] = "";
    if (!$Element) {
        $parse['bg'] = GAME_SKIN . "/img/header/resources/" . $parse['type'] . $imgnum . ".png";
        if ($_GET['mode'] == "resources") {
            $parse['hideres'] = "";
            $parse['hidenorm'] = "display:none;";
            $parse['resources_section'] = BuildRessourcePage($CurrentUser, $CurrentPlanet);
        }
    } else {
        if (in_array($Element, $Allowed[$CurrentPlanet['planet_type']])) {
            //Something else
            $HaveRessources = IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false);
            $parse['i'] = $Element;
            $parse['dpath'] = $dpath;
            $BuildingLevel = $CurrentPlanet[$resource[$Element]];
            $parse['nivel'] = $BuildingLevel == 0 ? "" : " (" . $lang['level'] . " " . $BuildingLevel . ")";
            $parse['n'] = $ElementName;
            $parse['descriptions'] = $lang['res']['descriptions'][$Element];
            $ElementBuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
            $parse['time'] = ShowBuildTime($ElementBuildTime);
            $parse['price'] = GetElementPrice($CurrentUser, $CurrentPlanet, $Element);
            $parse['rest_price'] = GetRestPrice($CurrentUser, $CurrentPlanet, $Element);
            $parse['click'] = '';
            $CurrentMaxFields = CalculateMaxPlanetFields($CurrentPlanet);
            if ($CurrentPlanet["field_current"] < $CurrentMaxFields - $Queue['lenght']) {
                $RoomIsOk = true;
            } else {
                $RoomIsOk = false;
            }
            if ($Element == 31) {
                // Sp�cial Laboratoire
                if ($CurrentUser["b_tech_planet"] != 0 && $game_config['BuildLabWhileRun'] != 1) {
                    // Variable qui contient le parametre
                    // On verifie si on a le droit d'evoluer pendant les recherches (Setting dans config)
                    $parse['click'] = "<font color=#FF0000>" . $lang['in_working'] . "</font>";
                }
            }
            if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                if ($parse['click'] != '') {
                    // Bin on ne fait rien, vu que l'on l'a deja fait au dessus !!
                } elseif ($RoomIsOk && $CanBuildElement) {
                    if ($Queue['lenght'] == 0) {
                        if ($NextBuildLevel == 1) {
                            if ($HaveRessources == true) {
                                $parse['click'] = "<a href=\"./?page=resources&cmd=insert&building=" . $Element . "&id=" . $Element . "\"><font color=#00FF00>" . $lang['BuildFirstLevel'] . "</font></a>";
                                $infopg['build_link'] = "./?page=resources&cmd=insert&building=" . $Element . "&id=" . $Element;
                                $infopg['build_text'] = $lang['BuildFirstLevel'];
                            } else {
                                $parse['click'] = "<font color=#FF0000>4" . $lang['BuildFirstLevel'] . "</font>";
                                $infopg['build_text'] = $lang['BuildFirstLevel'];
                            }
                        } else {
                            if ($HaveRessources == true) {
                                $parse['click'] = "<a href=\"./?page=resources&cmd=insert&building=" . $Element . "&id=" . $Element . "\"><font color=#00FF00>" . $lang['BuildNextLevel'] . " " . $NextBuildLevel . "</font></a>";
                                $infopg['build_link'] = "./?page=resources&cmd=insert&building=" . $Element . "&id=" . $Element;
                                $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                            } else {
                                $parse['click'] = "<font color=#FF0000>" . $lang['BuildNextLevel'] . " " . $NextBuildLevel . "</font>";
                                $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                            }
                        }
                    } else {
                        $parse['click'] = "<a href=\"./?page=resources&cmd=insert&building=" . $Element . "&id=" . $Element . "\"><font color=#00FF00>" . $lang['InBuildQueue'] . "</font></a>";
                        $infopg['build_link'] = "./?page=resources&cmd=insert&building=" . $Element . "&id=" . $Element;
                        $infopg['build_text'] = $lang['InBuildQueue'];
                    }
                } elseif ($RoomIsOk && !$CanBuildElement) {
                    if ($NextBuildLevel == 1) {
                        $parse['click'] = "<font color=#FF0000>2" . $lang['BuildFirstLevel'] . "</font>";
                        $infopg['build_text'] = $lang['BuildFirstLevel'];
                    } else {
                        $parse['click'] = "<font color=#FF0000>1" . $lang['BuildNextLevel'] . " " . $NextBuildLevel . "</font>";
                        $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                    }
                } else {
                    $parse['click'] = "<font color=#FF0000>" . $lang['NoMoreSpace'] . "</font>";
                    $infopg['build_text'] = $lang['NoMoreSpace'];
                }
            } else {
                $parse['click'] = "<font color=#FF0000>" . $lang['NotAccessible'] . "</font>";
                $infopg['build_text'] = $lang['NotAccessible'];
            }
            //$parse['bg'] = GAME_SKIN."/img/header/resources/ice.png";
            $parse['gebaeude_inf'] = "<br /><blockquote style=\"margin-left: 15px; margin-right: 15px; filter:alpha(opacity=75); -moz-opacity:.75; opacity:.75; background-color: #000000;\">\r\n\t\t\t<div style=\"margin-left: 10px; margin-right: 10px;\">\r\n\t\t\t<table width=\"100%\"><tr>\r\n\t\t\t\t<td width=\"130\"><img src=\"" . $dpath . "/gebaeude/" . $parse['i'] . ".gif\" width=\"120\" border=\"0\" alt=\"" . $parse['n'] . "\" /></td>\r\n\t\t\t\t<td style=\"margin-left: 10px;\">\r\n\t\t\t\t<div style=\"text-align: center;\"><!--<a href=\"infos.php?gid=" . $parse['i'] . "\">-->" . $parse['n'] . "<!--</a>--></div>" . "<div style=\"text-align: left;\">" . $parse['nivel'] . "<br />" . $parse['descriptions'] . "<br /><br />" . $parse['price'] . $parse['time'] . $parse['rest_price'] . "<br /></div>" . "<div style=\"text-align: right;\">" . $parse['click'] . "</div>\r\n\t\t\t\t</td>\r\n\t\t\t</tr></table>\r\n\t\t\t</div>\r\n\t\t\t</blockquote>";
            //Building Info
            if ($infopg['build_link']) {
                $infopg['buildit_class'] = "build-it";
                $infopg['build_text'] = "Improve";
            } else {
                $infopg['buildit_class'] = "build-it_disabled";
                $infopg['build_text'] = "In queue";
            }
            $infopg['id'] = $Element;
            $infopg['name'] = $ElementName;
            $infopg['level'] = $CurrentPlanet[$resource[$Element]];
            if ($CurrentPlanet[$resource[$Element]] < 1) {
                $infopg['display_destroy'] = "style=\"display:none;\"";
            }
            $infopg['td_url'] = "./?page=" . $_GET['page'] . "&cmd=destroy&building=" . $Element;
            $infopg['title'] = "Tear down";
            $infopg['level1'] = $infopg['level'] + 1;
            $infopg['duration'] = pretty_time($ElementBuildTime);
            $infopg['shortdesc'] = $lang['res']['descriptions'][$Element];
            $infopg['skin'] = $CurrentUser['skin'];
            $infopg['cost_m'] = 1 * floor($pricelist[$Element]['metal'] * pow($pricelist[$Element]['factor'], $CurrentPlanet[$resource[$Element]]));
            $infopg['cost_c'] = 1 * floor($pricelist[$Element]['crystal'] * pow($pricelist[$Element]['factor'], $CurrentPlanet[$resource[$Element]]));
            $infopg['cost_d'] = 1 * floor($pricelist[$Element]['deuterium'] * pow($pricelist[$Element]['factor'], $CurrentPlanet[$resource[$Element]]));
            if ($infopg['cost_m'] > $CurrentPlanet['metal'] && $infopg['cost_m'] > 0) {
                $infopg['missing_resource_m'] = "missing_resource";
            }
            if ($infopg['cost_c'] > $CurrentPlanet['crystal'] && $infopg['cost_c'] > 0) {
                $infopg['missing_resource_c'] = "missing_resource";
            }
            if ($infopg['cost_d'] > $CurrentPlanet['deuterium'] && $infopg['cost_d'] > 0) {
                $infopg['missing_resource_d'] = "missing_resource";
            }
            $infopg['sh_cost_m'] = KMnumber($infopg['cost_m'], 0, 'up');
            $infopg['sh_cost_c'] = KMnumber($infopg['cost_c'], 0, 'up');
            $infopg['sh_cost_d'] = KMnumber($infopg['cost_d'], 0, 'up');
            $infopg['cost_m'] = pretty_number($infopg['cost_m']);
            $infopg['cost_c'] = pretty_number($infopg['cost_c']);
            $infopg['cost_d'] = pretty_number($infopg['cost_d']);
            $infopg['page'] = $_GET['page'];
            $parse['info'] = parsetemplate(gettemplate('buildings/info'), $infopg);
            $parse['extra'] = "style=\"display:none\"";
        }
    }
    $parse['planet_field_current'] = $CurrentPlanet["field_current"];
    $parse['planet_field_max'] = $CurrentPlanet['field_max'] + $CurrentPlanet[$resource[33]] * 5;
    $parse['field_libre'] = $parse['planet_field_max'] - $CurrentPlanet['field_current'];
    $parse['buttonz'] = $BuildingPage;
    $page .= parsetemplate(gettemplate('buildings/resources'), $parse);
    displaypage($page, $lang['Builds']);
}
Esempio n. 3
0
    $cost = $darkmattercosts[250];
} else {
    $amount = 100000;
    $cost = $darkmattercosts[100];
}
switch ($_GET['action']) {
    case 'success':
        // Order was successful...
        if (intval($_GET['id']) == $user['id']) {
            $username = $user['username'];
        } else {
            $username = '******' . intval($_GET['id']);
        }
        echo "<html><head><title>Success</title></head><body><h3>Thank you for your order.</h3>";
        //foreach ($_POST as $key => $value) { echo "$key: $value<br>"; }
        echo KMnumber($_GET['amount']) . " will be added to the account " . $username . " in universe " . UNIVERSE . ". If this is wrong contact a GO immediently.<br />";
        echo "<a href=\"./?s=" . UNIVERSE . "\">Continue</a>";
        echo "</body></html>";
        break;
    case 'cancel':
        // Order was canceled...
        echo "<html><head><title>Canceled</title></head><body><h3>The order was canceled.</h3><br />";
        echo "<a href=\"./?s=" . UNIVERSE . "\">Continue</a>";
        echo "</body></html>";
        break;
    case 'ipn':
        // Paypal is calling page for IPN validation...
        /*
        	It's important to remember that paypal calling this script.  There
        	is no output here.  This is where you validate the IPN data and if it's
        	valid, update your database to signify that the user has payed.  If
Esempio n. 4
0
function NewHeader($bodyid)
{
    global $planetrow, $user, $onload, $dpath, $game_config, $resource, $_GET, $lang, $cid;
    getLang('menu');
    $parse = $lang;
    $parse['bodyid'] = $bodyid;
    //Top Menu
    $parse['forum_url'] = $game_config['forum_url'];
    $parse['game_name'] = $game_config['game_name'];
    //Basics
    $de_planettype = PlanetType($planetrow['image']);
    $parse['type'] = $de_planettype['type'];
    $parse['de_type'] = $de_planettype;
    $parse['de_string'] = $planetrow['image'];
    $parse['user_name'] = $user['username'];
    $parse['skin'] = $user['skin'];
    $parse['dpath'] = $user['dpath'];
    $parse['dpath'] = $dpath;
    //Moon extention
    if ($planetrow['planet_type'] == 3) {
        $parse['planet_ext'] = '-moon';
    } else {
        $parse['planet_ext'] = '';
    }
    if ($user['authlevel'] > 1) {
        $parse['adminlink'] = '<li><a href="./?page=admin">' . $lang['Amdin'] . '</a></li>';
    }
    //To get planet sub type (01 to 10) well will remove all except numbers. To remove the leading zeros, times by 1.
    $parse['subtype'] = $de_planettype['subtype'];
    //Messages
    if (strlen($user['messages']) > 0) {
        $messages = explode(",", $user['messages']);
        $mess = 0;
        foreach ($messages as $c) {
            $mess += $c;
        }
        if ($mess > 0) {
            $parse['showmail'] = 'visible';
            $parse['messages_count'] = pretty_number($mess);
        } else {
            $parse['showmail'] = 'hidden';
        }
    } else {
        $parse['showmail'] = 'hidden';
    }
    //Officers
    for ($offi = 601; $offi <= 605; $offi++) {
        //echo $user[$resource[$offi]]."-";
        if ($user[$resource[$offi] . "_exp"] < time()) {
            $parse["un" . $offi] = "_un";
            $parse["hire" . $offi] = "Hire " . $lang['names'][$offi];
        } else {
            $parse["un" . $offi] = "";
            //$parse["hire".$offi] = "Expires: ".date($lang['daymonth']."/y H:i",$user[$resource[$offi]."_exp"]);
            $remain = $user[$resource[$offi] . "_exp"] - time();
            if ($remain >= 86400) {
                $parse["hire" . $offi] = $lang['expiresin'] . " " . floor($remain / 86400) . " " . $lang['days'];
            } elseif ($remain >= 3600) {
                $parse["hire" . $offi] = $lang['expiresin'] . " " . floor($remain / 3600) . " " . $lang['hours'];
            }
        }
    }
    //M/C/D/DM
    $parse['metal'] = pretty_number($planetrow['metal'] * 1);
    $parse['crystal'] = pretty_number($planetrow['crystal'] * 1);
    $parse['deut'] = pretty_number($planetrow['deuterium'] * 1);
    $parse['kmetal'] = KMnumber($planetrow['metal'] * 1);
    $parse['kcrystal'] = KMnumber($planetrow['crystal'] * 1);
    $parse['kdeut'] = KMnumber($planetrow['deuterium'] * 1);
    $parse['energy'] = KMnumber($planetrow['energy_used'] + $planetrow['energy_max']);
    $parse['energy_green'] = " color=\"green\"";
    if ($parse['energy'] <= 0) {
        $parse['energy_red'] = " color=\"red\"";
        $parse['energy_green'] = " color=\"red\"";
    }
    $parse['energy_used'] = pretty_number(floor($planetrow['energy_used'] * -1));
    $parse['energy_max'] = pretty_number(floor($planetrow['energy_max'] * 1));
    $parse['matter'] = KMnumber(floor($user['matter']) * DARK_MATTER_FACTOR * 1);
    $parse['players'] = USER_RANK;
    $fl_tbl = GetFleetInfo($user, $planet);
    if ($fl_tbl) {
        $parse['fleet_table'] = $fl_tbl[0];
        $parse['eventboxdisplay'] = 'block';
    } else {
        $parse['eventboxdisplay'] = 'none';
    }
    if ($fl_tbl[1] > 0) {
        $parse['attack_alert'] = 'visible';
    } else {
        $parse['attack_alert'] = 'hidden';
    }
    $parse['onload'] = $onload;
    $parse['note_show'] = "none";
    $parse['desc_show'] = "none";
    if ($_GET['message'] && $_GET['etype']) {
        $parse['ncont'] = $_GET['message'];
        $parse['nhead'] = $_GET['title'];
        $parse[$_GET['etype'] . '_show'] = "float";
        $parse['go_ok'] = $_GET['to'];
        $parse['go_yes'] = $_GET['ifyes'];
        $parse['go_no'] = $_GET['ifno'];
        //$parse['errorbox'] = parsetemplate(gettemplate('redesigned/errorbox'),$parse);
    }
    $part = parsetemplate(gettemplate('redesigned/header'), $parse);
    //echo $part;
    return $part;
}
Esempio n. 5
0
function DefensesBuildingPage(&$CurrentPlanet, $CurrentUser)
{
    global $lang, $resource, $phpEx, $dpath, $_POST, $reslist, $pricelist;
    if (isset($_POST['fmenge'])) {
        // On vient de Cliquer ' Construire '
        // Et y a une liste de doléances
        // Ici, on sait precisement ce qu'on aimerait bien construire ...
        // Gestion de la place disponible dans les silos !
        $Missiles[502] = $CurrentPlanet[$resource[502]];
        $Missiles[503] = $CurrentPlanet[$resource[503]];
        $SiloSize = $CurrentPlanet[$resource[44]];
        $MaxMissiles = $SiloSize * 10;
        // On prend les missiles deja dans la queue de fabrication aussi (ca aide)
        $BuildQueue = $CurrentPlanet['b_hangar_id'];
        $BuildArray = explode(";", $BuildQueue);
        for ($QElement = 0; $QElement < count($BuildArray); $QElement++) {
            $ElmentArray = explode(",", $BuildArray[$QElement]);
            if ($ElmentArray[502] != 0) {
                $Missiles[502] += $ElmentArray[502];
            } elseif ($ElmentArray[503] != 0) {
                $Missiles[503] += $ElmentArray[503];
            }
        }
        foreach ($_POST as $Element => $Count) {
            $Element = idstring($Element);
            if (in_array($Element, $reslist['fleet'])) {
                $Element = intval($Element);
                $Count = intval($Count);
                if ($Count > MAX_FLEET_OR_DEFS_PER_ROW) {
                    $Count = MAX_FLEET_OR_DEFS_PER_ROW;
                }
                if ($Count != 0) {
                    // Cas particulier (Petit Bouclier et Grand Bouclier
                    // ne peuvent exister qu'une seule et unique fois
                    $InQueue = strpos($CurrentPlanet['b_hangar_id'], $Element . ",");
                    $IsBuild = $CurrentPlanet[$resource[407]] >= 1 ? true : false;
                    if ($Element == 407 || $Element == 408) {
                        if ($InQueue === false && !$IsBuild) {
                            $Count = 1;
                        }
                    }
                    // On verifie si on a les technologies necessaires a la construction de l'element
                    if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                        // On verifie combien on sait faire de cet element au max
                        $MaxElements = GetMaxConstructibleElements($Element, $CurrentPlanet);
                        // Testons si on a de la place pour ces nouveaux missiles !
                        if ($Element == 502 || $Element == 503) {
                            // Cas particulier des missiles
                            $ActuMissiles = $Missiles[502] + 2 * $Missiles[503];
                            $MissilesSpace = $MaxMissiles - $ActuMissiles;
                            if ($Element == 502) {
                                if ($Count > $MissilesSpace) {
                                    $Count = $MissilesSpace;
                                }
                            } else {
                                if ($Count > floor($MissilesSpace / 2)) {
                                    $Count = floor($MissilesSpace / 2);
                                }
                            }
                            if ($Count > $MaxElements) {
                                $Count = $MaxElements;
                            }
                            $Missiles[$Element] += $Count;
                        } else {
                            // Si pas assez de ressources, on ajuste le nombre d'elements
                            if ($Count > $MaxElements) {
                                $Count = $MaxElements;
                            }
                        }
                        $Ressource = GetElementRessources($Element, $Count);
                        $BuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
                        if ($Count >= 1) {
                            $CurrentPlanet['metal'] -= $Ressource['metal'];
                            $CurrentPlanet['crystal'] -= $Ressource['crystal'];
                            $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
                            $CurrentPlanet['b_hangar_id'] .= "" . $Element . "," . $Count . ";";
                        }
                    }
                }
            }
        }
    }
    // -------------------------------------------------------------------------------------------------------
    // S'il n'y a pas de Chantier ...
    if ($CurrentPlanet[$resource[21]] == 0) {
        $shipyard = false;
    } else {
        $shipyard = true;
    }
    // -------------------------------------------------------------------------------------------------------
    // Construction de la page du Chantier (car si j'arrive ici ... c'est que j'ai tout ce qu'il faut pour ...
    $TabIndex = 0;
    $PageTable = "";
    $SubTemplate = gettemplate('buildings/defense_buttonz');
    $parse = array();
    $infopg = array();
    foreach ($lang['tech'] as $Element => $ElementName) {
        if (in_array($Element, $reslist['defense'])) {
            if (!IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                $parse['state_' . $Element] = "off";
                $parse['mes_' . $Element] = "Requirements are not met";
            } elseif (!IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
                $parse['state_' . $Element] = "disabled";
                $parse['mes_' . $Element] = "Not enough resources!";
            } else {
                $parse['state_' . $Element] = "on";
                $parse['mes_' . $Element] = "";
            }
            $parse['name_' . $Element] = $ElementName;
            $parse['count_' . $Element] = $CurrentPlanet[$resource[$Element]];
        } else {
            $parse['state_' . $Element] = "off";
            $parse['mes_' . $Element] = "Not availble";
        }
    }
    $Buttonz = parsetemplate($SubTemplate, $parse);
    $parse = $lang;
    $Element = idstring($_GET['id']);
    $ElementName = $lang['tech'][$Element];
    if (!$Element) {
        $parse['bg'] = "../img/headerCache/station/" . $parse['type'] . ".png";
    } else {
        if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element) && IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
            $infopg['build_link'] = '#" onclick="document.forms.shipyard.submit()';
        }
        //Building Info
        if ($infopg['build_link']) {
            $infopg['buildit_class'] = "build-it";
            $infopg['build_text'] = "Build";
        } else {
            $infopg['buildit_class'] = "build-it_disabled";
            $infopg['build_text'] = "Build";
        }
        $infopg['id'] = $Element;
        $infopg['name'] = $ElementName;
        $infopg['level'] = $CurrentPlanet[$resource[$Element]];
        if ($CurrentPlanet[$resource[$Element]] < 1) {
            $infopg['display_destroy'] = "style=\"display:none;\"";
        }
        $infopg['td_url'] = "./?page=" . $_GET['page'] . "&cmd=destroy&id=" . $Element . "&building=" . $Element;
        $infopg['title'] = "Tear down";
        $infopg['level1'] = $infopg['level'] + 1;
        $infopg['duration'] = pretty_time(GetBuildingTime($CurrentUser, $CurrentPlanet, $Element));
        $infopg['shortdesc'] = $lang['res']['descriptions'][$Element];
        $infopg['skin'] = $CurrentUser['skin'];
        $infopg['cost_m'] = $pricelist[$Element]['metal'];
        $infopg['cost_c'] = $pricelist[$Element]['crystal'];
        $infopg['cost_d'] = $pricelist[$Element]['deuterium'];
        if ($infopg['cost_m'] > $CurrentPlanet['metal'] && $infopg['cost_m'] > 0) {
            $infopg['missing_resource_m'] = "missing_resource";
        }
        if ($infopg['cost_c'] > $CurrentPlanet['crystal'] && $infopg['cost_c'] > 0) {
            $infopg['missing_resource_c'] = "missing_resource";
        }
        if ($infopg['cost_d'] > $CurrentPlanet['deuterium'] && $infopg['cost_d'] > 0) {
            $infopg['missing_resource_d'] = "missing_resource";
        }
        $infopg['sh_cost_m'] = KMnumber($infopg['cost_m'], 0, 'up');
        $infopg['sh_cost_c'] = KMnumber($infopg['cost_c'], 0, 'up');
        $infopg['sh_cost_d'] = KMnumber($infopg['cost_d'], 0, 'up');
        $infopg['cost_m'] = pretty_number($infopg['cost_m']);
        $infopg['cost_c'] = pretty_number($infopg['cost_c']);
        $infopg['cost_d'] = pretty_number($infopg['cost_d']);
        $infopg['page'] = $_GET['page'];
        $parse['info'] = parsetemplate(gettemplate('buildings/sy_info'), $infopg);
        $parse['extra'] = "style=\"display:none\"";
    }
    $parse['buttonz'] = $Buttonz;
    $page = parsetemplate(gettemplate('buildings/shipyard'), $parse);
    displaypage($page, $lang['Defense']);
}
Esempio n. 6
0
/**
 * officers.php
 *
 * @version 1.2
 * @copyright 2009 By MadnessRed for XNova Redesigned
 */
function ShowOfficierPage(&$CurrentUser)
{
    global $lang, $resource, $reslist, $_GET;
    includeLang('officier');
    includeLang('infos');
    getLang('premium');
    //Officer costs.
    $week_cost = 10000;
    //Cost for one week
    $three_month_cost = 100000;
    //Cost for 3 months
    $factor = DARK_MATTER_FACTOR;
    //Old system, you can un-comment and use if you want
    /*
    //refers,lvl_minier,lvl_raid,off_spent
    $CurrentUser['rpg_points']  = (($CurrentUser['refers'] + $CurrentUser['lvl_minier'] + $CurrentUser['lvl_raid']) / $factor);
    doquery("UPDATE {{table}} SET `rpg_points` = '".$CurrentUser['rpg_points']."' WHERE `id` = '". $CurrentUser['id'] ."';", 'users');
    $offipts = ($CurrentUser['rpg_points'] - $CurrentUser['off_spent']) * $factor;
    $av2buy = floor($CurrentUser['rpg_points'] - $CurrentUser['off_spent']);
    */
    $av2buy = $CurrentUser['matter'];
    // Si recrutement d'un officier
    if ($_GET['mode'] == 2) {
        if ($av2buy >= $week_cost) {
            $Selected = idstring($_GET['offi']);
            if (in_array($Selected, $reslist['officier'])) {
                $Result = IsOfficierAccessible($CurrentUser, $Selected);
                if ($Result == 1) {
                    if ($_GET['time'] == "1") {
                        $CurrentUser[$resource[$Selected] . "_exp"] = time() + 60 * 60 * 24 * 7;
                        //$CurrentUser['off_spent'] += 1;
                        $CurrentUser['matter'] -= $week_cost;
                    } elseif ($_GET['time'] == "2" && $av2buy >= $three_month_cost) {
                        $CurrentUser[$resource[$Selected] . "_exp"] = time() + 60 * 60 * 24 * 30 * 3;
                        //$CurrentUser['off_spent'] += 10;
                        $CurrentUser['matter'] -= $three_month_cost;
                    } elseif ($_GET['time'] == "2") {
                        $stop = true;
                    }
                    if (!$stop) {
                        $QryUpdateUser = "******" . $CurrentUser['matter'] . "', ";
                        //$QryUpdateUser .= "`".$resource[$Selected]."` = '". $CurrentUser[$resource[$Selected]] ."', ";
                        $QryUpdateUser .= "`" . $resource[$Selected] . "_exp` = '" . $CurrentUser[$resource[$Selected] . "_exp"] . "' ";
                        $QryUpdateUser .= "WHERE `id` = '" . $CurrentUser['id'] . "';";
                        doquery($QryUpdateUser, 'users') or die(mysql_error());
                        $Message = $lang['success'];
                    } else {
                        $Message = $lang['NoPoints'];
                    }
                } elseif ($Result == -1) {
                    if ($_GET['time'] == "1") {
                        $CurrentUser[$resource[$Selected] . "_exp"] += 60 * 60 * 24 * 7;
                        //$CurrentUser['off_spent'] += 1;
                        $CurrentUser['matter'] -= $week_cost;
                    } elseif ($_GET['time'] == "2" && $av2buy >= $three_month_cost) {
                        $CurrentUser[$resource[$Selected] . "_exp"] += 60 * 60 * 24 * 30 * 3;
                        //$CurrentUser['off_spent'] += 10;
                        $CurrentUser['matter'] -= $three_month_cost;
                    } elseif ($_GET['time'] == "2") {
                        $stop = true;
                    }
                    if (!$stop) {
                        $QryUpdateUser = "******" . $CurrentUser['matter'] . "', ";
                        //$QryUpdateUser .= "`".$resource[$Selected]."` = '". $CurrentUser[$resource[$Selected]] ."', ";
                        $QryUpdateUser .= "`" . $resource[$Selected] . "_exp` = '" . $CurrentUser[$resource[$Selected] . "_exp"] . "' ";
                        $QryUpdateUser .= "WHERE `id` = '" . $CurrentUser['id'] . "';";
                        doquery($QryUpdateUser, 'users') or die(mysql_error());
                        $Message = $lang['success'];
                    } else {
                        $Message = $lang['NoPoints'];
                    }
                } elseif ($Result == 0) {
                    $Message = $lang['Noob'];
                }
            } else {
                $Message = $lang['NonExist'] . " (" . $Selected . ")";
            }
        } else {
            $Message = $lang['NoPoints'];
        }
        info($Message, $lang['Officier'], "./?page=premium&offi=" . $Selected);
        die;
    } else {
        // Pas de recrutement d'officier
        $TPL = gettemplate('buildings/officers');
        $MatterTPL = gettemplate('buildings/off_matter');
        $InfoTPL = gettemplate('buildings/off_info');
        $IconTPL = gettemplate('buildings/off_icon');
        $parse = $lang;
        $parse['avl2buy'] = KMnumber($av2buy);
        $parse['offis'] = '';
        foreach ($reslist['officier'] as $n => $off) {
            $row = $lang;
            //The item
            $row['n'] = $n + 2;
            $row['id'] = $off;
            $row['name'] = $lang['names'][$off];
            //Availble?
            $Result = IsOfficierAccessible($CurrentUser, $off);
            if ($Result == 0) {
                $row['class'] = 'off';
            } else {
                $row['class'] = 'on';
            }
            //How long have we got left?
            $expires = $CurrentUser[$resource[$off] . "_exp"];
            $oneday = 60 * 60 * 24;
            $onehour = 60 * 60;
            $timeleft = $expires - time();
            if ($timeleft > $oneday) {
                $hiredfor = floor($timeleft / $oneday) . " " . $lang['days'] . ".";
            } elseif ($timeleft > $onehour) {
                $hiredfor = floor($timeleft / $onehour) . " " . $lang['hours'] . ".";
            } elseif ($timeleft > 0) {
                $hiredfor = floor($timeleft / 60) . " " . $lang['mins'] . ".";
            } else {
                $hiredfor = 'X';
            }
            $row['remaining'] = $lang['activefor'] . " " . $hiredfor;
            //$row['name'] = $
            //Icons
            if ($timeleft > 0) {
                $row['gotgfx'] = 'check';
            } else {
                $row['gotgfx'] = 'none';
            }
            $parse['offis'] .= parsetemplate($IconTPL, $row);
            /*
            	$bloc['off_id']       = $Officier;
            	$bloc['off_tx_lvl']   = $lang['ttle'][$Officier];
            	if($CurrentUser[$resource[$Officier]] > 0){
            		$bloc['off_lvl']      = " : ".$lang['hireduntil']." ".$hiredfor;
            	}else{
            		$bloc['off_lvl']      = "";
            	}
            	$bloc['off_desc']     = $lang['Desc'][$Officier];
            	if ($Result == 1) {
            		$bloc['off_link']  = "<a href=\"officier.php?mode=2&time=1&offi=".$Officier."\"><font color=\"#00ff00\">". $lang['link'][1]."</font><br /><br />";
            		$bloc['off_link'] .= "<a href=\"officier.php?mode=2&time=2&offi=".$Officier."\"><font color=\"#00ff00\">". $lang['link'][2]."</font>";
            	} else {
            		$bloc['off_link'] = $lang['Maxlvl'];
            	}
            	$parse['disp_off_tbl'] .= parsetemplate( $RowTPL, $bloc );
            */
        }
        if (idstring($_GET['offi']) == '600') {
            $parse['remove'] = 'style="display:none;"';
            $parse['info'] = parsetemplate($MatterTPL, $parse);
        } elseif (in_array(idstring($_GET['offi']), $reslist['officier'])) {
            $info = $lang;
            $info['offi'] = $_GET['offi'];
            $info['id'] = 0;
            foreach ($reslist['officier'] as $n => $off) {
                if ($off == $_GET['offi']) {
                    $info['id'] = $n + 2;
                }
            }
            $info['oneweekcost'] = pretty_number($week_cost);
            $info['threemonthcost'] = pretty_number($three_month_cost);
            $info['name'] = $lang['info'][$_GET['offi']]['name'];
            $info['long_desc'] = $lang['info'][$_GET['offi']]['description'];
            $info['sdesc'] = $lang['res']['descriptions'][$_GET['offi']];
            $parse['remove'] = 'style="display:none;"';
            $parse['info'] = parsetemplate($InfoTPL, $info);
        } else {
            $parse['info'] = '';
        }
        $page = parsetemplate($TPL, $parse);
    }
    return $page;
}
Esempio n. 7
0
        }
    }
    foreach ($reslist['tech'] as $id) {
        //Research
        $array['research'][$id]['n'] = $lang['names'][$id];
        $array['research'][$id][$n] = KMnumber($user[$resource[$id]]);
    }
    foreach ($reslist['fleet'] as $id) {
        //Shipyard
        $array['shipyard'][$id]['n'] = $lang['names'][$id];
        $array['shipyard'][$id][$n] = KMnumber($p[$resource[$id]]);
    }
    foreach ($reslist['defense'] as $id) {
        //Defense
        $array['defense'][$id]['n'] = $lang['names'][$id];
        $array['defense'][$id][$n] = KMnumber($p[$resource[$id]]);
    }
}
for ($no = $n; $no < 3; $no++) {
    $parse['planets'] .= '
							<td class="planetbg">
								<div id="planetname[' . $no . ']" class="planetname"></div>
								<div id="planet[' . $no . ']" class="planet"></div>
								<div id="coords[' . $no . ']" class="coords"></div>
								<div id="" class="fields tips"><span id="space[' . $no . ']"></span></div>
								<div class="clearfloat"></div>
							</td>';
}
$rowsTPL = '

					<tr class="resource">
Esempio n. 8
0
function FleetBuildingPage(&$CurrentPlanet, $CurrentUser)
{
    global $lang, $resource, $phpEx, $dpath, $_POST, $reslist, $pricelist;
    echo "[";
    print_r($_POST);
    echo "]";
    if (isset($_POST['fmenge'])) {
        // On vient de Cliquer ' Construire '
        // Et y a une liste de dol�ances
        $AddedInQueue = false;
        // Ici, on sait precisement ce qu'on aimerait bien construire ...
        foreach ($_POST as $Element => $Count) {
            $Element = idstring($Element);
            if (in_array($Element, $reslist['fleet'])) {
                $Element = intval($Element);
                $Count = intval($Count);
                if ($Count > MAX_FLEET_OR_DEFS_PER_ROW) {
                    $Count = MAX_FLEET_OR_DEFS_PER_ROW;
                }
                if ($Count > 0) {
                    // On verifie si on a les technologies necessaires a la construction de l'element
                    if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                        // On verifie combien on sait faire de cet element au max
                        $MaxElements = GetMaxConstructibleElements($Element, $CurrentPlanet);
                        // Si pas assez de ressources, on ajuste le nombre d'elements
                        if ($Count > $MaxElements) {
                            $Count = $MaxElements;
                        }
                        $Ressource = GetElementRessources($Element, $Count);
                        $BuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
                        if ($Count >= 1) {
                            $CurrentPlanet['metal'] -= $Ressource['metal'];
                            $CurrentPlanet['crystal'] -= $Ressource['crystal'];
                            $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
                            $CurrentPlanet['b_hangar_id'] .= "" . $Element . "," . $Count . ";";
                        }
                    }
                }
            }
        }
    }
    // -------------------------------------------------------------------------------------------------------
    // S'il n'y a pas de Chantier ...
    if ($CurrentPlanet[$resource[21]] == 0) {
        $shipyard = false;
    } else {
        $shipyard = true;
    }
    // -------------------------------------------------------------------------------------------------------
    // Now for the building part.
    $TabIndex = 0;
    $SubTemplate = gettemplate('buildings/shipyard_buttonz');
    $parse = array();
    $infopg = array();
    foreach ($lang['tech'] as $Element => $ElementName) {
        if (in_array($Element, $reslist['fleet'])) {
            if (!IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                $parse['state_' . $Element] = "off";
                $parse['mes_' . $Element] = "Requirements are not met";
            } elseif (!IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
                $parse['state_' . $Element] = "disabled";
                $parse['mes_' . $Element] = "Not enough resources!";
            } else {
                $parse['state_' . $Element] = "on";
                $parse['mes_' . $Element] = "";
            }
            $parse['name_' . $Element] = $ElementName;
            $parse['count_' . $Element] = KMnumber($CurrentPlanet[$resource[$Element]]);
        } else {
            $parse['state_' . $Element] = "off";
            $parse['mes_' . $Element] = "Not availble";
        }
    }
    $Buttonz = parsetemplate($SubTemplate, $parse);
    $parse = $lang;
    $Element = idstring($_GET['id']);
    $ElementName = $lang['tech'][$Element];
    if (!$Element) {
        $parse['bg'] = "../img/headerCache/station/" . $parse['type'] . ".png";
    } else {
        if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element) && IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
            $infopg['build_link'] = '#" onclick="Javascript: document.getElementById(\'shipyard\').submit()';
        }
        die("!!!!!!!!!!!!!");
        //Building Info
        if ($infopg['build_link']) {
            $infopg['buildit_class'] = "build-it";
            $infopg['build_text'] = "Build";
        } else {
            $infopg['buildit_class'] = "build-it_disabled";
            $infopg['build_text'] = "Build";
        }
        $infopg['id'] = $Element;
        $infopg['name'] = $ElementName;
        $infopg['level'] = $CurrentPlanet[$resource[$Element]];
        if ($CurrentPlanet[$resource[$Element]] < 1) {
            $infopg['display_destroy'] = "style=\"display:none;\"";
        }
        $infopg['td_url'] = "./?page=" . $_GET['page'] . "&cmd=destroy&id=" . $Element . "&building=" . $Element;
        $infopg['title'] = "Tear down";
        $infopg['level1'] = $infopg['level'] + 1;
        $infopg['duration'] = pretty_time(GetBuildingTime($CurrentUser, $CurrentPlanet, $Element));
        $infopg['shortdesc'] = $lang['res']['descriptions'][$Element];
        $infopg['skin'] = $CurrentUser['skin'];
        $infopg['cost_m'] = $pricelist[$Element]['metal'];
        $infopg['cost_c'] = $pricelist[$Element]['crystal'];
        $infopg['cost_d'] = $pricelist[$Element]['deuterium'];
        if ($infopg['cost_m'] > $CurrentPlanet['metal'] && $infopg['cost_m'] > 0) {
            $infopg['missing_resource_m'] = "missing_resource";
        }
        if ($infopg['cost_c'] > $CurrentPlanet['crystal'] && $infopg['cost_c'] > 0) {
            $infopg['missing_resource_c'] = "missing_resource";
        }
        if ($infopg['cost_d'] > $CurrentPlanet['deuterium'] && $infopg['cost_d'] > 0) {
            $infopg['missing_resource_d'] = "missing_resource";
        }
        $infopg['sh_cost_m'] = KMnumber($infopg['cost_m'], 0, 'up');
        $infopg['sh_cost_c'] = KMnumber($infopg['cost_c'], 0, 'up');
        $infopg['sh_cost_d'] = KMnumber($infopg['cost_d'], 0, 'up');
        $infopg['cost_m'] = pretty_number($infopg['cost_m']);
        $infopg['cost_c'] = pretty_number($infopg['cost_c']);
        $infopg['cost_d'] = pretty_number($infopg['cost_d']);
        $infopg['page'] = $_GET['page'];
        $parse['info'] = parsetemplate(gettemplate('buildings/sy_info'), $infopg);
        $parse['extra'] = "style=\"display:none\"";
    }
    $parse['buttonz'] = $Buttonz;
    $page = parsetemplate(gettemplate('buildings/shipyard'), $parse);
    displaypage($page, $lang['Fleet']);
}
Esempio n. 9
0
function ResearchPage(&$CurrentPlanet, $CurrentUser, $InResearch, $ThePlanet)
{
    global $lang, $resource, $reslist, $pricelist, $phpEx, $dpath, $game_config, $_GET;
    CheckPlanetUsedFields($CurrentPlanet);
    // Boucle d'interpretation des eventuelles commandes
    if (isset($_GET['cmd'])) {
        $TheCommand = $_GET['cmd'];
        $Techno = idstring($_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) && !$InResearch) {
                            $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 = "******";
                    $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;
        }
    }
    $TechScrTPL = gettemplate('buildings_research_script');
    $SubTemplate = gettemplate('buildings/research_buttonz');
    $parse = array();
    $infopg = array();
    foreach ($lang['names'] as $Tech => $TechName) {
        if ($Tech > 105 && $Tech <= 199) {
            if (!IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Tech)) {
                $parse['state_' . $Tech] = "off";
                $parse['mes_' . $Tech] = "Requirements are not met";
            } elseif (!IsElementBuyable($CurrentUser, $CurrentPlanet, $Tech)) {
                $parse['state_' . $Tech] = "disabled";
                $parse['mes_' . $Tech] = "Not enough resources!";
            } else {
                $parse['state_' . $Tech] = "on";
                $parse['mes_' . $Tech] = "";
            }
        } else {
            $parse['state_' . $Tech] = "off";
            $parse['mes_' . $Tech] = "Not availble";
        }
        $parse['name_' . $Tech] = $TechName;
        $parse['count_' . $Tech] = $CurrentUser[$resource[$Tech]];
    }
    //Anything currently building?
    if ($CurrentUser['b_tech_planet']) {
        $WorkingPlanet = doquery("SELECT `id`,`name`,`b_tech_id`,`b_tech` FROM {{table}} WHERE `id` = '" . $CurrentUser['b_tech_planet'] . "';", 'planets', true);
        //Whats currently building
        $curbuild = $WorkingPlanet['b_tech_id'];
        $parse['countdown_' . $curbuild] = "\r\n\t\t\t\t\t\t\t\t\t\t<div class=\"pusher\" id=\"b_research" . $curbuild . "\" style=\"height:80px;margin-bottom:-80px;\">\n\r\n\t\t\t\t\t\t\t\t\t\t\t<a><span class=\"time\" id=\"test\" name=\"zeit\">" . parsecountdown($WorkingPlanet['b_tech']) . "</span></a>\n\r\n\t\t\t\t\t\t\t\t\t\t</div>\n";
    } else {
        $curbuild = 0;
    }
    $Buttonz = parsetemplate($SubTemplate, $parse);
    $parse = $lang;
    $Element = idstring($_GET['id']);
    $ElementName = $lang['names'][$Element];
    $de_planettype = PlanetType($CurrentPlanet['image']);
    $parse['type'] = $de_planettype['type'];
    if ($Element) {
        if (in_array($Element, $reslist['tech'])) {
            /*
            $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);
            */
            $HaveRessources = IsElementBuyable($CurrentUser, $CurrentPlanet, $Element);
            $parse['i'] = $Element;
            $BuildingLevel = $CurrentPlanet[$resource[$Element]];
            $parse['nivel'] = $BuildingLevel == 0 ? "" : " (" . $lang['level'] . " " . $BuildingLevel . ")";
            $parse['n'] = $ElementName;
            $parse['descriptions'] = $lang['res']['descriptions'][$Element];
            $ElementBuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
            $parse['time'] = ShowBuildTime($ElementBuildTime);
            $parse['price'] = GetElementPrice($CurrentUser, $CurrentPlanet, $Element);
            $parse['rest_price'] = GetRestPrice($CurrentUser, $CurrentPlanet, $Element);
            $parse['click'] = '';
            $buildlink = "./?page=research&cmd=search&id=" . $Element . "&tech=" . $Element;
            if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                if ($NextBuildLevel == 1) {
                    if ($HaveRessources == true) {
                        $infopg['build_link'] = $buildlink;
                        $infopg['build_text'] = $lang['BuildFirstLevel'];
                    } else {
                        $infopg['build_text'] = $lang['BuildFirstLevel'];
                    }
                } else {
                    if ($HaveRessources == true) {
                        $infopg['build_link'] = $buildlink;
                        $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                    } else {
                        $infopg['build_text'] = $lang['BuildNextLevel'] . " " . $NextBuildLevel;
                    }
                }
            } elseif ($InResearch) {
                $parse['click'] = "<font color=#FF0000>" . $lang['InResearch'] . "</font>";
                $infopg['build_text'] = $lang['InResearch'];
            } else {
                $parse['click'] = "<font color=#FF0000>" . $lang['NotAccessible'] . "</font>";
                $infopg['build_text'] = $lang['NotAccessible'];
            }
            //Building Info
            if ($infopg['build_link']) {
                $infopg['buildit_class'] = "build-it";
                $infopg['build_text'] = $lang['Improve'];
            } elseif ($InResearch) {
                $infopg['buildit_class'] = "build-it_disabled";
                $infopg['build_text'] = $lang['InResearch'];
            } else {
                $infopg['buildit_class'] = "build-it_disabled";
                $infopg['build_text'] = $lang['NotAccessible'];
            }
            $infopg['id'] = $Element;
            $infopg['name'] = $ElementName;
            $infopg['level'] = $CurrentUser[$resource[$Element]];
            //Current research
            if ($curbuild == $Element) {
                $infopg['td_url'] = "./?page=" . $_GET['page'] . "&cmd=cancel&id=" . $Element . "&tech=" . $Element;
                if ($WorkingPlanet['id'] == $CurrentPlanet['id']) {
                    $infopg['title'] = "Cancel";
                } else {
                    //$infopg['title'] = "Cancel on ".$WorkingPlanet['name'];
                    $infopg['title'] = "Cancel";
                }
            } else {
                $infopg['display_destroy'] = "style=\"display:none;\"";
            }
            $infopg['level1'] = $infopg['level'] + 1;
            $infopg['duration'] = pretty_time($ElementBuildTime);
            $infopg['shortdesc'] = $lang['sdesc'][$Element];
            $infopg['skin'] = $CurrentUser['skin'];
            $infopg['cost_m'] = 1 * floor($pricelist[$Element]['metal'] * pow($pricelist[$Element]['factor'], $CurrentUser[$resource[$Element]]));
            $infopg['cost_c'] = 1 * floor($pricelist[$Element]['crystal'] * pow($pricelist[$Element]['factor'], $CurrentUser[$resource[$Element]]));
            $infopg['cost_d'] = 1 * floor($pricelist[$Element]['deuterium'] * pow($pricelist[$Element]['factor'], $CurrentUser[$resource[$Element]]));
            if ($infopg['cost_m'] > $CurrentPlanet['metal'] && $infopg['cost_m'] > 0) {
                $infopg['missing_resource_m'] = "missing_resource";
            }
            if ($infopg['cost_c'] > $CurrentPlanet['crystal'] && $infopg['cost_c'] > 0) {
                $infopg['missing_resource_c'] = "missing_resource";
            }
            if ($infopg['cost_d'] > $CurrentPlanet['deuterium'] && $infopg['cost_d'] > 0) {
                $infopg['missing_resource_d'] = "missing_resource";
            }
            $infopg['sh_cost_m'] = KMnumber($infopg['cost_m'], 0, 'up');
            $infopg['sh_cost_c'] = KMnumber($infopg['cost_c'], 0, 'up');
            $infopg['sh_cost_d'] = KMnumber($infopg['cost_d'], 0, 'up');
            $infopg['cost_m'] = pretty_number($infopg['cost_m']);
            $infopg['cost_c'] = pretty_number($infopg['cost_c']);
            $infopg['cost_d'] = pretty_number($infopg['cost_d']);
            $infopg['page'] = $_GET['page'];
            $parse['info'] = parsetemplate(gettemplate('buildings/info'), $infopg);
            $parse['extra'] = "style=\"display:none\"";
            if ($_GET['axah_section'] == '1') {
                makeAXAH($parse['info']);
                die;
            }
        }
    }
    $parse['buttonz'] = $Buttonz;
    $parse['planetname'] = $CurrentPlanet['name'];
    $page .= parsetemplate(gettemplate('buildings/research'), $parse);
    if ($_GET['axah']) {
        makeAXAH($page);
    } else {
        displaypage($page, $lang['Research']);
    }
}
Esempio n. 10
0
/**
 * ShipyardBuildingPage.php
 *
 * @version 1.0
 * @copyright 2009 By MadnessRed for XNova Redesigned
 */
function ShipyardPage(&$CurrentPlanet, $CurrentUser, $area)
{
    global $lang, $resource, $phpEx, $dpath, $_GET, $reslist, $pricelist;
    if ($_GET['fmenge'] > 0) {
        // On vient de Cliquer ' Construire '
        // Et y a une liste de dol�ances
        $AddedInQueue = false;
        // What an how much are they making?
        $Element = intval(idstring($_GET['fmenge']));
        $Count = intval(idstring($_GET[$Element]));
        if (in_array($Element, $reslist[$area])) {
            //Check if it exaceeds the max amount we allow them to build in one go (XNova code)
            if ($Count > MAX_FLEET_OR_DEFS_PER_ROW) {
                $Count = MAX_FLEET_OR_DEFS_PER_ROW;
            }
            $InQueue = 0;
            $QueueSize = 0;
            foreach (explode(";", $CurrentPlanet['b_hangar_id']) as $temp) {
                if (strlen($temp) > 0) {
                    $q = explode(",", $temp);
                    $QueueSize += $q[1];
                    if ($q[0] = $Element) {
                        $InQueue += $q[1];
                    }
                }
            }
            //If there is a maximum allowed
            if ($pricelist[$Element]['max'] > 0) {
                if ($Count + $InQueue + $CurrentPlanet[$resource[$Element]] > $pricelist[$Element]['max']) {
                    $Count = $pricelist[$Element]['max'] - $CurrentPlanet[$resource[$Element]] - $InQueue;
                }
            }
            //And missiles...
            if ($Element == 502 || $Element == 503) {
            }
            if ($Count > 0) {
                // On verifie si on a les technologies necessaires a la construction de l'element
                if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                    // On verifie combien on sait faire de cet element au max
                    $MaxElements = GetMaxConstructibleElements($Element, $CurrentPlanet);
                    // Si pas assez de ressources, on ajuste le nombre d'elements
                    if ($Count > $MaxElements) {
                        $Count = $MaxElements;
                    }
                    $Ressource = GetElementRessources($Element, $Count);
                    $BuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
                    if ($Count >= 1) {
                        //echo "". $Element .",". $Count .";";
                        $CurrentPlanet['metal'] -= $Ressource['metal'];
                        $CurrentPlanet['crystal'] -= $Ressource['crystal'];
                        $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
                        $CurrentPlanet['b_hangar_id'] .= "" . $Element . "," . $Count . ";";
                    }
                }
            }
        }
        if ($QueueSize == 0) {
            $CurrentPlanet['b_hangar_lastupdate'] = time();
            $CurrentPlanet['b_hangar'] = 0;
        }
        //now do those changes...
        doquery("UPDATE {{table}} SET `metal` = '" . $CurrentPlanet['metal'] . "', `crystal` = '" . $CurrentPlanet['crystal'] . "', `deuterium` = '" . $CurrentPlanet['deuterium'] . "', `b_hangar_id` = '" . $CurrentPlanet['b_hangar_id'] . "', `b_hangar` = '" . $CurrentPlanet['b_hangar'] . "', `b_hangar_lastupdate` = '" . $CurrentPlanet['b_hangar_lastupdate'] . "' WHERE `id` = '" . $CurrentPlanet['id'] . "' ;", 'planets');
    }
    // -------------------------------------------------------------------------------------------------------
    // S'il n'y a pas de Chantier ...
    if ($CurrentPlanet[$resource[21]] == 0) {
        $shipyard = false;
    } else {
        $shipyard = true;
    }
    // -------------------------------------------------------------------------------------------------------
    // Now for the building part.
    $TabIndex = 0;
    if ($area == 'fleet') {
        $SubTemplate = gettemplate('buildings/shipyard_buttonz');
        $Template = gettemplate('buildings/shipyard');
        $Title = $lang['Shipyard'];
    } elseif ($area == 'defense') {
        $SubTemplate = gettemplate('buildings/defense_buttonz');
        $Template = gettemplate('buildings/defense');
        $Title = $lang['Defense'];
    }
    $parse = array();
    $infopg = array();
    if (!in_array($Element, $reslist[$area]) || $_GET['axah_section'] != '1') {
        foreach ($lang['tech'] as $Element => $ElementName) {
            if (in_array($Element, $reslist[$area])) {
                if (!IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
                    $parse['state_' . $Element] = "off";
                    $parse['mes_' . $Element] = "Requirements are not met";
                } elseif (!IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
                    $parse['state_' . $Element] = "disabled";
                    $parse['mes_' . $Element] = "Not enough resources!";
                } else {
                    $parse['state_' . $Element] = "on";
                    $parse['mes_' . $Element] = "";
                }
                $parse['name_' . $Element] = $ElementName;
                $parse['count_' . $Element] = $CurrentPlanet[$resource[$Element]];
            } else {
                $parse['state_' . $Element] = "off";
                $parse['mes_' . $Element] = "Not availble";
            }
        }
        $Buttonz = parsetemplate($SubTemplate, $parse);
    }
    $parse = $lang;
    $Element = idstring($_GET['id']);
    $ElementName = $lang['tech'][$Element];
    if (in_array($Element, $reslist[$area])) {
        if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element) && IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, true, false)) {
            $infopg['build_link'] = './?page=' . $_GET['page'] . '&id=' . $Element . '&fmenge=' . $Element . '&' . $Element . '=';
            //$infopg['build_link'] = '#" onclick="document.forms.shipyard.submit()';
        }
        //Building Info
        if ($infopg['build_link']) {
            $infopg['buildit_class'] = "build-it";
            $infopg['build_text'] = "Build";
        } else {
            $infopg['buildit_class'] = "build-it_disabled";
            $infopg['build_text'] = "Build";
        }
        $infopg['id'] = $Element;
        $infopg['name'] = $ElementName;
        $infopg['level'] = $CurrentPlanet[$resource[$Element]];
        $infopg['duration'] = pretty_time(GetBuildingTime($CurrentUser, $CurrentPlanet, $Element));
        $infopg['shortdesc'] = $lang['res']['descriptions'][$Element];
        $infopg['skin'] = $CurrentUser['skin'];
        $infopg['cost_m'] = $pricelist[$Element]['metal'];
        $infopg['cost_c'] = $pricelist[$Element]['crystal'];
        $infopg['cost_d'] = $pricelist[$Element]['deuterium'];
        if ($infopg['cost_m'] > $CurrentPlanet['metal'] && $infopg['cost_m'] > 0) {
            $infopg['missing_resource_m'] = "missing_resource";
        }
        if ($infopg['cost_c'] > $CurrentPlanet['crystal'] && $infopg['cost_c'] > 0) {
            $infopg['missing_resource_c'] = "missing_resource";
        }
        if ($infopg['cost_d'] > $CurrentPlanet['deuterium'] && $infopg['cost_d'] > 0) {
            $infopg['missing_resource_d'] = "missing_resource";
        }
        $infopg['sh_cost_m'] = KMnumber($infopg['cost_m'], 0, 'up');
        $infopg['sh_cost_c'] = KMnumber($infopg['cost_c'], 0, 'up');
        $infopg['sh_cost_d'] = KMnumber($infopg['cost_d'], 0, 'up');
        $infopg['cost_m'] = pretty_number($infopg['cost_m']);
        $infopg['cost_c'] = pretty_number($infopg['cost_c']);
        $infopg['cost_d'] = pretty_number($infopg['cost_d']);
        $infopg['page'] = $_GET['page'];
        $parse['info'] = parsetemplate(gettemplate('buildings/sy_info'), $infopg);
        $parse['extra'] = "style=\"display:none\"";
        if ($_GET['axah_section'] == '1') {
            makeAXAH($parse['info']);
            die;
        }
    }
    $parse['buttonz'] = $Buttonz;
    $parse['planetname'] = $CurrentPlanet['name'];
    $page = parsetemplate($Template, $parse);
    if ($_GET['axah']) {
        makeAXAH($page);
    } else {
        displaypage($page, $Title);
    }
}