Goodie
offline
Опыт:
2,825Активность: |
Проблема со способностью
У меня проблема. При поднятии предмета, должно все скрываться и должен остаться только герой. После окончания баффа все возращается на места.
Проблема вот в чем: после истечения баффа, ничего на место не встает. Как и было все скрыто, так и осталось =/ ((код jass
scope AstralRune initializer Starter
#include "cj_types.j"
private struct DataAstral
static group ENUM_GROUP=CreateGroup() static unit Unit = null unit target = null real duration = 0.00 real Substract(){ return this.duration-- } private static bool EnumHide(){ if(GetOwningPlayer(Unit) == GetLocalPlayer()){ ShowUnit(GetFilterUnit(),false) BJDebugMsg(" hide unit - in structure") } if(GetOwningPlayer(GetFilterUnit()) == GetLocalPlayer()){ ShowUnit(Unit,false) BJDebugMsg(" hide filter unit - in structure") } return true } private static bool EnumShow(){
ShowUnit(GetFilterUnit(),true) ShowUnit(Unit,true) if(GetOwningPlayer(Unit)== GetLocalPlayer()){ ShowUnit(GetFilterUnit(),true) BJDebugMsg(" show filterunit - in structure(boolexpr)") } if(GetOwningPlayer(GetFilterUnit()) == GetLocalPlayer()){ ShowUnit(Unit,true) BJDebugMsg(" show Unit - in structure(boolexpr)") } return true } void StartAstral(){ Unit = this.target GroupEnumUnitsInRect(this.ENUM_GROUP,bj_mapInitialPlayableArea,Filter(function thistype.EnumHide)) GroupClear(this.ENUM_GROUP) if(GetOwningPlayer(Unit) == GetLocalPlayer()){ ShowUnit(Unit,true) BJDebugMsg(" show Unit - in structure") } } void EndAstral(){ ShowUnit(Unit,true) BJDebugMsg(" show unit - in structure") GroupEnumUnitsInRect(this.ENUM_GROUP,bj_mapInitialPlayableArea,Filter(function thistype.EnumShow)) GroupClear(this.ENUM_GROUP) } endstruct private void AstralAction(){
timer t=GetExpiredTimer() group g=null unit u=null DataAstral d = GetTimerData(t) BJDebugMsg(" Duration - " + I2S(R2I(d.duration)) + " sec.") if(d.duration >0){ d.Substract() else d.EndAstral() BJDebugMsg(" End") ReleaseTimer(t) d.destroy() t=null } } private bool Conditions(){ timer t=null DataAstral d if (GetItemTypeId(GetManipulatedItem()) == 'rsps') then t=NewTimer() d=DataAstral.create() d.target = GetManipulatingUnit() d.duration = 10.00 d.StartAstral() SetTimerData(t,d) TimerStart(t,1.,true,function AstralAction) t=null endif return true } private void Starter(){
RegisterPlayerUnitEvent(EVENT_PLAYER_UNIT_PICKUP_ITEM,function Conditions) RegisterPlayerUnitEvent(EVENT_PLAYER_UNIT_USE_ITEM,function Conditions) } endscope )) |
16.03.2013, 20:17 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
локально скрыть юнита нельзя. будет десинк |
16.03.2013, 20:50 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Goodie
offline
Опыт:
2,825Активность: |
agentex, пичаль =( Есть какой нить выход? |
16.03.2013, 21:04 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
agentex
offline
Опыт:
34,834Активность: |
да, ставить прозрачность на 100%. но естественно юнит будет виден при наведении. и тень вроде тоже. |
16.03.2013, 21:18 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Goodie
offline
Опыт:
2,825Активность: |
agentex, Так и думал Ладно, буду ждать еще ответов, может ктонить сказанет |
16.03.2013, 21:27 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
да без проблем:
локально скрыть юнита нельзя. будет десинк |
17.03.2013, 10:47 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Goodie
offline
Опыт:
2,825Активность: |
DioD, лол. Ну может альтернатива есть какая ни будь?? Кроме прозрачности. |
17.03.2013, 13:38 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hate
конь вакуумный
offline
Опыт:
43,117Активность: |
<извращенец мод> сделать 2 юнита, первый нормальный, второй без модельки и тени, менять их местами <извращенец мод/> |
17.03.2013, 13:45 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Goodie
offline
Опыт:
2,825Активность: |
|
17.03.2013, 13:52 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|