Администратор
Регистрация: 09.11.2007
Адрес: Украина, Кривбасс
Возраст: 38
Сообщений: 6,377
Отблагодарили 3,722 раз(а)
|
Ответ: Телепорт за определеный итем: EMU-RT 482
Хороший скрипт взяли для "фундамента", но вот одного не понял, куда Вы удалили TOKEN, в котором и был указан ID предмета, который забирают?
[SOURCE="py"]qn = "1104_NewbieTravelToken"
TOKEN = 8542 # предмет, который мы наглым образом отберем у бедного персонажа
DATA={
30600:[ 12160, 16554,-4583],# Деревня Темных Эльфов
30601:[115594,-177993, -912],# Деревня Гномов
30599:[ 45470, 48328,-3059],# Деревня Эльфов
30602:[-45067,-113563, -199],# Деревня Орков
30598:[-84053, 243343,-3729],# Деревня Людей
32135:[-119712, 44519, 368] # Деревня Камаель
}[/SOURCE]
Где указывать нужный предмет, я думаю вам понятно стало. Идем дальше.
[SOURCE="py"] def onAdvEvent (self,event,npc, player) :
htmltext = event
st = player.getQuestState(qn)
if not st : return
if event.isdigit():
dest=int(event)
if dest in DATA.keys():
x,y,z=DATA[dest]
if x and y and z:
if st.getQuestItemsCount(TOKEN): # проверка, есть ли у персонажа предмет с id 8542
st.takeItems(TOKEN,1) # предмет(ы) с id 8542 найден(ы), отберем 1 шт.
st.getPlayer().teleToLocation(x,y,z) # телепортируем на указанные в DATA координаты
else: # предмет с id 8542 не найден у персонажа, отсылаем его на... рынок
st.exitQuest(1) # выходим из квеста
return "Incorrect item count" # выводим сообщение о том, что нехватает предмета
st.exitQuest(1)
return[/SOURCE]
Все расписал, думаю вопросов не будет. И последнее, квест будет работать только у персонажей < 20 уровня, ведь там есть проверка.
[SOURCE="py"] def onTalk (Self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
if player.getLevel() >= 20: # проверяем персонажа и если его уровень больше или равен 20, то даем отбой
htmltext="1.htm"
st.exitQuest(1)
else:
htmltext=str(npcId)+".htm"
return htmltext[/SOURCE]
Приводим все в такое состояние и радуемся жизни.
[SOURCE="py"] def onTalk (Self,npc,player):
st = player.getQuestState(qn)
npcId = npc.getNpcId()
#if player.getLevel() >= 20: # проверяем персонажа и если его уровень больше или равен 20, то даем отбой
# htmltext="1.htm"
# st.exitQuest(1)
#else:
htmltext=str(npcId)+".htm"
return htmltext[/SOURCE]
__________________
composer require laravel/framework
yarn add vue
|