Назад

[Мини-гайд]Переменные

Автор: San: Дата: 12.09.2010

[LEFT][FONT=Verdana]Небольшой обзорчик по переменным, а именно, по тем,что чаще всего используются.[/FONT]

[FONT=Verdana]1. Персонаж.[/FONT]


[FONT=Verdana]
Если нам необходимо (как пример) чтоб персонаж
мог поговорить с НПСом 1 раз (другими словами пройти квест только один раз, или первую ступень квеста) то необходимо присваивать постоянные чар переменные. Как они выглядят:[/FONT]

// Задаем переменную
set my_name_var, 1;
// проверяем
if (my_name_var == 1) { ... }
[FONT=Verdana]Переменная может принимать только числовые значения.

Если нам необходимо временно выделить персонажа, или наделить его возможностью говорить с каким-нибудь НПСом (пример: разрешить персонажу пользоваться премиум-варпером до следующего входа в игру) то нужно вешать временные чар. переменные:
[/FONT]

// Задаем переменную
set @my_name_var, 1;
// проверяем
if (@my_name_var == 1) { ... }
[FONT=Verdana][COLOR=Indigo]
Такая переменная сотрется из базы сразу же, как чар покинул игру.[/COLOR]

Если же мы хотим, чтоб только один персонаж со всего аккаунта мог пройти скажем определенный квест, то нужно вешать перманентную аккаунт переменную:
[/FONT]


// Задаем переменную
set #my_name_var, 1;
// проверяем
if (#my_name_var == 1) { ... }

[FONT=Verdana]Эта переменная действует на всех персонажей данного аккаунта. Т.е. если присвоить одному персонажу значение #my_name_var, 1 - то эта переменная, для всех персонажей с данного аккаунта станет равной 1.

[/FONT]
[FONT=Verdana]2. Глобальные переменные:[/FONT]


[FONT=Verdana]
К примеру мы хотим объявить о начале эвента. Эвент НПС может стоять всегда в пронтере, но пускать только в определенное время. Как же это сделать? С помощью глобальной переменной. Пример:
[/FONT]


OnClock2100: // В 21:00
set $event_status, 1; // задаем глоб. переменную =1
end;

В самом НПСе, в самом начале:
 if ($event_status != 1) {mes "Прости, эвент не начался"; close; }
[FONT=Verdana] Думаю все понятно.
[/FONT]
[FONT=Verdana]
Вот ещё пример использования глобальных переменных: к примеру нам нужно задавать случайное имя монстра. Делается это следующим образом:
[/FONT]

set $ranom, rand(1,3); // присвоить переменной $ranom значение от 1 до 3, причем случайно выбрать.
if ($ranom == 1) {set $mobname$, "Пчелка"; } // если переменная = 1
if ($ranom == 2) {set $mobname$, "Оса"; // если = 2
} else { set $mobname$, "Шмель"; } // иначе (т.е. если = 3)
monster "prontera",192,168,""+ $mobname$+"",1002,1"; // создаем моба с нашим случайным именем
[FONT=Verdana][COLOR=Indigo]

Пока всё. Это не гайд по переменным, т.к. тут описана лишь малая часть их. Но не всё сразу.[/COLOR][COLOR=Indigo]Все вопросы по переменным задавайте здесь. Надеюсь вам понадобиться это описание.

Мини-гайд написал nomn [COLOR=Black].[/COLOR]
[/COLOR]
[/FONT] [/LEFT]

Автор: Jarek: Дата: 05.13.2011

$@ временная глобальная переменная, для всех одна.
Если вам нужна переменная для квеста, то лучше использовать переменные вообще без префиксов.
Если вам нужна переменная для эвента, то используйте с префиксом @

Автор: SupR1g: Дата: 05.13.2011

Благодарю.