Hi
I search this FULL FFA Source Code:
Ffa.java:
I search this FULL FFA Source Code:
Ffa.java:
Code:
/**
* This file is part of Aion-Finish <Ver:4.0>
*
* Aion-Finish is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Aion-Finish 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 Lesser Public License for more details.
* web:aionfinish.com
* You should have received a copy of the GNU Lesser Public License
* along with Aion-Finish. If not, see <http://www.gnu.org/licenses/>.
*/
package admincommands;
import gameserver.configs.administration.CommandsConfig;
import gameserver.model.ChatType;
import gameserver.model.EmotionType;
import gameserver.model.Race;
import gameserver.model.gameobjects.player.Player;
import gameserver.model.team.alliance.PlayerAllianceService;
import gameserver.model.team.group.PlayerGroupService;
import gameserver.network.aion.serverpackets.SM_EMOTION;
import gameserver.network.aion.serverpackets.SM_MESSAGE;
import gameserver.network.aion.serverpackets.SM_PLAYER_INFO;
import gameserver.network.aion.serverpackets.SM_USE_OBJECT;
import gameserver.utils.PacketSendUtility;
import gameserver.utils.ThreadPoolManager;
import gameserver.utils.chathandlers.AdminCommand;
import gameserver.world.World;
import gameserver.world.WorldMapType;
import gameserver.world.knownlist.Visitor;
import gameserver.services.event.FfaService;
import gameserver.services.teleport.TeleportService;
/**
* @author SIW.X
*
*/
public class FFa extends AdminCommand
{
int mapId = 1;
String NameMap;
final int defaultUseTime = 5000;
public FFa()
{
super("ffa");
}
[USER=2000004426]Override[/USER]
public void executeCommand(Player admin, String[] params)
{
if (admin.getAccessLevel() <= CommandsConfig.COMMAND_FFA){
PacketSendUtility.sendMessage(admin, "You do not have the right to execute this command !");
return;
}
if((params.length < 1) || (params.length > 2)){
PacketSendUtility.sendMessage(admin, "syntax //ffa <map | start | stop | list>");
return;
}
if (params[0].startsWith("map")){
try
{
if (params.length == 2){
mapId = Integer.parseInt(params[1]);
if(mapId <= 15){
if(mapId == 2){
NameMap = "Kromede Trial";
}else if (mapId ==3){
NameMap = "Fire Temple";
}else if (mapId == 4){
NameMap = "Chantra Dredgion";
}else if(mapId == 5){
NameMap = "Beshmundir Temple";
}else if (mapId == 1){
NameMap = "Aturam Sky Fortress";
}else if (mapId == 6){
NameMap = "Elementis Forest";
}else if (mapId == 7){
NameMap = "Rentus Base";
}else if (mapId == 8){
NameMap = "Aetherogenetics Lab";
}else if (mapId == 9){
NameMap = "Dark Poeta";
}else if (mapId == 10){
NameMap = "Argent Manor";
}else if (mapId == 11){
NameMap = "Kysis Chamber";
}else if (mapId == 12){
NameMap = "Udas Temple";
}else if (mapId == 13){
NameMap = "Indratu Fortress";
}else if (mapId == 14){
NameMap = "Steel Rake";
}else if (mapId == 15){
NameMap = "Azoturan Fortress";
}
FfaService.getInstance().setFFaId(mapId);
PacketSendUtility.sendMessage(admin, " ffa map changed, the new map ffa is : " + NameMap);
TeleportAllPlayerInNewsMapFFA();
}else{
PacketSendUtility.sendMessage(admin, " We did not change the ffa map, enter the correct ID");
}
}else{
PacketSendUtility.sendMessage(admin, "syntax //ffa map [id]");
}
}
catch (NumberFormatException ex){
PacketSendUtility.sendMessage(admin, "The parameter must be numbers.");
return;
}
catch (Exception ex2){
PacketSendUtility.sendMessage(admin, "Something went wrong..");
return;
}
}
else if (params[0].startsWith("stop")){
if(params.length == 1){
PacketSendUtility.sendMessage(admin, "You just closed the area FFA !. All the players inside the zone will be teleported to their capital!");
FfaService.getInstance().setFFaEnabled(false);
ExitAllPlayerIsInFFA();
}else{
PacketSendUtility.sendMessage(admin, "syntax //ffa stop");
}
}
else if (params[0].startsWith("start")){
if(params.length == 1){
PacketSendUtility.sendMessage(admin, "You just open the FFA area!.");
FfaService.getInstance().setFFaEnabled(true);
World.getInstance().doOnAllPlayers(new Visitor<Player>(){
[USER=2000004426]Override[/USER]
public void visit(Player player)
{
PacketSendUtility.sendPacket(player, new SM_MESSAGE(0, null, "FFA Area it's now Open" , ChatType.WHITE_CENTER));
}
});
}else{
PacketSendUtility.sendMessage(admin, "syntax //ffa list");
}
}
else if (params[0].startsWith("list")){
if(params.length == 1){
PacketSendUtility.sendMessage(admin, "== MapFFaList ==");
PacketSendUtility.sendMessage(admin, " id:1 MapName: Aturam Sky Fortress");
PacketSendUtility.sendMessage(admin, " id:2 MapName: Kromede Trial");
PacketSendUtility.sendMessage(admin, " id:3 MapName: Fire Temple");
PacketSendUtility.sendMessage(admin, " id:4 MapName: Chantra Dredgion");
PacketSendUtility.sendMessage(admin, " id:5 MapName: Beshmundir Temple");
PacketSendUtility.sendMessage(admin, " id:6 MapName: Elementis Forest");
PacketSendUtility.sendMessage(admin, " id:7 MapName: Rentus Base");
PacketSendUtility.sendMessage(admin, " id:8 MapName: Aetherogenetics Lab");
PacketSendUtility.sendMessage(admin, " id:9 MapName: Dark Poeta");
PacketSendUtility.sendMessage(admin, " id:10 MapName: Argent Manor");
PacketSendUtility.sendMessage(admin, " id:11 MapName: Kysis Chamber");
PacketSendUtility.sendMessage(admin, " id:12 MapName: Udas Temple");
PacketSendUtility.sendMessage(admin, " id:13 MapName: Indratu Fortress");
PacketSendUtility.sendMessage(admin, " id:14 MapName: Steel Rake");
PacketSendUtility.sendMessage(admin, " id:15 MapName: Azoturan Fortress");
}else{
PacketSendUtility.sendMessage(admin, "syntax //ffa start ");
}
}
}
public void TeleportAllPlayerInNewsMapFFA()
{
World.getInstance().doOnAllPlayers(new Visitor<Player>(){
[USER=2000004426]Override[/USER]
public void visit(final Player player)
{
if(player.isInFFA()){
PacketSendUtility.sendPacket(player, new SM_MESSAGE(0, null, "FFA area just changed map, you will be teleport to the new map FFa Named : " + NameMap + ", ! ", ChatType.WHITE_CENTER));
ThreadPoolManager.getInstance().schedule(new Runnable() {
[USER=2000004426]Override[/USER]
public void run() {
PacketSendUtility.sendPacket(player, new SM_USE_OBJECT(player.getObjectId(), player.getObjectId(), 7000, 0));
PacketSendUtility.broadcastPacket(player, new SM_EMOTION(player, EmotionType.END_QUESTLOOT, 0, player.getObjectId()), true);
player.setInFFA(true);
if (player.isInAlliance())
PlayerAllianceService.removePlayer(player);
if (player.isInGroup())
PlayerGroupService.removePlayer(player);
player.ArenaTeam = player.getObjectId();
player.ArenaStatus = 3;
player.clearKnownlist();
PacketSendUtility.sendPacket(player, new SM_PLAYER_INFO(player, false));
player.updateKnownlist();
FfaService.getInstance().TeleportFFA(player);
}
}, 5000);
}else{
PacketSendUtility.sendPacket(player, new SM_MESSAGE(0, null, "FFA area just changed map, you will be teleport to the new map FFa Named : " + NameMap + " !", ChatType.WHITE_CENTER));
}
}
});
}
public void ExitAllPlayerIsInFFA()
{
World.getInstance().doOnAllPlayers(new Visitor<Player>(){
[USER=2000004426]Override[/USER]
public void visit(final Player player)
{
if(player.isInFFA()){
PacketSendUtility.sendPacket(player, new SM_MESSAGE(0, null, "Area FFA has closed ! , You will be teleported to your capital!" , ChatType.WHITE_CENTER));
ThreadPoolManager.getInstance().schedule(new Runnable() {
[USER=2000004426]Override[/USER]
public void run() {
PacketSendUtility.sendPacket(player, new SM_USE_OBJECT(player.getObjectId(), player.getObjectId(), 5000, 0));
PacketSendUtility.broadcastPacket(player, new SM_EMOTION(player, EmotionType.END_QUESTLOOT, 0, player.getObjectId()), true);
player.setInFFA(false);
player.ArenaTeam = 0;
player.ArenaStatus = 0;
player.clearKnownlist();
PacketSendUtility.sendPacket(player, new SM_PLAYER_INFO(player, false));
player.updateKnownlist();
if (player.getRace() == Race.ASMODIANS)
TeleportService.teleportTo(player, WorldMapType.PANDAEMONIUM.getId(), 1679, 1400, 195, 0);
else
TeleportService.teleportTo(player, WorldMapType.SANCTUM.getId(), 1322, 1511, 568, 0);
}
}, 5000);
}else{
PacketSendUtility.sendPacket(player, new SM_MESSAGE(0, null, "Area FFA has closed ! , You will be teleported to your capital!", ChatType.WHITE_CENTER));
}
}
});
}
}