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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
[ВАЖНО] Помощь по JASS
FlaReoNДата: Пятница, 19 Февраля 2010, 19:36:49 | Сообщение # 151
7 уровень
Группа: Проверенные
Сообщений: 456
Награды: 0
Репутация: 144
Блокировки:
ну H_A_PK например нихрена не шарит...
на самом деле надо юзать ивент UNIT_DAMAGED, т.е. вешать на юнита триггер с таким ивентом и всё будет ok



 

kaisarДата: Суббота, 20 Февраля 2010, 09:40:58 | Сообщение # 152
9 уровень
Группа: Проверенные
Сообщений: 814
Награды: 0
Репутация: 91
Блокировки:
Quote (kaisar)
Quote (kaisar)как сделать скилл у наикса в доте, он бьет и ему добавляется 7 % от хп атакованного юнита, я так понел без jass это реализовать правильно нельзя, Kartoha, сказал что если обойтись без jass то некоторые особо умные игроки смогут восстановить все хп если будут юзать атаку и тут же H таким образом быстрее восстановить ХП. помогите, идею подкиньте ой ёмаё зачем джас мучать Событие Атокован Условие Есть такаято абила у Атакующего юнита. Действие Установить переменную ХП(0) = здаровье текущее у Атокованого юнита Ждать условие хп(0) > здаровье текущее у Атокованого юнита проверяя каждые 0.10 установить переменую ХП(1) = (здаровье текущее у Атокованого юнита / 100)*7) // дальше прибовляй хп

H_A_PK, какой тип переменной? в
Quote (kaisar)
Установить переменную ХП(0) = здаровье текущее у Атокованого юнита
 

SvyagaДата: Суббота, 20 Февраля 2010, 11:38:56 | Сообщение # 153
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (kaisar)
как сделать скилл у наикса в доте, он бьет и ему добавляется 7 % от хп атакованного юнита, я так понел без jass это реализовать правильно нельзя, Kartoha, сказал что если обойтись без jass то некоторые особо умные игроки смогут восстановить все хп если будут юзать атаку и тут же H таким образом быстрее восстановить ХП. помогите, идею подкиньте ой ёмаё зачем джас мучать Событие Атокован Условие Есть такаято абила у Атакующего юнита. Действие Установить переменную ХП(0) = здОровье текущее у АтАкованого юнита Ждать условие хп(0) > здОровье текущее у Атокованого юнита проверяя каждые 0.10 установить переменую ХП(1) = (здаровье текущее у Атокованого юнита / 100)*7) // дальше прибовляй хп

Это не сработает, так как если врагу будет нанесён урон от кого-то ещё (а это возможно), то оно будет также добавлено в +ХП. Скорее всего эта система задействуется с событием "юнит получает урон" вместо "юнит атакован", и при условии что у дамагера есть этот скил и тип урона == нормальному (только вот не знаю точно можно такое условие сделать или нет, так как сам не юзал подобное, это условие чтоб срабатывало только при атаках), то дамагеру прибавляется хп в зависимости от уровня скила и нанесённого урона, и ТАК ЖЕ наносится дополнительный урон врагу, равный +ХП, как и делается в скиле наикса.
P.S. Полностью ошибки из цитаты исправлять грамматические стало лень :D


Сообщение отредактировал Svyaga - Суббота, 20 Февраля 2010, 11:39:11
 

kaisarДата: Суббота, 20 Февраля 2010, 14:54:16 | Сообщение # 154
9 уровень
Группа: Проверенные
Сообщений: 814
Награды: 0
Репутация: 91
Блокировки:
Svyaga, будет еще условие типа атакующий юнит имеет спелл кровопийца.
 

SvyagaДата: Суббота, 20 Февраля 2010, 19:31:10 | Сообщение # 155
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (kaisar)
Svyaga, будет еще условие типа атакующий юнит имеет спелл кровопийца.

Quote (Svyaga)
при условии что у дамагера есть этот скил
 

H_A_PKДата: Воскресенье, 21 Февраля 2010, 14:18:54 | Сообщение # 156
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Quote (FlaReoN)
ну H_A_PK например нихрена не шарит...
на самом деле надо юзать ивент UNIT_DAMAGED, т.е. вешать на юнита триггер с таким ивентом и всё будет ok

можно ещё на основе сферы замедления <_< , так как там каст идёт строга после удара.
Quote (FlaReoN)
ну H_A_PK например нихрена не шарит...

кстате, у меня подобный спел так и сделан, и всё нормально работает.


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец
 

