ВНИМАНИЕ! Это статья предназначен только для тех, кто хорошо знает движок, всем остальным не советую читать (Вам будет сложно это понять)
Вообщем, решил на днях посмотреть, что из себя представляет 1.8.git. Честно - это ужас! Поясню: до этого долгое время работал на 1.7.х, и добился довольно хороших результатов. Я очень надеялся, что в 1.8.git были исправлены недочеты, но к сожалению нет. (не говорю о V2.0 - там изменения в стилях)
По этой теме я разберу часть кода class.PlanetRessUpdate.
ПРИМЕР №1
ПРИМЕР №2
Display All
Display All
ПРИМЕР №3
Display All
Display All
ПРИМЕР №4
Display All
Display All
КОНЕЦ
Я не все выложил, но я думал, что такого на 1.8 не будет. Жду критики, ответом и рассуждений.
Пришла пора не писать что-то новое, а модернизировать старое, и делать код более пластичным.
Вообщем, решил на днях посмотреть, что из себя представляет 1.8.git. Честно - это ужас! Поясню: до этого долгое время работал на 1.7.х, и добился довольно хороших результатов. Я очень надеялся, что в 1.8.git были исправлены недочеты, но к сожалению нет. (не говорю о V2.0 - там изменения в стилях)
По этой теме я разберу часть кода class.PlanetRessUpdate.
ПРИМЕР №1
Source Code: class.PlanetRessUpdate - ExecCalc - 1.8
- $MaxMetalStorage = $this->PLANET['metal_max'] * $this->config->max_overflow;
- $MaxCristalStorage = $this->PLANET['crystal_max'] * $this->config->max_overflow;
- $MaxDeuteriumStorage = $this->PLANET['deuterium_max'] * $this->config->max_overflow;
- $MetalTheoretical = $this->ProductionTime * (($this->config->metal_basic_income * $this->config->resource_multiplier) + $this->PLANET['metal_perhour']) / 3600;
- if($MetalTheoretical < 0)
- {
- $this->PLANET['metal'] = max($this->PLANET['metal'] + $MetalTheoretical, 0);
- }
- elseif ($this->PLANET['metal'] <= $MaxMetalStorage)
- {
- $this->PLANET['metal'] = min($this->PLANET['metal'] + $MetalTheoretical, $MaxMetalStorage);
- }
- $CristalTheoretical = $this->ProductionTime * (($this->config->crystal_basic_income * $this->config->resource_multiplier) + $this->PLANET['crystal_perhour']) / 3600;
- if ($CristalTheoretical < 0)
- {
- $this->PLANET['crystal'] = max($this->PLANET['crystal'] + $CristalTheoretical, 0);
- }
- elseif ($this->PLANET['crystal'] <= $MaxCristalStorage )
- {
- $this->PLANET['crystal'] = min($this->PLANET['crystal'] + $CristalTheoretical, $MaxCristalStorage);
- }
- $DeuteriumTheoretical = $this->ProductionTime * (($this->config->deuterium_basic_income * $this->config->resource_multiplier) + $this->PLANET['deuterium_perhour']) / 3600;
- if ($DeuteriumTheoretical < 0)
- {
- $this->PLANET['deuterium'] = max($this->PLANET['deuterium'] + $DeuteriumTheoretical, 0);
- }
- elseif($this->PLANET['deuterium'] <= $MaxDeuteriumStorage)
- {
- $this->PLANET['deuterium'] = min($this->PLANET['deuterium'] + $DeuteriumTheoretical, $MaxDeuteriumStorage);
- }
- $this->PLANET['metal'] = max($this->PLANET['metal'], 0);
- $this->PLANET['crystal'] = max($this->PLANET['crystal'], 0);
- $this->PLANET['deuterium'] = max($this->PLANET['deuterium'], 0);
Source Code: class.PlanetRessUpdate - ExecCalc - new
- foreach($reslist['resstype'][1] as $resP) //проверка всего масива элементов
- {
- $MaxStorage = $this->PLANET[''.$resource[$resP].'_max'] * $this->config->max_overflow;
- $Theoretical = $this->ProductionTime * (($this->config->{$resource[$resP].'_basic_income'} * $this->config->resource_multiplier) + $this->PLANET[''.$resource[$resP].'_perhour']) / 3600;
- if($Theoretical < 0)
- {
- $this->PLANET[''.$resource[$resP].''] = max($this->PLANET[''.$resource[$resP].''] + $Theoretical, 0);
- }
- elseif ($this->PLANET[''.$resource[$resP].''] <= $MaxStorage)
- {
- $this->PLANET[''.$resource[$resP].''] = min($this->PLANET[''.$resource[$resP].''] + $Theoretical, $MaxStorage);
- }
- $this->PLANET[''.$resource[$resP].''] = max($this->PLANET[''.$resource[$resP].''], 0);
- }
Source Code: class.PlanetRessUpdate - temp - 1.8
PHP Source Code: includes/subclasses/subclass.Temp.php
- <?php
- $temp = array();
- foreach($reslist['resstype'][1] as $resP) //проверка всего масива элементов
- {
- $temp += array(
- $resP => array(
- 'max' => 0,
- 'plus' => 0,
- 'minus' => 0,
- )
- );
- }
- foreach($reslist['resstype'][2] as $resS) //проверка всего масива элементов
- {
- $temp += array(
- $resS => array(
- 'plus' => 0,
- 'minus' => 0,
- )
- );
- }
Source Code: class.PlanetRessUpdate - databasa - 1.8
- $sql = 'UPDATE %%PLANETS%% as p,%%USERS%% as u SET
- p.metal = :metal,
- p.crystal = :crystal,
- p.deuterium = :deuterium,
- p.eco_hash = :ecoHash,
- p.last_update = :lastUpdateTime,
- p.b_building = :b_building,
- p.b_building_id = :b_building_id,
- p.field_current = :field_current,
- p.b_hangar_id = :b_hangar_id,
- p.metal_perhour = :metal_perhour,
- p.crystal_perhour = :crystal_perhour,
- p.deuterium_perhour = :deuterium_perhour,
- p.metal_max = :metal_max,
- p.crystal_max = :crystal_max,
- p.deuterium_max = :deuterium_max,
- p.energy_used = :energy_used,
- p.energy = :energy,
- p.b_hangar = :b_hangar,
- u.darkmatter = :darkmatter,
- u.b_tech = :b_tech,
- u.b_tech_id = :b_tech_id,
- u.b_tech_planet = :b_tech_planet,
- u.b_tech_queue = :b_tech_queue
- '.implode("\n", $buildQueries).'
- WHERE p.id = :planetId AND u.id = :userId;';
Source Code: class.PlanetRessUpdate - databasa - new
- $sql = 'UPDATE %%PLANETS%% as p,%%USERS%% as u SET
- p.eco_hash = :ecoHash,
- p.last_update = :lastUpdateTime,
- p.b_building = :b_building,
- p.b_building_id = :b_building_id,
- p.field_current = :field_current,
- p.b_hangar_id = :b_hangar_id,
- p.b_hangar = :b_hangar,
- u.b_tech = :b_tech,
- u.b_tech_id = :b_tech_id,
- u.b_tech_planet = :b_tech_planet,
- u.b_tech_queue = :b_tech_queue
- '.implode("\n", $buildQueries).'
- WHERE p.id = :planetId AND u.id = :userId;';
- foreach($reslist['resstype'][1] as $resP) //проверка всего масива элементов
- {
- $sql .= 'UPDATE %%PLANETS%% as p,%%USERS%% as u SET
- p.'.$resource[$resP].' = :'.$resource[$resP].',
- p.'.$resource[$resP].'_perhour = :'.$resource[$resP].'_perhour,
- p.'.$resource[$resP].'_max = :'.$resource[$resP].'_max
- WHERE p.id = :planetId AND u.id = :userId;';
- }
- foreach($reslist['resstype'][2] as $resS) //проверка всего масива элементов
- {
- $sql .= 'UPDATE %%PLANETS%% as p,%%USERS%% as u SET
- p.'.$resource[$resS].'_used = :'.$resource[$resS].'_used,
- p.'.$resource[$resS].' = :'.$resource[$resS].'
- WHERE p.id = :planetId AND u.id = :userId;';
- }
- foreach($reslist['resstype'][3] as $resU) //проверка всего масива элементов
- {
- $sql .= 'UPDATE %%PLANETS%% as p,%%USERS%% as u SET
- u.'.$resource[$resU].' = :'.$resource[$resU].'
- WHERE p.id = :planetId AND u.id = :userId;';
- }
Я не все выложил, но я думал, что такого на 1.8 не будет. Жду критики, ответом и рассуждений.
Пришла пора не писать что-то новое, а модернизировать старое, и делать код более пластичным.
The post was edited 2 times, last by Yaro2709 ().