Jump to content

Shaigan

Members
  • Posts

    154
  • Credits

  • Joined

  • Last visited

    Never
  • Feedback

    0%

Posts posted by Shaigan

  1. " Some bugs ", " best now " ?

     

    Stay in IL for the moment... There are most crappy bugs than any other server. There aren't any team who shared some Kamael pack at the moment, all "Kamael" servers are pure custom and nothing stable, just stupid k3v1n who want to purpose the news things before everyone, with no knowledge and millions of bugs as christmas gift.

     

    I'll go back on Interlude, this is the best pack for the moment.

  2. I'm glad to hear that, gms on private servers will not be able to summon nice augment on weapons(like WM10) for their clans/alt-chars :)
    But if you find a good Augment in your player's weapons, you can easily copy this, by copying the number in the database above you weapon object_id
  3. An augmented item is not another item than the original. This is juste the same item with the augmentation (look at this table : "augmentation"...) with a number calculated to give the bonuses on the weapon.

     

    No ID for augmentation... Just random calculated number to apply on a weapon.

  4. 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.

  5. If I understand right, he wants to add a tag [GM] or [Admin] before his GM's names.

     

    I don't know if it is in the chat window or in the name on the head of his characters. Assuming it's in the chat and not in the characters's head name...

     

    For L2J Free, in the "all" channel :

    1) open all the java files located in http://l2jfree.com:8080/l2j-free/browser/trunk/L2_GameServer_IL/src/main/java/net/sf/l2j/gameserver/handler/chathandlers/ChatAll.java

     

    2) search near the end of files

    public void useChatHandler(L2PcInstance activeChar, String target, SystemChatChannelId chatType, String text)

    {

    CreatureSay cs = new CreatureSay(activeChar.getObjectId(), chatType.getId(), activeChar.getName(), text);

    for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers().values())

    {

    if (player != null && activeChar.isInsideRadius(player, 1250, false, true)

    && !(Config.REGION_CHAT_ALSO_BLOCKED && BlockList.isBlocked(player, activeChar)))

    {

    player.sendPacket(cs);

    }

    }

    activeChar.sendPacket(cs);

    }

    3) replace for

    public void useChatHandler(L2PcInstance activeChar, String target, SystemChatChannelId chatType, String text)

    {

    CreatureSay cs = new CreatureSay(activeChar.getObjectId(), chatType.getId(), activeChar.getName(), text);

    for (L2PcInstance player : activeChar.getKnownList().getKnownPlayers().values())

    {

    if (player != null && activeChar.isInsideRadius(player, 1250, false, true)

    && !(Config.REGION_CHAT_ALSO_BLOCKED && BlockList.isBlocked(player, activeChar)))

    {

    if (activeChar.isGM())

    {

    player.sendPacket(new CreatureSay(activeChar.getObjectId(), chatType.getId(),"[GM]" + activeChar.getName(), text));

    }

    player.sendPacket(cs);

    }

    }

    activeChar.sendPacket(cs);

    }

     

    Do the same for other channels, adding next code before the last activeChar.sendPacket(cs);

                if (activeChar.isGM())

                {

                   player.sendPacket(new CreatureSay(activeChar.getObjectId(), chatType.getId(),"[GM]" + activeChar.getName(), text));

                }

     

    With that, all your GM or Admin will not have to change their name but when they will speak, it will display [GM] before their name in all the modified chat windows.

     

    For Oneo, I don't know, they are late on the sync and they didn't change the chat system for the most flexible chathandler one.

     

    Enjoy.

     

    ( PS : btw, i hope you know how to compile and all this sort of thing, if not, forget the idea of hosting a server )

×
×
  • 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