[MOD] shipyard add ship per second func for 1.8 ver.

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • [MOD] shipyard add ship per second func for 1.8 ver.

      Сейчас будет менять логику работы верфи. Без этого мода в скоростных серверах корабли строятся либо по 1 штуке в секунду либо 0 секунд, в зависимости от настроек сервера, а мы будем делать чтоб строились пачками, ведь всегда приятно когда у тебя много миллионная армия :) и чтоб не было фантастических миллионых флотов за 0 секунд.


      Display Spoiler

      в файле class.BuildFunctions.php находим фукнцию getBuildingTime и в нем меняем

      PHP Source Code

      1. if($forDestroy) {
      2. $time = floor($time * 1300);
      3. } else {
      4. $time = floor($time * 3600);
      5. }
      6. return max($time, $config->min_build_time);
      на

      PHP Source Code

      1. if((in_array($Element, $reslist['fleet']) || in_array($Element, $reslist['defense']))){
      2. $time = $time * 3600;
      3. }
      4. else{
      5. if($forDestroy) {
      6. $time = floor($time * 1300);
      7. } else {
      8. $time = floor($time * 3600);
      9. }
      10. $time = max($time, $config->min_build_time);
      11. }
      12. return $time;
      Display All
      в файле ShowShipyardPage.class.php

      Меняем

      PHP Source Code

      1. $elementList[$Element] = array(
      2. 'id' => $Element,
      3. 'available' => $PLANET[$resource[$Element]],
      4. 'costResources' => $costResources,
      5. 'costOverflow' => $costOverflow,
      6. 'elementTime' => $elementTime,
      7. 'buyable' => $buyable,
      8. 'maxBuildable' => floatToString($maxBuildable),
      9. 'AlreadyBuild' => $AlreadyBuild,
      10. );
      на

      Source Code

      1. $elementList[$Element] = array(
      2. 'id' => $Element,
      3. 'available' => $PLANET[$resource[$Element]],
      4. 'costResources' => $costResources,
      5. 'costOverflow' => $costOverflow,
      6. 'elementTime' => $elementTime,
      7. 'perSec' => floor(1/$elementTime),
      8. 'buyable' => $buyable,
      9. 'maxBuildable' => floatToString($maxBuildable),
      10. 'AlreadyBuild' => $AlreadyBuild,
      11. );
      Display All
      в файле page.shipyard.default.tpl

      Меняем

      HTML Source Code

      1. <td class="transparent right" style="white-space:nowrap;" >
      2. {$Element.elementTime|time}
      3. </td>
      на

      HTML Source Code

      1. <td class="transparent right" style="white-space:nowrap;">
      2. {if $Element.elementTime < 1}
      3. {$LNG.buildPerSec} {$Element.perSec}
      4. {else}
      5. {$Element.elementTime|time}
      6. {/if}
      7. </td>
      После

      HTML Source Code

      1. {block name="script" append}
      2. <script type="text/javascript">
      3. data = {$BuildList|json};
      4. bd_operating = '{$LNG.bd_operating}';
      5. bd_available = '{$LNG.bd_available}';
      Добавляем

      HTML Source Code

      1. bd_perSec = '{$LNG.perSec}';
      В файле shipyard.js

      После

      JavaScript Source Code

      1. function BuildlistShipyard() {
      2. var n = new Date();
      3. var s = Shipyard[0][2] - hanger_id - Math.round((n.getTime() - v.getTime()) / 1000);
      4. var s = Math.round(s);
      5. var m = 0;
      6. var h = 0;
      Добавляем

      JavaScript Source Code

      1. var perSec = Math.floor(1/Shipyard[0][2]);
      Меняем

      JavaScript Source Code

      1. Amount.sub('1');
      2. $('#val_'+Shipyard[0][3]).text(function(i, old){
      3. return ' ('+bd_available+NumberGetHumanReadable(parseInt(old.replace(/.* (.*)\)/, '$1').replace(/\./g, ''))+1)+')';
      4. })
      5. if (Amount.toString() == '0') {
      На

      JavaScript Source Code

      1. Amount.sub(perSec);
      2. $('#val_'+Shipyard[0][3]).text(function(i, old){
      3. return ' ('+bd_available+NumberGetHumanReadable(parseInt(old.replace(/.* (.*)\)/, '$1').replace(/\./g, ''))+perSec)+')';
      4. })
      5. if (parseInt(Amount) <= 0) {
      Меняем

      JavaScript Source Code

      1. $("#bx").html(Shipyard[0][0]+" "+GetRestTimeFormat(s));
      На

      Source Code

      1. var t = Shipyard[0][0]+" "+GetRestTimeFormat(s);
      2. if(perSec>1)
      3. t = Shipyard[0][0]+" "+(perSec)+" "+bd_perSec;
      4. $("#bx").html(t);

      В файле INGAME.php вашего языка добавляем

      Source Code

      1. $LNG['perSec'] = 'в секунду';
      2. $LNG['buildPerSec'] = 'В секунду строится:';



      В итоге получаем [Blocked Image: https://clip2net.com/clip/m500486/ebcb5-clip-132kb.jpg?nocache=1]

      И последующий апгрейд фабрики нанитов будет так же добавлять к скорости постройки флота больше чем 1 корабль в секундк

      The post was edited 4 times, last by Kaizoku ().

    • Проверено работает я не много переделал под себя ! в репку плюс!
    • If you version is 2.0 then
      In the file page.shipyard.default.tpl
      you have to change
      From

      HTML Source Code

      1. <span style="font-weight: bold;"><i class="fas fa-tachometer-alt" style="font-size: 13px;"></i> {$Element.elementTime|time}</span>

      to

      HTML Source Code

      1. <span style="font-weight: bold;"><i class="fas fa-tachometer-alt" style="font-size: 13px;"></i> {if $Element.elementTime < 1}
      2. {$LNG.buildPerSec} {$Element.perSec}
      3. {else}
      4. {$Element.elementTime|time}
      5. {/if}</span>
      end if

      Other code remains keep the same to support version 2.0

      My English is not very good, please forgive me.