Сейчас 02:33:42 Вторник, 26 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
JASS - Unit Tacking Damage
Mep3aB4uKДата: Пятница, 11 Марта 2011, 14:53:58 | Сообщение # 1
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
Киньте пример описанием как к Событе-Specific Unit Event можно привязать юнитов указаных переременной
 

ШтормДата: Пятница, 11 Марта 2011, 14:56:19 | Сообщение # 2
9 уровень
Группа: Проверенные
Сообщений: 835
Награды: 0
Репутация: 165
Блокировки:
Quote (Mep3aB4uK)
JASS

Это гуи же.
 

DreiiДата: Пятница, 11 Марта 2011, 14:57:41 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Mep3aB4uK,пикай и вяжи

 

Mep3aB4uKДата: Пятница, 11 Марта 2011, 15:01:41 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
Quote (Dreii)
пикай и вяжи

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

DreiiДата: Пятница, 11 Марта 2011, 15:02:57 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Mep3aB4uK, я гвоорю пикая и вяжи

Добавлено (11-03-2011, 15:02)
---------------------------------------------
Mep3aB4uK, Событие зашел в зону игровой карты
тут привязка
Событие начало игры
тут привязка


 

Mep3aB4uKДата: Пятница, 11 Марта 2011, 15:09:50 | Сообщение # 6
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
Quote (Dreii)
я гвоорю пикая и вяжи
а можно короткое описание как их пикать и вязать?

Добавлено (11-03-2011, 15:09)
---------------------------------------------
Событе-Specific Unit Event - сюда нельзя вставлять переменные на гуи. Так пикнутых юнитов не вставиш.

 

DreiiДата: Пятница, 11 Марта 2011, 15:10:26 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Mep3aB4uK, .... кароче ты не понимаешь меня.

 

lawsonДата: Пятница, 11 Марта 2011, 15:11:39 | Сообщение # 8
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Dreii)
кароче ты не понимаешь меня.

Извини но я чета тоже не понимаю пикай и вяжи. :)


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

DreiiДата: Пятница, 11 Марта 2011, 15:17:31 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, Mep3aB4uK,
Code
function Trig_addDamage_Actions takes nothing returns nothing
call TriggerRegisterUnitEvent(gg_trg_ManaBurn,GetEnteringUnit(),EVENT_UNIT_DAMAGED)//gg_trg_ManaBurn имя трига  
endfunction

//===========================================================================
function InitTrig_addDamage takes nothing returns nothing
     set gg_trg_addDamage=CreateTrigger()
     call TriggerRegisterEnterRectSimple(gg_trg_addDamage,bj_mapInitialPlayableArea)
     call TriggerAddAction(gg_trg_addDamage,function Trig_addDamage_Actions)
endfunction

Code

local group g=CreateGroup()
local unit e
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,null)
   loop  
     set e=FirstOfGroup(g)  
     exitwhen e==null  
    call TriggerRegisterUnitEvent(gg_trg_ManaBurn,e,EVENT_UNIT_DAMAGED)////gg_trg_ManaBurn имя трига  
    call GroupRemoveUnit(g,e)
endloop  
   call DestroyGroup(g)
set g=null
//===========================================================================
function InitTrig_init takes nothing returns nothing
     set gg_trg_init=CreateTrigger()
     call TriggerRegisterTimerEventSingle(gg_trg_init,0.01)
     call TriggerAddAction(gg_trg_init,function Trig_init_Actions)
endfunction


 

Mep3aB4uKДата: Пятница, 11 Марта 2011, 15:18:34 | Сообщение # 10
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
Quote (lawson)
Извини но я чета тоже не понимаю пикай и вяжи.

Опишу скил, может так поймете...
Юнит получает урон(не атакован, а именно получает урон)
услови - полученный урон меньше Х
действие- тому кто наносит урон наносится Х урона
 

lawsonДата: Пятница, 11 Марта 2011, 15:18:45 | Сообщение # 11
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Dreii)
call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea,null)

А ты об этом.

