Славик Панфилыч Опубликовано 10 августа, 2011 Жалоба Поделиться Опубликовано 10 августа, 2011 Итак, имеется нпц регистратор. Можно ли, сделать так, чтобы он запоминал игрока в глобальную переменную, чтобы в дальнейшем, игрок смог общаться со всеми остальными НПЦ? И как это сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 10 августа, 2011 Жалоба Поделиться Опубликовано 10 августа, 2011 т.е. подойдя к одному нпц открывается доступ ко всем остальным?если да,то в код первого нпц вводим новую переменнуюset registrator,1;в остальных нпц делаем проверку на нееif(registrator!=1) end; Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 10 августа, 2011 Автор Жалоба Поделиться Опубликовано 10 августа, 2011 Какие переменный отвечают за вывод базового и джоб уровня? Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 10 августа, 2011 Жалоба Поделиться Опубликовано 10 августа, 2011 JobLevel и BaseLevel соответственно Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Итак, вот мой скрипт регистратора:sec_in01.gat,73,167,0 script Регистратор 871,{ set registrator,1; if(registrator!=0) { mes "[Регистратор]"; mes "Привет "+strcharinfo(0)+". Я главный Регистратор."; mes "Я вижу, что ты тут новенький!"; mes "Для того чтобы начать играть, я должен тебя зарегистрировать.";next; mes "[Регистратор]"; mes "Приступим..."; next; mes "[Регистратор]"; mes "..."; next; mes "[Регистратор]"; mes "......"; next; mes "[Регистратор]"; mes ".........";next; mes "[Регистратор]"; mes "Твое имя - "+strcharinfo(0)+""; mes "Твоя профессия - "+Job+""; mes "Твой базовый уровень - "+BaseLevel+""; mes "Твой рабочий уровень - "+JobLevel+""; mes "Время - "+gettime(3)+"";next; mes "[Регистратор]"; mes "Великолепно!"; mes "Хорошо, отнеси эти бумаги моему помощнику."; getitem 7848,1;next; mes "[Регистратор]"; mes "Не потеряй их! Без них ты не сможешь пройти обучающий курс новичка!"; mes "Удачи тебе и успехов.";close;} else { mes "[Регистратор]"; mes "Я тебе дал необходимые бумаги, пожалуйста"; mes "поговорите с моим помощником."; close; } }Мне нужно, чтобы он делал проверку на повтор разговора, но почему-то не работает. В чем косяк? Ссылка на комментарий Поделиться на другие сайты Поделиться
Agasper Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 sec_in01.gat,73,167,0 script Регистратор 871,{if(registrator==1){ mes "[Регистратор]"; mes "Я тебе дал необходимые бумаги,пожалуйста поговорите с моим помощником."; close; }mes "[Регистратор]";mes "Привет "+strcharinfo(0)+". Я главный Регистратор.";mes "Я вижу, что ты тут новенький!";mes "Для того чтобы начать играть, я должен тебя зарегистрировать.";next;mes "[Регистратор]";mes "Приступим...";next;mes "[Регистратор]";mes "...";next;mes "[Регистратор]";mes "......";next;mes "[Регистратор]";mes ".........";next;mes "[Регистратор]";mes "Твое имя - "+strcharinfo(0)+"";mes "Твоя профессия - "+Job+"";mes "Твой базовый уровень - "+BaseLevel+"";mes "Твой рабочий уровень - "+JobLevel+"";mes "Время - "+gettime(3)+"";next;mes "[Регистратор]";mes "Великолепно!";mes "Хорошо, отнеси эти бумаги моему помощнику.";getitem 7848,1;next;mes "[Регистратор]";mes "Не потеряй их! Без них ты не сможешь пройти обучающий курс новичка!";mes "Удачи тебе и успехов.";set registrator,1;close;} 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Работает, спасибо.Теперь другой вопрос при выведении mes "...";Для того чтобы сделать по очередное выведение каждой точки, нужна команда sleep? Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Возможно ли выложить шпаргалку по знакам, т.е. ==, != и т.д.Будет полезно начинающим.В отдельной теме. Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 если ты будешь писать sleep; аттач сбросится.нужно использовать sleep2.какие еще знаки нужно пояснить? Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Самые основные,==!=и другие, их вроде не очень много как мне помнится из курса qbasic'a Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 из курса математики скорее))!= не равно== равно>= больше либо равно<= меньше либо равно 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Благодарствую. Скоро еще вопросы будут. Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 если мне необходимо тп персонажа сразу после разговора с нпц, допустим:mes "Сейчас я тебя телепортирую";....close;что прописать надо? Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 mes "Сейчас я тебя телепортирую";close2;warp "карта",x,y; Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Спасибо) только что в варпере нашел Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Имеется кусок кода: mes "[Помощник Регистратора]"; mes "Привет! Я помощник Регистратора."; mes "Сейчас я проверю твои бумаги и мы приступим."; delitem 7848,1;next; mes "[Помощник Регистратора]"; mes "Все в порядке."; mes "Сейчас я тебе расскажу, о том, что тебе нужно будет сделать дальше."; mes "Хочешь послушать меня?";switch(select("Да, мне интересно:Нет, я все знаю:Пока")){close}Как сделать так: если персонаж случайно нажимает close и при этом у него забирают бумаги, то при повторном нажатие на помощника он смог с ним говорить, а не выходил с диалога с ошибкой, якобы бумаг нет Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 точнее при нажатие close, бумаги не забирались Ссылка на комментарий Поделиться на другие сайты Поделиться
Agasper Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 Не совсем понятно,что ты хочешь.Выложи полный код скрипта. Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 нужно не удалять бумаги сразу,а сделать проверку на их наличиеif(countitem(7848)==0) end;а после "Да,мне интересно" уже удалить 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Вот:sec_in01,72,181,0 script Помощник Регистратора 864,{if(registrator==0){ mes "[Помощник Регистраторп]"; mes "Сперва ты должен поговорить с Главным Регистратором."; close; } if(registrator!=1) end; if(countitem(7848)<1 goto L_noitems; mes "[Помощник Регистратора]"; mes "Привет! Я помощник Регистратора."; mes "Сейчас я проверю твои бумаги и мы приступим."; delitem 7848,1;next; mes "[Помощник Регистратора]"; mes "Все в порядке."; mes "Сейчас я тебе расскажу, о том, что тебе нужно будет сделать дальше."; mes "Хочешь послушать меня?";switch(select("Да, мне интересно:Нет, я все знаю:Пока")){case 1: mes "[Помощник Регистратора]"; mes "Прекрасно, прослушав мою лекцию, в конце тебя ждет подарок.";next; mes "[Помощник Регистратора]"; mes "Итак, ты находишься в Информационном Центре Новичка."; mes "Здесь ты можешь научиться основам основ и"; mes "потом применить все свое мастерство на практике.";next; mes "[Помощник Регистратора]"; mes "Для начала тебе нужно будет поговорить с Мастером Правил."; mes "Он расскажет тебе правила поведения на нашем сервере."; mes "Потом задаст тебе пару простых вопросов и подготовит"; mes "все необходимые бумаги.";next; mes "[Помощник Регистратора]"; mes "Далее тебе нужно будет отнести эти бумаги к Тренеру Новичков."; mes "Он расскажет тебе о правилах боя"; mes "о том как получить профессию и много разной чепухи..."; mes "Просто сама сдала экзамен по блату ^^";next; mes "[Помощник Регистратора]"; mes "После всех разговоров, ты перенесешься в Центр Подготовки Новичков."; mes "Там ты сможешь применить все свои знания на практике"; mes "и набраться необходимого опыта";next; mes "[Помощник Регистратора]"; mes "После всех тренировок ты продолжишь свой путь"; mes "перед тобой откроются превосходные возможности."; mes "Ты сможешь добиться большого успеха, если будешь"; mes "стараться и прикладывать свои усилия.";next; mes "[Помощник Регистратора]"; mes "Сейчас подготовлю все бумаги и отпущу тебя.";next; mes "[Помощник Регистратора]"; mes "Вот держи, спасибо, что прослушал(а) мою лекцию."; getitem 7847,1;next; mes "[Помощник Регистратора]"; mes "А это за-то, что набрался(ась) терпения."; getitem 7199,1;close;case 2: mes "[Помощник Регистратора]"; mes "Отлмчно, тогда я тебе сразу дам направление к Мастеру Правил."; getitem 7847,1;close;case 3: mes "[Помощник Регистратора]"; mes "Ты не сможешь продолжить свой путь, не поговорив со мной.";close;}L_noitems; mes "[Помощник Регистратора]"; mes "Извини у тебя нет необходимых бумаг.";close;}И допустим, на этом моменте: if(countitem(7848)<1 goto L_noitems; mes "[Помощник Регистратора]"; mes "Привет! Я помощник Регистратора."; mes "Сейчас я проверю твои бумаги и мы приступим."; delitem 7848,1;Игрок нажимает close и его кидает на этот момент:L_noitems; mes "[Помощник Регистратора]"; mes "Извини у тебя нет необходимых бумаг.";close;Как можно это исправить? Ссылка на комментарий Поделиться на другие сайты Поделиться
Shavkatik Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 Ну блин делай как было. Выше же уже подсказали. В момент забирания бумаг ставь опять глобальную переменную mes "[Помощник Регистратора]";if (registrator == 2) goto DOC_OK;mes "Привет! Я помощник Регистратора.";mes "Сейчас я проверю твои бумаги и мы приступим.";delitem 7848,1;set registrator,2;next;DOC_OK:mes "[Помощник Регистратора]";mes "Все в порядке.";mes "Сейчас я тебе расскажу, о том, что тебе нужно будет сделать дальше.";mes "Хочешь послушать меня?";switch(select("Да, мне интересно:Нет, я все знаю:Пока")){close} и да, выше правильно сказали что надо делать обязательно проверку на итемы. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 нужно не удалять бумаги сразу,а сделать проверку на их наличиеif(countitem(7848)==0) end;а после "Да,мне интересно" уже удалитьВо! Точно, спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 кнопочке есть 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Славик Панфилыч Опубликовано 11 августа, 2011 Автор Жалоба Поделиться Опубликовано 11 августа, 2011 Получается так? if(registrator!=1) end; if(countitem(7848)==0) goto L_noitems; mes "[Помощник Регистратора]"; mes "Привет! Я помощник Регистратора."; mes "Сейчас я проверю твои бумаги и мы приступим.";next; mes "[Помощник Регистратора]"; mes "Все в порядке."; mes "Сейчас я тебе расскажу, о том, что тебе нужно будет сделать дальше."; mes "Хочешь послушать меня?";switch(select("Да, мне интересно:Нет, я все знаю:Пока")){case 1: delitem 7848,1; mes "[Помощник Регистратора]"; mes "Прекрасно, прослушав мою лекцию, в конце тебя ждет подарок.";next; Ссылка на комментарий Поделиться на другие сайты Поделиться
kadze Опубликовано 11 августа, 2011 Жалоба Поделиться Опубликовано 11 августа, 2011 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;если ты поставишь проверку до "Сейчас я проверю твои бумаги и мы приступим." будет глупо) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения