В общем я изучаю cJass и есть проблемы с фигурными скобочками, в упор не вижу ошибки, а выбивается missing endblock.
При включении любого кода привидённого ниже выдает ошибку:
(Использовал 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

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

Проблема в Coordinate functions
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
25
5 лет назад
Отредактирован Jack-of-shadow
0
Реплейсер чутка не доделаный.. Тоже на глаз не вижу проблемы. В таких случаях если не понятно где потеряна скобка, начиная просто все закомичивать.

Стоп там вроде путь эффекта зафаршмачен
0
19
5 лет назад
Отредактирован KaneThaumaturge
0
Jack-of-shadow, это при копировании на сайт сделалось, в коде все норм, не знаю почему при вставке поменялось
Может просто ошибка в синтаксисе? Ту же всего 3 блока...
Загруженные файлы
3
25
5 лет назад
3
KaneThaumaturge:
да там then не нужен
0
19
5 лет назад
0
Jack-of-shadow, да это я уже добавил, раньше его не было, и, насколько я знаю, его можно писать и не писать.
0
25
5 лет назад
Отредактирован Jack-of-shadow
0
Во втором все норм
0
32
5 лет назад
0
да {} = then endif
0
19
5 лет назад
Отредактирован KaneThaumaturge
0
Вот такое происходит при включении второго триггера, при первом аналогично. Если выключить два, то сейвит без ошибок.
Загруженные файлы
0
18
5 лет назад
0
До:
     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
После:
     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 )
	  {
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.