NETRAT
offline
Опыт:
83,712Активность: |
Распределения опыта между юнитами
Господа, мне бы хотелось поговорить о системе распределения опыта на поле боя. В качестве события получения опыта выбрано убийство юнита. Так вот, пускай за убийство юнита дается определенное количество опыта, теперь вопрос - каким образом распределять этот опыт?
На данный момент я вижу два варианта:
*** Особенность 1: ВСЕ находящиеся на поле боя юниты получают опыт - то есть противники убийцы тоже получают опыт, правда, значительно меньше (скажем, раза в 2-3 чем союзники убийцы) *** Особенность 2: Суммарный опыт, который был распределен никогда не превышает начальный опыт за юнита (это регулируется спец коэффициентами) Так вот, господа, какой вариант вам больше нравится, что нравится и что не нравится. Или, возможно, у вас есть более интересный вариант - мне бы очень хотелось его услышать. |
24.01.2006, 22:44 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bugmaker
invulnerable
offline
Опыт:
2,282Активность: |
ммм интересный вопрос, мне лично по душе 1й |
24.01.2006, 22:51 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Да, я тоже сразу реализовал первый. Тут меня еще смущает первая особенность - то что опыт идет действительно ВСЕМ - то есть даже противнику, не знаю насколько правильно с точки зрения геймплея, зато реалистично |
24.01.2006, 22:57 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Хмм, ну а мне все-таки больше понравился 3 вариант.
Отредактировано Jon, 24.01.2006 в 23:26. |
24.01.2006, 23:07 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bugmaker
invulnerable
offline
Опыт:
2,282Активность: |
лучше с SCV
bugmaker добавил: а мне уже больше 4й нравица =), но думаю он тебе не подайдет (я его у ся в рпгэше использую): юнит наносит урон, юнит который его наносил получает опыт (раза в 10 меньше дамага), юнит которому наносился урон получает в 3 раза меньше первого. |
24.01.2006, 23:28 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iron
Листовой
offline
Опыт:
24,427Активность: |
Цитата:
А я прндлогаю круче. Юнит наносит урон, опыт получаемый им равен ((константа опыта для типа атакуемого юнита)/const)*(урон). Так гораздо реалистичнее чем у bugmaker-а. Т.е. если константа опыта за пехотинца равна 100, const=50, а урон героя равен 20, то герой атакующий пехотинца за одну атаку получит (100/50)*20=40 опыта. Но чтобы было еще реальнее, можно заносить получаемый результат в массив, и давать герою суммарный опыт только после смерти юнита. Спросите:"Зачем массив?"- а затем, что герой может атаковать попеременно несколько юнитов, и каждому юниту необходимо отводить отдельную ячейку. PS: Не с массивом геморно, даешь кэш. |
|
25.01.2006, 00:01 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Jon Да, я думал об этом - подсчитывать нанесенное количество дамака, но тут, по моему система неактуальна для нормальных карт, ибо будет лагать дико =( ну и потом, все равно юнит, который нанес решающий удар, должен (имхо) получать некий бонус за убийство.
bugmaker по-моему это более продвинутая версия третьего варианта =) вот я и опасаюсь, что для нормальной милии карты такая вещь не подойдет опасаюсь использовать обозначение SCV, ибо на данный момент этими буквами можно назвать любую привязку данных к юниту, то есть этими буквами обозначается принцип. По-моему это неправильно... NETRAT добавил: Iron разумеется кеш и только кеш, так вот я говорю про юнитов и их может быть много - неизбежны лаги при событии атаки и подсчете урона, и вообще каким образом считаем урон? (при условии, что юнитов не менее 10) |
25.01.2006, 00:31 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iron
Листовой
offline
Опыт:
24,427Активность: |
NETRAT Ща уже поздно, влом делать пример, может завтра зделаю.
|
25.01.2006, 00:39 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Iron какой пример?
NETRAT добавил: Мне не нужен пример, мне нужны мнения и предложения |
25.01.2006, 00:43 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Lawliet
offline
Опыт:
6,322Активность: |
Просче давать опыт тому кто убил... |
25.01.2006, 00:50 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Слишком просто, поэтому неинтересно |
25.01.2006, 01:06 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
Давить опыта тому, кто убил не реалистично, так как этим способом можно воспользоваться - дерутся 2 юнита, ты ждешь из далека, когда у кого-нибудь остается мало жизней подходишь и ждешь того момента в количествах жизней, рассчитывая чтобы твой удар был фатальным, убиваешь и опыт тебе начисляется, Где реалистичность? Давать опыта тому, кому ближе не реалистично, так как этим способом можно воспользоваться - дерутся 2 юнита, ты ждешь из далека, когда у кого-нибудь остается мало жизней подходишь в плотную, и опыт тебе начисляется, Где реалистичность? Надо искать другой вариант. |
25.01.2006, 09:14 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Iron
Листовой
offline
Опыт:
24,427Активность: |
Цитата:
Пример системы. Без лагов с >10 юнитами. |
|
25.01.2006, 12:21 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TiM
Старичок
offline
Опыт:
8,594Активность: |
5. Предлагаю давать герою опыт за удары. Пусть скажем 33% шанс будет у всех героев, что ему дадут опыта скажем 10%от его(аттакуемого) хп , или какой-нибудь спец. константы юнита.
6. Или же давать герою опыт за каждый удар, но давать мало(скажем уровень героя*1.4). Если герой кастует спелл, то давать ему + экспу. Если герой добивает спеллом юнита, то ему дается ++ экспа, или какой-нибудь спелл красивый типа повышение силы аттаки на некоторое время(типа летит душа на героя и когда долетает на нем bloodlust оказывается). Это я в основном для РПГшек написал. |
25.01.2006, 14:00 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Еще раз напомню - я говорю не про героев а про юнитов
В-общем я реализовал вариант с подсчетом нанесенного дамака - юнит получает дамак соответственно повреждениям, которые нанес, разделенные на максимум ХП вражеского юнита и умноженное на полную экспу за этого юнита. Финальный удар дает 25% полного опыта за юнита. Система не лагает если грамотно удалять из нее триггеры.
Всем спасибо, я у знал то что хотел, действительно предыдущий вариант [cлегка] криво. |
25.01.2006, 14:24 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
TiM
Старичок
offline
Опыт:
8,594Активность: |
тоесть юниты будут как герои но без иконки героев в углу? |
25.01.2006, 14:40 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
нет, юниты как юниты, только апгрейдятся после набранного опыта |
25.01.2006, 19:05 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
NETRAT коороче так кто убил давать 100% а потом вычислять от зависимости какое растояние между убицей и другом (да противникам опыт не добовлять это очень тупо !) например юнит замочил одного и на 600 от него стоит его друг а макс раст. получения опыта 1200 то ему дадут 50% опыта ну короче ты понел :)
Toadcop добавил: NETRAT а я понял :) ты хочешь сделать систему которую я уже пол года тому назад сделал :) я назвал её UnitUpgradeSystem прикольная но публике не понравилась так как я не раскрученая персона как на пример даже ты. да если интересно работает полностью уневерсально но ! есть одна пробле с которой ты тоже столкнёшься при тестировании пример паук (ундеда) набрал уровень и потом закопалса когда он закапываетьса то его бонусы не передаюьюса ! я для етого спец функ писал а после этого работает нормально ! а про лучницу и гепогрифа можешь забыть ! вроде там каждый раз новые юниты создаютьса !!! т.е. давай делай надеюсь она понравитьса юзерам ! |
28.01.2006, 18:38 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
Toadcop гм, забавно, моя система называется точно так же - "uus" =) я не собираюсь пускать ее в свободное плавание - система для проекта, так что "непонравилось" не будет
Не очень понял что за дела с пауком - не мог бы подробнее? И что с лучницой гиппогрифа? Успокаивает то, что вряд ли юниты этого типа будут использоваться в системе... Для меня на данный момент актуальны две другие проблемы: 1. Превращение (по сути грейд) может быть прервано отдачей приказа. Вероятность попадания приказа в интервал 0-0.01 сек очень мала, тем не менее, это случается 2. На данный момент юнит удаляется из системы после смерти, однако, будучи воскрешен (пока трупик не разложился) он оказывается уже удаленным и неактивным. Видимо, придется на мертвых юнитов таймеры добавлять и считать время разложения трупа, после того только удалять |
02.02.2006, 10:20 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
NETRAT ага... ну прикольно :) а с трупами евента нету ? (как я помню и знаю нету :( ) а жаль... а с пауками т.е. они меняютьса с помощю абилы на другого юнита т.е. там абилы (бонусы твоей системы не будут передаватьса если конечно в абиле нет флага "Типа передавать абилы" :) )
а с гипо-грифонами и лучницами ТЁМНЫЙ ЛЕС т.е. тупо можно назвать "утечкой" хотя я не уверен... еще подробней при оседлание гипо-грифа создаётьса новый юнит и наоборот т.е. всегда новые юниты ! |
03.02.2006, 16:37 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|