Добавлен
В чём ошибка? Скобку закрываю и ошибку выдаёт с закрытой скобкой
scope SPELLSHAR initializer init
{
	globals
		private group temp_group = CreateGroup()	
	endglobals
	OneTimerStruct(SPELL)		
	{
		unit a,b		
		real dist,ang	
		group g				
		boolean Update()
		{
			real x = GetUnitX(b)	
			real y = GetUnitY(b)
			unit c					
			if (dist > 0)			
			{
				GroupEnumUnitsInRange(temp_group,x,y,200,null)		
				loop	
				{
					c = FirstOfGroup(temp_group)					
					exitwhen (c == null)							
					if GetWidgetLife(c) > 0.405 && IsUnitEnemy(c,GetOwningPlayer(a)) && !IsUnitInGroup(c,g)	
					{
						UnitDamageTarget(a,c,50*GetUnitAbilityLevel(a,'A000'),false,false,null,null,null)	
						if (GetWidgetLife(c) > 0.405)	
						{
							GroupAddUnit(g,c)	
						}
					}
					GroupRemoveUnit(temp_group,c)	
				}
				SetUnitX(b,x+50*Cos(ang)	
				SetUnitY(b,y+50*Sin(ang)
				dist -= 50					
				GroupClear(g)				
				RemoveUnit(b)			
				return false        	
			}
			return true					
		}	
		static void Add()
		{
			real x,y
			thistype this = thistype.create()		
			this.a = GetSpellAbilityUnit()			
			this.dist = 1000						
			if (this.g == null) 					
			{ 
				this.g = CreateGroup() 				
			}
			x = GetUnitX(this.a)					
			y = GetUnitY(this.a)
			this.ang = 57.296*Atan2(GetSpellTargetY()-y,GetSpellTargetX()-x)	
			this.b = CreateUnit(GetOwningPlayer(this.a),'h000',x,y,this.ang)	
			this.ang *= 0.0174													
			OneTimerAdd(this)													
		}
	}
	private nothing act()
	{
		if (GetSpellAbilityId() == 'A000')
		{
			SPELL.Add()	
		}
	}
	private nothing init()
	{
		trigger t = CreateTrigger()
		integer i = 0
		while(i < 12)
		{
			TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
			i++
		}
		TriggerAddAction(t,function act)
	}
}
скрин ошибки

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

Skolz, старый баг который давно обещали пофиксить
в файле cj_types.j сотри эту строку (которая начинается с while)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
28
6 лет назад
Отредактирован nvc123
0
используй форматирование код
и отступы расставь
очевидно что он ругается на открывающую скобку после OneTimerStruct(SPELL)
полагаю это какой то дефайн
0
28
6 лет назад
0
Расставил отступы, вдруг поможет.
scope SPELLSHAR initializer init{
    globals
        private group temp_group = CreateGroup()	
    endglobals
    
    OneTimerStruct(SPELL){
        unit a,b	
        real dist,ang	
        group g
        
        boolean Update(){
            real x = GetUnitX(b)	
            real y = GetUnitY(b)
            unit c	
            if (dist > 0){
                GroupEnumUnitsInRange(temp_group,x,y,200,null)	
                loop{
                    c = FirstOfGroup(temp_group)	
                    exitwhen (c == null)	
                    if GetWidgetLife(c) > 0.405 && IsUnitEnemy(c,GetOwningPlayer(a)) && !IsUnitInGroup(c,g){
                        UnitDamageTarget(a,c,50*GetUnitAbilityLevel(a,'A000'),false,false,null,null,null)	
                        if (GetWidgetLife(c) > 0.405){
                            GroupAddUnit(g,c)	
                        }
                    }
                    GroupRemoveUnit(temp_group,c)	
                }
                SetUnitX(b,x+50*Cos(ang)	
                SetUnitY(b,y+50*Sin(ang)
                dist -= 50	
                GroupClear(g)	
                RemoveUnit(b)	
                return false 
            }
            return true	
        }

        static void Add(){
            real x,y
            thistype this = thistype.create()	
            this.a = GetSpellAbilityUnit()	
            this.dist = 1000	
            if (this.g == null){ 
                this.g = CreateGroup() 
            }
            x = GetUnitX(this.a)	
            y = GetUnitY(this.a)
            this.ang = 57.296*Atan2(GetSpellTargetY()-y,GetSpellTargetX()-x)	
            this.b = CreateUnit(GetOwningPlayer(this.a),'h000',x,y,this.ang)	
            this.ang *= 0.0174	
            OneTimerAdd(this)	
        }
    }
    
    private nothing act(){
        if (GetSpellAbilityId() == 'A000'){
            SPELL.Add()	
        }
    }

    private nothing init(){
        trigger t = CreateTrigger()
        integer i = 0
        while(i < 12){
            TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
            i++
        }
        TriggerAddAction(t,function act)
    }
}
0
10
6 лет назад
0
Спасибо за труд, но мне это не помогло (уже сам пробовал)
PT153:
Расставил отступы, вдруг поможет.
scope SPELLSHAR initializer init{
    globals
        private group temp_group = CreateGroup()	
    endglobals
    
    OneTimerStruct(SPELL){
        unit a,b	
        real dist,ang	
        group g
        
        boolean Update(){
            real x = GetUnitX(b)	
            real y = GetUnitY(b)
            unit c	
            if (dist > 0){
                GroupEnumUnitsInRange(temp_group,x,y,200,null)	
                loop{
                    c = FirstOfGroup(temp_group)	
                    exitwhen (c == null)	
                    if GetWidgetLife(c) > 0.405 && IsUnitEnemy(c,GetOwningPlayer(a)) && !IsUnitInGroup(c,g){
                        UnitDamageTarget(a,c,50*GetUnitAbilityLevel(a,'A000'),false,false,null,null,null)	
                        if (GetWidgetLife(c) > 0.405){
                            GroupAddUnit(g,c)	
                        }
                    }
                    GroupRemoveUnit(temp_group,c)	
                }
                SetUnitX(b,x+50*Cos(ang)	
                SetUnitY(b,y+50*Sin(ang)
                dist -= 50	
                GroupClear(g)	
                RemoveUnit(b)	
                return false 
            }
            return true	
        }

        static void Add(){
            real x,y
            thistype this = thistype.create()	
            this.a = GetSpellAbilityUnit()	
            this.dist = 1000	
            if (this.g == null){ 
                this.g = CreateGroup() 
            }
            x = GetUnitX(this.a)	
            y = GetUnitY(this.a)
            this.ang = 57.296*Atan2(GetSpellTargetY()-y,GetSpellTargetX()-x)	
            this.b = CreateUnit(GetOwningPlayer(this.a),'h000',x,y,this.ang)	
            this.ang *= 0.0174	
            OneTimerAdd(this)	
        }
    }
    
    private nothing act(){
        if (GetSpellAbilityId() == 'A000'){
            SPELL.Add()	
        }
    }

    private nothing init(){
        trigger t = CreateTrigger()
        integer i = 0
        while(i < 12){
            TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
            i++
        }
        TriggerAddAction(t,function act)
    }
}
0
17
6 лет назад
0
OneTimerStruct(SPELL){ код этого покажите
0
10
6 лет назад
0
ledoed:
OneTimerStruct(SPELL){ код этого покажите
Загруженные файлы
0
17
6 лет назад
0
ковычки убери OneTimerStructSPELL
0
28
6 лет назад
0
ledoed, ковычки?
ты про скобки?
Skolz, ты уверен что подключил библиотеку?
и ещё укажи её в зависимостях у этого scope
т.к. у тебя не сработал дефайн
что означает что библиотека не подключена либо расположена после твоего кода
0
10
6 лет назад
Отредактирован Skolz
0
nvc123,
Её ещё подключать как-то надо? Я думал просто импортировать и стереть стандартный путь
Skolz, ты уверен что подключил библиотеку?
и ещё укажи её в зависимостях у этого scope
т.к. у тебя не сработал дефайн
что означает что библиотека не подключена либо расположена после твоего кода
0
28
6 лет назад
Отредактирован nvc123
0
Skolz, её не надо импортировать в карту
просто закинь в папку \AdicHelper\lib\ в папке с джнгп
а потом в коде в шапке напиши
include "OneTimerBool.j"
0
10
6 лет назад
Отредактирован Skolz
0
nvc123, ок
nvc123, о, получилось! Только теперь ошибку выдаёт
Загруженные файлы
1
28
6 лет назад
1
Skolz, в конце этой строки добавь )
в конце следующей тоже
так же не забывай что Cos и Sin работают с углами в радианах а не градусах
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.