FlaReoNДата: Воскресенье, 21 Февраля 2010, 14:55:58 | Сообщение # 157
7 уровень
Группа: Проверенные
Сообщений: 456
Награды: 0
Репутация: 144
Блокировки:
Quote
можно ещё на основе сферы замедления , так как там каст идёт строга после удара.

получаем никому ненужный эффект сферы
Quote
и всё нормально работает.

свиду может и так. но в серьезных картах такой способ лучше обходить стороной



 

H_A_PKДата: Воскресенье, 21 Февраля 2010, 15:41:57 | Сообщение # 158
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Quote (FlaReoN)
получаем никому ненужный эффект сферы

но ведь это один из способов ^_^
Quote (FlaReoN)

свиду может и так. но в серьезных картах такой способ лучше обходить стороной

Дооо. но ведь пашет :/
хотя ты прав как лучший вариант это естественно джаз. вешаю на атакованного юнита триггер)


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец
 

SvyagaДата: Воскресенье, 21 Февраля 2010, 19:01:39 | Сообщение # 159
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (H_A_PK)
вешаю на атакованного юнита триггер)

И снова не так понял :/
Не EVENT_PLAYER_UNIT_ATTACKED , а EVENT_UNIT_DAMAGED.
 

FlaReoNДата: Воскресенье, 21 Февраля 2010, 19:19:06 | Сообщение # 160
7 уровень
Группа: Проверенные
Сообщений: 456
Награды: 0
Репутация: 144
Блокировки:
Code
Не EVENT_PLAYER_UNIT_ATTACKED , а EVENT_UNIT_DAMAGED.

при ивенте ATTACKED вешаем DAMAGED
но! не создавая новый триггер, а юзая уже созданный где-то в начале



 

SvyagaДата: Воскресенье, 21 Февраля 2010, 19:21:22 | Сообщение # 161
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (FlaReoN)
при ивенте ATTACKED вешаем DAMAGED

интересно как=)
 

FlaReoNДата: Воскресенье, 21 Февраля 2010, 19:46:19 | Сообщение # 162
7 уровень
Группа: Проверенные
Сообщений: 456
Награды: 0
Репутация: 144
Блокировки:
function Init takes nothing returns nothing
local trigger t= CreateTrigger()
set sometrig = CreateTrigger()
set somegroup = CreateGroup()
call TriggerAddAction(sometrig , function VampiricDamage)
call TriggerAddCondition(sometrig , Condition(function SomeConditions))
call TriggerRegisterAnyUnitEventBJ(t , EVENT_PLAYER_UNIT_ATTACKED)
call TriggerAddCondition(t , Condition(function SomeConditions2))
call TriggerAddAction(t , function SomeActions)
set t = null
endfunction

в SomeActions делаешь такое:

local unit t= GetTriggerUnit()
call GroupAddUnit(somegroup , t)
call TriggerRegisterUnitEvent(sometrig , t , EVENT_UNIT_DAMAGED)
set t = null

в условиях триггера т добавить что атакованый юнит не принадлежит группе somegroup

Добавлено (21-02-2010, 19:46)
---------------------------------------------
здесь конечно есть еще куча всяких ньюансов. но я слишком крут для того, чтобы тратить время на вас



 

SvyagaДата: Воскресенье, 21 Февраля 2010, 19:48:50 | Сообщение # 163
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
"call TriggerAddAction(sometrig , function VampiricDamage) "
А это что?
И напиши уж тогда полностью всю систему, и с атакованным и с дамагом, чтобы я хоть оценить мог и посмотреть будет полностью работать или нет, а то кусок кода не поможет :(
 

FlaReoNДата: Воскресенье, 21 Февраля 2010, 20:15:09 | Сообщение # 164
7 уровень
Группа: Проверенные
Сообщений: 456
Награды: 0
Репутация: 144
Блокировки:
Quote
"call TriggerAddAction(sometrig , function VampiricDamage) "

с одной из своих систем выхватил

в общем - это действие в котором происходит нанесение урона и там ты должен выполнять нужные дамми-касты и т.п.

Code
чтобы я хоть оценить мог и посмотреть будет полностью работать или нет

ну у меня в Эвиксе все работает =)

вот идеальный вариант этой системы:

Code
scope VOKRUG_ODNI_NUBI initializer Init

   globals
     private player  test_p = Player(0x00)
     private trigger test_t = CreateTrigger()
     private timer   test_ti = CreateTimer()
     private group   test_g = CreateGroup()
   endglobals

   private function OMFG takes nothing returns boolean
     return not(IsUnitInGroup(GetTriggerUnit(),test_g))
   endfunction

   private function VampiricRemove takes nothing returns nothing
     call EnableTrigger(test_t)
     call PauseTimer(test_ti)
   endfunction

   private function DAMAGE takes nothing returns nothing
     local unit t = GetTriggerUnit()
     local unit a = GetEventDamageSource()

     call DisableTrigger(test_t)
     call DisplayTextToPlayer(test_p,0.,0.,R2S(GetEventDamage()))

     call TimerStart(test_ti,0.,false,function VampiricRemove)

     set t = null
     set a = null

   endfunction

   private function ACTIONWTF takes nothing returns nothing
     local unit t = GetTriggerUnit()
     call GroupAddUnit(test_g,t)
     call TriggerRegisterUnitEvent(test_t, t, EVENT_UNIT_DAMAGED)
     set t = null
   endfunction

   private function Init takes nothing returns nothing
     local trigger t = CreateTrigger()

     call TriggerAddAction(test_t, function DAMAGE)
     call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_ATTACKED)
     call TriggerAddCondition(t, Condition(function OMFG))
     call TriggerAddAction(t, function ACTIONWTF)

     set t = null
   endfunction

endscope

если нужно муи - делайте через структуры, там ничего сложного нет

Добавлено (21-02-2010, 20:15)
---------------------------------------------
система офк моя



 

SvyagaДата: Воскресенье, 21 Февраля 2010, 20:23:38 | Сообщение # 165
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Эта система далека от идеала. Вот пример:
Если у героя с этой способностью будет предмет типа дагона в доте, то ---> если в момент замаха на атаку (когда начинается работа триггера) применить этот предмет, то система сработает относительно урона от дагона.
Про не муи молчу, так как это указано уже =)
"scope VOKRUG_ODNI_NUBI initializer Init "
Просто мысли читать никто не умеет, так же как и оценивать систему, которую не видят.


Сообщение отредактировал Svyaga - Воскресенье, 21 Февраля 2010, 20:24:10
 

FlaReoNДата: Воскресенье, 21 Февраля 2010, 20:39:53 | Сообщение # 166
7 уровень
Группа: Проверенные
Сообщений: 456
Награды: 0
Репутация: 144
Блокировки:
Quote
Если у героя с этой способностью будет предмет типа дагона в доте, то ---> если в момент замаха на атаку (когда начинается работа триггера) применить этот предмет, то система сработает относительно урона от дагона.

это и есть та куча ньюансов, о которых я говорил выше. для таких вещей - да, надо расширять систему, дописыванием 1-2 структур.



 

SvyagaДата: Воскресенье, 21 Февраля 2010, 20:51:20 | Сообщение # 167
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Кста, ещё один "ньюанс". Когда ты замахиваешься, и ему кто-то другой наносит урон любым способом, то ему будет +ХП а не тебе (допустим есть ещё 1 юнит с такой способностью и с предметом как дагон) Я не говорю о том что здесь вообще нет даже нанесения урона и +ХП. Хоть это и не сложно добавить, но раз уж написал систему то доделай хотя бы...
Quote (FlaReoN)
это и есть та куча ньюансов

Ну а зачем тогда писать сюда систему, которая не работает?
P.S.
Quote (FlaReoN)
но я слишком крут для того, чтобы тратить время на вас

Ну а зачем вообще тогда в эту тему писать. о_О

kaisar, Я подумаю что можно сделать(так как мне самому могла бы пригодиться подобная система), но ничего не обещаю =)

Сообщение отредактировал Svyaga - Воскресенье, 21 Февраля 2010, 23:53:14
 

DoctorGesterДата: Понедельник, 22 Февраля 2010, 10:57:39 | Сообщение # 168
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Svyaga, делается так: пишем одну систему отлова урона, переделываем все спелы карты на жасс так, чтобы урон наносился с помощью дамми, тогда у тебя будет разделение на физический и магический урон, с помощью системы отлова урона добавляем ивенты в нужный триггер, в этом триге проверяем тип урона, далее твои действия, довольно просто пишется за 15-30 минут, в зависимости от твоих познаний в жассе. Это стоит сделать, так как будет возможность делать пассивки, которые реагируют на получение урона, оперировать уроном от заклинаний и т.д. Допустим триггерный крит ~15 строк.
 

SvyagaДата: Понедельник, 22 Февраля 2010, 11:08:36 | Сообщение # 169
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
переделываем все спелы карты на жасс так, чтобы урон наносился с помощью дамми

Это далеко не самый правильный способ
Quote (DoctorGester)
в этом триге проверяем тип урона

Как проверить тип урона? Мне кажется если бы это было возможно, то и спорить на эту тему не пришлось, так как с наличием такого способа сделать такую систему не составляло труда о_О
 

DoctorGesterДата: Понедельник, 22 Февраля 2010, 21:16:32 | Сообщение # 170
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Svyaga, лол
Quote
переделываем все спелы карты на жасс так, чтобы урон наносился с помощью дамми

не понятно чтоли? С помощью типа юнита нанесшего урон, определяем тип урона. Школоло...
 

[DUОS]Дата: Понедельник, 22 Февраля 2010, 21:35:31 | Сообщение # 171
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Quote (DoctorGester)
Школоло...

:)
Лолмоё, джасс не все сразу понимают))


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

SvyagaДата: Понедельник, 22 Февраля 2010, 22:18:38 | Сообщение # 172
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
не понятно чтоли? С помощью типа юнита нанесшего урон, определяем тип урона. Школоло...

Я понял и с первого раза, но это не решение. Точнее есть и другое решение, просто нужно до него додуматься.
Quote (|DUОS|)
Svyaga, лол

Я посмотрел все функции, связанные с уроном, и ничего, что могло распознать тип урона (не говоря о том что нет инфы о типе урона, только GetEventDamage(), что является реальной). Напиши уж код чтобы понятно было такму школоло как мне xDDD
Кстати урон от способности должен быть физическим, т.е. таким же как от атаки, так что проверка типа урона не пойдёт.
Quote (|DUОS|)
Лолмоё, джасс не все сразу понимают))

P.S. У меня вся карта на джассе, работаю с джассом года 2 минимум.


Сообщение отредактировал Svyaga - Понедельник, 22 Февраля 2010, 23:18:31
 

DoctorGesterДата: Вторник, 23 Февраля 2010, 10:41:25 | Сообщение # 173
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Svyaga, мне так хочется выругаться матом и сказать тебе много нехорошего.
Quote
P.S. У меня вся карта на джассе, работаю с джассом года 2 минимум.

С трудом верится. Иди гуи учить.

Code


function DamageTarget takes unit dmr, unit target, real dmg returns nothing
local unit u = CreateUnit(GetOwningPlayer(dmr), 'dmgr', 0, 0, 0)
call UnitApplyTimedLife(u, 0, 0.1)
call UnitDamageTarget(u,target,dmg,true,true,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_NORMAL,WEAPON_TYPE_METAL_HEAVY_SLICE)
set u = null
endfunction

library DamSys initializer i

globals
public trigger DamageTrig
private hashtable ht = InitHashtable()
private group g = CreateGroup()
endglobals

private function c takes nothing returns nothing
local unit u = GetEnumUnit()
if IsUnitInGroup(u,g) == false then
call GroupAddUnit(g,u)
call TriggerRegisterUnitEvent(DamageTrig, u, EVENT_UNIT_DAMAGED)
endif
set u = null
endfunction

private function a takes nothing returns nothing
local group gr = CreateGroup()
call GroupEnumUnitsInRect(gr,bj_mapInitialPlayableArea,null)
call ForGroup(gr,function c)
call GroupClear(gr)
call DestroyGroup(gr)
set gr = null
endfunction

private function i takes nothing returns nothing
local timer tim = CreateTimer()
call TimerStart(tim,0.1,true,function a)
set tim = null
endfunction

endlibrary

scope CriticalHit initializer i

private function c takes nothing returns boolean
local unit u = GetEventDamageSource()
local real i = 0
if GetUnitAbilityLevel(u, 'crht') > 0 and GetRandomInt(0,100) < 8 then
set i = ((GetUnitAbilityLevel(u, 'crht')*0.2) + 0.5) * GetHeroAgi(u, true)
call DamageTarget(u, GetTriggerUnit(), i)
return true
endif
set u = null
return true
endfunction

private function i takes nothing returns nothing
call TriggerAddCondition(DamSys_DamageTrig, Condition(function c))
endfunction

endscope

Незачто.

 

H_A_PKДата: Вторник, 23 Февраля 2010, 14:53:07 | Сообщение # 174
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Code
function Trig_CameraActions_Actions takes nothing returns nothing
          local real Z1
          local real Z2
          local unit u = udg_unit
          local real Angle1 = 350
          local real offset
          local real Angle2
          local real x
          local real y
          local real x2
          local real y2
           set x = GetUnitX(u)-400*Cos(GetUnitFacing(u)*bj_DEGTORAD)
           set y = GetUnitY(u)-400*Sin(GetUnitFacing(u)*bj_DEGTORAD)
           set x2 = GetUnitX(u)
           set y2 = GetUnitY(u)
                set Z1 = GetLocationZ(Location(x2, y2))
                set Z2 = GetLocationZ(Location(x, y))
                  if(Z1+100>=Z2)then
                      set offset = GetCameraField(CAMERA_FIELD_ZOFFSET)+GetUnitFlyHeight(u)+300+Z1-GetCameraEyePositionZ()
                      set Angle1 = Angle1 - 15
                  else
                      set offset = R2I(GetCameraField(CAMERA_FIELD_ZOFFSET))+250+GetUnitFlyHeight(u)+Z2-R2I(GetCameraEyePositionZ())
                      set Angle1 = Angle1 - 40
                  endif
                  set  Angle2 = GetUnitFacing(u)
                  call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_TARGET_DISTANCE, 400, 0.50 )
                  call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ANGLE_OF_ATTACK, Angle1, 0.50 )
                  call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_FIELD_OF_VIEW, 2200.00, 0.50 )
                  call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ROTATION, Angle2, 0.50 )
                  call SetCameraFieldForPlayer( Player(0), CAMERA_FIELD_ZOFFSET, offset, 0.50 )
             set u = null
endfunction

//===========================================================================
function InitTrig_CameraActions takes nothing returns nothing
      set gg_trg_CameraActions = CreateTrigger(  )
      call TriggerRegisterTimerEventPeriodic( gg_trg_CameraActions, 0.05 )
      call TriggerAddAction( gg_trg_CameraActions, function Trig_CameraActions_Actions )
endfunction

почему лагает О_о ?
мб кто упростит код ? зарание спасибо.

Добавлено (23-02-2010, 14:53)
---------------------------------------------

Code
function Trig_sd_Func001A takes nothing returns nothing
  local unit u = GetEnumUnit()
  local real x = GetUnitX(u)+80*Cos(GetUnitFacing(u)*bj_DEGTORAD)
  local real y = GetUnitY(u)+80*Sin(GetUnitFacing(u)*bj_DEGTORAD)
  local real z = GetLocationZ(Location(x, y))
  local real z2 = GetLocationZ(Location(GetUnitX(u), GetUnitY(u)))
  local real z3Rb = z - z2
  if IsUnitType(u, UNIT_TYPE_GROUND) == true or IsUnitType(u, UNIT_TYPE_HERO) == true then
   if z3Rb > 30 and z3Rb < 69 then
    call SetUnitMoveSpeed( u, ( GetUnitDefaultMoveSpeed(u) * 0.30 ))
   endif
     if z3Rb > 70 and z3Rb < 179 then
      call SetUnitMoveSpeed( u, ( GetUnitDefaultMoveSpeed(u) * 0.10 ))
     endif
      if z3Rb > 180 and z3Rb < 999 then
       call SetUnitMoveSpeed( u, 0.00)
      endif
    if z3Rb >= -15 and z3Rb <= 15 then
     call SetUnitMoveSpeed( u, GetUnitDefaultMoveSpeed(u))
    endif
    if z3Rb < -30 and z3Rb > -69 then
     call SetUnitMoveSpeed( u, ( GetUnitDefaultMoveSpeed(u) * 1.50 ))
    endif
     if z3Rb < -80 and z3Rb > -999 then
      call SetUnitMoveSpeed( u, ( GetUnitDefaultMoveSpeed(u) * 2.00 ))
     endif
   endif
  set u = null
endfunction

function Trig_Hill_Actions takes nothing returns nothing
     call ForGroupBJ( GetUnitsInRectAll(GetEntireMapRect()), function Trig_sd_Func001A )
endfunction

//===========================================================================
function InitTrig_Hill takes nothing returns nothing
     set gg_trg_Hill = CreateTrigger(  )
     call TriggerRegisterTimerEventPeriodic( gg_trg_Hill, 0.20 )
     call TriggerAddAction( gg_trg_Hill, function Trig_Hill_Actions )
endfunction

и этот заодно =)


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец


Сообщение отредактировал H_A_PK - Вторник, 23 Февраля 2010, 14:50:09
 

DoctorGesterДата: Вторник, 23 Февраля 2010, 19:16:36 | Сообщение # 175
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Так, чуть ошибся, заменяем это
Code

globals  
public trigger DamageTrig = CreateTrigger()
private group g = CreateGroup()  
endglobals
 

Поиск:

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