Comandos de Join, Leave & Info para TvT & CTF
Este Mod habilita os comandos .tvtjoin, .ctfjoin, .tvtleave, .ctfleave, .tvtinfo & .ctfinfo. Feito para plataforma L2jEmu.
Vá na pasta gameserver/handler/voicedcommandhandlers e crie o arquivo TvTCmd.java
Código:
/*
* 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 com.l2emu.gameserver.handler.voicedcommandhandlers;
import com.l2emu.gameserver.handler.IVoicedCommandHandler;
import com.l2emu.gameserver.instancemanager.ZoneManager;
import com.l2emu.gameserver.model.actor.instance.L2PcInstance;
import com.l2emu.gameserver.model.entity.events.TvT;
import com.l2emu.gameserver.model.zone.L2Zone;
import com.l2emu.gameserver.network.serverpackets.NpcHtmlMessage;
public class TvTCmd implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS = { "tvtjoin", "tvtleave", "tvtinfo" };
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
if (command.startsWith("tvtjoin"))
{
JoinTvT(activeChar);
}
else if(command.startsWith("tvtleave"))
{
LeaveTvT(activeChar);
}
else if(command.startsWith("tvtinfo"))
{
TvTinfo(activeChar);
}
return true;
}
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
public boolean JoinTvT (L2PcInstance activeChar)
{
if ( activeChar == null)
{
return false;
}
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage( 0 );
if (!TvT._joining)
{
npcHtmlMessage.setHtml("<html><body>There is no TvT Event in progress.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (TvT._joining && activeChar._inEventTvT)
{
npcHtmlMessage.setHtml("<html><body>You are already registered.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ( activeChar.isCursedWeaponEquipped())
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you are holding a Cursed Weapon.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ( activeChar.isInOlympiadMode())
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you are in Olympiad.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ( activeChar.isInJail() || activeChar.isInsideZone(L2Zone.FLAG_JAIL)) //check if player is in jail
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you are in Jail.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (activeChar.getLevel() < TvT._minlvl)
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you level is too low.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (activeChar.getKarma() > 0)
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you have Karma.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (TvT._teleport || TvT._started)
{
npcHtmlMessage.setHtml("<html><body>TvT Event registration period is over.<br>You can't register now.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else
{
npcHtmlMessage.setHtml("<html><body>Your participation in the TvT event has been approved.<br>Prepare to kill your enemies.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
TvT.addPlayer(activeChar,"");
return false;
}
}
public boolean LeaveTvT (L2PcInstance activeChar)
{
if ( activeChar == null)
{
return false;
}
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage( 0 );
if (!TvT._joining)
{
npcHtmlMessage.setHtml("<html><body>There is no TvT Event in progress.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ((TvT._teleport || TvT._started) && activeChar._inEventTvT)
{
npcHtmlMessage.setHtml("<html><body>You can not leave now because TvT event has started.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (TvT._joining && !activeChar._inEventTvT)
{
npcHtmlMessage.setHtml("<html><body>You aren't registered in the TvT Event.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else
{
npcHtmlMessage.setHtml("<html><body>Your participation in the TvT event has been removed.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
TvT.removePlayer(activeChar);
return true;
}
}
public boolean TvTinfo (L2PcInstance activeChar)
{
if ( activeChar == null)
{
return false;
}
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage( 0 );
if (!TvT._joining)
{
npcHtmlMessage.setHtml("<html><body>There is no TvT Event in progress.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (TvT._teleport || TvT._started)
{
npcHtmlMessage.setHtml("<html><body>I can't provide you this info.<br>Command available only in joining period.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else
{
if (TvT._playersShuffle.size() == 1)
{
npcHtmlMessage.setHtml("<html><body>There is " + TvT._playersShuffle.size() + " player participating in this event.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
}
else
{
npcHtmlMessage.setHtml("<html><body>There are " + TvT._playersShuffle.size() + " players participating in this event.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
}
return true;
}
}
}
Ainda nesta pasta, crie o arquivo CTFCmd.java
Código:
/*
* 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 com.l2emu.gameserver.handler.voicedcommandhandlers;
import com.l2emu.gameserver.handler.IVoicedCommandHandler;
import com.l2emu.gameserver.instancemanager.ZoneManager;
import com.l2emu.gameserver.model.actor.instance.L2PcInstance;
import com.l2emu.gameserver.model.entity.events.CTF;
import com.l2emu.gameserver.model.zone.L2Zone;
import com.l2emu.gameserver.network.serverpackets.NpcHtmlMessage;
public class CTFCmd implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS = { "ctfjoin", "ctfleave", "ctfinfo" };
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
if (command.startsWith("ctfjoin"))
{
JoinCTF(activeChar);
}
else if(command.startsWith("ctfleave"))
{
LeaveCTF(activeChar);
}
else if(command.startsWith("ctfinfo"))
{
CTFinfo(activeChar);
}
return true;
}
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
public boolean JoinCTF (L2PcInstance activeChar)
{
if ( activeChar == null)
{
return false;
}
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage( 0 );
if (!CTF._joining)
{
npcHtmlMessage.setHtml("<html><body>There is no CTF Event in progress.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (CTF._joining && activeChar._inEventCTF)
{
npcHtmlMessage.setHtml("<html><body>You are already registered.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ( activeChar.isCursedWeaponEquipped())
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you are holding a Cursed Weapon.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ( activeChar.isInOlympiadMode())
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you are in Olympiad.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ( activeChar.isInJail() || activeChar.isInsideZone(L2Zone.FLAG_JAIL)) //check if player is in jail
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you are in Jail.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (activeChar.getLevel() < CTF._minlvl)
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you level is too low.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (activeChar.getKarma() > 0)
{
npcHtmlMessage.setHtml("<html><body>You are not allowed to participate to the Event<br>Because you have Karma.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (CTF._teleport || CTF._started)
{
npcHtmlMessage.setHtml("<html><body>CTF Event registration period is over.<br>You can't register now.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else
{
npcHtmlMessage.setHtml("<html><body>Your participation in the CTF event has been approved.<br>Prepare to kill your enemies.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
CTF.addPlayer(activeChar,"");
return false;
}
}
public boolean LeaveCTF (L2PcInstance activeChar)
{
if ( activeChar == null)
{
return false;
}
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage( 0 );
if (!CTF._joining)
{
npcHtmlMessage.setHtml("<html><body>There is no CTF Event in progress.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if ((CTF._teleport || CTF._started) && activeChar._inEventCTF)
{
npcHtmlMessage.setHtml("<html><body>You can not leave now because CTF event has started.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (CTF._joining && !activeChar._inEventCTF)
{
npcHtmlMessage.setHtml("<html><body>You aren't registered in the CTF Event.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else
{
npcHtmlMessage.setHtml("<html><body>Your participation in the CTF event has been removed.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
CTF.removePlayer(activeChar);
return true;
}
}
public boolean CTFinfo (L2PcInstance activeChar)
{
if ( activeChar == null)
{
return false;
}
NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage( 0 );
if (!CTF._joining)
{
npcHtmlMessage.setHtml("<html><body>There is no CTF Event in progress.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else if (CTF._teleport || CTF._started)
{
npcHtmlMessage.setHtml("<html><body>I can't provide you this info.<br>Command available only in joining period.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
return false;
}
else
{
if (CTF._playersShuffle.size() == 1)
{
npcHtmlMessage.setHtml("<html><body>There is " + CTF._playersShuffle.size() + " player participating in this event.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
}
else
{
npcHtmlMessage.setHtml("<html><body>There are " + CTF._playersShuffle.size() + " players participating in this event.</body></html>");
activeChar.sendPacket( npcHtmlMessage );
}
return true;
}
}
}
Creditos : Cobra pela transição
|