call TriggerRegisterTimerEventSingle(gg_trg_init,0.01)- бред!


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Пятница, 11 Марта 2011, 15:19:17
 

DreiiДата: Пятница, 11 Марта 2011, 15:19:12 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, втф?Пикать тех кто был на карте во время старта

 

lawsonДата: Пятница, 11 Марта 2011, 15:26:32 | Сообщение # 13
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Mep3aB4uK)
действие- тому кто наносит урон наносится Х урона

О боже и все - ты бы сразу тогда обяснил за чем тебе это. Пффф Это элементарно!

Добавлено (11-03-2011, 15:26)
---------------------------------------------
Вот весь триггер!
Где #### - твое условие
$$$$ - кол-во урона.



Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Пятница, 11 Марта 2011, 15:32:42
 

Mep3aB4uKДата: Пятница, 11 Марта 2011, 15:27:36 | Сообщение # 14
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
Quote (lawson)
О боже и все - ты бы сразу тогда обяснил за чем тебе это. Пффф Это элементарно!

Если ты о том что,
юнит атакован
условие-бла-бла
действие нанести урон атакующему юниту, то ты не понял

Добавлено (11-03-2011, 15:27)
---------------------------------------------

Quote (Mep3aB4uK)
то ты не понял

если не так скин пример плиз
 

lawsonДата: Пятница, 11 Марта 2011, 15:27:42 | Сообщение # 15
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (Mep3aB4uK)
юнит атакован

Так и делаеться
Сначала регистрируеться событие юнита атакован черезщ него регистрируеться событие юниту нанесен урон.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Пятница, 11 Марта 2011, 15:34:56 | Сообщение # 16
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Quote (lawson)
local trigger t = CreateTrigger()
Где обнуление локального триггера?
Quote (lawson)
function Damaged takes nothing returns nothing
Где удаление действия и уничтожение триггера? Почему нет таймера на случай отмены атаки?

Добавлено (11-03-2011, 15:34)
---------------------------------------------
И где проверка на атакующего?




Сообщение отредактировал SirNikolas - Пятница, 11 Марта 2011, 15:45:56
 

lawsonДата: Пятница, 11 Марта 2011, 15:36:18 | Сообщение # 17
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (SirNikolas)
Где удаление действия и уничтожение триггера?

Да че вы придрались на скорую руку делал.
Quote (SirNikolas)
и почему нет таймера на случай отмены атаки

А вот это да. Я это не учел.

Добавлено (11-03-2011, 15:36)
---------------------------------------------

Quote (lawson)
И где проверка на атакующего?

Я же говорю это триггер пример. Если надо могу сделать полынй только тогда придеться все обяснить что от не го требуеться.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

Mep3aB4uKДата: Пятница, 11 Марта 2011, 15:36:51 | Сообщение # 18
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
Quote (lawson)
него регистрируеться событие юниту нанесен урон.

и можно установить в условии - если HERO получает 20 или меньше урона то нанести тому обратно 20 урона?
Опиши как так зделать плиз, а то заипался думать
 

lawsonДата: Пятница, 11 Марта 2011, 15:38:57 | Сообщение # 19
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Где #### - твое условие поставь там 20.

Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Пятница, 11 Марта 2011, 15:39:06 | Сообщение # 20
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
lawson, хорошо, проверкой на атакующего на скорую руку можно пренебречь. Но ты не подумал, что при каждой последующей атаке юниту будет наноситься все больше и больше урона (т. к. при каждой атаке создается новый триггер)?

 

lawsonДата: Пятница, 11 Марта 2011, 15:43:39 | Сообщение # 21
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Кароче создаешь триггер под именем j там потом конвертировать в текст и все удаляешь от туда и встявляешь мой триггер если он тебе подходит там только нет уловий на того кто атакует.

Добавлено (11-03-2011, 15:41)
---------------------------------------------

Quote (SirNikolas)
наноситься все больше и больше урона (т. к. при каждой атаке создается новый триггер)?

И что тогда делать?

Добавлено (11-03-2011, 15:42)
---------------------------------------------
Кароче сделай ему правильно а то у меня ты находищь какие то ошибки.

Добавлено (11-03-2011, 15:43)
---------------------------------------------
Ты что имеешь ввиду создать глобалку триггер?


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Пятница, 11 Марта 2011, 15:45:01 | Сообщение # 22
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
local trigger trig = GetTriggeringTrigger()
call TriggerClearActions(trig)
call DestroyTrigger(trig)
set trig = null

Добавлено (11-03-2011, 15:45)
---------------------------------------------
Нет, я имею в виду использовать хэш для того, чтобы прицепить к триггеру таймер (которого у тебя нет).


 

lawsonДата: Пятница, 11 Марта 2011, 15:47:20 | Сообщение # 23
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Quote (SirNikolas)
хэш для того, чтобы прицепить к триггеру таймер

АА понятно.

Добавлено (11-03-2011, 15:46)
---------------------------------------------
Сделай ему чтоб было без ошибок.

Добавлено (11-03-2011, 15:47)
---------------------------------------------
Тоесть когда юнита атакуют то создавать таймер а когда ему наноситься урон то вырубать таймер и удалять триггре?


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

SirNikolasДата: Пятница, 11 Марта 2011, 16:00:10 | Сообщение # 24
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Code
function Damage_Timer takes nothing returns nothing
     local timer t = GetExpiredTimer()
     local integer id = GetHandleId(t)
     local trigger trig = LoadTriggerHandle(udg_Hash, id, 0)
     call FlushChildHashtable(udg_Hash, GetHandleId(trig))
     call TriggerClearActions(trig)
     call DestroyTrigger(trig)
     call RemoveSavedHandle(udg_Hash, id, 0)
     call DestroyTimer(t)
     set trig = null
     set t = null
endfunction

function Damaged takes nothing returns nothing
     local unit a = GetEventDamageSource()
     local trigger trig = GetTriggeringTrigger()
     local integer id = GetHandleId(trig)
     local timer t = LoadTimerHandle(udg_Hash, id, 0)
     if GetEventDamage() < #### and a == LoadUnitHandle(udg_Hash, id, 1) then
         call UnitDamageTarget(GetTriggerUnit(), a, $$$$, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_WHOKNOWS)
         call RemoveSavedHandle(udg_Hash, GetHandleId(t), 0)
         call DestroyTimer(t)
         call FlushChildHashtable(udg_Hash, id)
         call TriggerClearActions(trig)
         call DestroyTrigger(trig)
     endif
     set a = null
     set trig = null
     set t = null
endfunction

function Trig_j_Actions takes nothing returns nothing
     local trigger trig = CreateTrigger()
     local timer t = CreateTimer()
     local integer id = GetHandleId(trig)
     call TriggerRegisterUnitEvent(trig, GetTriggerUnit(), EVENT_UNIT_DAMAGED)
     call TriggerAddAction(trig, function Damaged)
     call SaveAgentHandle(udg_Hash, GetHandleId(t), 0, trig)
     call SaveAgentHandle(udg_Hash, id, 0, t)
     call SaveAgentHandle(udg_Hash, id, 1, GetAttacking())
     call TimerStart(t, .5, false, function Damage_Timer)
     set t = null
     set trig = null
endfunction

//===========================================================================
function InitTrig_j takes nothing returns nothing
     local trigger trig = CreateTrigger)
     local integer i = 0
     set udg_Hash = InitHashtable()
     loop
         call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_ATTACKED, null)
         exitwhen i == 15
         set i = i + 1
     endloop
     call TriggerAddAction(trig, function Trig_j_Actions)
     set trig = null
endfunction
Нужно создать переменную Hash типа Хэш-таблица.


 

lawsonДата: Пятница, 11 Марта 2011, 16:03:10 | Сообщение # 25
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
SirNikolas,
Ну фига себе. 0о

Добавлено (11-03-2011, 16:03)
---------------------------------------------
Не знал что так можно SaveAgentHandle()


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz