Xnova общие вопросы.

BaNru,
Берутся все ресурсы, которые затрачены на строительство и просто суммируются (500 металла + 400 кристалла + 300 дейтерия = 1200 единиц). Полученное число делится на 1000. Это значение прибавляется к "Опыту".
В случае разрушения постройки, ресурсы потраченные на разрушение (а это половина стоимости строительства) также суммируются... Но помимо деления на 1000, еще и умножаются на 3. Это число отнимается от "Опыта".

При обновлении вкладки Обзор, проверяется достигло ли число опыта очередной планки (уровень*константу, где в моем фиксе она указана как 5000, тобишь каждые 5000 опыта /*читай: каждый 5 000 000 единиц потраченных ресурсов*/ дается 1 уровень) и в случае чего начисляется уровень шахтера, а вместе с ним и офицерское очко (у кого то это ТМ, у кого то стиллеры).

По умолчанию, во многих сборках константа равна очень малому числу - как правило, 100. А теперь представим, что мы построим тот же терраформер за пару миллионов... При малой константе, у нас такое строительство выльется в ни один десяток полученных уровней, а вместе с ними и ТМ/стиллеров/оф.очков.

Вот здесь и проявляется минус скрипта начисления - он проверяет и начисляет лишь один уровень за один проход...
В результате возникает ситуация, когда у человека тысячи недополученных уровней и очков и ему нужно столько же раз обновить вкладку Обзор, сколько недополучено, дабы это все получить.

Мой фикс (на который там и давали ссылку) делает две вещи:
- позволяет начислять любое число уровней и очков за одно обновление страницы "Обзор". К примеру, мы получили 100 000 опыта. Ранее нам бы пришлось обновить 20 раз страницу "Обзор", дабы получить (100000/5000) = 20 уровней шахтера и причитающиеся очки. Теперь нам их дадут сразу и целиком.
- увеличивает значение константы до 5000. Это не решение и на высоких рейтах уровни шахтера все также будут сыпаться, но тут уже нужна замена всего механизма начисления на более адекватный.
 
Заметил что не пашет Геолог. В Сырье всё отображается как должно. На деле же ресы капают как будто Геолога не существует. Стоит мод Автообновления ресов. как я понял копать стоит в сторону Topnav.tpl кто решил эту проблему поделитесь плиз. Если что можно чем нибудь обменяться
 
...

1. Как удалить альянс (не из БД)? Прорыл, не нашол.
2. Где показывают игроков онлайн (ники. кроме админки)? Если навести курсор на количество игроков онлайн так показывает ники админов и операторов, а мона сделать чтобы показывали ники всех игроков онлайн?
 
Destroer, близко, но не там. Копать в сторону PlanetResourceUpdate.php.
В моем скрипте это выглядит так :
PHP:
$Caps['metal_perhour']     +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['metal']     ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser[$resource[601]]  * 0.05 ) ) );
// Аналогично с дейтерием и кристаллом
Этот фрагмент искать ближе к началу, внутри цикла for ($ProdID=0;...

Обращаю внимание, что $game_config['resource_multiplier'] должно быть учтено лишь единожды - либо в производстве за час (как я привел), либо в уже произведенном (как в том же rage). А то в кое-каких сборках, оно почему то дважды учитывается :)
Второй способ плох тем, что при моде автообновления ресурсов (который ужасно косой, к слову), коэффицент добычи ресурсов не учитывается в яваскрипте. Хотя может чего и изменилось в нем с тех пор - не знаю.

IARKI, самое простое - это как раз-таки в БД :)
Вообще то Для просмотра ссылки Войди или Зарегистрируйся.
По второй части... не представляю такого безобразия - может при онлайне 5 человек это и нормально, но подсказку/тултип с 50 никнеймов - это ни в какие ворота не лезет. Реализуется довольно-таки легко. А так ответ - нигде.
По мне, эта информация должна быть доступна лишь в Для просмотра ссылки Войди или Зарегистрируйся
 
2. Где показывают игроков онлайн (ники. кроме админки)? Если навести курсор на количество игроков онлайн так показывает ники админов и операторов, а мона сделать чтобы показывали ники всех игроков онлайн?

Это можно легко сделать, кастрировав файл из админки

Добавлено через 21 минуту
....
По мне, эта информация должна быть доступна лишь в Для просмотра ссылки Войди или Зарегистрируйся

А поделись строчкой кода "страницу просматривает" :ah:

Добавлено через 31 минуту
BaNru,
..... Это не решение и на высоких рейтах уровни шахтера все также будут сыпаться, но тут уже нужна замена всего механизма начисления на более адекватный.

вот я и предложил вариант
Значит так:
Офицеров лучше б было бы что б прибавляли не за эти имеющиеся очки офицеров, а за...
При отстройке допустим рудника 10 ура прибавляется 1 ур геолога, Адмирал за, допустим, постройку 5 единиц обороны,
и тд по такому принципу, который можно продумать если кого то заинтересует.

