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

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

А что лучше будет, проверка на итем или добавление глобальной переменной?

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

Опять же

 if(registrator!=1) end; 

так нельзя. Если не равно то все тупо повиснет. Надо обязательно кнопочку close;

опять же при

delitem 7848,1;

надо сразу же ставить переменную что бы записать это действие, а то получится НПЦ забрал лут и клиент вылетел, инет лаганул, и т.п. НПЦ все время будет останавливаться и говорить что нет лута.

а вообще читай doc/script_command.txt в папке с афиной. Там все это есть.

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

@kadze,раскрой мне тайну.Нахера в скриптах простых NPC юзать 'end;' ? Нужно 'close;' юзать.

@Cлавик Панфилыч,лейблы не юзай.

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

Почему тайна? в конце работы выложу скрипты.

Как сделать, такое:


mes "[Вопросы]";
mes "Вопрос 1";
mes "Вопрос 2";
mes "Вопрос 3";
mes "Вопрос 4";
mes "Правильный Ответ:";
//поле для ввода ответа
соответственно проверка на правильный ответ, подсчет правильных ответов.

Как провернуть такое?

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

mes "[Вопросы]";
mes "Вопрос 1";
input .@otvet$;
if(.@otvet$ != "Правильный ответ") close;
next;
mes "[Вопросы]";
mes "Вопрос 2";
input .@otvet$;
if(.@otvet$ != "Правильный ответ") close;

ну как то так

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

тогда как сделать так, чтобы велась запись в переменную, количество правильных ответов?

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

Итак косяк:


mes "[Вопросы]";
mes "Как называется наш сервер";
input .@otvet$;
if(.@otvet$ != "RebirthRo") close;
set otvet,otvet+1;
next;

mes "[Вопросы]";
mes "Какие программы нельзя использовать на сервере? (Ответ с большой буквы)";
input .@otvet$;
if(.@otvet$ != "Кликеры") close;
set otvet,otvet+1;
next;

mes "[Вопросы]";
mes "Как называется новая Столица Мира? (Ответ с большой буквы)";
input .@otvet$;
if(.@otvet$ != "Welgaia") close;
set otvet,otvet+1;
next;

mes "[Вопросы]";
mes "Какой компанией создана игра Рагнарок? (Ответ с большой буквы)";
input .@otvet$;
if(.@otvet$ != "Gravity") close;
set otvet,otvet+1;
next;

mes "[Вопросы]";
mes "В середине какого года создана игра Рагнарок?";
input .@otvet$;
if(.@otvet$ != "2002") close;
set otvet,otvet+1;
next;

if(otvet==1){
mes "У вас 1 правильный ответ!";
close;
}
if(otvet==2){
mes "У вас 2 правильных ответов!";
close;
}
if(otvet==3){
mes "У вас 3 правильных ответов!";
close;
}
if(otvet==4){
mes "У вас 4 правильного ответа!";
close;
}
if(otvet==5){
mes "У вас 5 правильных ответов!";
close;
}

По идеи проверка идет на количество правильных ответов, но после прохождения теста не выводит информацию.

Так же и при 5-ти правильных ответах не выводит информацию о том, что У вас 5 правильных ответов

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

Всю эту конструкцию

if(otvet==1){ 
mes "У вас 1 правильный ответ!";
close;
}
if(otvet==2){
mes "У вас 2 правильных ответов!";
close;
}
if(otvet==3){
mes "У вас 3 правильных ответов!";
close;
}
if(otvet==4){
mes "У вас 4 правильного ответа!";
close;
}
if(otvet==5){
mes "У вас 5 правильных ответов!";
close;
}

Заменить на

mes "Количество правильных ответов: " +otvet;
close;

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

      if(registrator!=1) end;
mes "[Помощник Регистратора]";
mes "Привет! Я помощник Регистратора.";
mes "Сейчас я проверю твои бумаги и мы приступим.";
if(countitem(7848)==0) goto L_noitems;
next;
mes "[Помощник Регистратора]";
mes "Все в порядке.";
mes "Сейчас я тебе расскажу, о том, что тебе нужно будет сделать дальше.";
mes "Хочешь послушать меня?";
switch(select("Да, мне интересно:Нет, я все знаю:Пока")){
case 1:
delitem 7848,1;
mes "[Помощник Регистратора]";
mes "Прекрасно, прослушав мою лекцию, в конце тебя ждет подарок.";
next;

если ты поставишь проверку до "Сейчас я проверю твои бумаги и мы приступим." будет глупо)

С твоей проверкой игрок сможет продолжать разговор только если у него нету бумаги, этот кусок должен выглядить так:

      if(registrator!=1) end;
mes "[Помощник Регистратора]";
mes "Привет! Я помощник Регистратора.";
mes "Сейчас я проверю твои бумаги и мы приступим.";
if(countitem(7848)=>1) goto L_noitems;
next;
mes "[Помощник Регистратора]";
mes "Все в порядке.";
mes "Сейчас я тебе расскажу, о том, что тебе нужно будет сделать дальше.";
mes "Хочешь послушать меня?";
switch(select("Да, мне интересно:Нет, я все знаю:Пока")){
case 1:
delitem 7848,1;
mes "[Помощник Регистратора]";
mes "Прекрасно, прослушав мою лекцию, в конце тебя ждет подарок.";
next;

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

*рукалицо* если у него нету бумаги переходит по лэйблу NOITEMS тебе это о чем нибудь говорит? если нет-идем в школу учить английский

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

*рукалицо* если у него нету бумаги переходит по лэйблу NOITEMS тебе это о чем нибудь говорит? если нет-идем в школу учить английский

Не обратил внимания на лэйблу=\

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

Проблема в этой строчке:


mes "[Мастер Правил]";
mes "Количество правильных ответов: " +otvet;
mes "Молодец, ты внимательный ученик.";

Количество правильных ответов не сбрасывается, а постоянно начисляется больше

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

Проблему решил:


mes "[Мастер Правил]";
mes "Количество правильных ответов: " +otvet;
mes "Молодец, ты внимательный ученик.";
delitem 7847,1;
set otvet,otvet==0;

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

Итак, как сделать так, чтобы при телепорте от нпц на другую мапу, точка спавна сохранялась автоматом?

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

×
×
  • Создать...
Яндекс.Метрика