Jump to content
  • 0

Spawn Cordenadas Code


Question

Posted
 

Could someone create the code for the char to be born in the same area without changing the respawns?

Example, I hedge an area and in the .properties file I edit the coordinates of when the players die inside it ..

Could someone please do?

Recommended Posts

  • 0
Posted
default:
if (activeChar.getKarma() > 0 && Config.ALT_KARMA_TELEPORT_TO_FLORAN)
{
  loc = new Location(17836, 170178, -3507);// Floran Village
  break;
}
if (activeChar.isInsideZone(L2Character.ZONE_FLAG))
{
  Location[] flagLocations =
  {
   new Location(1,2,3),
   new Location(1,2,3),
   new Location(1,2,3),
   new Location(1,2,3),
   new Location(1,2,3)
   };
   loc = flagLocations[Rnd.get(5)];
   break;
}
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.Town);
break;
}

Replace L2Character.ZONE_FLAG with the correct field name of the flag zone. (Just go to L2Character and see how FlagZone is named).

 

Or

write into the parenthesis L2Character. and press control + Space to see available zones.

  • 0
Posted

To make this straight, you want the following:

 

I die into flagzone, i click "To Village" and i respawn again into flag zone?

  • 0
Posted (edited)

To make this straight, you want the following:

 

I die into flagzone, i click "To Village" and i respawn again into flag zone?

Yes man,  again into flag zone.

Edited by nortim
  • 0
Posted (edited)

You could tell us what pack are you using...

 

RequestRestartPoint.java

 

find the line for the loc when pressing to vilage and add a check if is inside your zone and change the XYZ

				if (_player.isInsideZone(ZoneId.FLAG))
					loc = new Location(1,2,3);
				else
					loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.TOWN);

You can add also random spawns 

				if (_player.isInsideZone(ZoneId.FLAG))
				{
					Location[] flagLocations =
					{
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3)
					};
					loc = flagLocations[Rnd.get(5)];
				}
				else
					loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.TOWN);
Edited by melron
  • 0
Posted

 

You could tell us what pack are you using...

 

RequestRestartPoint.java

 

find the line for the loc when pressing to vilage and add a check if is inside your zone and change the XYZ

				if (_player.isInsideZone(ZoneId.FLAG))
					loc = new Location(1,2,3);
				else
					loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.TOWN);

You can add also random spawns 

				if (_player.isInsideZone(ZoneId.PVP))
				{
					Location[] flagLocations =
					{
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3)
					};
					loc = flagLocations[Rnd.get(5)];
				}
				else
					loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.TOWN);

I using jfrozen.

  • 0
Posted

 

You could tell us what pack are you using...

 

RequestRestartPoint.java

 

find the line for the loc when pressing to vilage and add a check if is inside your zone and change the XYZ

				if (_player.isInsideZone(ZoneId.FLAG))
					loc = new Location(1,2,3);
				else
					loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.TOWN);

You can add also random spawns 

				if (_player.isInsideZone(ZoneId.FLAG))
				{
					Location[] flagLocations =
					{
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3),
						new Location(1,2,3)
					};
					loc = flagLocations[Rnd.get(5)];
				}
				else
					loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.TOWN);
 
Could you tell me where to add and the line references?
  • 0
Posted

 

 
Could you tell me where to add and the line references?

 

Post here requestrestartpoint.java and we will make it for you. However, dont wait everything ready from us, you should try to do them by yourself...Especially when melron explained you exactly how u could do it.

  • 0
Posted (edited)

i im not using frozen but it should be in clientpackets with name RequestRestartPoint.java

 

search something similar to

loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.Town);

Edit:

 

its in line 210..

Edited by melron
  • 0
Posted (edited)

i im not using frozen but it should be in clientpackets with name RequestRestartPoint.java

 

search something similar to

loc = MapRegionTable.getInstance().getLocationToTeleport(_player, TeleportType.Town);

Edit:

 

its in line 210..

 

Sorry for the lack of wisdom, I'm starting now, and thank you very much for the attention! I'm going to study java from now on.

I am adding but I am with the following error (from the photo), I will post my request restart and if possible show me how to add.

20qci89.png

 

 

/*

 * L2jProject x - www.l2jprojectx.com 
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 */
package net.l2jpx.gameserver.network.clientpackets;
 
import org.apache.log4j.Logger;
 
