Fox RM

Переменные

18 сообщений в этой теме

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

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

Начнем.

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

15

Поделиться сообщением


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

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

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

0

Поделиться сообщением


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

в Статье помоему указаны примеры, или ты хочешь полный пример npc?

0

Поделиться сообщением


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

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


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

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

Пример:


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

0

Поделиться сообщением


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

1

Поделиться сообщением


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

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

-1

Поделиться сообщением


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

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

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

1

Поделиться сообщением


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

А разве не ## ?

Я читал, что # для персонажа, ## для аккаунта.

0

Поделиться сообщением


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

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

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

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

[email protected] - temporary global integer variable

[email protected]$ - temporary global string variable

.name - NPC integer variable

.name$ - NPC string variable

[email protected] - scope integer variable

[email protected]$ - 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

0

Поделиться сообщением


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

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

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

есть.

# - локальная

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

0

Поделиться сообщением


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

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

0

Поделиться сообщением


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

Да сколько раз повторять то...Для чара переменная должна быть без ПРИСТАВКИ.

1

Поделиться сообщением


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

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

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

0

Поделиться сообщением


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

ап

0

Поделиться сообщением


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

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

:o :o :o

1

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас