XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ConstantinGhost

offline
Опыт: 3,916
Активность:
Система крит \ уворот
Мне нужна система т.к. на GUI она будет создавать огромные лаги
1 2
Юнит атакует другого
у 1 появляется шанс крита у 2 появляется шанс уворота (скилы)
Они зависят от дистанции между ними (схема)
Когда они прекращают атаковать эти скилы убираются.
(Система не для одного и не трёх юнитов, их будет около 100)
Кто сможет реализовать?
Миниатюры
Кликните на картинку для увеличения
Название:  система.jpg
Просмотров: 116
Размер:  71.1 Кбайт  
Старый 18.12.2010, 23:56
RyoTsubaki
Отпустит - убегу :3
offline
Опыт: 3,686
Активность:
А паррирование и контрудар? Коли решил делать такую систему - разрабатывай полностью. И как дело обстоит с melee-юнитами в этой системе? Идея хороша, но требует шлифовки и реализации, собственно.
Старый 19.12.2010, 00:31
ConstantinGhost

offline
Опыт: 3,916
Активность:
RyoTsubaki, ты думаешь во вторую мировую были мили юниты?) мне нужно только для дальних атак т.к. все стрелковые
ConstantinGhost добавил:
ммм... кто всётаки сможет реализовать такое?
Старый 19.12.2010, 00:58
Banzay89

offline
Опыт: 11,155
Активность:
ConstantinGhost, реализовать такое без сомнений можно, но врятли кто за это возметься
Старый 19.12.2010, 01:14
ConstantinGhost

offline
Опыт: 3,916
Активность:
Но всёже? может всё таки кто то?) т.к. система очень нужна
Старый 19.12.2010, 01:28
spellwerk

offline
Опыт: 4,869
Активность:
нужно делать атаки полностью триггерными, иначе если одного юнита будут бить двое с разных дистанций будут некоторые проблемы.
можно дать юнитам очень маленькую атаку, и отлавливать повреждения, а там уже GetEventDamageSource и GetTriggerUnit, UnitDamageTarget и триггер один на всех сделают свое дело.
Старый 19.12.2010, 01:39
ConstantinGhost

offline
Опыт: 3,916
Активность:
Spy_, ммм... сможешь реализовать? просто нужно чтоб с разных дистанций были разные шансы и силы крита и уворота. Если сможешь реализовать скинь наработку буду тебе очень благодарен.
если интересно вот проект xgm.ru/forum/showthread.php?p=948597#post948597
Старый 19.12.2010, 01:48
spellwerk

offline
Опыт: 4,869
Активность:
ну вот пример
Прикрепленные файлы
Тип файла: w3x unitdamage.w3x (17.3 Кбайт, 17 просмотров )
Старый 19.12.2010, 02:16
ConstantinGhost

offline
Опыт: 3,916
Активность:
Spy_, м..... завтра гляну прост я с ноута тут вар не пашет (7) и уже спать нада бы) заранее спс
Старый 19.12.2010, 02:18
Klop
Папа римский
offline
Опыт: 13,006
Активность:
единственное что в голову пришло по поводу уворотов делаем спелл на основе змеиная ловкость 100% при атаке вычисляем дистанцию,задаём нужный процент,если шанс прошёл то добавляем спелл уворот 100% после атаки удаляем
Klop добавил:
вариант 2 сделать спелл уворота по уровням с процентами после проверки дистанции задавать нужный уровень спелла уворота
Старый 19.12.2010, 06:10
Rampage
Бицепс
offline
Опыт: 9,722
Активность:
А спеллбуком не проще добавить оба скилла?
Старый 19.12.2010, 08:12
spellwerk

offline
Опыт: 4,869
Активность:
Klop, а если война будут атаковать несколько с разных дистанций?
все они конечно же промахнутся, ведь если отслеживать получение урона, то мы не сможем дать войну уворот, так как урон он уже получит, а если делать через событие атакован, то придется давать абилку на некоторое время, а в это время как раз может ударить воин с близкой дистанции и промахнется.
Старый 19.12.2010, 08:44
ConstantinGhost

offline
Опыт: 3,916
Активность:
м... я незнаю может есть такая функция когда юнит именно наносит удар, давать ему скилы а потом сразу убирать? и... впринципе можно взять пьяного мастера тогда уж?
ConstantinGhost добавил:
м... ладно тогда упростим задачу. чтоб просто если юнит атакует то ему даётся пьяный мастер а если не атакует он убирается.
Старый 19.12.2010, 10:33
spellwerk

offline
Опыт: 4,869
Активность:
Цитата:
Сообщение от ConstantinGhost
когда юнит именно наносит удар

unit takes damage
срабатывает в момент получения урона, но в этот момент здоровье еще не отнимается.

Spy_ добавил:
я вижу единственный способ: регистрировать для каждого юнита событие unit takes damage, и через триггер наносить урон.
Старый 19.12.2010, 10:59
ConstantinGhost

offline
Опыт: 3,916
Активность:
ну да... сможешь реализовать?
Старый 19.12.2010, 12:05
spellwerk

offline
Опыт: 4,869
Активность:
смотри пост #8
Старый 19.12.2010, 20:11
ConstantinGhost

offline
Опыт: 3,916
Активность:
Spy_, ммм... непочень понятно, единственное что происходило над синим стрелком залёная хрень появлялась и всё... можешь обьяснить что там происходит?
TESH.scrollpos=-1
TESH.alwaysfold=0
function Trig_unitdamaged_Actions takes nothing returns nothing
local unit attacker = GetEventDamageSource()
local unit victim = GetTriggerUnit()
local real dx = GetUnitX(attacker)-GetUnitX(victim)
local real dy = GetUnitY(attacker)-GetUnitY(victim)
local real distance = SquareRoot(dx*dx+dy*dy)
local real max_distance = 1500.
local real damage = 50.
local texttag tt
if ( GetRandomReal(1.,100.) > 20.-(max_distance-distance)/100. ) then
if( GetRandomReal(1.,100.) <= 25.-distance/100. ) then
set damage = damage * ( 1.2 + distance/1000. )
endif
set tt = CreateTextTagUnitBJ("-"+I2S(R2I(damage)),victim,50.,10.,100.,0.,0.,0.)
call DisableTrigger(gg_trg_unitdamaged)
call UnitDamageTarget(attacker,victim,damage,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_​WHOKNOWS)
call EnableTrigger(gg_trg_unitdamaged)
else
set tt = CreateTextTagUnitBJ("уворот",victim,50.,10.,100.,0.,0.,0.)
endif
call SetTextTagVelocityBJ(tt,64.,90.)
call SetTextTagLifespan(tt,1.5)
call SetTextTagFadepoint(tt,.5)
call SetTextTagPermanent(tt,false)
victim = null
attacker = null
tt = null
endfunction
===========================================================================
function InitTrig_unitdamaged takes nothing returns nothing
set gg_trg_unitdamaged = CreateTrigger( )
call TriggerAddAction( gg_trg_unitdamaged, function Trig_unitdamaged_Actions )
endfunction
И причем варик у меня всё забраковал сказав что это всё неверный триггер
Старый 19.12.2010, 20:54
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
ConstantinGhost:
victim = null
attacker = null
tt = null
тут надо так
set victim = null
set attacker = null
set tt = null
Старый 19.12.2010, 20:58
spellwerk

offline
Опыт: 4,869
Активность:
а ну да, давно я не писал на обычном джассе)
Старый 19.12.2010, 21:10
ConstantinGhost

offline
Опыт: 3,916
Активность:
так обьяснишь? как это работает и что в итоге получается?
Старый 20.12.2010, 00:44
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 12:55.