Jump to content

[Share / Guide ] Jail teleporter - jscript inside


Shaigan

Recommended Posts

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.

Link to comment
Share on other sites

  • 2 weeks later...

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

Link to comment
Share on other sites

  • 11 months later...
  • 4 months later...
Guest
This topic is now closed to further replies.


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock