Вход Регистрация
Файл: includes/functions/PlanetResourceUpdate.php
Строк: 312
<?php

##############################################################################
# *                                                                             #
# * XG PROYECT                                                                 #
# *                                                                           #
# * @copyright Copyright (C) 2008 - 2009 By lucky from xgproyect.net           #
# *                                                                             #
# *                                                                             #
# *  This program is free software: you can redistribute it and/or modify    #
# *  it under the terms of the GNU General Public License as published by    #
# *  the Free Software Foundation, either version 3 of the License, or       #
# *  (at your option) any later version.                                     #
# *                                                                             #
# *  This program is distributed in the hope that it will be useful,         #
# *  but WITHOUT ANY WARRANTY; without even the implied warranty of             #
# *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
# *  GNU General Public License for more details.                             #
# *                                                                             #
##############################################################################

if(!defined('INSIDE')){ die(header("location:../../"));}

    function 
PlanetResourceUpdate $CurrentUser, &$CurrentPlanet$UpdateTime$Simul false )
    {
        global 
$ProdGrid$resource$reslist$game_config;

        
$CurrentPlanet['metal_max']        =    (BASE_STORAGE_SIZE 50000 * (roundUp(pow(1.6,$CurrentPlanet$resource[22] ])) -1)) * (+ ($CurrentUser['rpg_stockeur'] * STOCKEUR));
        
$CurrentPlanet['crystal_max']    =    (BASE_STORAGE_SIZE 50000 * (roundUp(pow(1.6,$CurrentPlanet$resource[23] ])) -1)) * (+ ($CurrentUser['rpg_stockeur'] * STOCKEUR));
        
$CurrentPlanet['deuterium_max']    =    (BASE_STORAGE_SIZE 50000 * (roundUp(pow(1.6,$CurrentPlanet$resource[24] ])) -1)) * (+ ($CurrentUser['rpg_stockeur'] * STOCKEUR));

        
$MaxMetalStorage                $CurrentPlanet['metal_max']     * MAX_OVERFLOW;
        
$MaxCristalStorage              $CurrentPlanet['crystal_max']   * MAX_OVERFLOW;
        
$MaxDeuteriumStorage            $CurrentPlanet['deuterium_max'] * MAX_OVERFLOW;

        
$Caps             = array();
        
$BuildTemp        $CurrentPlanet'temp_max' ];

        
$parse['production_level'] = 100;

        if (
$CurrentPlanet['energy_max'] == && $CurrentPlanet['energy_used'] > 0)
        {
            
$post_porcent 0;
        }
        elseif (
$CurrentPlanet['energy_max'] > && ($CurrentPlanet['energy_used'] + $CurrentPlanet['energy_max']) < )
        {
            
$post_porcent floor(($CurrentPlanet['energy_max']) / ($CurrentPlanet['energy_used']*-1) * 100);
        }
        else
        {
            
$post_porcent 100;
        }

        if (
$post_porcent 100)
        {
            
$post_porcent 100;
        }

        for ( 
$ProdID 0$ProdID 300$ProdID++ )
        {
            if ( 
in_array$ProdID$reslist['prod']) )
            {
                
$BuildLevelFactor $CurrentPlanet$resource[$ProdID]."_porcent" ];
                
$BuildLevel $CurrentPlanet$resource[$ProdID] ];
                
$Caps['metal_perhour']     += floor( eval ( $ProdGrid[$ProdID]['formule']['metal'] )     * (0.01 $post_porcent) * ( $game_config['resource_multiplier'] ) * ( + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );
                
$Caps['crystal_perhour']   += floor( eval ( $ProdGrid[$ProdID]['formule']['crystal'] )   * (0.01 $post_porcent) * ( $game_config['resource_multiplier'] ) * ( + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );

                if (
$ProdID 4)
                {
                    
$Caps['deuterium_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * (0.01 $post_porcent) * ( $game_config['resource_multiplier'] ) * ( + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );
                    
$Caps['energy_used']   +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['energy']    ) * ( $game_config['resource_multiplier'] ) );
                }
                elseif (
$ProdID >= )
                {
                    if(
$ProdID == 12 && $CurrentPlanet['deuterium'] == 0)
                        continue;

                    
$Caps['deuterium_perhour'] += floor( eval ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * (0.01 $post_porcent) * ( $game_config['resource_multiplier'] ) * ( + ( $CurrentUser['rpg_geologue'] * GEOLOGUE ) ) );
                    
$Caps['energy_max']    +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['energy']    ) * ( $game_config['resource_multiplier'] ) * ( + ( $CurrentUser['rpg_ingenieur'] * INGENIEUR ) ) );
                }
            }
        }

        if (
$CurrentPlanet['planet_type'] == 3)
        {
            
$game_config['metal_basic_income']     = 0;
            
$game_config['crystal_basic_income']   = 0;
            
$game_config['deuterium_basic_income'] = 0;
            
$CurrentPlanet['metal_perhour']        = 0;
            
$CurrentPlanet['crystal_perhour']      = 0;
            
$CurrentPlanet['deuterium_perhour']    = 0;
            
$CurrentPlanet['energy_used']          = 0;
            
$CurrentPlanet['energy_max']           = 0;
        }
        else
        {
            
$CurrentPlanet['metal_perhour']        = $Caps['metal_perhour'];
            
$CurrentPlanet['crystal_perhour']      = $Caps['crystal_perhour'];
            
$CurrentPlanet['deuterium_perhour']    = $Caps['deuterium_perhour'];
            
$CurrentPlanet['energy_used']          = $Caps['energy_used'];
            
$CurrentPlanet['energy_max']           = $Caps['energy_max'];
        }

        
$ProductionTime               = ($UpdateTime $CurrentPlanet['last_update']);
        
$CurrentPlanet['last_update'] = $UpdateTime;

        if (
$CurrentPlanet['energy_max'] == 0)
        {
            
$CurrentPlanet['metal_perhour']     = $game_config['metal_basic_income'];
            
$CurrentPlanet['crystal_perhour']   = $game_config['crystal_basic_income'];
            
$CurrentPlanet['deuterium_perhour'] = $game_config['deuterium_basic_income'];
            
$production_level            100;
        }
        elseif (
$CurrentPlanet["energy_max"] >= $CurrentPlanet["energy_used"])
        {
            
$production_level 100;
        }
        else
        {
            
$production_level floor(($CurrentPlanet['energy_max'] / $CurrentPlanet['energy_used']) * 100);
        }
        if(
$production_level 100)
        {
            
$production_level 100;
        }
        elseif (
$production_level 0)
        {
            
$production_level 0;
        }

        if ( 
$CurrentPlanet['metal'] <= $MaxMetalStorage )
        {
            
$MetalProduction = (($ProductionTime * ($CurrentPlanet['metal_perhour'] / 3600))) * (0.01 $production_level);
            
$MetalBaseProduc = (($ProductionTime * ($game_config['metal_basic_income'] / 3600 )));
            
$MetalTheorical  $CurrentPlanet['metal'] + $MetalProduction  +  $MetalBaseProduc;
            if ( 
$MetalTheorical <= $MaxMetalStorage )
            {
                
$CurrentPlanet['metal']  = $MetalTheorical;
            }
            else
            {
                
$CurrentPlanet['metal']  = $MaxMetalStorage;
            }
        }

        if ( 
$CurrentPlanet['crystal'] <= $MaxCristalStorage )
        {
            
$CristalProduction = (($ProductionTime * ($CurrentPlanet['crystal_perhour'] / 3600))) * (0.01 $production_level);
            
$CristalBaseProduc = (($ProductionTime * ($game_config['crystal_basic_income'] / 3600 )));
            
$CristalTheorical  $CurrentPlanet['crystal'] + $CristalProduction  +  $CristalBaseProduc;
            if ( 
$CristalTheorical <= $MaxCristalStorage )
            {
                
$CurrentPlanet['crystal']  = $CristalTheorical;
            }
            else
            {
                
$CurrentPlanet['crystal']  = $MaxCristalStorage;
            }
        }

        if ( 
$CurrentPlanet['deuterium'] <= $MaxDeuteriumStorage )
        {
            
$DeuteriumProduction = (($ProductionTime * ($CurrentPlanet['deuterium_perhour'] / 3600))) * (0.01 $production_level);
            
$DeuteriumBaseProduc = (($ProductionTime * ($game_config['deuterium_basic_income'] / 3600 )));
            
$DeuteriumTheorical  $CurrentPlanet['deuterium'] + $DeuteriumProduction  +  $DeuteriumBaseProduc;
            if ( 
$DeuteriumTheorical <= $MaxDeuteriumStorage )
            {
                
$CurrentPlanet['deuterium']  = $DeuteriumTheorical;
            }
            else
            {
                
$CurrentPlanet['deuterium']  = $MaxDeuteriumStorage;
            }
        }

        if( 
$CurrentPlanet['metal'] < )
        {
            
$CurrentPlanet['metal']  = 0;
        }

        if( 
$CurrentPlanet['crystal'] < )
        {
            
$CurrentPlanet['crystal']  = 0;
        }

        if( 
$CurrentPlanet['deuterium'] < )
        {
            
$CurrentPlanet['deuterium']  = 0;
        }

        if (
$Simul == false)
        {
            
$Builded          HandleElementBuildingQueue $CurrentUser$CurrentPlanet$ProductionTime );

            
$QryUpdatePlanet  "UPDATE {{table}} SET ";
            
$QryUpdatePlanet .= "`metal` = '"            $CurrentPlanet['metal']             ."', ";
            
$QryUpdatePlanet .= "`crystal` = '"          $CurrentPlanet['crystal']           ."', ";
            
$QryUpdatePlanet .= "`deuterium` = '"        $CurrentPlanet['deuterium']         ."', ";
            
$QryUpdatePlanet .= "`last_update` = '"      $CurrentPlanet['last_update']       ."', ";
            
$QryUpdatePlanet .= "`b_hangar_id` = '"      $CurrentPlanet['b_hangar_id']       ."', ";
            
$QryUpdatePlanet .= "`metal_perhour` = '"    $CurrentPlanet['metal_perhour']     ."', ";
            
$QryUpdatePlanet .= "`crystal_perhour` = '"  $CurrentPlanet['crystal_perhour']   ."', ";
            
$QryUpdatePlanet .= "`deuterium_perhour` = '"$CurrentPlanet['deuterium_perhour'] ."', ";
            
$QryUpdatePlanet .= "`energy_used` = '"      $CurrentPlanet['energy_used']       ."', ";
            
$QryUpdatePlanet .= "`energy_max` = '"       $CurrentPlanet['energy_max']        ."', ";
            if ( 
$Builded != '' )
            {
                foreach ( 
$Builded as $Element => $Count )
                {
                    if (
$Element <> '')
                        
$QryUpdatePlanet .= "`"$resource[$Element] ."` = '"$CurrentPlanet[$resource[$Element]] ."', ";
                }
            }
            
$QryUpdatePlanet .= "`b_hangar` = '"$CurrentPlanet['b_hangar'] ."' ";
            
$QryUpdatePlanet .= "WHERE ";
            
$QryUpdatePlanet .= "`id` = '"$CurrentPlanet['id'] ."';";
            
doquery($QryUpdatePlanet'planets');
        }
    }
?>
Онлайн: 1
Реклама