короче я с обычного джасс перешел на scope define {}
и.т.д карта сохраняется нормально парсер не ругается
каким то чудом карта вылетает во время загрузки именно с этим триггером? на 70% загрузки карты Fatal Error короче

Принятый ответ

Кет, это 4 оператора взятых из вджасс и сиджасс
видимо так юные айсфроги называют эти 2 диалекта jass
ответ прост
качаем джнгп последней версии и ЧИТАЕМ МАНУАЛЫ
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
33
8 лет назад
0
перешел на scope define {}
Что это?
0
28
8 лет назад
Отредактирован nvc123
0
Кет, это 4 оператора взятых из вджасс и сиджасс
видимо так юные айсфроги называют эти 2 диалекта jass
ответ прост
качаем джнгп последней версии и ЧИТАЕМ МАНУАЛЫ
Принятый ответ
0
17
8 лет назад
0
nvc123, у меня последняя версия Jass New Gen, все равно вылетает во время загрузки, сохраняется то отлично без ошибок
2
20
8 лет назад
2
Ну, если врубать режим экстрасенса, то ты при объявлении глобалок что-то нехорошее создал. Вроде хештейбла.
Если я не прав - или кидай сабж или я продолжу отгадывать.
0
17
8 лет назад
Отредактирован Кет
0
Diaboliko, у меня к этому триггеру нет глобалок
scope Ichigo initializer Init 
 define { 
 private GETSUGA = 'A171' // Getsuga Tenshou 
 } 
 
 private nothing Getsuga_Actions() 
 { 
 timer t = CreateTimer() 
 integer h = GetHandleId(t) 
 group ag = CreateGroup() 
 unit u = GetTriggerUnit() 
 unit d = CreateUnit( GetOwningPlayer(u), 'nbel', GetWidgetX(u),GetWidgetY(u), GetUnitFacing(u) ) 
 real x 
 real y 
 real r 
 DestroyEffect(AddSpecialEffect( "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl",GetWidgetX(u),GetWidgetY(u))) 
 SaveUnitHandle(H,h,0,u) 
 SaveUnitHandle(H,h,1,d) 
 SaveReal(H,h,50,1.40) 
 SaveGroupHandle(H,h,51,ag) 
 TimerStart(t,0.025,true, lambda nothing() 
 { 
 timer t = GetExpiredTimer() 
 integer h = GetHandleId(t) 
 group g = CreateGroup() 
 real x 
 real y 
 real r 
 unit e 
 unit u = LoadUnitHandle(H,h,0) 
 unit d = LoadUnitHandle(H,h,1) 
 real time = LoadReal(H,h,50) 
 group ag = LoadGroupHandle(H,h,51) 
 r = GetUnitFacing(d) 
 x = GetWidgetX(d) + 30*Cos(r * 0.0174) 
 y = GetWidgetY(d) + 30*Sin(r * 0.0174) 
 SetUnitPosition(d, x,y) 
 SetUnitFacing(d, GetUnitFacing(d)) 
 SaveReal(H, h, 4, LoadReal(H, h, 4)+.02) 
 GroupEnumUnitsInRange(g,GetWidgetX(d),GetWidgetY(d),250.00,null) 
loop 
 e = FirstOfGroup(g) 
 GroupRemoveUnit(g,e) 
exitwhen e ==null 
if IsUnitInGroup(e, ag) == false and GetUnitAbilityLevel(e,'Asph')==0 and IsUnitEnemy(e, GetOwningPlayer(u)) == true and IsUnitType(e,UNIT_TYPE_DEAD) == false and IsUnitType(e,UNIT_TYPE_STRUCTURE) == false and IsUnitType(e,UNIT_TYPE_ANCIENT) == false then 
if GetUnitAbilityLevel(u,GETSUGA)==1 then 
 UnitDamageTarget( u, e, 120, true,true,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS ) 
elseif GetUnitAbilityLevel(u,GETSUGA)==2 then 
 UnitDamageTarget( u, e, 180, true,true,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS ) 
elseif GetUnitAbilityLevel(u,GETSUGA)==3 then 
 UnitDamageTarget( u, e, 250, true,true,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS ) 
elseif GetUnitAbilityLevel(u,GETSUGA)==4 then 
 UnitDamageTarget( u, e, 300, true,true,ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FIRE,WEAPON_TYPE_WHOKNOWS ) 
endif 
 GroupAddUnit(ag,e) 
 SaveGroupHandle(H,h,51,ag) 
endif 
endloop 
 DestroyGroup(g) 
 if time < 0 then 
 DestroyGroup(ag) 
 RemoveUnit( d ) 
 PauseTimer(t) 
 FlushChildHashtable(H,h) 
 DestroyTimer(t) 
 else 
 SaveReal(H, h, 50, time - 0.025) 
 endif 
 u = null 
 d = null 
 g = null 
 ag = null 
 e = null 
 t = null 
 }) 
 t = null 
 u = null 
 ag = null 
 t = null 
 d = null 
 } 
 
 // —-----------------------------------------------------— АКТИВАЦИЯ —-----------------------------------------------------— // 
 private boolean Getsuuga_Gives() 
 { 
 return GetSpellAbilityId() == GETSUGA 
 } 
 
 // —-----------------------------------------------------— ИНИЦИАЛИЗАЦИЯ —-----------------------------------------------------— // 
 private nothing Init() 
 { 
 integer i = 0 
 trigger t = CreateTrigger() 
 loop 
 exitwhen i > 16 
 TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null) 
 i++ 
 endloop 
 TriggerAddCondition(t,Condition(function Getsuuga_Gives)) 
 TriggerAddAction(t,function Getsuga_Actions) 
 t=null 
 } 
 // —-----------------------------------------------------— ИНИЦИАЛИЗАЦИЯ —-----------------------------------------------------— // 
endscope
2
20
8 лет назад
Отредактирован Diaboliko
2
loop
exitwhen i > 16
TriggerRegisterPlayerUnitEvent(t, Player(i), EVENT_PLAYER_UNIT_SPELL_EFFECT, null)
i++
endloop
Игроки имеют индексы от 0 до 15. Регистрация ивента для Player(16) вызывает фатал.
0
28
8 лет назад
0
AntiMage, научись использовать форматирование код
Чтобы оставить комментарий, пожалуйста, войдите на сайт.