Перейти к содержанию

Переменные


Рекомендуемые сообщения

Небольшой обзорчик по переменным, а именно, по тем,

что чаще всего используются.

Начнем.

1. Персонаж.

Если нам необходимо (как пример) чтоб персонаж

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

// Задаем переменную

set my_name_var, 1;

// проверяем

if (my_name_var == 1) { ... }

Переменная может принимать только числовые значения.

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

// Задаем переменную

set @my_name_var, 1;

// проверяем

if (@my_name_var == 1) { ... }

Такая переменная сотрется из базы сразу же, как чар покинул игру.

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

// Задаем переменную

set #my_name_var, 1;

// проверяем

if (#my_name_var == 1) { ... }

Переменная действует на всех персонажей данного аккаунта.

2. Глобальные переменные:

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

OnClock2100: // В 21:00

set $event_status, 1; // задаем глоб. переменную =1

end;

В самом НПСе, в самом начале:

if ($event_status != 1) {mes "Прости, эвент не начался"; close; }

Думаю все понятно.

Вот ещё пример использования глобальных переменных: к примеру нам нужно задавать случайное имя монстра. Делается это следующим образом:

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"; // создаем моба с нашим случайным именем

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

  • Upvote 15
Ссылка на комментарий
Поделиться на другие сайты

Если не лень, можно ко всем переменным маленький пример, ну как теория-практика.

Буду очень признателен.

Ссылка на комментарий
Поделиться на другие сайты

Да, вот допустим:


// Задаем переменную
set my_name_var, 1;

// проверяем
if (my_name_var == 1) { ... }

Пример:


Маленький пример

Ссылка на комментарий
Поделиться на другие сайты

prontera,100,100,5	script	Подарок	811,{
if(podarok==1){ mes "Ты уже получил подарок!"; close; }
mes "Хочешь подарок?";
if(select("Да:Нет")==2){ close; }
getitem 909,1;
set podarok,1;
close;
}

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Вот прекрасно, теперь, если мне необходимо закрепить переменную за аккаунтом, что для этого мне нужно сделать?

  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

Перед названием переменной добавить "#" :

prontera,100,100,5      script  Подарок 811,{
if(#podarok==1){ mes "Ваш аккаунт уже получал подарок!"; close; }
mes "Хочешь подарок?";
if(select("Да:Нет")==2){ close; }
getitem 909,1;
set #podarok,1;
close;
}

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

Переменная для чаров всегда без приставки.

Можно использовать для аккаунтов либо "#" либо "##" особой разницы нету.

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

name - permanent character integer variable

name$ - permanent character string variable

@name - temporary character integer variable

@name$ - temporary character string variable

$name - permanent global integer variable

$name$ - permanent global string variable

$@name - temporary global integer variable

$@name$ - temporary global string variable

.name - NPC integer variable

.name$ - NPC string variable

.@name - scope integer variable

.@name$ - scope string variable

#name - permanent local account integer variable

#name$ - permanent local account string variable

##name - permanent global account integer variable

##name$ - permanent global account string variable

Ссылка на комментарий
Поделиться на другие сайты

Переменная для чаров всегда без приставки.

Можно использовать для аккаунтов либо "#" либо "##" особой разницы нету.

есть.

# - локальная

## - глобальная

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Вот и я о том же, значит для чара #, для акка ##

Нет. Они обе для аккаунта. Просто разница между ними заметна, если используется несколько чар-серверов на одном логин-сервере.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
×
×
  • Создать...
Яндекс.Метрика