PVP система

Теги:
 
+
-
edit
 

Diamond

втянувшийся

Автоматическая система боев на арене.
Уже выкладывал где-то описание, но все же повторюсь:

Игрок подходит к Arena Manager, создает бой. Указывает:
- ставку (10к - 1кк)
- размер команд (например 2 vs 3)
- диапазон уровней команд (например 45-47 vs 40-42)
- время до начала (от 1 до 10 минут)
Далее идет отсчет времени, каждую минуту выводится сообщение с текстом "игрок такой-то создал бой с параметрами такими-то, до начала столько-то минут"
В это время любые желающие (и подходящие по уровню) могут зарегистрироваться либо за, либо против него, заплатив указанную сумму.
Как только время истекает, все зарегистрировавшиеся телепортируются на арену, в четко определенные позиции.
Парализуются на 60 сек (время, выделенное для того чтобы все успели телепортироваться), потом паралич снимается и дается команда на старт.
В конце автоматически определяются победители, и все вложенные деньги делятся между ними.

Для установки просто распакуйте в папку jbforth и впишите строчку pvp/main.f после events/main.f в файле jbforth/main.f
Работает только в fortress
Прикреплённые файлы:
pvp.rar (скачать) [2,8 кБ, 215 загрузок]
 
 
 
Это сообщение редактировалось 07.11.2006 в 02:52
+
-
edit
 

Diamond

втянувшийся

С тех пор многое изменил и улучшил.
- в чат пишется не аннонсом а через .shout
- перед боем парализация не на 30 а на 60 сек (не все успевают телепортироваться)
- убитые не парализуются, это уже не нужно
- при попытке войти на арену во время боя незарегистрированным игроком телепортирует к выходу
- при попытке сбежать с арены телепортирует немного назад (в идеале просто отодвигает, но пока такой механизм не отлажен)
- теперь зарегистрированные игроки не могут телепортироваться с арены
- при убийстве незарегистрированным игроком зарегистрированного, или при убийстве члена своей команды, кидает в тюрьму на 25 предметов
- исправлена ошибка с выдачей приза не той команде
- при смерти пишет кто умер и вычеркивается из списка. Раньше просто считалось число убитых - в результате неважно было кого убивать, можно было даже 2 раза одного и того же :)
- если обе команды полностью заполнены - старт через минуту
- теперь вся система помещается в 1 файле
- куча мелких исправлений

В разработке:
1) телепортация всех незарегистрированных перед боем с арены к выходу
2) запрет на атаку незарегистрированными зарегистрированных во время боя
3) перед боем не парализует полностью, можно бафаться
4) при выходе из игры, игрок дисквалифицируется
5) проверка на выключение/рестарт сервера, рестарт форта, возврат денег в этом случае
6) ограничение боя до 120 секунд (можно больше или меньше), возврат денег или определение победителя если время истекло (незнаю что лучше)
7) отталкивание от "стенки" а не телепортация. При телепортации мигает и иногда чар застревает (пока esc не нажмешь)

Я бы все это реализовал хоть сейчас, но:

1. - не могу сделать, из за смешной ошибки:
code text
  1. : pvp_arena_clear
  2.         "player@ 'X' p@ 72479 > player@ 'X' p@ 73505 < and player@ 'Y' p@ 142250 > player@ 'Y' p@ 143273 < and and player@ pvp_team1_list in-list? not player@ pvp_team2_list in-list? not and and if 73879 142632 -3773 player@ teleport-char-to then" do-players
  3. ;

Почему-то тут неважно, что стоит перед if - 0 или -1. В любом случае условие выполняется. Если такой код запустить - телепортирует весь онлайн а не только тех кто на арене находится.
То же самое происходит если в чате набрать:
//do 1 1 = if 123 show then \ перед if -1, выводит 123
//do 1 0 = if 123 show then \ перед if 0, выводит 123

2. Писал вот тут AI
3. Думаю можно через evt реализовать, пока незнаю как.
4. Пробовал втыкать проверку в файл on-player-exit.f все работает но та же проблема что в пункте 1
code text
  1. player@ pvp_team1_list in-list? if
  2.         player@ "Name" p@ " дисквалифицирован (вышел из игры)" s+ "PVP system" .shout
  3.         new-list to pvp_temp_list
  4.         pvp_team1_list list# 0 ?do
  5.                 player@ pvp_team1_list i list@ = not if
  6.                         pvp_team1_list i list@ pvp_temp_list +list
  7.                 then
  8.         loop
  9.         pvp_temp_list to pvp_team1_list
  10.         pvp_team1_list list# 0 = if
  11.                 pvp_team2_adena_pay
  12.                 "2 команда победила" "PVP system" .shout
  13.                 new-list to pvp_team1_list
  14.                 new-list to pvp_team2_list
  15.                 0 to pvp_status
  16.         then
  17. then
  18.  
  19. player@ pvp_team2_list in-list? if
  20.         player@ "Name" p@ " дисквалифицирован (вышел из игры)" s+ "PVP system" .shout
  21.         new-list to pvp_temp_list
  22.         pvp_team2_list list# 0 ?do
  23.                 player@ pvp_team2_list i list@ = not if
  24.                         pvp_team2_list i list@ pvp_temp_list +list
  25.                 then
  26.         loop
  27.         pvp_temp_list to pvp_team2_list
  28.         pvp_team2_list list# 0 = if
  29.                 pvp_team1_adena_pay
  30.                 "1 команда победила" "PVP system" .shout
  31.                 new-list to pvp_team1_list
  32.                 new-list to pvp_team2_list
  33.                 0 to pvp_status
  34.         then
  35. then

Этот код тоже выполняется всегда, независимо от значения перед if
5. Думаю будут аналогичные проблемы
7. Тоже писал тут AI

В последней версии не обнаружил ошибок, тестил много раз. Но наверняка можно много чего улучшить, я в форте пока не силен.
Просьба помочь с доработкой этой системы, игрокам она очень нравится, используют часто. Жду предложений по ее улучшению :)
 
Это сообщение редактировалось 13.08.2006 в 09:23
+
-
edit
 

Diamond

втянувшийся

8 человек скачало и ни одного отзыва, хотя-бы отрицательного :(
Хотелось бы все-таки услышать комментарии. Что работает/не работает, что надо добавить и т.п.
 
+
-
edit
 

valsha

разработчик l2j-сервера

хорошая система. и главное нужная.
World of Warcraft (WOWEmu) PvPGN 1.6.6 (War/Srat/ClosedD2); Quake3; CS/CZ 1.5/1.6; WolfET; NewerwinterNights1.65; UT2004 (3339); CoD UO; Soldat; GTA VC 0.5;  
+
-
edit
 

Andrey32

новичок
Здорово!!! Каким бы образом ее на SF заставить работать?
 
+
-
edit
 

Diamond

втянувшийся

Я уже где-то писал, что никаким. Разве что прикрепить к сф форт, но даже в этом случае скорее всего что-то придется править вручную, уж слишком сф и фортресс различаются.
Можете взять идею и реализовать на яве - но это сложно.
 

a4n

новичок
Megawolf, респект! Классно!
Хотелось бы ещё, что бы если ты создал бой в колизее бой бы там и был, а не в гиране :)
 
Это сообщение редактировалось 27.08.2006 в 23:17
+
-
edit
 

Diamond

втянувшийся

Система боев 5х5 лучше всего на арене. Так у каждого класса есть шансы на победу. Да и далеко этот колизей, а арена близко :)
По задумке - бои будут проходить для каждой арены отдельно, и сообщения будут слаться в местный канал. Или в область.

Кто хочет переделать - просто поменяйте кординаты телепортации.

Для колизея я предусмотрел кое-что покруче ;)


зы: выложил последнюю версию. Хотя на свн фортресс тоже всегда лежит свежая версия.
 
Это сообщение редактировалось 28.08.2006 в 14:24
+
-
edit
 

maneak

новичок
То что приатачено: Оч порадовало 5с плусом!
глюки: проигравшему невозвращяется ничего (это логично) а выигравшему достаётся только его ставка (глюк)
 
+
-
edit
 

Diamond

втянувшийся

maneak> То что приатачено: Оч порадовало 5с плусом!
maneak> глюки: проигравшему невозвращяется ничего (это логично) а выигравшему достаётся только его ставка (глюк)
Вроде не замечал таких глюков... Но я скоро ее переделывать буду, заодно возможные ошибки поправлю.
 
+
-
edit
 

Dmitrii

новичок
Проверьте на следущий баг, я создал команду 2 на 1.
За первую команду ввел 2 персов, со ставкой 100кк. за вторую ничего. когда время прошло, им ставки не вернули. И также баг, когда ставку проигравшего не дают, точно есть.
Jbforth выдает следующие ошибки

code text
  1. Warning in data\jbforth\l2j\broadcast.f: redefine word 'type' defined in input s
  2. tream or native code
  3. Events loading...
  4. Warning in .\data\jbforth\events\balancer\pirates\main.f: redefine word 'target'
  5.  defined in .\data\jbforth\constants\main.f
  6. Abort: Unknown word 'я╗┐vocabulary' in File: .\data\jbforth\pvp\arena.f
  7. >| я╗┐vocabulary |<  arena
  8. also forth definitions ... in file .\data\jbforth\pvp\arena.f
  9. Webserver loaded! JBForth loaded successfull!
 
Это сообщение редактировалось 04.11.2006 в 09:51
+
-
edit
 

Balancer

администратор
★★★★★
> я╗┐vocabulary

Что-то с кодировкой. Или подстрой настройики Java, или снеси BOM (byte order mark) в начале файла. Подсказать не могу, так как на Linux у меня этой проблемы нет :)
 
+
-
edit
 

Diamond

втянувшийся

Ну или в крайнем случае переведи все фразы на английский :)
 
+
-
edit
 

Dmitrii

новичок
Снес ВОМ, но все равно при входе за 1 команду 2 человек, когда время проходит. Адену возвращают тока тому, кто создал бой.
Вылазят следующие ошибки:
code text
  1. Warning in data\jbforth\l2j\broadcast.f: redefine word 'type' defined in input s
  2. tream or native code
  3. Events loading...
  4. Warning in .\data\jbforth\events\balancer\pirates\main.f: redefine word 'target'
  5.  defined in .\data\jbforth\constants\main.f
  6. Warning in .\data\jbforth\pvp\arena.f: redefine word 'on-player-escape' defined
  7. in .\data\jbforth\engine\jail\main.f
  8. Webserver loaded! JBForth loaded successfull!
 
+
-
edit
 

Diamond

втянувшийся

Это не ошибки а предупреждения, не обращай на них внимания.

Насчет ошибок с выдачей денег - поправил. Новая версия выложена в 1 посте.
 

vini3

втянувшийся
Megawolf> Это не ошибки а предупреждения, не обращай на них внимания.
Megawolf> Насчет ошибок с выдачей денег - поправил. Новая версия выложена в 1 посте.
а в сборке 4062 она релизовано пвп
 
+
-
edit
 

Diamond

втянувшийся

Megawolf>> Это не ошибки а предупреждения, не обращай на них внимания.
Megawolf>> Насчет ошибок с выдачей денег - поправил. Новая версия выложена в 1 посте.
vini3> а в сборке 4062 она релизовано пвп

Незнаю, если нет - установи. Будет работать.
 
+
-
edit
 

Anatoli

новичок
Ты не мог скинуть эту систему на ФТП? Отсюда не могу качать нет в списке подсетей. Буду очень признателен. ;)
 
+
-
edit
 
RU SuperEAst #12.12.2006 14:14
+
-
edit
 

SuperEAst

новичок
Система отличная. Ошибок не обнаружил.

Единственное ненравится что PVP система "кричит" на весь сервер а не на "свой" регион как хотелось бы. Очень сильно мешает к примеру когда ГМы проводят ивенты и пишут на весь сервер а тут и система на весь сервер орет :). Возможно ли сделать "ее" отключаемую по гмкоманде, форт - команде и чтобы она "кричала" только в свой регион ?
 
+
-
edit
 

Diamond

втянувшийся

SuperEAst> Система отличная. Ошибок не обнаружил.
SuperEAst> Единственное ненравится что PVP система "кричит" на весь сервер а не на "свой" регион как хотелось бы. Очень сильно мешает к примеру когда ГМы проводят ивенты и пишут на весь сервер а тут и система на весь сервер орет :). Возможно ли сделать "ее" отключаемую по гмкоманде, форт - команде и чтобы она "кричала" только в свой регион ?

Как раз сейчас занимаюсь, делаю свою систему для каждой арены. Кричать будет только в своем регионе.
 

ELaI

новичок
Ну так что будет такая система для каждой арены или нет? =)
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru