Jump to content

[Lua]Структура диалога с НПС


Go-piratia

Recommended Posts


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



Игровая часть

Это одна строчка, отвечающие за положение нпса на карте, его облик, поворот, какую функцию выполняет.

Возьмём к примеру простого продавца всякой всячиной.
Игровая часть нпсов находятся в папке с картой, обычно в файлы называются так:

*npc.txt


я лично взял эту строчку из

garnernpc.txt

 

10 Универсам 1 13 0 221100,278100 221100,27810 180 Argent City 1 0 r_npstorgovec 0

Итак, разбираем, что нам здесь нужно, а остальное не трогаем оставляем как есть, вот что можно редактировать:
10 - это номер строчки в файле(номер нпс"а в этом файле) она же называется ID
Универсам - имя нпса в игре
13 - моделька нпса, её можно выбрать из списка мобов (Characterinfo.txt это значение, ID из этого файла)
221100,278100 221100,278100 - координаты, тоесть где стоит НПС, повторяется 2 раза. После координаты X и Y обязательно добавлять два нуля.
180 - Градус поворота нпса на месте(куда он смотрит), если 0, то он смотрит на север, соответсвенно если 180, то на юг.
Argent City название местности, где стоит нпс, можно написать так, а можно просто "Аргент".
r_npstorgovec - это функция нпса, она прописана в resource\script\MisScript\NpcScript0X.lua
вместо X - любое число.

Собственно всё, больше нам здесь ничего не нужно. Теперь переходим к технической части, открываем NpcScript0X.lua и начинаем изучать. 



Техническая часть

Итак, начнём с простого, с торговцев.

function r_npstorgovec()


Talk( 1, "Купи у меня что нибудь " )
Text( 1, "Кк братюнь ", BuyPage )

InitTrade()
Defence( 0290 )
Weapon( 1396 )
Other( 4061 )

-- AddNpcMission ( 220 )
AddNpcMission ( 705 )

end


Строение функци начинается со слова function и кончается словом end
Далее мы видим название функции - r_npstorgovec

  • Talk - что нам говорит нпс
  • Текст - он нам скажет фразу эту,
  • Text - вариант ответа на его текст
  • Текст - что мы можем ему ответить

P.S. Если текст мы пишем на русском, то в конце, перед ковычками, нужно поставить 3 пробела. Не забудьте, сервер не воспринимает букву "ё" и "й", обходитесь нез неё, заменяйте на "и" и на "е".

  • BuyPage - открывает торг с нпсом, то бишь что делает нпс, если мы нажмём на этот вариант ответа, все функции будут чуть позже на выбор.
  • InitTrade() - открытие вкладок торговли
  • Defence - вкладка с щитом нарисованным(защита)
  • Weapon -вкладка с мечом нарисованным(оружие)
  • Other - вкладка с мешочком нарисованным(Остальное)
  • 0290 - айди предмета, этот номер предмета берётся из iteminfo.txt
  • -- - делает невидимой строчку, то есть вы отключаете всю строчку, после этого символа, сточку геймсервер не читает.
  • AddNpcMission - нпс может давать квест на выполнение
  • 705 - айди даваемого квеста


Теперь я расскажу о функция в ответе на диалог нпса.
Вы уже знакомы с BuyPageсписок некоторых готовых функций, вид их написания и их действия:

Text( 1, "Открыть торг ", BuyPage )
Text( 1, " Комбинирование ", OpenUnite)
Text( 1, " Ковка ", OpenForge)
Text( 1, " Плавка ", OpenMilling)
Text( 1, " Плавка Аппарелей ", OpenFusion)
Text( 1, " Заточка Аппарелей ", OpenUpgrade)
Text( 1, " Вытащить Самоцветы ", OpenGetStone )
Text( 1, "Закрыть разговор ", CloseTalk )
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Chat

Chat

Please enter your display name

×
×
  • Create New...