Посмотреть, как сделано в других квестах?Подскажите, пожалуйста, как сделать этапы прохождения квеста. Скажем, я набил нужное количество итемов, как в этот момент вызвать иконку со знаком вопроса и переход к следующему этапу? Это касается и скрипта и клиентской части. Хроники интерлюд, сборка PW-soft.
В том-то и беда, что посмотрел, но из-за отсутствия знаний не понял, как это устроено.Посмотреть, как сделано в других квестах?
В том то и беда, кроме вас никто не сможет это сделать поэтому открывайте квест Q001_LettersOfLove и будем разбирать вместе как с лялькой, которая не в состоянии передвигаться самостоятельно.В том-то и беда, что посмотрел, но из-за отсутствия знаний не понял, как это устроено.
В том то и беда, кроме вас никто не сможет это сделать поэтому открывайте квест Q001_LettersOfLove и будем разбирать вместе как с лялькой, которая не в состоянии передвигаться самостоятельно.
Но сначала надо будет указать:
1. Сборку
2. Хроники
и установить хоть что-то похожее на IDE типа эклипса или нетбинса, при этом у вас должна быть установлена java для компиляции и если квесты и сборка aCis тогда нужно настроить IDE на отладку, чтобы не заходить по сотни раз в игру и перепроверять то дерьмо что будет написано.
Хроники интерлюд, сборка PW-soft.
def onTalk (self,npc,player): //начало метода
st = player.getQuestState(qn) //получаем состояние квеста у player
htmltext = "<html><body>You are either not carrying out your quest or don't meet the criteria.</body></html>" //устанавливаем базовый html, который будет возвращаться игроку при определённых условиях
if not st: return htmltext //если у игрока нет данного квеста (он не начинал его) то отсылаем заготовленный HTML
npcId = npc.getNpcId() //устанавливает ID NPC в переменную, которую будем дёргать для этапов
id = st.getState() //получаем состояние квеста у игрока: Пройден или стартует и т.д.
if id == CREATED : //если квест СОЗДАН (т.е. он удачно грузанулся (даже звучит кончено)
st.setState(STARTING) //то устанавливаем STATE квеста (наш st) на START - т.е. игрок начал его прохождение (квест взят)
st.set("cond","0") // установка базовых параметров
st.set("onlyone","0")// установка NONREPEAT или REPEAT параметра, тип проходим только один раз (реализация просто 3.14здец)
st.set("id","0")// установка базовых параметров ID, которые я вообще не понимаю зачем здесь нужны
cond = st.getInt("cond") // получение нашего cond, который установили выше
onlyone = st.getInt("onlyone") // получение нашего onlyone который так же установили выше
ItemsCount_DL = st.getQuestItemsCount(DARINGS_LETTER) // установка кол-ва вещей с идиотским именем №1
ItemsCount_RK = st.getQuestItemsCount(RAPUNZELS_KERCHIEF)// установка кол-ва вещей с идиотским именем №2
ItemsCount_DR = st.getQuestItemsCount(DARINGS_RECEIPT)// установка кол-ва вещей с идиотским именем №3
ItemsCount_BP = st.getQuestItemsCount(BAULS_POTION)// установка кол-ва вещей с идиотским именем №4
// в будущем в квесте всё это проверяется, т.е. сколько у игрока вещей DARINGS_LETTER например.
if npcId == DARIN and cond == 0 and onlyone == 0 : // Пошли этапы. Этап 1: Если ID NPC = DARIN и cond == 0 и квест проходится впервые
if player.getLevel() >= 2 : // то выполянем всё нижеописанное (проверки на уровень, и прочее)
if cond < 15 :
htmltext = "30048-02.htm"
else:
htmltext = "30048-01.htm"
st.exitQuest(1)
else:
htmltext = "<html><body>Quest for characters level 2 and above.</body></html>"
st.exitQuest(1)
elif npcId == DARIN and cond == 0 and onlyone == 1 : // Этап 2: Если ID NPC = DARIN и cond == 0 и квест УЖЕ ПРОЙДЕН
htmltext = "<html><body>This quest has already been completed.</body></html>" // то шлём игрока нахер
elif id == STARTED : // Этап STARTED
if npcId == ROXXY and cond and onlyone == 0: //Этап 1: Если npcId = ROXXY и cond и onlyone равны 0 т овыполняем код ниже и т.д.
if ItemsCount_RK == 0 and ItemsCount_DL :
htmltext = "30006-01.htm"
st.takeItems(DARINGS_LETTER,-1)
st.giveItems(RAPUNZELS_KERCHIEF,1)
st.set("cond","2")
st.set("id","2")
st.playSound("ItemSound.quest_middle")
elif ItemsCount_BP or ItemsCount_DR :
htmltext = "30006-03.htm"
elif ItemsCount_RK :
htmltext = "30006-02.htm"
elif npcId == DARIN and cond and ItemsCount_RK > 0 and onlyone == 0 :
htmltext = "30048-08.htm"
st.takeItems(RAPUNZELS_KERCHIEF,-1)
st.giveItems(DARINGS_RECEIPT,1)
st.set("cond","3")
st.set("id","3")
st.playSound("ItemSound.quest_middle")
elif npcId == BAULRO and cond and onlyone == 0 :
if ItemsCount_DR > 0 :
htmltext = "30033-01.htm"
st.takeItems(DARINGS_RECEIPT,-1)
st.giveItems(BAULS_POTION,1)
st.set("cond","4")
st.set("id","4")
st.playSound("ItemSound.quest_middle")
elif ItemsCount_BP > 0 :
htmltext = "30033-02.htm"
elif npcId == DARIN and cond and ItemsCount_RK == 0 and onlyone == 0 :
if ItemsCount_DR > 0 :
htmltext = "30048-09.htm"
elif ItemsCount_BP > 0 :
htmltext = "30048-10.htm"
st.takeItems(BAULS_POTION,-1)
st.giveItems(NECKLACE,1)
st.set("cond","0")
st.set("onlyone","1")
st.setState(COMPLETED)
st.playSound("ItemSound.quest_finish")
else:
htmltext = "30048-07.htm"
return htmltext
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?