Перейти к содержанию
Авторизация  
Artur_xD

Помогите Исправить Квест

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

Он полностю робочий, но нужно чтобы он был не одноразовый ( что нужно убрать ) ?

class Quest (JQuest) :

def __init__(self,id,name,descr) : JQuest.__init__(self,id,name,descr)

def onEvent (self,event,st) :
  htmltext = event
  if event == "accept.htm":
 st.setState(State.STARTED)
 st.playSound("ItemSound.quest_accept")
 st.set("cond","1")
  elif event == "finish.htm":
 if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1:
   st.takeItems(FEATHER, -1)
   st.takeItems(BOSS_ITEM, -1)
   st.giveItems(WINGS, 1)
   st.set("cond","0")
   st.playSound("ItemSound.quest_finish")
   st.setState(State.COMPLETED)
 else:
   htmltext = "mobs.htm"
  return htmltext

def onTalk (self,npc,player):
  st = player.getQuestState(qn)
  if not st: 
 return "<html><body>You are either not on a quest that involves this NPC, or you don't meet this NPC's minimum quest requirements.</body></html>"
  npcId = npc.getNpcId()
  idd = st.getState()
  cond = st.getInt("cond")
  if npcId == NPC:
 if idd == State.COMPLETED :
   htmltext = "completed.htm"
 if idd == State.CREATED :
   htmltext = "hello1.htm"
 elif cond == 1:
   if st.getQuestItemsCount(FEATHER) >= FEATHER_NEED and st.getQuestItemsCount(BOSS_ITEM) >= 1:
	 htmltext = "mobs2.htm"
   else:
	 htmltext = "mobs.htm"
  return htmltext

def onKill(self,npc,player,isPet):
  st = player.getQuestState(qn)
  if not st or st.getInt("cond") != 1:
 return
  npcId = npc.getNpcId()
  reward = 0
  limit = 1
  chance = 100
  if npcId in MOBS:
 reward = FEATHER
 limit = FEATHER_NEED
 chance = FEATHER_CHANCE
  if npcId == BOSS:
 reward = BOSS_ITEM
 limit = 1
  if reward > 0:
 party = player.getParty()
 if party:
   for member in party.getPartyMembers():
	 if not member.isAlikeDead():
	   st = member.getQuestState("q902_FeatherGathering")
	   if st and st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
		 st.giveItems(reward, 1)
		 st.playSound("ItemSound.quest_itemget")
		 if st.getQuestItemsCount(reward) >= limit:
		   st.playSound("ItemSound.quest_middle")
 else:
   if st.getQuestItemsCount(reward) < limit and st.getRandom(100) <= chance:
	 st.giveItems(reward, 1)
	 st.playSound("ItemSound.quest_itemget")
  return  

QUEST = Quest(902, qn, "Feather Gathering")

QUEST.addStartNpc(NPC)
QUEST.addTalkId(NPC)
QUEST.addKillId(BOSS)

for m in MOBS:
 QUEST.addKillId(m)

Поделиться сообщением


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

st.setState(State.COMPLETED)

Изменить COMPLETED на CREATED

Это сделает так , что статус выполненого квеста после получения конечного итема не будет , а будет возможность взять его наного

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
st.setState(State.COMPLETED)

Изменить COMPLETED на CREATED

Это сделает так , что статус выполненого квеста после получения конечного итема не будет , а будет возможность взять его наного

Спасибо, помог.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...