Кто бы взялся такое реализовать. А то ведь получается потом эти офицерские очки/материи некуда девать.
 
Не на правах мода, а лишь как сделать :)
CheckCookies.php
после
PHP:
$QryUpdateUser .= "`onlinetime` = '". time() ."', ";
добавить
PHP:
$QryUpdateUser .= "`cur_page` = '". mysql_real_escape_string($_SERVER['REQUEST_URI']) ."', ";
Добавить в БД, в таблицу users, колонку cur_page с типом text

admin/overview.php
после
PHP:
while ( $TheUser = mysql_fetch_array($last_users) ) {
добавить
PHP:
$Bloc['current_page']    	 = $TheUser['cur_page'];

Ну и в шаблоны..
в templates/admin/overview_body.tpl еще одну колонку
Код:
<th class="THtitle2">просматривает</th>
и в templates/admin/overview_row.tpl перед </tr>
Код:
<th><input type="text" style="width:95%" value="{current_page}" /></th>

На самом деле в Обзоре админки - это не самая востребованная информация. Куда важнее таже нормальная проверка IPов пользователей и показ всех мультов с их статусами тут же, как и возможность быстро получить информацию о IP. В дефолте это убого, медленно и странно (ну зачем Ип юзера сравнивать лишь с предыдущим и только, к примеру)

Кто бы взялся такое реализовать. А то ведь получается потом эти офицерские очки/материи некуда девать.
Реализовать - дело последнее и труда уж особого не составляет. Главное - хорошо продумать и описать сам механизм.
 
Destroer, близко, но не там. Копать в сторону PlanetResourceUpdate.php.
В моем скрипте это выглядит так :
PHP:
$Caps['metal_perhour']     +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['metal']     ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser[$resource[601]]  * 0.05 ) ) );
// Аналогично с дейтерием и кристаллом
Вроде всё учтено:
Код:
$BuildLevel       = $CurrentPlanet[ $resource[$ProdID] ];
$Caps['metal_perhour']     +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['metal']     ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * 0.05 ) ) );
$Caps['crystal_perhour']   +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['crystal']   ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * 0.05 ) ) );
$Caps['deuterium_perhour'] +=  floor( eval  ( $ProdGrid[$ProdID]['formule']['deuterium'] ) * ( $game_config['resource_multiplier'] ) * ( 1 + ( $CurrentUser['rpg_geologue']  * 0.05 ) ) );
 
Реализовать - дело последнее и труда уж особого не составляет. Главное - хорошо продумать и описать сам механизм.

Кому как...кодеру реализовать легко, а вот дизигнеру/верстальщику сложно.

Вот такой вот расклад можно ввести

Геолог
+1 ур - постройка рудника 10, 15, 20, 25, 30 ур, каждый тип отдельно
+1 за 10, 15, 20, 25, 30 ур всех рудников, независимо от планет
итого 20

Адмирал
+1 ур за постройку 5, 20, 50 единиц обороны
+1 за сбивание 5 межпланетных ракет
+1 за удачную отправку 3 межпланетных ракет
по +1 за постройку лег лазера, тяж лазера, Пушка Гаусса, Ионное орудие, Плазменное орудие, малого купала, большого купала
+1 за 5, 20, 50, 100 отбитых атак
+1 за уничтожение 10, 30, 50, 100 единиц обороны противника.
итого 20

Вот такая примерно задумка, если нравиться, и кто то возьмется реализовать, можно подумать дальше. Это только набросок.
 
Destroer, ну тогда вопрос уже не в отсутствии учета геолога при начислении ресурсов, а лишь в разнице в отображаемых значениях между Сырьем/Ресурсами и реальными значениями.
А это resources.php и, если есть такой, includes/functions/BuildRessourcePage.php
Искать аналогичный момент, он должен быть полностью идентичен, за исключением $Caps['metal_perhour'] - тут это просто $metal и внимательно смотреть как считается $*_total

BaNru, сходу видны уже минусы этой системы:
- запутанность, это ведь делается не для себя, а для игроков. Попробуй запомни все эти значения и условия;
- такой же разброс в начислении. Построить с 0 по 5 уровни шахты недолго, а вот 25-30... Ну и пункты по адмиралу абсурдны в большинстве своем (легко возможна накрутка и тп).
Такие вещи бесмысленно делать со значениями и идеями от фонаря - выйдет только хуже.
 
  • Заблокирован
  • #80
Пожалуйста, подскажите!
Вот у меня есть скрипт переноса планет с одной коoрды на другую(телепорт).Как мне сделать,чтобы после переноса планеты у игрока снималось по 300 стилов (это игровая денежная валюта).
____________________________________________________________

Было бы не плохо если бы ты этим самым скриптом поделился
Я могу им поделиться только скажите как реализовать задуманное?(на счёт снятия стилов)
 
Назад
Сверху