XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Цикл в условии, что надо возвращать?
Вот у меня небольшая проблема:
Я делаю в событии цикл, и хочу чтобы цикл проверил умирающий юнит равен udg_Unit[A] (где А это цифра цикла...)
Так вот и при совпадении этого, надо чтобы условие "сказало" Да
Код:
function Trig_Revive_Conditions takes nothing returns boolean
    local integer A=1
    
    loop
    exitwhen A>11
    return GetDyingUnit() == udg_Unit[A]
    set A=A+1
    endloop
endfunction


Тоесть как правильно ее переделать, что бы умирающий юнит был равен одному из udg_Unit[1-12]
Старый 26.07.2012, 13:23
ScorpioT1000
Работаем
offline
Опыт: отключен
всё правильно
ScorpioT1000 добавил:
только отсчёт начинается с нуля обычно
ScorpioT1000 добавил:
что бы умирающий юнит был равен одному из udg_Unit[1-12]
тогда exitwhen A>12
11 это если с нуля
Старый 26.07.2012, 13:50
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
А тогда че JassHelper жалуется, что требует в конце return
А при написании ретурна в конце, он еще пуще жалуется...
Старый 26.07.2012, 13:53
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Xipxop, настоятельно рекомендую задавать имена локальным переменным с маленькой буквы. Глобальным с большой. Константы полностью большими. Иначе потом будут проблемы, когда когда будет много.
Faion добавил:
И вообще правильно так:
если стоит cjass, если нет, рекомендую поставить.
private bool TriggerCondition()
{
	unit u = GetDyingUnit();
	if (u != null) 
	{
		for(int i = 0; i < 12; i++)
		{
			if(u == udg_Unit[i])
			{
				u = null;
				return true;
			}
		}
		u = null; 
	}
	return false;
}
Старый 26.07.2012, 13:58
ScorpioT1000
Работаем
offline
Опыт: отключен
Че за говнокодингстайл? Все переменные пишутся с маленькой буквы, каждое новое слово с заглавной или разделено подчеркиванием, имена функций, классов и методов так же, но с заглавной.
function Trig_Revive_Conditions takes nothing returns boolean
    local integer i=1
    loop
        exitwhen A>12
        if GetDyingUnit() == udg_Unit[i] then
            return true
        endif
        set A=A+1
    endloop
    return false
endfunction

Отредактировано ScorpioT1000, 26.07.2012 в 15:30.
Старый 26.07.2012, 14:31
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Спасибо!
Особено за маленькие-большие буквы в названиях переменных, учту.

Тема закрыта

Старый 26.07.2012, 15:06
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
ScorpioT1000, феил в твоем коде <_< вернет true при первой же итерации <_<
Старый 26.07.2012, 15:07
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
ScorpioT1000:
Че за говнокодингстайл? Все переменные пишутся с маленькой буквы, каждое новое слово с заглавной или разделено подчеркиванием, имена функций, классов и методов так же, но с заглавной.
o\\\
Я уже вижу этот говнокод, где из имени переменной даже не разберешь, приватка это, константа, локалка или вообще публичная переменная o\
Скорпи, я был уверен что ты работаешь в норм команде разработчиков o\
Faion добавил:
alexprey:
ScorpioT1000, феил в твоем коде <_< вернет true при первой же итерации <_<
Скорее вернет результат при первом проходе, причем в большинстве случаев неверный.
Старый 26.07.2012, 15:16
ScorpioT1000
Работаем
offline
Опыт: отключен
alexprey, фиксед ) Faion, ну просто надо такие простые вещи на чистом жасс кидать
Старый 26.07.2012, 15:31
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 16:11.