Jump to content
  • 0

[Help]Nobless npc Fix


Question

Posted

Hi guys...I want to fix nobless npc....If one char want to be nobless i want to have only 4 items...I don't want to have subclass or anything else can explain me how can do this?? :/ ty

 

 

 

qn = "6666_NoblessTrader"

 

NPC=[66666]

NOBLESS_TIARA=7694

GOLD_BAR=3470

QuestId    = 6666

QuestName  = "NoblessTrade"

QuestDesc  = "custom"

InitialHtml = "31739-1.htm"

 

print "Nobless Trader (66666) Enabled..."

 

class Quest (JQuest) :

 

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

 

def onEvent(self,event,st):

              htmltext = "<html><head><body>I have nothing to say you</body></html>"

              cond = st.getInt("cond")

              count=st.getQuestItemsCount(GOLD_BAR)

              if event == "31739-3.htm" :

                  if cond == 0 and st.getPlayer().isSubClassActive() :

                      if st.getPlayer().getLevel() >= 70 and count > 1:

                            htmltext=event

                            st.set("cond","0")

                            st.getPlayer().setNoble(True)

                            st.giveItems(NOBLESS_TIARA,1)

                            st.playSound("ItemSound.quest_finish")

                            st.setState(COMPLETED)

                            st.takeItems(GOLD_BAR,2)

                      else :

                            htmltext="31739-2.htm"

                            st.exitQuest(1)

                  else :

                      htmltext="31739-2.htm"

                      st.exitQuest(1)

              return htmltext

 

def onTalk (self,npc,player):

  htmltext = "<html><head><body>I have nothing to say you</body></html>"

          st = player.getQuestState(qn)

          if not st : return htmltext

          npcId = npc.getNpcId()

          id = st.getState()

          if id == CREATED :

              st.set("cond","0")

              htmltext="31739-1.htm"

          elif id == COMPLETED :

              htmltext = "<html><head><body>This quest have already been completed.</body></html>"

          else :

              st.exitQuest(1)

          return htmltext

 

 

QUEST = Quest(6666,qn,"custom")

CREATED    = State('Start', QUEST)

STARTING    = State('Starting', QUEST)

STARTED    = State('Started', QUEST)

COMPLETED  = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

 

for npcId in NPC:

QUEST.addStartNpc(npcId)

QUEST.addTalkId(npcId)

6 answers to this question

Recommended Posts

  • 0
Posted

Hi guys...I want to fix nobless npc....If one char want to be nobless i want to have only 4 items...I don't want to have subclass or anything else can explain me how can do this?? :/ ty

 

 

 

qn = "6666_NoblessTrader"

 

NPC=[66666]

NOBLESS_TIARA=7694

GOLD_BAR=3470

QuestId    = 6666

QuestName  = "NoblessTrade"

QuestDesc  = "custom"

InitialHtml = "31739-1.htm"

 

print "Nobless Trader (66666) Enabled..."

 

class Quest (JQuest) :

 

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

 

def onEvent(self,event,st):

              htmltext = "<html><head><body>I have nothing to say you</body></html>"

              cond = st.getInt("cond")

              count=st.getQuestItemsCount(GOLD_BAR)

              if event == "31739-3.htm" :

                  if cond == 0 and st.getPlayer().isSubClassActive() :

                      if st.getPlayer().getLevel() >= 70 and count > 1:

                            htmltext=event

                            st.set("cond","0")

                            st.getPlayer().setNoble(True)

                            st.giveItems(NOBLESS_TIARA,1)

                            st.playSound("ItemSound.quest_finish")

                            st.setState(COMPLETED)

                            st.takeItems(GOLD_BAR,2)

                      else :

                            htmltext="31739-2.htm"

                            st.exitQuest(1)

                  else :

                      htmltext="31739-2.htm"

                      st.exitQuest(1)

              return htmltext

 

def onTalk (self,npc,player):

  htmltext = "<html><head><body>I have nothing to say you</body></html>"

          st = player.getQuestState(qn)

          if not st : return htmltext

          npcId = npc.getNpcId()

          id = st.getState()

          if id == CREATED :

              st.set("cond","0")

              htmltext="31739-1.htm"

          elif id == COMPLETED :

              htmltext = "<html><head><body>This quest have already been completed.</body></html>"

          else :

              st.exitQuest(1)

          return htmltext

 

 

QUEST = Quest(6666,qn,"custom")

CREATED    = State('Start', QUEST)

STARTING    = State('Starting', QUEST)

STARTED    = State('Started', QUEST)

COMPLETED  = State('Completed', QUEST)

QUEST.setInitialState(CREATED)

 

for npcId in NPC:

QUEST.addStartNpc(npcId)

QUEST.addTalkId(npcId)

 

 

 

GOLD_BAR=3470 change id  and name :)

 

st.takeItems(GOLD_BAR,2) name and count

 

 

  • 0
Posted

yeah but when i change it i must have go one subclass....I don't want to have subclass only item...How change that?? :/

 

if cond == 0 and st.getPlayer().isSubClassActive() : remove it

  • 0
Posted

if you don't know you try that:

 

 if cond == 0 and st.getPlayer() :

that is false:)

 

the true code is :

 if cond == 0 :

if cond == 0  (if condition equals 0 and st.getPlayer() i didnt know that this will cause error ok sorry for this

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..