Добавлен Faion,
не публикуется
library FastAbilityEvents uses Ascii
{
public hashtable EventHashtable;
#define private validPermits = 5;
//Инит абилок
callback onInit()
{
int abilityId = 0;
int permitsCount = 0;
int initCount = 0;
bool flag = true;
EventHashtable = InitHashtable();
debug("ИНИЦИАЛИЗАЦИЯ СПОСОБНОСТЕЙ НАЧАТА!\n");
for(int i = 0; i < 34 && flag; i++)
{
for(int j = 0; j < 34 && flag; j++)
{
for(int k = 0; k < 34 && flag; k++)
{
string abilStrId = "A"+ Int2Char(i) + Int2Char(j) + Int2Char(k);
abilityId = S2A(abilStrId);
if (GetObjectName(abilityId) != "Default string")
{
if (permitsCount > 0)
{
permitsCount = 0;
}
SaveStr(EventHashtable,0,abilityId,abilStrId);
initCount++;
}
else
{
permitsCount++;
if (permitsCount > validPermits)
{
flag = false;
debug("ИНИЦИАЛИЗАЦИЯ СПОСОБНОСТЕЙ ЗАВЕРШЕНА!\nИНЦИАЛИЗИРОВАНО: " + I2S(initCount-permitsCount) + " СПОСОБНОСТЕЙ!");
}
}
}
}
}
}
private void SpellEffectAction()
{
ExecuteFunc("funcSpellEffect"+LoadStr(EventHashtable,0,GetSpellAbilityId()))
}
private void SpellCastAction()
{
ExecuteFunc("funcSpellCast"+LoadStr(EventHashtable,0,GetSpellAbilityId()))
}
private void SpellChannelAction()
{
ExecuteFunc("funcSpellChannel"+LoadStr(EventHashtable,0,GetSpellAbilityId()))
}
private void SpellEndCastAction()
{
ExecuteFunc("funcSpellEndCast"+LoadStr(EventHashtable,0,GetSpellAbilityId()))
}
private void SpellFinishAction()
{
ExecuteFunc("funcSpellFinish"+LoadStr(EventHashtable,0,GetSpellAbilityId()))
}
callback onInit()
{
trigger spellEffectTrigger = CreateTrigger();
trigger spellCastTrigger = CreateTrigger();
trigger spellChannelTrigger = CreateTrigger();
trigger spellEndCastTrigger = CreateTrigger();
trigger spellFinishTrigger = CreateTrigger();
for(int i = 0; i < 15; i++)
{
TriggerRegisterPlayerUnitEvent(spellEffectTrigger, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null);
TriggerRegisterPlayerUnitEvent(spellCastTrigger, Player(i), EVENT_PLAYER_UNIT_SPELL_CAST, null);
TriggerRegisterPlayerUnitEvent(spellChannelTrigger, Player(i), EVENT_PLAYER_UNIT_SPELL_CHANNEL, null);
TriggerRegisterPlayerUnitEvent(spellEndCastTrigger, Player(i), EVENT_PLAYER_UNIT_SPELL_ENDCAST, null);
TriggerRegisterPlayerUnitEvent(spellFinishTrigger, Player(i), EVENT_PLAYER_UNIT_SPELL_FINISH, null);
}
TriggerAddAction(spellEffectTrigger, function SpellEffectAction);
TriggerAddAction(spellCastTrigger, function SpellCastAction);
TriggerAddAction(spellChannelTrigger, function SpellChannelAction);
TriggerAddAction(spellEndCastTrigger, function SpellEndCastAction);
TriggerAddAction(spellFinishTrigger, function SpellFinishAction);
flush locals;
}
#define OnSpellEffect(spellId, jassCode) =
{
void funcSpellEffect##spellId##()
{
jassCode
}
}
#define OnSpellCast(spellId, jassCode) =
{
void funcSpellCast##spellId##()
{
jassCode
}
}
#define OnSpellChannel(spellId, jassCode) =
{
void funcSpellChannel##spellId##()
{
jassCode
}
}
#define OnSpellEndCast(spellId, jassCode) =
{
void funcSpellEndCast##spellId##()
{
jassCode
}
}
#define OnSpellFinish(spellId, jassCode) =
{
void funcSpellFinish##spellId##()
{
jassCode
}
}
}
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован God_of_light