[MOD] Purchase of fields (Покупка полей)

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

    • [MOD] Purchase of fields (Покупка полей)

      Вот решил добавить свою лепту ))
      Скажу сразу не сильно опытный я програмер в пыхе но всёже напишу
      Мод для версии 1.8
      Для 1.7 уже есть
      Переделывал под 1.8 с 1.7 ))

      И так начнём
      ------------------------------------------------------------------------------------------------------------------------------------------------------
      Создаём файл ShowPlanetPage.class.php в папке game (includes\pages\game)
      И тыкаем туда этот код

      <?php

      class ShowPlanetPage extends AbstractGamePage {

      public static $requireModule = MODULE_BUDDYLIST;

      function __construct() {
      parent::__construct();
      }
      public function show() {
      global $LNG, $PLANET, $USER;
      $this->assign(array(
      'kolvo' => $USER['kolvo'],
      ));
      $this->display('page.planet.default.tpl');
      }
      function field() {
      global $LNG, $PLANET, $USER;

      $fields = HTTP::_GP('filds', 0);
      $db = Database::get();
      $cost_i = 0;
      $cost = 0;

      for($i = 0; $i < $fields; $i++) {
      $cost_i = round(200 * pow(1.1,$USER['kolvo'] + $i));
      $cost = $cost + $cost_i;
      }
      if($USER['darkmatter'] < $cost){
      $this->sendJSON(array('message' => $LNG['fields_buy_no'], 'error' => true));
      } else {
      $sql = "UPDATE %%PLANETS%% SET field_max = field_max + :fielDS WHERE id = :planetID;";
      $db->update($sql, array(
      ':fielDS' => $fields,
      ':planetID' => $PLANET['id']
      ));
      $sql = "UPDATE %%USERS%% SET kolvo = kolvo + :fielDS WHERE id = :ownerID;";
      $db->update($sql, array(
      ':fielDS' => $fields,
      ':ownerID' => $PLANET['id_owner']
      ));

      $USER['darkmatter'] -= $cost;
      echo '<script>setTimeout(\'location="game.php?page=planet"\', 3000)</script>';// тут время для перехода через сколько секунд
      $this->printMessage("Поля успешно куплены, в количестве: $fields");
      }
      }
      }
      ------------------------------------------------------------------------------------------------------------------------------------------------------
      Далее создаём файл page.planet.default.tpl в папке game (styles\templates\game)

      И пихаем туда это

      {block name="title" prepend}{$LNG.lm_overview}{/block}
      {block name="content"}
      <table id="table519" style="width:40%; heght:300px;background: rgba(25, 54, 76, 0.90);">
      <td colspan="2">
      <table style="width:100%">
      <tr>
      <td>
      <ul>
      <a href="#tabs-1">{$LNG.ov_buy_fields}</a>
      </ul>
      <form action="game.php?page=planet&mode=field"" method="POST">
      <input type="hidden" id="type" value="200">
      <input type="hidden" id="power" value="1.1">
      <input type="hidden" id="kolvo" value="{$kolvo}">
      <div style="padding:10px; color:#CCC; line-height:20px;">{$LNG.ov_buy_fields}:&nbsp;&nbsp;+
      <input id="filds" name="filds" type="number" maxlength="2" size="3" onchange="Fild();" min="0" max="99" value="0" type="text" autocomplete="off">
      <input value="{$LNG.ov_buy_fields}" type="submit">
      Стоимость: <span style="color:#0F0; font-weight:bold;" id="cost_filds">0</span> {$LNG.dark_matters}
      </div>
      </form>
      </td>
      </tr>
      </table>
      </td>
      </table>
      {/block}
      {block name="script" append}
      <script src="scripts/game/overview.actions.js"></script>
      {/block}
      ------------------------------------------------------------------------------------------------------------------------------------------------------
      В файле INGAME.php добавляем вот эти строки в любом понравившемся месте

      $LNG['dark_matters'] = 'Тёмная Материя';
      $LNG['ov_buy_fields'] = 'Купить Поля';
      ------------------------------------------------------------------------------------------------------------------------------------------------------

      Переходим в файл overview.actions.js (scripts\game)
      и тыкаем туда это


      function Fild() {
      var Count = $('#filds').val();
      var type = $('#type').val();
      var kolvo = $('#kolvo').val();
      var power = $('#power').val();
      if(isNaN(Count) || Count < 0 ) {
      $('#filds').val(0);
      Count = 0;
      }
      var cost_i = 0;
      var cost = 0;
      for(var i = 0; i < Count; i++ ) {
      cost_i = Math.round(type * Math.pow(power,Number(kolvo) + Number(i)));
      cost = Number(cost) + Number(cost_i);
      }
      $('#cost_filds').text(NumberGetHumanReadable(cost));
      cost = 0;
      step = 0;
      cost_i = 0;
      }

      ------------------------------------------------------------------------------------------------------------------------------------------------------
      В файле main.navigation.tpl (styles\templates\game) в любом месте добавляем строку


      {if isModuleAvailable($smarty.const.MODULE_BUDDYLIST)}<li><a href="game.php?page=planet">Купить поля</a></li>{/if}

      ------------------------------------------------------------------------------------------------------------------------------------------------------
      а да ещё чуть не забыл в таблице ( uni1_users ) добавить столб kolvo int 11


      если что не так камнями не бросаться
      если проблема с настройкой пишите

      Всё удачи господа ))









    • Klon wrote:

      {if isModuleAvailable($smarty.const.MODULE_BUDDYLIST)}<li><a href="game.php?page=planet">Купить поля</a></li>{/if}
      ИМХО {if isModuleAvailable($smarty.const.MODULE_BUDDYLIST)} {/if} вот это лишнее совершенно, так как при отключении модуля друзей в игре у тебя отключится и эта ссылка))) или добавляй модуль отдельный или убирай ее просто
      Кто к нам с чем зачем, тот от того и того! :D