Shaigan Posted December 6, 2007 Posted December 6, 2007 Using the same kind of script for the Monster Derby Track teleporter, you can add a secure teleporter to go to visit jailed players. It will cost 5 millions to go to the jail, but the return will be free. Assuming you know a bit adding a quest, I'll forgive some details and I'll will no offer any kind of support. Take this share as it is... Make sure to have a correct zone definition, and check that players can not escape from jail when they are just in this zone (not //jail by GM, just teleported). Working fine on L2J-Free. Make a new NPC named with ID 9997 and every NPC template_id you want. Make a new html file in the data/html/default folder named 9997.html : <html><body> Jail teleporter:<br> Now you want to exit this room ? There is no problem for me, but remember one thing : respect our server rules !<br> <center> <a action="bypass -h npc_%objectId%_Quest 9997_teleport_to_jail">Exit</a><br> </center> </body></html> Create a new folder in the quest folder : 9997_teleport_to_jail Put this script into _init_.py : # # Created by Shaigan on 2007.11.25. # Based on the Derby Track teleporter. # import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest qn = "9997_teleport_to_jail" JAIL_EXIT_NPC = 9997 TELEPORTERS = { 30059:3, # TRISHA 30080:4, # CLARISSA 30177:6, # VALENTIA 30233:8, # ESMERALDA 30256:2, # BELLA 30320:1, # RICHLIN 30848:7, # ELISA 30899:5, # FLAUEN 31320:9, # ILYANA 31275:10, # TATIANA 30727:11, # VERONA 30836:12, # MINERVA 31964:13 # BILIA } RETURN_LOCS = [[-80826,149775,-3043],[-12672,122776,-3116],[15670,142983,-2705],[83400,147943,-3404], \ [111409,219364,-3545],[82956,53162,-1495],[146331,25762,-2018],[116819,76994,-2714], \ [43835,-47749,-792],[147930,-55281,-2728],[85335,16177,-3694],[105857,109763,-3202], \ [87386,-143246,-1293]] class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onTalk (self,npc,player): st = player.getQuestState(qn) npcId = npc.getNpcId() if not st: return if st.isInJail(): return ################### # Start Locations # ################### if TELEPORTERS.has_key(npcId) : st.takeItems(57,5000000) st.getPlayer().teleToLocation(-114356,-249645,-2984) st.setState(STARTED) st.set("id",str(TELEPORTERS[npcId])) ######## # Jail # ######## elif st.getState() == STARTED and npcId == JAIL_EXIT_NPC: # back to start location return_id = st.getInt("id") - 1 st.getPlayer().teleToLocation(RETURN_LOCS[return_id][0],RETURN_LOCS[return_id][1],RETURN_LOCS[return_id][2]) st.exitQuest(1) return QUEST = Quest(9997,qn,"Teleports") CREATED = State('Start', QUEST) STARTED = State('Started', QUEST) QUEST.setInitialState(CREATED) for npcId in TELEPORTERS.keys() : QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId) QUEST.addTalkId(JAIL_EXIT_NPC) Open all the concerned GK html files ( data/html/teleporter/ ) and add the folowing line just after the line wich permit to go to the derby track. You have the concerned GK's ID in the script above. <a action="bypass -h npc_%objectId%_Quest 9997_teleport_to_jail" msg="811;Jail">Move to Jail</a><br> Open the _init_.py in the quest teleporter folder and add the line, don't forget the coma... '9997_teleport_to_jail' Spawn the NPC ID 9997 into jail, go to speak to a GK in town, spend 5 millions and enjoy.
Versus Posted December 14, 2007 Posted December 14, 2007 Thanks shaigan but remember u have to do ur share easier because for a newbie this is a very hard work.Anyways nice work :P
Recommended Posts