import net.l2jpx.Config;
import net.l2jpx.gameserver.datatables.xml.MapRegionData;
import net.l2jpx.gameserver.managers.CastleManager;
import net.l2jpx.gameserver.managers.ClanHallManager;
import net.l2jpx.gameserver.managers.FortManager;
import net.l2jpx.gameserver.model.L2SiegeClan;
import net.l2jpx.gameserver.model.Location;
import net.l2jpx.gameserver.model.actor.instance.L2PcInstance;
import net.l2jpx.gameserver.model.entity.ClanHall;
import net.l2jpx.gameserver.model.entity.event.CTF;
import net.l2jpx.gameserver.model.entity.event.DM;
import net.l2jpx.gameserver.model.entity.event.TvT;
import net.l2jpx.gameserver.model.entity.siege.Castle;
import net.l2jpx.gameserver.model.entity.siege.Fort;
import net.l2jpx.gameserver.network.serverpackets.Revive;
import net.l2jpx.gameserver.thread.ThreadPoolManager;
import net.l2jpx.gameserver.util.IllegalPlayerAction;
import net.l2jpx.gameserver.util.Util;
 
/**
 * @author programmos
 */
public final class RequestRestartPoint extends L2GameClientPacket
{
private static Logger LOGGER = Logger.getLogger(RequestRestartPoint.class);
 
protected int _requestedPointType;
protected boolean _continuation;
 
@Override
protected void readImpl()
{
_requestedPointType = readD();
}
 
class DeathTask implements Runnable
{
L2PcInstance activeChar;
 
DeathTask(final L2PcInstance _activeChar)
{
activeChar = _activeChar;
}
 
@Override
public void run()
{
if ((activeChar._inEventTvT && TvT.is_started()) || (activeChar._inEventDM && DM.is_started()) || (activeChar._inEventCTF && CTF.is_started()))
{
activeChar.sendMessage("You can't restart in Event!");
return;
}
try
{
Location loc = null;
Castle castle = null;
Fort fort = null;
 
if (activeChar.isInJail())
{
_requestedPointType = 27;
}
else if (activeChar.isFestivalParticipant())
{
_requestedPointType = 4;
}
 
if (activeChar.isPhoenixBlessed())
activeChar.stopPhoenixBlessing(null);
 
switch (_requestedPointType)
{
case 1: // to clanhall
 
if (activeChar.getClan() != null)
{
 
if (activeChar.getClan().getHasHideout() == 0)
{
// cheater
activeChar.sendMessage("You may not use this respawn point!");
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " used respawn cheat.", IllegalPlayerAction.PUNISH_KICK);
return;
}
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.ClanHall);
 
if (ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()) != null && ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()).getFunction(ClanHall.FUNC_RESTORE_EXP) != null)
{
activeChar.restoreExp(ClanHallManager.getInstance().getClanHallByOwner(activeChar.getClan()).getFunction(ClanHall.FUNC_RESTORE_EXP).getLvl());
}
 
break;
}
 
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.Town);
break;
case 2: // to castle
Boolean isInDefense = false;
castle = CastleManager.getInstance().getCastle(activeChar);
fort = FortManager.getInstance().getFort(activeChar);
MapRegionData.TeleportWhereType teleportWhere = MapRegionData.TeleportWhereType.Town;
 
if (castle != null && castle.getSiege().getIsInProgress())
{
// siege in progress
if (castle.getSiege().checkIsDefender(activeChar.getClan()))
{
isInDefense = true;
}
}
 
if (fort != null && fort.getSiege().getIsInProgress())
{
// siege in progress
if (fort.getSiege().checkIsDefender(activeChar.getClan()))
{
isInDefense = true;
}
}
 
if (activeChar.getClan().getHasCastle() == 0 && activeChar.getClan().getHasFort() == 0 && !isInDefense)
{
// cheater
activeChar.sendMessage("You may not use this respawn point!");
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " used respawn cheat.", IllegalPlayerAction.PUNISH_KICK);
return;
}
 
if (CastleManager.getInstance().getCastleByOwner(activeChar.getClan()) != null)
teleportWhere = MapRegionData.TeleportWhereType.Castle;
else if (FortManager.getInstance().getFortByOwner(activeChar.getClan()) != null)
teleportWhere = MapRegionData.TeleportWhereType.Fortress;
 
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, teleportWhere);
break;
 
case 3: // to siege HQ
L2SiegeClan siegeClan = null;
castle = CastleManager.getInstance().getCastle(activeChar);
fort = FortManager.getInstance().getFort(activeChar);
 
if (castle != null && castle.getSiege().getIsInProgress())
{
siegeClan = castle.getSiege().getAttackerClan(activeChar.getClan());
}
else if (fort != null && fort.getSiege().getIsInProgress())
{
siegeClan = fort.getSiege().getAttackerClan(activeChar.getClan());
}
 
if (siegeClan == null || siegeClan.getFlag().size() == 0)
{
// cheater
activeChar.sendMessage("You may not use this respawn point!");
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " used respawn cheat.", IllegalPlayerAction.PUNISH_KICK);
return;
}
 
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.SiegeFlag);
break;
 
case 4: // Fixed or Player is a festival participant
if (!activeChar.isGM() && !activeChar.isFestivalParticipant())
{
// cheater
activeChar.sendMessage("You may not use this respawn point!");
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " used respawn cheat.", IllegalPlayerAction.PUNISH_KICK);
return;
}
 
loc = new Location(activeChar.getX(), activeChar.getY(), activeChar.getZ()); // spawn them where they died
break;
 
case 27: // to jail
if (!activeChar.isInJail())
return;
loc = new Location(-114356, -249645, -2984);
break;
 
default:
if (activeChar.getKarma() > 0 && Config.ALT_KARMA_TELEPORT_TO_FLORAN)
{
loc = new Location(17836, 170178, -3507);// Floran Village
break;
}
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.Town);
break;
}
 
// Stand up and teleport, proof dvp video.
activeChar.setIsIn7sDungeon(false);
activeChar.setIsPendingRevive(true);
activeChar.teleToLocation(loc, true);
}
catch (final Throwable e)
{
e.printStackTrace();
// LOGGER.error( "", e);
}
}
}
 
@Override
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
 
if (activeChar == null)
return;
activeChar.setLastActionMillis(System.currentTimeMillis());
      
if (activeChar.isFakeDeath())
{
activeChar.stopFakeDeath(null);
activeChar.broadcastPacket(new Revive(activeChar));
return;
}
else if (!activeChar.isAlikeDead())
{
LOGGER.warn("Living player [" + activeChar.getName() + "] called RestartPointPacket! Ban this player!");
return;
}
 
final Castle castle = CastleManager.getInstance().getCastle(activeChar.getX(), activeChar.getY(), activeChar.getZ());
if (castle != null && castle.getSiege().getIsInProgress())
{
if (activeChar.getClan() != null && castle.getSiege().checkIsAttacker(activeChar.getClan()))
{
// Schedule respawn delay for attacker
ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), castle.getSiege().getAttackerRespawnDelay());
activeChar.sendMessage("You will be re-spawned in " + castle.getSiege().getAttackerRespawnDelay() / 1000 + " seconds");
return;
}
}
// run immediately (no need to schedule)
new DeathTask(activeChar).run();
}
 
@Override
public String getType()
{
return "[C] 6d RequestRestartPoint";
}
}

Edited by nortim
  • 0
Posted

1st. delete the L2Character _player since is null and take the player with the correct name (maybe activeChar?)

 

2nd i cannot help you in this case cause i dont have frozen sources to check how the functions are written..

  • 0
Posted

@Solomun 

 

add else before 

loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.Town);

cause it will get the 2nd tp anyway :p

  • 0
Posted

@Solomun 

 

add else before 

loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.Town);

cause it will get the 2nd tp anyway :P

 

That's why "break;" stands for? 

  • 0
Posted (edited)

That's why "break;" stands for? 

Oops xD didnt see that ... cause frozen take _requestType in case :P

Edited by melron
  • 0
Posted

You should take some times to learn Java basics, or you will have to ask everytime every single thing. On your previous topic, someone helped you but the answer wasn't even correct, temporary objects created for nothing.

  • 0
Posted
default:
if (activeChar.getKarma() > 0 && Config.ALT_KARMA_TELEPORT_TO_FLORAN)
{
  loc = new Location(17836, 170178, -3507);// Floran Village
  break;
}
if (activeChar.isInsideZone(L2Character.ZONE_FLAG))
{
  Location[] flagLocations =
  {
   new Location(1,2,3),
   new Location(1,2,3),
   new Location(1,2,3),
   new Location(1,2,3),
   new Location(1,2,3)
   };
   loc = flagLocations[Rnd.get(5)];
   break;
}
loc = MapRegionData.getInstance().getTeleToLocation(activeChar, MapRegionData.TeleportWhereType.Town);
break;
}

Replace L2Character.ZONE_FLAG with the correct field name of the flag zone. (Just go to L2Character and see how FlagZone is named).

 

Or

write into the parenthesis L2Character. and press control + Space to see available zones.

 

 

