Advertisement
Guest User

SubclassCode

a guest
Sep 17th, 2015
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.26 KB | None | 0 0
  1. class Quest (JQuest) :
  2.  
  3. def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
  4.  
  5. def onEvent(self,event,st):
  6. eventSplit = event.split(" ")
  7. event = eventSplit[0]
  8. eventParam1 = eventSplit[1]
  9. if event == "escraza": return MainHtmlIV(st,eventParam1)
  10. if event == "confirm":
  11. if int(eventParam1) >= 88: return Confirmation(st,"1",getparentclass(st,eventParam1),eventParam1)
  12. else: return Confirmation(st,"3","deletesub",eventParam1)
  13. if event == "gethtml":
  14. if eventParam1 == "1":
  15. if AllowAllSubs == False :
  16. if AllowMutantRetail == False and st.player.isSubClassActive(): return MainHtmlIV(st,getclassname(st,str(st.player.getClassId().getId()),"RaceId"))
  17. else: return MainHtmlIV(st,getVarcharacters(st,"race"))
  18. else: return MainHtmlI(st)
  19. if eventParam1 == "2": return MainHtmlII(st)
  20. if eventParam1 == "3": return MainHtmlIII(st)
  21. return
  22.  
  23. temp = getVar(st,"currentsub")
  24. temp2 = getVar(st,"sub_index")
  25. temp3 = str(st.player.getClassIndex())
  26. temp4 = str(st.player.getClassId().getId())
  27.  
  28. if event == "camb":
  29. if temp2!=temp3: return errordeclasse(st,eventParam1,"switch a")
  30. if st.getPlayer().getClassId().level() < 2 and AllowThirdJob == False or st.getPlayer().getClassId().level() < 3 and AllowThirdJob == True : return comunerrors(st,"5")
  31. if st.getQuestItemsCount(Item1_Req) < Item1_Num and ReqItems == True: return comunerrors(st,"1")
  32. else:
  33. conn=L2DatabaseFactory.getInstance().getConnection()
  34. upd=conn.prepareStatement("UPDATE subclass_list SET subclassid"+temp+"="+temp4+", currentsub="+eventParam1+" WHERE player_id="+getmultisubs(st))
  35. try :
  36. upd.executeUpdate()
  37. upd.close()
  38. conn.close()
  39. except :
  40. try : conn.close()
  41. except : pass
  42. if resetskills(st) == 1: pass
  43. st.player.setClassId(int(getVar(st,"subclassid"+eventParam1)))
  44. st.giveItems(SubclassCoin,1)
  45. st.player.giveAvailableSkills()
  46. if not st.player.isSubClassActive(): st.player.setBaseClass(int(getVar(st,"subclassid"+eventParam1)))
  47. if ReqItems == True and not st.player.isGM(): st.takeItems(Item1_Req,Item1_Num)
  48. st.player.store()
  49. st.player.broadcastUserInfo()
  50. return complete(st)
  51. st.exitQuest(1)
  52.  
  53. if event == "deletesub":
  54. if temp2!=temp3: return errordeclasse(st,eventParam1,"borrar")
  55. if st.getPlayer().getClassId().level() < 2 and AllowThirdJob == False or st.getPlayer().getClassId().level() < 3 and AllowThirdJob == True : return comunerrors(st,"5")
  56. if st.getQuestItemsCount(Item3_Req) < Item3_Num and ReqItems == True and not st.player.isGM() : return comunerrors(st,"3")
  57. else:
  58. conn=L2DatabaseFactory.getInstance().getConnection()
  59. upd=conn.prepareStatement("UPDATE subclass_list SET subclassid"+temp+"="+temp4+", currentsub="+temp+" WHERE player_id="+getmultisubs(st))
  60. try :
  61. upd.executeUpdate()
  62. upd.close()
  63. conn.close()
  64. except :
  65. try : conn.close()
  66. except : pass
  67.  
  68. if eventParam1 == temp and getsubsammount(st) > 0:
  69. j=0
  70. for i in range(maxsubsindb + 1):
  71. var = getVar(st,"subclassid"+str(i))
  72. if int(var) >= 0 and int(var) <= 136 and j == 0 and str(i) != temp:
  73. j+=1; idsubclass = var; temp=str(i)
  74. st.player.setClassId(int(idsubclass))
  75. if not st.player.isSubClassActive(): st.player.setBaseClass(int(idsubclass))
  76. con=L2DatabaseFactory.getInstance().getConnection()
  77. if getsubsammount(st) <= 1: rem=con.prepareStatement("DELETE FROM subclass_list WHERE player_id="+getmultisubs(st))
  78. else: rem = con.prepareStatement("UPDATE subclass_list SET subclassid"+eventParam1+"=-1 ,currentsub="+temp+" WHERE player_id="+getmultisubs(st))
  79. try : rem.executeUpdate()
  80. except : pass
  81. try : con.close()
  82. except : pass
  83. if resetskills(st) == 1: pass
  84. if ReqItems == True and not st.player.isGM(): st.takeItems(Item3_Req,Item3_Num)
  85. st.player.store()
  86. st.player.broadcastUserInfo()
  87. return errasecomplete(st)
  88. st.exitQuest(1)
  89.  
  90. else:
  91. if temp2!=temp3 and getsubsammount(st) >= 0 : return errordeclasse(st,eventParam1,event)
  92. if AllowOnlyNobles == True and not st.player.isGM() :
  93. if not st.player.isNoble() : return comunerrors(st,"6")
  94. if st.getQuestItemsCount(Item2_Req) < Item2_Num and ReqItems == True and not st.player.isGM() : return comunerrors(st,"2")
  95. if st.getPlayer().getLevel() < MinLevel and not st.player.isGM() : return comunerrors(st,"4")
  96. if st.getPlayer().getClassId().level() < 2 and AllowThirdJob == False or st.getPlayer().getClassId().level() < 3 and AllowThirdJob == True : return comunerrors(st,"5")
  97. else:
  98. if temp4 == eventParam1 or temp4 == event : return errordeduplicado(st,event)
  99. else:
  100. con=L2DatabaseFactory.getInstance().getConnection()
  101. if getsubsammount(st) == -1 :
  102. ins = con.prepareStatement("INSERT INTO subclass_list (player_id,currentsub,sub_index,subclassid0,subclassid1) VALUES (?,?,?,?,?)")
  103. ins.setString(1, str(st.player.getObjectId()))
  104. ins.setString(2, "1")
  105. ins.setString(3, str(st.player.getClassIndex()))
  106. ins.setString(4, temp4)
  107. ins.setString(5, event)
  108. else:
  109. temp6 = "-1"; j=0
  110. for i in range(maxsubsindb + 1):
  111. var = getVar(st,"subclassid"+str(i))
  112. if var == eventParam1 or var == event: return errordeduplicado(st,event)
  113. if int(var) < 0 or int(var) > 136:
  114. if temp6 == "-1" and j==0:
  115. j+=1
  116. temp6 = str(i)
  117. ins = con.prepareStatement("UPDATE subclass_list SET subclassid"+temp6+"="+event+", subclassid"+temp+"="+temp4+", currentsub="+temp6+" WHERE player_id="+getmultisubs(st))
  118. try :
  119. ins.executeUpdate()
  120. ins.close()
  121. con.close()
  122. except : pass
  123. if resetskills(st) == 1: pass
  124. if ReqItems == True and not st.player.isGM() : st.takeItems(Item2_Req,Item2_Num)
  125. if DecLevel == True and not st.player.isGM() :
  126. pXp = st.player.getExp()
  127. tXp = Experience.LEVEL[lvl]
  128. st.giveItems(SubclassCoin,1)
  129. st.giveAvailableSkills()
  130. if pXp > tXp: st.player.removeExpAndSp(pXp - tXp, 0)
  131. st.player.setClassId(int(event))
  132. if not st.player.isSubClassActive(): st.player.setBaseClass(int(event))
  133. st.player.store()
  134. st.player.broadcastUserInfo()
  135. return complete(st)
  136. st.exitQuest(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement