Jump to content
  • 0

Save the place before teleportation aCis


Question

Posted

Hello, I wanted to know how I can save a coordinate, because on my tvt when the event ends I'm teleported to giran I would like to know how I can get where I was

 

This instead of putting me where I was, leaves me in the same place after the event ends.

 


int[] playerCoordinates = new int[]
                        {
                        player.getPosition().getX(),
                        player.getPosition().getY(),
                        player.getPosition().getZ(),
                        player.getPosition().getHeading()
                        };
                    
                    new EventTeleporter(player, playerCoordinates, false);
 

                   

Recommended Posts

  • 0
Posted (edited)

if you dont(cant?) want to save them in an int variable you can just store them in database before they enter or you can set a X Y Z +RND(10, 200) in the (propably) for loop you have to restore them in town

Edited by Nightw0lf
  • 0
Posted

You don't have to create any new map or store to db (bleeh). There is something like getSavedLocation on acis. You can find the usage over Olympiad system.

 

store

player.getSavedLocation().set(player.getPosition());

 

retrieve

final Location loc = player.getSavedLocation();
if (loc.equals(Location.DUMMY_LOC))
    return;

player.teleToLocation(loc, 0);
player.getSavedLocation().clean();
  • 0
Posted
1 hour ago, SweeTs said:

You don't have to create any new map or store to db (bleeh). There is something like getSavedLocation on acis. You can find the usage over Olympiad system.

 

store


player.getSavedLocation().set(player.getPosition());

 

retrieve


final Location loc = player.getSavedLocation();
if (loc.equals(Location.DUMMY_LOC))
    return;

player.teleToLocation(loc, 0);
player.getSavedLocation().clean();

 

created this way

 



    public static int[] getOriginalCoordinates()
    {
        return _originalCoordinates;
    }
    
    public static void setOriginalCoordinates(int[] originalCoordinates)
    {
        _originalCoordinates = originalCoordinates;
    }
    
    public static void teleportPlayersToArena()
    {
        for (EventTeam team : _teams)
        {
            for (Player player : team.getParticipatedPlayers().values())
            {
                if ((player != null))
                {
                    int[] playerCoordinates = new int[]
                        {
                        player.getSavedLocation().set(player.getPosition());
                        player.getPosition().getX(),
                        player.getPosition().getY(),
                        player.getPosition().getZ(),
                        };
                    setOriginalCoordinates(playerCoordinates);
                    new EventTeleporter(player, team.getCoordinates(), false);
                }
            }
        }
    }
    
    public static void teleportPlayersBack()
    {
        for (EventTeam team : _teams)
        {
            for (Player player : team.getParticipatedPlayers().values())
            {
                if (player == null)
                    return;
                
                Location loc = player.getSavedLocation();
                if (loc.equals(Location.DUMMY_LOC))
                    return;
                
                player.teleToLocation(loc, 0);
                player.getSavedLocation().clean();
                
                new EventTeleporter(player, getOriginalCoordinates(), false);
            }
        }
    }
    

 

generated this error

 

u0tiiLK.png

 

  • 0
Posted (edited)

so players can attack themselves but when the event ends the players go to the spawn of the first one that registered

 

    public static int[] getOriginalCoordinates()
    {
        return _originalCoordinates;
    }
    
    public static void setOriginalCoordinates(int[] originalCoordinates)
    {
        _originalCoordinates = originalCoordinates;
    }
    
    public static void teleportPlayersToArena()
    {
        for (EventTeam team : _teams)
        {
            for (Player player : team.getParticipatedPlayers().values())
            {
                if ((player != null))
                {
                    int[] playerCoordinates = new int[]
                        {
                        player.getPosition().getX(),
                        player.getPosition().getY(),
                        player.getPosition().getZ(),
                        };
                    setOriginalCoordinates(playerCoordinates);
                    new EventTeleporter(player, team.getCoordinates(), false);
                }
            }
        }
    }
    
    public static void teleportPlayersBack()
    {
        for (EventTeam team : _teams)
        {
            for (Player player : team.getParticipatedPlayers().values())
            {
                if ((player != null))
                    new EventTeleporter(player, getOriginalCoordinates(), false);
            }
        }
    }
    

 

so they can not, but when the event ends, they go to where they were.

 

    public static void teleportPlayersToArena()
    {
        for (EventTeam team : _teams)
        {
            for (Player player : team.getParticipatedPlayers().values())
            {
                if ((player != null))
                {
                    player.getSavedLocation().set(player.getPosition());
                    new EventTeleporter(player, team.getCoordinates(), false);
                }
            }
        }
    }
    
    public static void teleportPlayersBack()
    {
        for (EventTeam team : _teams)
        {
            for (Player player : team.getParticipatedPlayers().values())
            {
                final Location loc = player.getSavedLocation();
                if (loc.equals(Location.DUMMY_LOC))
                    return;

                player.teleToLocation(loc, 0);
                player.getSavedLocation().clean();
            }
        }
    }

Edited by l2jkain
  • 0
Posted

when I remove this it is normal but when the event finishes the players stay in the same place

 

player.getSavedLocation().set(player.getPosition());

  • 0
Posted

Dunno what you do, normally it should work. If it's not teleporting back to town after event finish, then the saved location is null, looks like and so, the return is executed. Put teleport to town instead, if loc is dummy.

 

Btw, stop multiposting. 

  • 0
Posted (edited)
1 hour ago, SweeTs said:

