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.
ADENA
500 K = 40e
1kk = 70e
3kk = 190e
ITEMS
staff of life = 150e
karmian set = 90e
elven jewls top D = 30e
Orcish Poleaxe+1 best C pole = 680e
any D grade armor on demand
discord
wiz0642_81242
❖Items that are sent by physical delivery are sent using someone else's data. That is, if you are not able to accept the parcel, we will not be able to return it. Please keep this in mind.
READY IN STOCK
PAYMENT SYSTEMS
4x4 io, Weststein, Paysafecard, Paysend, Genome, Conotoxia, Mybrocard, Payz Silver, Pockit UK, NagaPay, Volet com, SpectroCoin, SwissMoney, Yuh, Lydia / Sumeria, Ka.App, Wittix, Western Union, MyGuava, Xapo Bank, Bunq on emulator (DE, NL, FR, ES, IE ibans), Revolut on emulator (UK/EU), ICard, BlackCatCard, Vivid DE, Bankera, Bitsa, Wise EU/UK, N26 DE/ES on emulator, Skrill, Neteller, Trasta, Wirex, Lama, Paysera, Moneyjar
CRYPTOEXCHANGE
BINGX com, Bybit LVL 2, KuCoin, Binance LVL 2, Mexc, Latoken, Poloniex, Bitmart, Kraken, WhiteBit, Quppy, Nexo, Gate, OKX, Paybis, Paxful, Huobi (HTX), xcoins com, Bit2Me
BUSINESS ACCOUNTS
Stripe, Payoneer EU, Wise Business UK/EU, Revolut Business EU/UK, N26 Business DE, Wallester Business EU, Kraken Business Pro, Monzo Business, Vivid Business, Zen Business EU, Millennium Business PL, AirWallex EU/UK, Finom business, PayPal business, Payset business
NATIONAL BANKS / BANKS
BBVA, CommerzBank, ING, Santander, Kaspi Bank, Sberbank, AlfaBank, Tbank, Raiffeisen, mBank, Paribas, Bereke Bank, Kapital Bank
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.