Как сделать общую систему для спеллов ( если любой спел стыкаетса с повишеным уровнем рельефа) то он заканчиваетса мгновенно....можно ли сделать общую систему для всех спеллов? а то у меня карта с комнатами например если применить спел
Quote
волна силы
то она летит и пролетает сквозь стенку сделаную из рельэфа и дамажет сквозь нее....бред такой)) дело в том что таких спеллов полно.....в моей мапе они как баг...вот кто может подскажите что сделать ?
ищу креативных людей которые достаточно знают Джасс и которые хотят творить то во что будут играть все ... в ЛС
constant hashtable Hash=InitHashtable() location Z=Location(0.,0.) int count=0
library shoot { void DET() { timer t=GetExpiredTimer() DestroyEffect(LoadEffectHandle(Hash,GetHandleId(t),0)) DestroyTimer(t) FlushChildHashtable(Hash,GetHandleId(t)) flush locals } void DE(string mn,real x,real y,unit w,string at) { timer t=CreateTimer() if w==null { SaveEffectHandle(Hash,GetHandleId(t),0,AddSpecialEffect(mn,x,y)) else SaveEffectHandle(Hash,GetHandleId(t),0,AddSpecialEffectTarget(mn,w,at)) } TimerStart(t,.7,false,function DET) flush locals } private void KillHash(unit d,timer t,integer id) { RemoveUnit(d) FlushChildHashtable(Hash,id) PauseTimer(t) DestroyTimer(t) } private bool CountDestsEnum () { set count = count+1 return true } private int CountDests(real x, real y, real rad) { rect r = Rect(-rad,-rad,rad,rad) MoveRectTo(r,x,y) count = 0 EnumDestructablesInRect(r,Filter(function CountDestsEnum),null) RemoveRect(r) r = null return count } private real GetlocZ(real x, real y) { MoveLocation(Z,x,y) return GetLocationZ(Z) } private void pad (unit u,integer dmg,string bl) { group g=CreateGroup() unit e float x=GetWidgetX(u) float y=GetWidgetY(u) int i=0 bool array ti float ze,zd=LoadReal(Hash,GetHandleId(u),8),zk player p=GetOwningPlayer(u) int id=LoadInteger(Hash,GetHandleId(u),0) timer t=LoadTimerHandle(Hash,GetHandleId(u),1) GroupEnumUnitsInRange(g,x,y,155.,null) loop set e=FirstOfGroup(g) exitwhen e==null if IsUnitEnemy(e,p) and GetWidgetLife(e)>.405 and LoadBoolean(Hash,GetHandleId(t),GetHandleId(e))== false and IsUnitInvisible(e,p)==false { DestroyEffect(AddSpecialEffectTarget(bl,e,"head")) UnitDamageTarget(u,e,dmg,true,false,ATTACK_TYPE_HERO,DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS) SaveBoolean(Hash,GetHandleId(t),GetHandleId(e),true) KillHash(u,t,id) } GroupRemoveUnit(g,e) endloop DestroyGroup(g) flush locals } private void MoveMissle(unit u, real x, real y, real z) { SetUnitX(u,x) SetUnitY(u,y) SetUnitFlyHeight(u,z,0.) } private struct shoot { private real xe private real ye private real ze private unit u private int dmg private string ef private string me private string b