Dunno what you do, normally it should work. If it's not teleporting back to town after event finish, then the saved location is null, looks like and so, the return is executed. Put teleport to town instead, if loc is dummy.

 

Btw, stop multiposting. 

 

At the end of the event, the players stay where they were before the event. The only error is that they can not reach the target of the opponents and show that message.

 

 

Edited by l2jkain
  • 0
Posted

This one has nothing to do with the piece of code I provided. Your event code is simply bad.

Find the message over sources, see why you get it and remove lol code.

  • 0
Posted (edited)
7 minutes ago, l2jkain said:

Not Found man

Follow exactly what SweeTs said. But replace:

-  player.getSavedLocation().set(player.getPosition());

+ player.getSavedLocation().set(player.getX(), player.getY(), player.getZ());

Edited by 'Baggos'
  • 0
Posted (edited)
On 18/04/2018 at 6:51 PM, 'Baggos' said:

Follow exactly what SweeTs said. But replace:

-  player.getSavedLocation().set(player.getPosition());

+ player.getSavedLocation().set(player.getX(), player.getY(), player.getZ());

 

no matter what place it does not work

 

I removed all restriction of the same only let the tvt and the npc register does not always work that message should be aCis bug

Edited by l2jkain
  • 0
Posted (edited)
On 18/4/2018 at 12:32 PM, SweeTs said:

You don't have to create any new map or store to db (bleeh). There is something like getSavedLocation on acis. You can find the usage over Olympiad system.

 

store


player.getSavedLocation().set(player.getPosition());

 

retrieve


final Location loc = player.getSavedLocation();
if (loc.equals(Location.DUMMY_LOC))
    return;

player.teleToLocation(loc, 0);
player.getSavedLocation().clean();

newbie approach, if they get dc this info is lost xD

plus if they are in db WHILE the event is running with a check in enterworld you can restore the dc.. player inside the arena (drops mic)

 

EDIT: man i just saw your code in the video and i stopped it in the first 10 seconds staring the code at the part with the for loops with the thread inside NEVER ... EVER do that!

Edited by Nightw0lf

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • L2Virus the one who buyed those files from me.
    • Hi ️ Are you a supplier or do you have your own modem and are looking for a place to sell numbers?  SMS.PRO - The best option for selling your numbers  You choose the selling price yourself  Sale option: public (to everyone) or private (you choose who you want to sell to)  Everything works automatically  The simplest possible connection  Visit the website SMS.PRO and start selling your numbers.  Support @alismsorg_bot
    • Good luck to anyone playing on this server . Kamael items are bugged ( stats are insane ) Commands not working properly ( .getreward for example  ... gives u free reward without voting ). When i had those files , i fixed most of the stuff .   Every 2-3 years , he closes the server because players report bugs to him about items , he dont know how to fix then he repeating the process again https://ibb.co/Fkv7y9hJ https://ibb.co/fdYP2bVQ https://ibb.co/sp1f8C61 https://ibb.co/CKZnCgL7 https://ibb.co/Z6GktJgP  
    • Hello and welcome Server started 2026-01-05 Web site: https://l2dragonlands.eu Discrod: https://discord.gg/ngQUY8FB8G Rates >Xp x500 >Sp x500 >Drop x25 >Spoil x25 Enchant rates: Safe/max enchant +500  Blessed and simple scrolls max enchant (+200)  Enchant maneger to make +500.  In server items are progresed in tiers. Weapons: Starter > Vesper > Vorpal > Elegia > Ferrum. Armors: Starter > Moirai > Vesper > Vesper Noble > Vorpal > Elegia > Scarlet. Jewels: Starter > Vesper > Vorpal > Elegia > Ferrum. Cloaks: Pearl White > Pitch Black > Frintezza > Class Cloka > Hero > Scarlet. Acessories: Goblin Circlet 1/2lvl > Half Mask Mage 1/2lvl > Half Mask Fighter 1/2lvl > Flame of valakas > Gem Mask > Ferrum Helmet. Belt: Mithril Belt > Vitality Belt. Badges: For fighter and mage from 1lvl to 6lvl upgraded in order. Bracelets: Mithril > Shiny Fighter/Mage > 1/2lvl custom talismans in bracelest. Agathion: 7 tiers upgrade in order eatch one. Clan item shop/ New weapon Spadona upgradeble from 1lvl till 85lvl. Farm zones in order: >Giran Harbor > WasteLand > Gateway > Valley of Saints > Chromatic > Ruins of Despair > Soul Harbor > Dragon Valley. >LvL up zone >PvP zone Custom instance zone. Custom buff maneger it will grand big boost in stats. Lotery maneger to gamble. Extra features ALT+B: >Events  >Rankings  >Clan  >RB Status  >Updates and other Auto Event system: >Team VS Team event - Auto event  >Capture The Flag - Auto event Olympiad: >Retail olympiad game  >Competition period [2] week  >Olympiad start time [18:00] end [00:00]  >Maximum enchant in the Olympiad is +10, not custom items in olympiada only normal ones from shop.
    • L2 VOID - ADVERTISING BANNER   L2 FURY - ANIMATED BANNER   L2 HEROIC - ANIMATED BANNER   L2 WEED - ANIMATED BANNER   L2 REFORGE - ANIMATED LOGO   L2 WARZONE - ANIMATED LOGO   L2 ACME - SPLASH SCREEN   L2 DRUGS - ANIMATED BANNER   L2 GOLD - ADVERTISING BANNER   L2 AARON - ADVERTISING BANNER  
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..

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