//***********************START SPELL********************************************** private struct Data { unit c unit t unit tt real xt real yt real xtt real ytt bool a lightning l real time=timeS } //******************TIMER OF DAMAGE*********************************************** private void TimerM() { timer tr=GetExpiredTimer() Data f=Data(LoadInteger(Hash,GetHandleId(tr),0)) real x=GetWidgetX(f.t) real y=GetWidgetY(f.t) real xx=GetWidgetX(f.tt) real yy=GetWidgetY(f.tt) real ft=GetUnitFacing(f.t) real ftt=GetUnitFacing(f.tt) if f.time <1 or GetWidgetLife(f.tt)<.405 or GetWidgetLife(f.t)<.405 { UnitRemoveAbility(f.t,BuffId) UnitRemoveAbility(f.tt,BuffId) PauseTimer(tr) DestroyTimer(tr) DestroyLightning(f.l) else f.time=f.time-period MoveLightning(f.l,true,x,y,xx,yy) UnitDamageTarget(f.c,f.tt,dps,true,false,null,null,null) UnitDamageTarget(f.c,f.t,dps,true,false,null,null,null) if (xx-x)*(xx-x)+(yy-y)*(yy-y)> Dist { real a=Atan2(y-yy,x-xx) SetUnitX(f.t,x-(GetUnitMoveSpeed(f.t)*.031)*Cos(a)) SetUnitY(f.t,y-(GetUnitMoveSpeed(f.t)*.031)*Sin(a)) DestroyEffect(AddSpecialEffectTarget(Effect,f.t,attach)) UnitDamageTarget(f.c,f.t,dmgout,true,false,null,null,null) a=Atan2(yy-y,xx-x) UnitDamageTarget(f.c,f.tt,dmgout,true,false,null,null,null) DestroyEffect(AddSpecialEffectTarget(Effect,f.tt,attach)) SetUnitX(f.tt,xx-(GetUnitMoveSpeed(f.tt)*.031)*Cos(a)) SetUnitY(f.tt,yy-(GetUnitMoveSpeed(f.tt)*.031)*Sin(a)) } } f.destroy() } //******************TIMER SPELL OF*********************************************** private void Timer() { timer tr=GetExpiredTimer() Data f=Data(LoadInteger(Hash,GetHandleId(tr),0)) if f.a == false { UnitAddAbility(f.c,SkillId1) SetUnitAbilityLevel(f.c,SkillId1,GetUnitAbilityLevel(f.c,SkillId2)) UnitRemoveAbility(f.c,SkillId2) f.a=true } f.destroy() } //******************CAST ABILITYS*********************************************** private void Trig_FireFetters_Actions () { Data f=Data.create() unit d timer tr=CreateTimer() f.a=false f.c=GetTriggerUnit()
if GetSpellAbilityId()==SkillId1 { f.t=GetSpellTargetUnit() UnitAddAbility(f.c,SkillId2) SetUnitAbilityLevel(f.c,SkillId2,GetUnitAbilityLevel(f.c,SkillId2)) SaveInteger(Hash,GetHandleId(tr),0,f) TimerStart(tr,TimeOFF,false,function Timer) elseif GetSpellAbilityId()==SkillId2 f.tt=GetSpellTargetUnit() f.xt=GetWidgetX(f.t) f.yt=GetWidgetY(f.t) f.xtt=GetWidgetX(f.tt) f.ytt=GetWidgetY(f.tt) if (f.xtt-f.xt)*(f.xtt-f.xt)+(f.ytt-f.yt)*(f.ytt-f.yt)>Dist { SimError(GetOwningPlayer(f.c),"Слишком большое расстояние!") elseif f.tt==f.t SimError(GetOwningPlayer(f.c),"Нельзя указывать того же самого война!") else UnitRemoveAbility(f.c,SkillId2) f.l=AddLightning(Lightning,true,f.xtt,f.ytt,f.xt,f.yt) f.a=true d=CreateUnit(GetOwningPlayer(f.c),DummyId,f.xt,f.yt,0) AbUnit(d,SkillIdDum,1,1.,OrderDum,f.t) d=CreateUnit(GetOwningPlayer(f.c),DummyId,f.xt,f.yt,0) AbUnit(d,SkillIdDum,1,1.,OrderDum,f.tt) SaveInteger(Hash,GetHandleId(tr),0,f) TimerStart(tr,period,true,function TimerM) } } tr=null d=null f.destroy() }
Данная способность разработанна для проекта MosT2,любое копирование запрещено!
Собственно сабж, пишет вот такую ошибку: Expected: "type","struct","interface","function" or "scope" Хотя вроде все работало нормально,а тут вдрук бац и гг.