Альтернотивная система боя

Vredskiy

Новичок
Репутация
0 / 23
Новая система боя, подобная огейм ру, здесь каждый юнит считается отдельно и о каждом юните в течении боя храниться своя информация.
Тестировал пока еще не очень много, но пока результаты полностью совпадают со спидсимом.
Вся система построена на вероятностях, т.е. чтобы убить юнита не обязательно наносить ему 100% повреждений, а достаточно нанести 30% и после этого при каждой атаке появляется шанс уничтожить цель, и шанс тем больше, чем больше повреждения.
Аналогично со скорострелом, здесь он как шанс на дополнительную атаку. Рандом на силу атаки просчитывается также отдельно для каждого юнита.

Считает довольно медленно (как результат усложнения боя) стотысячные армии со звездами смерти просчитывал около 26 сек. Но это с записью лога после атаки каждого юнита. Также вижу пути оптимизации, но пока эти не занимался, так как сервер где он используется находиться в локальной сети, и играет на нем всего навсего около 40 человек.

тестировалось только на XGP 2.9.6

Установка:
1) создаем в корне XGP файл 1.txt, в нем будет храниться отладочный лог последнего боя (по нему можно проследить какой юнит по кому ударил и что после этого стало с жертвой, а также состав массивов армий до начала и конца боя). Если это вам не нужно, то думаю не сложно будет удалить из скрипта самостоятельно.
2) заменяем vars.php он отличается скорострелами (здесь он как шанс дополнительной атаки)
3) заменяем сам attackCalculate.php

Если при просчитывание больших боев возникнет переполнение памяти, то увеличьте выделяемую под xgp память.

Тем у кого не достаточно благодарностей просьба обращаться в личку (договоримся).



Файл просто просится быть перезалитым!
 
</TD>
 
проверено, 100% лучше чем было. пасиб

одно беспокоит, через 2-3 месяца файлик 1.txt будет весить гага полтора :) с этим надо чтото делать.
 
как вариант надо поставить чистку файла в конце боя чтобы такого не было
 
одно беспокоит, через 2-3 месяца файлик 1.txt будет весить гага полтора :) с этим надо чтото делать.
Не беспокойся, там хоть и не стоит чистки, но размер файла будет определяться самым длинным боем. Файл там перезаписывается в каждом бою опять с первой строки. Я делал это для отладки, т.к. возникали сомнения в правильности боя и оставил чтобы увидев не правильный бой было понятно где искать ошибку.
Если вам это не нужно, то можете удалить это из скрипта. Если не можете самостоятельно попросите меня, удалю (это не долго).
Кстати это должно немного ускорить просчет.

Какие есть мысли по скорости счета? Может сразу переписать на СИшку или всетаки имеет свое место оптимизация? Только опятьже думаювариант с СИ подойдет не всем по причинам хостинга.

Поудалял запись в лог скорость увеличилась в двое. Посчитал опять стотысячные армии, но не хватило памяти (128М выделял) а потребовалось 135М. Дальше буду сокращать массивы =).
 
потестировал систему боя, сходство со спидсимом 95% остальные 5% это рандом он есть и в спидсиме и у тебя, 100% сходства не бывает. поздравляю!
НО есть проблема с формированием отчета боя. Флот якобы уничтожен в первом раунде и отчет не открывается. :)
 
потестировал систему боя, сходство со спидсимом 95% остальные 5% это рандом он есть и в спидсиме и у тебя, 100% сходства не бывает. поздравляю!
НО есть проблема с формированием отчета боя. Флот якобы уничтожен в первом раунде и отчет не открывается. :)
А это не тот случай, когда флот уничтожается на подлете первым залпом? Тогда и отчета то нет.
 
А это не тот случай, когда флот уничтожается на подлете первым залпом? Тогда и отчета то нет.
Нет, проверял 12т ЛИ против 1 ЗС. отчет оранжевый и не открывается
 
Нет, проверял 12т ЛИ против 1 ЗС. отчет оранжевый и не открывается
Проверял только что этот бой у себя, все нормально, звезда смерти возвращается живой, и успевает убить 500 - 1500 истребителей за 6 раундов.

Меня беспокоит другой глюк, но он есть и со стандартной системой боя. Самый поздний результат который выдается в отчете это на начало 6 раунда. Т.е. если бой закончился поражением после 6-го раунда то в отчете придет что ничья, хотя живым никто не вернется =)

Ой, верно ты говоришь. Если нападать не звездой смерти а истребителями так и получается. Попробую разобраться.
 
Внимание!!! Нашел баг с неправильным формированием отчета при не пробивании 1% брони (пример 12к ЛИ против 1 ЗС). Файл перезалил, а также добавил версию без лога!
 
Внимание!!! Нашел баг с неправильным формированием отчета при не пробивании 1% брони (пример 12к ЛИ против 1 ЗС). Файл перезалил, а также добавил версию без лога!
По про бывал перевести вашу систему боя для 2moons, в результатах боя в каждом раунде урон обеих сторон выводиться по 1, отпишите пожалуйста в ЛС.
 
Внимание!!! Нашел баг с неправильным формированием отчета при не пробивании 1% брони (пример 12к ЛИ против 1 ЗС). Файл перезалил, а также добавил версию без лога!

исправления только в calculateAttack.php или еще и в vars.php? или везде?
может напишеш что именно и где исправил?
 
Верно только в calculateAttack.php, баг был потому что при условии не пробивании 1% щита по ошибке я упустил подсчет количества нанесенного дамага (нужного для отчета). Как выяснилось в формировании отчета шла проверка на уничтожении в 1 раунде, как раз по количеству нанесенного дамага. И получалось что истребители не могли пробить 1% щита звезды смерти, и в количество дамага записывалось 0. Поэтому система генерации отчета видя что во втором раунде не нанесено дамага думала, что флот уничтожен и давала сообщение о уничтожении в 1 раунде. Но на самом деле помимо отчета все было нормально, т.е. фвлот возвращался хоть и поврежденным но живым. Вылечил переносом строки по суммированию общей атаки из условия пробивания щита.
По про бывал перевести вашу систему боя для 2moons, в результатах боя в каждом раунде урон обеих сторон выводиться по 1, отпишите пожалуйста в ЛС.
проблема в том что в 2moons некоторые массивы (как раз те что о количестве дамага и щита) имеют другую структуру (обычные переменные), а в xgp (массив). После того как поправите, выложите пожалуйста версию для 2moon, но под хайдом не менее моего!
 
Боёвка понравилась, очень грамотно сделано, всё просчитано.
Кому нужна боёва для xnova 0.9 стучите в личку, отдам
 
НА xgp 2.9.8 выходит такая вот ошибка:
Fatal error: Maximum execution time of 30 seconds exceeded in ......\includes\functions\calculateAttack.php on line 319
Установлен файл calculateAttack.php без лога каторый
п.с. в php.ini выстовлено memory_limit = 512M
в calculateAttack.php тож/

п.с. всё с этой проблемой разобрался
 
НА xgp 2.9.8 выходит такая вот ошибка...

А у меня все нормально, бой прошел и отчет видно. Отправлял 1к лайтов на 1к лайтов. Установка игры нулевая, т.е. ничего в настройках не менял, кроме ленгвиджа.

akademik, попробуй на чистой сборке прогнать боевку.
 
Ошибка Maximum execution time выскакивает при превышении времени запроса обычно.

Если базируешься на виртуальном хостинге то все вопросы к провайдеру хотя он 99% что для тебя лично ничего расширять не будет
 
У мя выскакивает такая вот ошибка:
Warning: Invalid argument supplied for foreach() in C:\AppServ\www\Xnova\includes\functions\formatCR.php on line 122
Warning: Invalid argument supplied for foreach() in C:\AppServ\www\Xnova\includes\functions\formatCR.php on line 196

Когда ставлю родной файл calculateAttack от xgp 2.9.8 то всё норм, ошибки нет. В чём может быть причина?

п.с. всё исправил, добавлением if ($attackers2 !== null) и if ($defenders2 !== null)
 
У мя выскакивает такая вот ошибка:
Warning: Invalid argument supplied for foreach() in C:\AppServ\www\Xnova\includes\functions\formatCR.php on line 122
Warning: Invalid argument supplied for foreach() in C:\AppServ\www\Xnova\includes\functions\formatCR.php on line 196

Когда ставлю родной файл calculateAttack от xgp 2.9.8 то всё норм, ошибки нет. В чём может быть причина?

Сам спросил и сам ответил, и даже выложил готовое решение http://xgproyect.net/2-9-x-foro-de-modific....html#post56215

akademik, ты в натуре "BEST" :lol:
 
Сам спросил и сам ответил, и даже выложил готовое решение http://xgproyect.net/2-9-x-foro-de-modific....html#post56215

akademik, ты в натуре "BEST" :lol:
пускай там дорабатывают и внедряют в xgp если сочтут нужным, надо же посмотреть что скажут про этот калькулятор многие.
А к чему ты тут написал, я так и не понял. я выложил ему один калькулятор, у него он не робит написал, я изменил там пост а дал ему этот калькулятор посмотреть.
 

Похожие темы

Сверху