All pastes #563688 Raw Edit

final_snad

public python v1 · immutable
·published 2007-06-13 07:55 UTC
rendered paste body
#Made by Emperorcimport sysfrom net.sf.l2j import Configfrom net.sf.l2j.gameserver.model.quest import Statefrom net.sf.l2j.gameserver.model.quest import QuestStatefrom net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuestqn = "611_AllianceWithVarkaSilenos"#NPCNaran_Ashanuk = 31378#MOB    #mobs for Alliance lvl 1:Ketra Orc footmen, raiders, scouts, shamans and war houndsKetra_One = [ 21324, 21325, 21327, 21328, 21329 ]    #mobs for Alliance lvl 2 : Ketra Orc-warriors, Lieutenants, mediums, Elite Soldiers,\    #White Captains, Seers, Commanders, Elite GuardsKetra_Two = [ 21331, 21332, 21334, 21335, 21336, 21338, 21343, 21344 ]    #mobs for Alliance lvl 3 and up SHOULD BE:Ketra Orc captains, battalion commanders, \    #grand seers, chief shamans, chief royal guards, prophets, Prophet's Guards, and Prophet's Aides        #AS LISTED in npc.sql: Ketra Orc-General, Battalion Commander, Grand Seer, \        #Ketra's - Head Shaman, Head Guard, Prophet, Prophet's Guard, and Prophet's AideKetra_Three = [ 21339, 21340, 21342, 21345, 21346, 21347, 21348, 21349 ]    #All Varka Silenos mobsVarka_Silenos = [ 21350, 21351, 21353, 21354, 21355, 21357, 21358, 21360, 21361, \21362, 21369, 21370, 21364, 21365, 21366, 21368, 21371, 21372, 21373, 21374, 21375 ]Chance = {  21325:500,  21339:500,  21340:500,  21324:500,  21336:500,  21331:500,  21342:508,  21327:509,  21334:509,  21335:518,  21343:518,  21329:519,  21328:521,  21338:527,  21344:604,  21346:604,  21348:626,  21349:626,  21345:627,  21332:628,  21347:649}Chance_molar = {  21339:568,  21340:568,  21324:500,  21336:529,  21331:529,  21342:578,  21327:510,  21334:539,  21343:548,  21329:519,  21328:522,  21338:558,  21345:713,  21332:664,  21347:638}#Quest ItemsVarka_Badge_Soldier, Varka_Badge_Officer, Varka_Badge_Captain = [7216, 7217, 7218]Ketra_Alliance_One, Ketra_Alliance_Two, Ketra_Alliance_Three, \Ketra_Alliance_Four, Ketra_Alliance_Five = [7211, 7212, 7213, 7214, 7215]Varka_Alliance_One, Varka_Alliance_Two, Varka_Alliance_Three, \Varka_Alliance_Four, Varka_Alliance_Five  = [7221, 7222, 7223, 7224, 7225]Ketra_Badge_Soldier, Ketra_Badge_Officer, Ketra_Badge_Captain  = [7226, 7227,7228]Valor_Feather, Wisdom_Feather = [ 7229, 7230 ]Molar = 7234#drop system - cond:[item_id,max,drop_id]One ={  1:[57,100,Ketra_Badge_Soldier],  2:[Varka_Alliance_One,200,Ketra_Badge_Soldier],  3:[Varka_Alliance_Two,300,Ketra_Badge_Soldier],  4:[Varka_Alliance_Three,300,Ketra_Badge_Soldier],  5:[Varka_Alliance_Four,400,Ketra_Badge_Soldier]}Two ={     2:[Varka_Alliance_One,100,Ketra_Badge_Officer],  3:[Varka_Alliance_Two,200,Ketra_Badge_Officer],  4:[Varka_Alliance_Three,300,Ketra_Badge_Officer],  5:[Varka_Alliance_Four,400,Ketra_Badge_Officer]}Three ={     3:[Varka_Alliance_Two,100,Ketra_Badge_Captain],  4:[Varka_Alliance_Three,200,Ketra_Badge_Captain],  5:[Varka_Alliance_Four,200,Ketra_Badge_Captain]}def decreaseAlliance(st) :  if st.getPlayer().isAlliedWithVarka() :    cond = st.getInt("cond")    id = st.getInt("id")    st.takeItems(Ketra_Badge_Soldier,-1)    st.takeItems(Ketra_Badge_Officer,-1)    st.takeItems(Ketra_Badge_Captain,-1)    st.takeItems(Valor_Feather,-1)    st.takeItems(Wisdom_Feather,-1)    st.getPlayer().setAllianceWithVarkaKetra(0)    st.exitQuest(1)    if cond == 2 :      if id == 2 :        st.takeItems(Varka_Alliance_One,-1)      else :        st.takeItems(Varka_Alliance_Two,-1)        st.giveItems(Varka_Alliance_One,1)    elif cond == 3 :      if id == 2:        st.takeItems(Varka_Alliance_Two,-1)        st.giveItems(Varka_Alliance_One,1)      else :         st.takeItems(Varka_Alliance_Three,-1)         st.giveItems(Ketra_Alliance_Two,1)    elif cond == 4 :      if id == 2 :        st.takeItems(Varka_Alliance_Three,-1)        st.giveItems(Varka_Alliance_Two,1)      else :        st.takeItems(Varka_Alliance_Four,-1)        st.giveItems(Varka_Alliance_Three,1)    elif cond == 5 :      if id == 2 :        st.takeItems(Varka_Alliance_Four,-1)        st.giveItems(Varka_Alliance_Three,1)      else :        st.takeItems(Varka_Alliance_Five,-1)        st.giveItems(Varka_Alliance_Four,1)    elif cond == 6 :      st.takeItems(Varka_Alliance_Five,-1)      st.giveItems(Varka_Alliance_Four,1)def giveReward(st,item,chance,MAX,drop) :  if st.getQuestItemsCount(item) > 0 :    count = st.getQuestItemsCount(drop)    if count < MAX :      numItems,chance = divmod(chance*Config.RATE_DROP_QUEST,1000)      if st.getRandom(1000) < chance :        numItems += 1      numItems = int(numItems)      if numItems != 0 :        if count + numItems >= MAX and item != Molar :          numItems = MAX - count          st.playSound("ItemSound.quest_middle")        elif item == Molar and int((count+numItems)/100) > int(count/100) :          st.playSound("ItemSound.quest_middle")        else :          st.playSound("ItemSound.quest_itemget")        st.giveItems(drop,numItems)class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent (self,event,st) :   cond = st.getInt("cond")   id = st.getInt("id")   htmltext = event   if event == "31378-03a.htm" :       if st.getPlayer().getLevel() >= 74 :            st.set("cond","1")            st.set("id","2")            st.setState(STARTED)            st.playSound("ItemSound.quest_accept")            htmltext = "31378-03a.htm"       else :            htmltext = "31378-02b.htm"            st.getPlayer().setAllianceWithVarkaKetra(0)            st.exitQuest(1)   elif event == "31378-10-1.htm" :       htmltext = "31378-10-1.htm"       st.set("id","3")       st.takeItems(Ketra_Badge_Soldier, 100)       st.giveItems(Varka_Alliance_One, 1)       st.getPlayer().setAllianceWithVarkaKetra(-1)       st.playSound("ItemSound.quest_middle")   elif event == "31378-10-2.htm" :       htmltext = "31378-10-2.htm"       st.set("id","3")       st.takeItems(Ketra_Badge_Soldier, 200)       st.takeItems(Ketra_Badge_Officer, 100)       st.takeItems(Varka_Alliance_One, -1)       st.giveItems(Varka_Alliance_Two, 1)       st.getPlayer().setAllianceWithVarkaKetra(-2)       st.playSound("ItemSound.quest_middle")   elif event == "31378-10-3.htm" :       htmltext = "31378-10-3.htm"       st.set("id","3")       st.takeItems(Ketra_Badge_Soldier, 300)       st.takeItems(Ketra_Badge_Officer, 200)       st.takeItems(Ketra_Badge_Captain, 100)       st.takeItems(Varka_Alliance_Two, -1)       st.giveItems(Varka_Alliance_Three, 1)       st.getPlayer().setAllianceWithVarkaKetra(-3)       st.playSound("ItemSound.quest_middle")   elif event == "31378-10-4.htm" :       htmltext = "31378-10-4.htm"       st.set("id","3")       st.takeItems(Ketra_Badge_Soldier, 300)       st.takeItems(Ketra_Badge_Officer, 300)       st.takeItems(Ketra_Badge_Captain, 200)       st.takeItems(Varka_Alliance_Three, -1)       st.takeItems(Valor_Feather,-1)       st.giveItems(Varka_Alliance_Four, 1)       st.getPlayer().setAllianceWithVarkaKetra(-4)       st.playSound("ItemSound.quest_middle")   elif event == "31378-11a.htm" :       htmltext = "31378-11a.htm"   elif event == "31378-19.htm" :       htmltext = "31378-19.htm"   elif event == "31378-11b.htm" :       htmltext = "31378-11b.htm"   elif event == "31378-20.htm" :       htmltext = "31378-20.htm"       st.takeItems(Ketra_Badge_Soldier, -1)       st.takeItems(Ketra_Badge_Officer, -1)       st.takeItems(Ketra_Badge_Captain, -1)       st.takeItems(Varka_Alliance_One, -1)       st.takeItems(Varka_Alliance_Two, -1)       st.takeItems(Varka_Alliance_Three, -1)       st.takeItems(Varka_Alliance_Four, -1)       st.takeItems(Varka_Alliance_Five, -1)       st.takeItems(Valor_Feather,-1)       st.takeItems(Wisdom_Feather,-1)       st.getPlayer().setAllianceWithVarkaKetra(0)       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 st :      npcId = npc.getNpcId()      cond = st.getInt("cond")      id = st.getInt("id")      KBadgeS = st.getQuestItemsCount(Ketra_Badge_Soldier)      KBadgeO = st.getQuestItemsCount(Ketra_Badge_Officer)      KBadgeC = st.getQuestItemsCount(Ketra_Badge_Captain)      VAlliance1 = st.getQuestItemsCount(Varka_Alliance_One)      VAlliance2 = st.getQuestItemsCount(Varka_Alliance_Two)      VAlliance3 = st.getQuestItemsCount(Varka_Alliance_Three)      VAlliance4 = st.getQuestItemsCount(Varka_Alliance_Four)      VAlliance5 = st.getQuestItemsCount(Varka_Alliance_Five)      VAlliance = VAlliance1 + VAlliance2 + VAlliance3 + VAlliance4 + VAlliance5      KAlliance = st.getQuestItemsCount(Ketra_Alliance_One) + \       st.getQuestItemsCount(Ketra_Alliance_Two) + st.getQuestItemsCount(Ketra_Alliance_Three) + \       st.getQuestItemsCount(Ketra_Alliance_Four) + st.getQuestItemsCount(Ketra_Alliance_Five)      Valor = st.getQuestItemsCount(Valor_Feather)      Wisdom = st.getQuestItemsCount(Wisdom_Feather)      if npcId == Naran_Ashanuk :          st.set("id","1")          if st.getPlayer().isAlliedWithKetra() or KAlliance :              htmltext= "31378-02a.htm"              st.exitQuest(1)          elif VAlliance == 0 :              if cond != 1 :                  htmltext = "31378-01.htm"              else :                  st.set("id","2")                  if KBadgeS < 100 :                      htmltext= "31378-03b.htm"                  elif KBadgeS >= 100 :                      htmltext = "31378-09.htm"          elif VAlliance :              st.setState(STARTED)              st.set("id","2")              if VAlliance1 :                  if cond != 2 :                      htmltext = "31378-04.htm"                      st.set("cond","2")                      st.getPlayer().setAllianceWithVarkaKetra(-1)                  else :                      if KBadgeS < 200 or KBadgeO < 100 :                          htmltext = "31378-12.htm"                      elif KBadgeS >= 200 and KBadgeO >= 100 :                          htmltext = "31378-13.htm"              elif VAlliance2 :                  if cond != 3 :                      htmltext = "31378-05.htm"                      st.set("cond","3")                      st.getPlayer().setAllianceWithVarkaKetra(-2)                  else :                      if KBadgeS < 300 or KBadgeO < 200 or KBadgeC < 100 :                          htmltext = "31378-15.htm"                      elif KBadgeS >= 300 and KBadgeO >= 200 and KBadgeC >= 100 :                          htmltext = "31378-16.htm"              elif VAlliance3 :                  if cond != 4 :                      htmltext = "31378-06.htm"                      st.set("cond","4")                      st.getPlayer().setAllianceWithVarkaKetra(-3)                  else:                      if KBadgeS < 300 or KBadgeO < 300 or KBadgeC < 200 or Valor == 0 :                          htmltext = "31378-21.htm"                      elif KBadgeS >= 300 and KBadgeO >= 300 and KBadgeC >= 200 and Valor > 0 :                          htmltext = "31378-22.htm"              elif VAlliance4 :                  if cond != 5 :                      htmltext = "31378-07.htm"                      st.set("cond","5")                      st.getPlayer().setAllianceWithVarkaKetra(-4)                  else :                      if KBadgeS < 400 or KBadgeO < 400 or KBadgeC < 200 or Wisdom == 0 :                          htmltext = "31378-17.htm"                      elif KBadgeS >= 400 and KBadgeO >= 400 and KBadgeC >= 200 and Wisdom > 0 :                          htmltext = "31378-10-5.htm"                          st.takeItems(Ketra_Badge_Soldier, 400)                          st.takeItems(Ketra_Badge_Officer, 400)                          st.takeItems(Ketra_Badge_Captain, 200)                          st.takeItems(Varka_Alliance_Four, -1)                          st.takeItems(Wisdom_Feather,-1)                          st.giveItems(Varka_Alliance_Five, 1)                          st.getPlayer().setAllianceWithVarkaKetra(-5)                          st.set("id","3")                          st.playSound("ItemSound.quest_middle")              elif VAlliance5 :                  if cond != 6 :                      htmltext = "31378-18.htm"                      st.set("cond","6")                      st.getPlayer().setAllianceWithVarkaKetra(-5)                  else:                      htmltext = "31378-08.htm"    return htmltext def onKill (self,npc,player):   partyMember = self.getRandomPartyMemberState(player,STARTED)   if not partyMember: return   st = partyMember.getQuestState(qn)   if st :     if st.getState() == STARTED :          npcId = npc.getNpcId()          cond = st.getInt("cond")          id = st.getInt("id")          st2 = st.getPlayer().getQuestState("612_WarWithKetraOrcs")          if not st.getPlayer().isAlliedWithKetra() :              if (npcId in Ketra_One) or (npcId in Ketra_Two) or (npcId in Ketra_Three):                  item = 0                  if cond <= 5 :                    if npcId in Ketra_One :                      item,MAX,drop = One[cond]                    elif npcId in Ketra_Two and cond > 1:                      item,MAX,drop = Two[cond]                    elif npcId in Ketra_Three and cond > 2 :                      item,MAX,drop = Three[cond]                  chance = Chance[npcId]      #This is support for quest 612: War With Ketra Orcs. Basically, if the person has both this quest and 612, then they only get one quest item, 50% chance for 612 quest item and 50% chance for this quest's item                  if st2 :                      if (st.getRandom(2) == 1 or item == 0) and npcId in Chance_molar.keys() :                          item = 57                          MAX = 100                          drop = molar                          chance = Chance_molar[npcId]                          giveReward(st,item,chance,MAX,drop)                      elif id == 2 and item != 0 :                          giveReward(st,item,chance,MAX,drop)                  elif id == 2 and item != 0 :                      giveReward(st,item,chance,MAX,drop)              elif npcId in Varka_Silenos :                  decreaseAlliance(st)                  party = st.getPlayer().getParty()                  if party :                      for player in party.getPartyMembers().toArray() :                          pst = player.getQuestState(qn)                          if pst :                              decreaseAlliance(pst)   returnQUEST       = Quest(611,qn,"Alliance With Varka Silenos")CREATED     = State('Start', QUEST)STARTED     = State('Started', QUEST)QUEST.setInitialState(CREATED)QUEST.addStartNpc(Naran_Ashanuk)QUEST.addTalkId(Naran_Ashanuk)for mobId in Chance.keys() :    QUEST.addKillId(mobId)STARTED.addQuestDrop(Naran_Ashanuk,Ketra_Badge_Soldier,1)STARTED.addQuestDrop(Naran_Ashanuk,Ketra_Badge_Officer,1)STARTED.addQuestDrop(Naran_Ashanuk,Ketra_Badge_Captain,1)for mobId in Varka_Silenos :    QUEST.addKillId(mobId)print "importing quests: 611: Alliance With Varka Silenos"