Возможно сделать так? 1)SaveReal(Hash,hid,9,ef) 2)real ef = LoadReal(Hash,hid,9) 3)for(real r=0;r<10;r++) { DestroyEffect(AddSpecialEffect(R2S(ef),x+200*Cos®,y+200*Sin®)) } 4)MoveDummyToTarget(u,du,40.,true,id,S2R("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl")) MDTT by Ty3uK Не создает эффект :P
Code
function MoveDummy_Timer takes nothing returns nothing local timer t = GetExpiredTimer() local integer hid = GetHandleId(t) integer id=LoadInteger(Hash,hid,8) unit u = LoadUnitHandle(Hash,hid,7) real ef = LoadReal(Hash,hid,9) local unit dummy = LoadUnitHandle(Hash, hid, 0) local real angle = LoadReal(Hash, hid, 1) local real distance = LoadReal(Hash, hid, 2) local real speed = LoadReal(Hash, hid, 3) local real d = LoadReal(Hash, hid, 4) local real x = GetWidgetX(dummy) + speed * Cos(angle) local real y = GetWidgetY(dummy) + speed * Sin(angle) if d >= distance then if LoadBoolean(Hash, hid, 5) then call RemoveUnit(dummy) for(unit e;UnitsInRange(x,y,300.)use GG) { if IsUnitEnemy(e,GetOwningPlayer(u)) then UnitDamageTarget(u,e,GetHeroInt(u,true)*4.+200*GetUnitAbilityLevel(u,id),true,false,null,null,null) endif } for(real r=0;r<10;r++) { DestroyEffect(AddSpecialEffect(R2S(ef),x+200*Cos(r),y+200*Sin(r))) } else call PauseUnit(dummy, false) endif call FlushChildHashtable(Hash,hid) call PauseTimer(t) call DestroyTimer(t) else call SetUnitPosition(dummy, x, y) call SaveReal(Hash, hid, 4, d + speed) endif set dummy = null set t = null endfunction
function MoveDummyToTarget takes unit caster, unit dummy, real speed, boolean remove,integer id,real ef returns nothing local timer t = CreateTimer() local integer hid = GetHandleId(t) call SaveAgentHandle(Hash, hid, 0, dummy) SaveReal(Hash,hid,9,ef) SaveInteger(Hash,hid,8,id) call SaveReal(Hash,hid,1,Atan2(GetSpellTargetY() - GetWidgetY(caster), GetSpellTargetX() - GetWidgetX(caster))) call SaveReal(Hash,hid,2,GetDistanceBetweenCoords(GetSpellTargetX(), GetWidgetX(caster), GetSpellTargetY(), GetWidgetY(caster))) call SaveReal(Hash,hid,3,speed) call SaveBoolean(Hash,hid,5, remove) SaveUnitHandle(Hash,hid,7,caster) call PauseUnit(dummy, true) call TimerStart(t,.04,true,function MoveDummy_Timer) set t = null endfunction
Code
scope Zenus1 { define { private u = GetTriggerUnit() private idu = 'h00E' private id = 'A00Q' private d(idu) = CreateUnit(GetOwningPlayer(u),idu,GetUnitX(u),GetUnitY(u),GetUnitFacing(u)) } callback onUnitSpellEffect(id) { unit du = d(idu) MoveDummyToTarget(u,du,40.,true,id,S2R("Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl")) } }
Эффект- строка, такая, которую ты ввел в мою функцию. А при конверте реальный в строку ты получишь эту реальную, просто в формате строки. Ну а название модели не может быть 201.000
Добавлено (30 Март 2012, 07:21:59) --------------------------------------------- Смотрю, Дрей начал учить тебя сразу говножассу. Мой тебе совет- выучи сначала классический Jass 2, иначе будешь как Феня