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