Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Quest (JQuest) :
- def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
- def onEvent(self,event,st):
- eventSplit = event.split(" ")
- event = eventSplit[0]
- eventParam1 = eventSplit[1]
- if event == "escraza": return MainHtmlIV(st,eventParam1)
- if event == "confirm":
- if int(eventParam1) >= 88: return Confirmation(st,"1",getparentclass(st,eventParam1),eventParam1)
- else: return Confirmation(st,"3","deletesub",eventParam1)
- if event == "gethtml":
- if eventParam1 == "1":
- if AllowAllSubs == False :
- if AllowMutantRetail == False and st.player.isSubClassActive(): return MainHtmlIV(st,getclassname(st,str(st.player.getClassId().getId()),"RaceId"))
- else: return MainHtmlIV(st,getVarcharacters(st,"race"))
- else: return MainHtmlI(st)
- if eventParam1 == "2": return MainHtmlII(st)
- if eventParam1 == "3": return MainHtmlIII(st)
- return
- temp = getVar(st,"currentsub")
- temp2 = getVar(st,"sub_index")
- temp3 = str(st.player.getClassIndex())
- temp4 = str(st.player.getClassId().getId())
- if event == "camb":
- if temp2!=temp3: return errordeclasse(st,eventParam1,"switch a")
- if st.getPlayer().getClassId().level() < 2 and AllowThirdJob == False or st.getPlayer().getClassId().level() < 3 and AllowThirdJob == True : return comunerrors(st,"5")
- if st.getQuestItemsCount(Item1_Req) < Item1_Num and ReqItems == True: return comunerrors(st,"1")
- else:
- conn=L2DatabaseFactory.getInstance().getConnection()
- upd=conn.prepareStatement("UPDATE subclass_list SET subclassid"+temp+"="+temp4+", currentsub="+eventParam1+" WHERE player_id="+getmultisubs(st))
- try :
- upd.executeUpdate()
- upd.close()
- conn.close()
- except :
- try : conn.close()
- except : pass
- if resetskills(st) == 1: pass
- st.player.setClassId(int(getVar(st,"subclassid"+eventParam1)))
- st.giveItems(SubclassCoin,1)
- st.player.giveAvailableSkills()
- if not st.player.isSubClassActive(): st.player.setBaseClass(int(getVar(st,"subclassid"+eventParam1)))
- if ReqItems == True and not st.player.isGM(): st.takeItems(Item1_Req,Item1_Num)
- st.player.store()
- st.player.broadcastUserInfo()
- return complete(st)
- st.exitQuest(1)
- if event == "deletesub":
- if temp2!=temp3: return errordeclasse(st,eventParam1,"borrar")
- if st.getPlayer().getClassId().level() < 2 and AllowThirdJob == False or st.getPlayer().getClassId().level() < 3 and AllowThirdJob == True : return comunerrors(st,"5")
- if st.getQuestItemsCount(Item3_Req) < Item3_Num and ReqItems == True and not st.player.isGM() : return comunerrors(st,"3")
- else:
- conn=L2DatabaseFactory.getInstance().getConnection()
- upd=conn.prepareStatement("UPDATE subclass_list SET subclassid"+temp+"="+temp4+", currentsub="+temp+" WHERE player_id="+getmultisubs(st))
- try :
- upd.executeUpdate()
- upd.close()
- conn.close()
- except :
- try : conn.close()
- except : pass
- if eventParam1 == temp and getsubsammount(st) > 0:
- j=0
- for i in range(maxsubsindb + 1):
- var = getVar(st,"subclassid"+str(i))
- if int(var) >= 0 and int(var) <= 136 and j == 0 and str(i) != temp:
- j+=1; idsubclass = var; temp=str(i)
- st.player.setClassId(int(idsubclass))
- if not st.player.isSubClassActive(): st.player.setBaseClass(int(idsubclass))
- con=L2DatabaseFactory.getInstance().getConnection()
- if getsubsammount(st) <= 1: rem=con.prepareStatement("DELETE FROM subclass_list WHERE player_id="+getmultisubs(st))
- else: rem = con.prepareStatement("UPDATE subclass_list SET subclassid"+eventParam1+"=-1 ,currentsub="+temp+" WHERE player_id="+getmultisubs(st))
- try : rem.executeUpdate()
- except : pass
- try : con.close()
- except : pass
- if resetskills(st) == 1: pass
- if ReqItems == True and not st.player.isGM(): st.takeItems(Item3_Req,Item3_Num)
- st.player.store()
- st.player.broadcastUserInfo()
- return errasecomplete(st)
- st.exitQuest(1)
- else:
- if temp2!=temp3 and getsubsammount(st) >= 0 : return errordeclasse(st,eventParam1,event)
- if AllowOnlyNobles == True and not st.player.isGM() :
- if not st.player.isNoble() : return comunerrors(st,"6")
- if st.getQuestItemsCount(Item2_Req) < Item2_Num and ReqItems == True and not st.player.isGM() : return comunerrors(st,"2")
- if st.getPlayer().getLevel() < MinLevel and not st.player.isGM() : return comunerrors(st,"4")
- if st.getPlayer().getClassId().level() < 2 and AllowThirdJob == False or st.getPlayer().getClassId().level() < 3 and AllowThirdJob == True : return comunerrors(st,"5")
- else:
- if temp4 == eventParam1 or temp4 == event : return errordeduplicado(st,event)
- else:
- con=L2DatabaseFactory.getInstance().getConnection()
- if getsubsammount(st) == -1 :
- ins = con.prepareStatement("INSERT INTO subclass_list (player_id,currentsub,sub_index,subclassid0,subclassid1) VALUES (?,?,?,?,?)")
- ins.setString(1, str(st.player.getObjectId()))
- ins.setString(2, "1")
- ins.setString(3, str(st.player.getClassIndex()))
- ins.setString(4, temp4)
- ins.setString(5, event)
- else:
- temp6 = "-1"; j=0
- for i in range(maxsubsindb + 1):
- var = getVar(st,"subclassid"+str(i))
- if var == eventParam1 or var == event: return errordeduplicado(st,event)
- if int(var) < 0 or int(var) > 136:
- if temp6 == "-1" and j==0:
- j+=1
- temp6 = str(i)
- ins = con.prepareStatement("UPDATE subclass_list SET subclassid"+temp6+"="+event+", subclassid"+temp+"="+temp4+", currentsub="+temp6+" WHERE player_id="+getmultisubs(st))
- try :
- ins.executeUpdate()
- ins.close()
- con.close()
- except : pass
- if resetskills(st) == 1: pass
- if ReqItems == True and not st.player.isGM() : st.takeItems(Item2_Req,Item2_Num)
- if DecLevel == True and not st.player.isGM() :
- pXp = st.player.getExp()
- tXp = Experience.LEVEL[lvl]
- st.giveItems(SubclassCoin,1)
- st.giveAvailableSkills()
- if pXp > tXp: st.player.removeExpAndSp(pXp - tXp, 0)
- st.player.setClassId(int(event))
- if not st.player.isSubClassActive(): st.player.setBaseClass(int(event))
- st.player.store()
- st.player.broadcastUserInfo()
- return complete(st)
- st.exitQuest(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement