В общем я изучаю cJass и есть проблемы с фигурными скобочками, в упор не вижу ошибки, а выбивается missing endblock.
При включении любого кода привидённого ниже выдает ошибку:
(Использовал JassReplacer)
При включении любого кода привидённого ниже выдает ошибку:
(Использовал JassReplacer)
(1)
library FuncDeathWaterguards uses Polar
nothing DeathWaterguards ( unit u1, real x1, real y1 ) {
unit u2 = g_waterguardBase[GetUnitUserData(u1)]
real x2 = GetUnitX(u2)
real y2 = GetUnitY(u2)
if ( DistanceBetweenCoords(x1, y1, x2, y2) >= 1000.00 ) {
DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Other\\CrushingWave\\CrushingWaveDamage.mdl&​quot;, x1, y1))
UnitDamageTargetBJ( u1, u1, ( 0.25 * GetUnitState(u1, UNIT_STATE_MAX_LIFE) ), ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL )
}
u1 = null
u2 = null
}
endlibrary
(2)
library FuncMurlocScales
nothing MurlocScales ( unit u, real x, real y, integer id ){
integer i = 0
integer tw = g_timeWater[GetUnitUserData(u)]
boolean iw = g_inWater[GetUnitUserData(u)]
if iw == true {
tw = 0
SetUnitState(u, UNIT_STATE_LIFE, GetUnitState(u, UNIT_STATE_LIFE) + resHPmur)
elseif (iw == false) then
tw = (tw + 1 )
}
if ( id == 'n001' ) or ( id == 'h002' ) {
i = 180
}else{
i = 120
}
if ( tw == 0 ) and ( GetUnitAbilityLevel(u, 'A00V') >= 1 ) {
SetUnitAbilityLevel( u, 'A00S', 1 )
SetUnitAbilityLevel( u, 'A00U', 1 )
SetUnitAbilityLevel( u, 'A00V', 1 )
UnitRemoveAbility( u, 'A00V')
UnitRemoveAbility( u, 'A00S')
UnitRemoveAbility( u, 'A00U')
UnitRemoveAbility( u, 'B004')
elseif ( tw >= i ) and ( GetUnitAbilityLevel(u, 'A00V') == 0 ) then
UnitAddAbility( u, 'A00V')
UnitAddAbility( u, 'A00S')
UnitAddAbility( u, 'A00U')
elseif ( tw >= ( 2 * i )) and ( GetUnitAbilityLevel(u, 'A00V') == 1 ) then
SetUnitAbilityLevel( u, 'A00S', 2 )
SetUnitAbilityLevel( u, 'A00U', 2 )
SetUnitAbilityLevel( u, 'A00V', 2 )
elseif ( tw >= ( 4 * i )) and ( GetUnitAbilityLevel(u, 'A00V') == 2 ) then
SetUnitAbilityLevel( u, 'A00S', 3 )
SetUnitAbilityLevel( u, 'A00U', 3 )
SetUnitAbilityLevel( u, 'A00V', 3 )
}
}
endlibrary
Я из вопроса код пробовал, а в карте да странно
Ничего не изменилось
закинь вот это куда нибудь в карту и юзай (так быстрее пишется код)
я себе еще такую тему сделал)
define end_i () = {i ++;endloop}
define for_n (max) = {integer n = 1;loop;exitwhen n > max}
define end_n () = {n ++;endloop}
ну а так, самое то:
KaneThaumaturge, попробуй вместо library endlibrary написать library{ }
))
:D
Отредактирован Jack-of-shadow
Странно, я вставил //! endzinc , но при компиляции мне показывает, что там два раза вписано //! endzinc ... И в итоге ошибка, хотя в коде я вписал одну строку.
Наверное зайду mpq архивом и удалю строку
Собственно вот:
В общем, удалил с помощью mpq вторую строку, однако, она не удалилась, более того, теперь в коде отобразилось 2 строки. Удалил уже в коде, сохранил и все работает. Надеюсь больше такого не будет...
А нет, не заработало, зинк все равно ломает весь код. В общем перепишу функции с зинка на cJASS и все.