1st. delete the L2Character _player since is null and take the player with the correct name (maybe activeChar?)

 

2nd i cannot help you in this case cause i dont have frozen sources to check how the functions are written..

 
I want to thank you sincerely for all my goodwill and patience with me, it worked perfectly! Thank you very much!
 
;D  ;D  ;D  ;D  ;D  ;D  ;D  ;D
Guest
This topic is now closed to further replies.


  • Posts

    • What’s DatForge? Well… it’s a website I built initially to edit .dat files for Lineage 2… but not only that. Now it also handles: .dat, .ini, .htm, and .l2r files basically most Lineage 2 client data file types across 33+ chronicles. https://datforge.pages.dev/   Support / Reports / Anything Discord: https://discord.gg/5YwhBr5Dhx (use it for support, bug reports, or anything related to the project) Does it work for every version? No idea. I haven’t tested every single one… unless you want to volunteer. Do I plan to support every version? Yes. That’s the dream. Will that dream become reality? idk man, can’t promise shit. What’s coming next? (aka things I plan to do before I disappear) xdat editor .u editor / compiler / decompiler Let me sell you a dream real quick I will maintain this forever… probably… maybe… don’t quote me on that. Before you even start First requirement to use anything I build: you gotta be able to think. I won’t spend time drawing. Also… whoever said “there’s no such thing as a stupid question” was lying to make stupid people feel better. If you ask a stupid question, I will ignore it. PERIOD. Extra FAQ (since people will ask anyway) Am I looking for other pseudo AI coders/devs to join? Not really… unless you can actually add real value. Am I looking for people to manage a Discord server? Probably yes. I hate that crap. Will we be friends if you sign up? Not really. Will I do any changes on your L2J server if you sign up? No. Will I teach you how to code? No. How do you know if I’m legit? You don’t. FAQ (before you ask) What makes us different? There is no us. It’s just me. What makes me different? idk, you tell me. Why should you buy it? You probably shouldn’t. But if you want to… go ahead. How do I try it? Click the link. That’s it. Will the free account have everything? Read the pricing page. Don’t ask questions you can answer yourself. What if I find issues? I’m not your father, I won’t teach you how to use it. But if something is actually broken, post it and I’ll fix it. Why is it taking so long? Because you’re buying a tool, not hiring an employee. I work on it when I have time. If you want to pay my salary… we can talk (no promises). Am I an asshole like I sound? Not really. But people seem to like it, so I’m leaning into it. Will you share the source? Yes. Wait and see. If you're still here Congrats. Feel free to ask questions or suggest features. Just don’t come with crazy ideas, and remember: suggestions ≠ implementation. Bug reports If you report issues, they’ll most likely be fixed within a few hours… worst case a few days. Security issues / bypasses If you find something interesting, send me a PM with steps to reproduce. If it’s legit, you might get rewarded. “But if I don’t report it I can exploit it forever” …until I fix it myself and now you got nothing. Your call. Release dates When is xdat editor coming out? Soon. What day? Soon. What about .u files? Soon. Why no dates? Because this is not my full-time job. Pricing Do I need to pay to try it? No. There’s a free tier. If you want more, you can pay and unlock everything. Final note (before the “ooh but…” starts) This tool was built for me. I just decided to share it. I’m not a company. I’m not trying to live off this. But if you want a tool and don’t want to build it yourself… well… I already did 
    • report: scammer @nickathan he was a customer of me and this time i trusted him to send the files before i get paid .. he said in 1 hour he will give the money, i gave him space for 2 weeks , but he vanished! Proofs can be transmitted to @Celestine 
    • If they ask you to write something, you should ask for the full context. We had a private chat between the administrators of mxc and gx ext. He was allowed back on the forum on the condition that he did not spam unnecessary posts. As far as I'm concerned, it shouldn't be allowed because it involves multiple scams. We want and aim for a stronger community. He's not only doing this with this account, but with several, since this user has multiple accounts. As for what one user or another contributes, that's irrelevant; I often provide support to the community and I don't need to make it public. But I repeat, if they ask you to write a comment, just ask for the full context, nothing more than that. Or if you want a direct answer from me, feel free to message me privately so we can avoid spamming a post about an extender. That's the problem with second chances 
    • I currently have a working custom quest, but the problem is that I can't see it in the game's quest log. I've added it to questname-e.dat, but I still don't see it. I think there's another file where I need to add it, but I can't find it. For the items and skills I've added, I've always put it in the name and grp fields, but there's nothing related to questgrp.dat in the quest log. Could you tell me where I can add it?
  • 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..