Hello. I have a little problem and honestly I have no idea what to do now. I changed respawn point after clicking "To town" by editing RequestRestartPoint.java
I added my location to "default" code looks like this:
default:
loc = new Location(81275, 148617, -3468);
break;
and the whole code:
/*
* 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
*/
package net.sf.l2j.gameserver.network.clientpackets;
import net.sf.l2j.gameserver.ThreadPoolManager;
import net.sf.l2j.gameserver.datatables.MapRegionTable;
import net.sf.l2j.gameserver.instancemanager.CastleManager;
import net.sf.l2j.gameserver.instancemanager.ClanHallManager;
import net.sf.l2j.gameserver.instancemanager.SiegeManager;
import net.sf.l2j.gameserver.model.L2SiegeClan;
import net.sf.l2j.gameserver.model.Location;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.entity.Castle;
import net.sf.l2j.gameserver.model.entity.ClanHall;
public final class RequestRestartPoint extends L2GameClientPacket
{
protected int _requestedPointType;
protected boolean _continuation;
@Override
protected void readImpl()
{
_requestedPointType = readD();
}
class DeathTask implements Runnable
{
final L2PcInstance activeChar;
DeathTask(L2PcInstance _activeChar)
{
activeChar = _activeChar;
}
@Override
public void run()
{
Location loc = null;
Castle castle = null;
// force
if (activeChar.isInJail())
_requestedPointType = 27;
else if (activeChar.isFestivalParticipant())
_requestedPointType = 4;
switch (_requestedPointType)
{
case 1: // to clanhall
if (activeChar.getClan() == null || !activeChar.getClan().hasHideout())
{
_log.warning(activeChar.getName() + " called RestartPointPacket - To Clanhall while he doesn't have clan / Clanhall.");
return;
}
loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.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;
case 2: // to castle
castle = CastleManager.getInstance().getCastle(activeChar);
if (castle != null && castle.getSiege().isInProgress())
{
// Siege in progress
if (castle.getSiege().checkIsDefender(activeChar.getClan()))
loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.TeleportWhereType.Castle);
// Just in case you lost castle while being dead.. Port to nearest Town.
else if (castle.getSiege().checkIsAttacker(activeChar.getClan()))
loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.TeleportWhereType.Town);
else
{
_log.warning(activeChar.getName() + " called RestartPointPacket - To Castle while he doesn't have Castle.");
return;
}
}
else
{
if (activeChar.getClan() == null || !activeChar.getClan().hasCastle())
return;
loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.TeleportWhereType.Castle);
}
break;
case 3: // to siege HQ
L2SiegeClan siegeClan = null;
castle = CastleManager.getInstance().getCastle(activeChar);
if (castle != null && castle.getSiege().isInProgress())
siegeClan = castle.getSiege().getAttackerClan(activeChar.getClan());
// Not a normal scenario.
if (siegeClan == null)
{
_log.warning(activeChar.getName() + " called RestartPointPacket - To Siege HQ while he doesn't have Siege HQ.");
return;
}
// If a player was waiting with flag option and then the flag dies before the
// player pushes the button, he is send back to closest/second closest town.
if (siegeClan.getFlags().isEmpty())
loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.TeleportWhereType.Town);
else
loc = MapRegionTable.getInstance().getTeleToLocation(activeChar, MapRegionTable.TeleportWhereType.SiegeFlag);
break;
case 4: // Fixed or player is a festival participant
if (!activeChar.isGM() && !activeChar.isFestivalParticipant())
{
_log.warning(activeChar.getName() + " called RestartPointPacket - Fixed while he isn't festival participant!");
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:
loc = new Location(81275, 148617, -3468);
break;
}
// Teleport and revive
activeChar.setIsIn7sDungeon(false);
if (activeChar.isDead())
activeChar.doRevive();
activeChar.teleToLocation(loc, 20);
}
}
@Override
protected void runImpl()
{
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
return;
if (activeChar.isFakeDeath())
{
activeChar.stopFakeDeath(true);
return;
}
if (!activeChar.isDead())
{
_log.warning("Living player [" + activeChar.getName() + "] called RequestRestartPoint packet.");
return;
}
Castle castle = CastleManager.getInstance().getCastle(activeChar.getX(), activeChar.getY(), activeChar.getZ());
if (castle != null && castle.getSiege().isInProgress())
{
if (activeChar.getClan() != null && castle.getSiege().checkIsAttacker(activeChar.getClan()))
{
// Schedule respawn delay for attacker
ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), SiegeManager.ATTACKERS_RESPAWN_DELAY);
if (SiegeManager.ATTACKERS_RESPAWN_DELAY > 0)
activeChar.sendMessage("You will be teleported in " + SiegeManager.ATTACKERS_RESPAWN_DELAY / 1000 + " seconds.");
return;
}
}
// run immediately (no need to schedule)
new DeathTask(activeChar).run();
}
}
I have no idea why it doesn't work. Hope I'll solve this problem with your help guys :)
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
It doesn't say that anywhere.
https://acis.i-live.eu/index.php?topic=30.0
check it from source java file names
example in 367 ->
https://acis.i-live.eu/index.php?topic=30.255 l2bufferinstance renamed to schemebuffer | l2pcinstance renamed to player
check changeset 367 to understand
DISCORD :
https://discord.com/users/325653525793210378
utchiha_market
telegram :
https://t.me/utchiha_market
SELLIX STORE :
https://utchihamkt.mysellix.io/
Join our server for more products :
https://discord.gg/uthciha-services
https://campsite.bio/utchihaamkt
Eldamar Don't tell me what to do, stop spamming and mind your own business, it's 2025, who's going to play your server like it's 2007, you're ridiculous.
Question
devil12pl
Hello. I have a little problem and honestly I have no idea what to do now. I changed respawn point after clicking "To town" by editing RequestRestartPoint.java
I added my location to "default" code looks like this:
and the whole code:
I have no idea why it doesn't work. Hope I'll solve this problem with your help guys :)
Edited by devil12pl2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.