180 lines
6.5 KiB
JavaScript
180 lines
6.5 KiB
JavaScript
/*2101014.js - Lobby and Entrance
|
|
* @author Jvlaple
|
|
* For Jvlaple's AriantPQ
|
|
*/
|
|
|
|
var status = 0;
|
|
var toBan = -1;
|
|
var choice;
|
|
var arenaType;
|
|
var arena;
|
|
var arenaName;
|
|
var type;
|
|
var map;
|
|
const ExpeditionType = Java.type('server.expeditions.ExpeditionType');
|
|
var exped = ExpeditionType.ARIANT;
|
|
var exped1 = ExpeditionType.ARIANT1;
|
|
var exped2 = ExpeditionType.ARIANT2;
|
|
|
|
function start() {
|
|
status = -1;
|
|
action(1, 0, 0);
|
|
}
|
|
|
|
function action(mode, type, selection) {
|
|
if (mode == -1) {
|
|
cm.dispose();
|
|
} else {
|
|
if (mode == 0 && status == 0) {
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
if (mode == 1) {
|
|
status++;
|
|
} else {
|
|
status--;
|
|
}
|
|
if (cm.getPlayer().getMapId() == 980010000) {
|
|
if (cm.getLevel() > 30) {
|
|
cm.sendOk("You are already over #rlevel 30#k, therefore you can't participate in this instance anymore.");
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
|
|
if (status == 0) {
|
|
var expedicao = cm.getExpedition(exped);
|
|
var expedicao1 = cm.getExpedition(exped1);
|
|
var expedicao2 = cm.getExpedition(exped2);
|
|
|
|
var channelMaps = cm.getClient().getChannelServer().getMapFactory();
|
|
var startSnd = "What would you like to do? \r\n\r\n\t#e#r(Choose a Battle Arena)#n#k\r\n#b";
|
|
var toSnd = startSnd;
|
|
|
|
if (expedicao == null) {
|
|
toSnd += "#L0#Battle Arena (1) (Empty)#l\r\n";
|
|
} else if (channelMaps.getMap(980010101).getCharacters().isEmpty()) {
|
|
toSnd += "#L0#Join Battle Arena (1) Owner (" + expedicao.getLeader().getName() + ")" + " Current Member: " + cm.getExpeditionMemberNames(exped) + "\r\n";
|
|
}
|
|
if (expedicao1 == null) {
|
|
toSnd += "#L1#Battle Arena (2) (Empty)#l\r\n";
|
|
} else if (channelMaps.getMap(980010201).getCharacters().isEmpty()) {
|
|
toSnd += "#L1#Join Battle Arena (2) Owner (" + expedicao1.getLeader().getName() + ")" + " Current Member: " + cm.getExpeditionMemberNames(exped1) + "\r\n";
|
|
}
|
|
if (expedicao2 == null) {
|
|
toSnd += "#L2#Battle Arena (3) (Empty)#l\r\n";
|
|
} else if (channelMaps.getMap(980010301).getCharacters().isEmpty()) {
|
|
toSnd += "#L2#Join Battle Arena (3) Owner (" + expedicao2.getLeader().getName() + ")" + " Current Member: " + cm.getExpeditionMemberNames(exped2) + "\r\n";
|
|
}
|
|
if (toSnd === startSnd) {
|
|
cm.sendOk("All the Battle Arena is currently occupied. I suggest you to come back later or change channels.");
|
|
cm.dispose();
|
|
} else {
|
|
cm.sendSimple(toSnd);
|
|
}
|
|
} else if (status == 1) {
|
|
arenaType = selection;
|
|
expedicao = fetchArenaType();
|
|
if (expedicao == "") {
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
|
|
if (expedicao != null) {
|
|
enterArena(-1);
|
|
} else {
|
|
cm.sendGetText("Up to how many partipants can join in this match? (2~5 people)");
|
|
}
|
|
} else if (status == 2) {
|
|
var players = parseInt(cm.getText()); // AriantPQ option limit found thanks to NarutoFury (iMrSiN)
|
|
if (isNaN(players)) {
|
|
cm.sendNext("Please enter a numeric limit value of allowed players in your instance.");
|
|
status = 0;
|
|
} else if (players < 2) {
|
|
cm.sendNext("The numeric limit value should not be less than 2 players.");
|
|
status = 0;
|
|
} else {
|
|
enterArena(players);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function fetchArenaType() {
|
|
switch (arenaType) {
|
|
case 0 :
|
|
exped = ExpeditionType.ARIANT;
|
|
expedicao = cm.getExpedition(exped);
|
|
map = 980010100;
|
|
break;
|
|
case 1 :
|
|
exped = ExpeditionType.ARIANT1;
|
|
expedicao = cm.getExpedition(exped);
|
|
map = 980010200;
|
|
break;
|
|
case 2 :
|
|
exped = ExpeditionType.ARIANT2;
|
|
expedicao = cm.getExpedition(exped);
|
|
map = 980010300;
|
|
break;
|
|
default :
|
|
exped = null;
|
|
map = 0;
|
|
expedicao = "";
|
|
}
|
|
|
|
return expedicao;
|
|
}
|
|
|
|
function enterArena(arenaPlayers) {
|
|
expedicao = fetchArenaType();
|
|
if (expedicao == "") {
|
|
cm.dispose();
|
|
|
|
} else if (expedicao == null) {
|
|
if (arenaPlayers != -1) {
|
|
var res = cm.createExpedition(exped, true, 0, arenaPlayers);
|
|
if (res == 0) {
|
|
cm.warp(map, 0);
|
|
cm.getPlayer().dropMessage("Your arena was created successfully. Wait for people to join the battle.");
|
|
} else if (res > 0) {
|
|
cm.sendOk("Sorry, you've already reached the quota of attempts for this expedition! Try again another day...");
|
|
} else {
|
|
cm.sendOk("An unexpected error has occurred when starting the expedition, please try again later.");
|
|
}
|
|
} else {
|
|
cm.sendOk("An unexpected error has occurred when locating the expedition, please try again later.");
|
|
}
|
|
|
|
cm.dispose();
|
|
} else {
|
|
if (playerAlreadyInLobby(cm.getPlayer())) {
|
|
cm.sendOk("Sorry, you're already inside the lobby.");
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
|
|
var playerAdd = expedicao.addMemberInt(cm.getPlayer());
|
|
if (playerAdd == 3) {
|
|
cm.sendOk("Sorry, the lobby is full now");
|
|
cm.dispose();
|
|
} else {
|
|
if (playerAdd == 0) {
|
|
cm.warp(map, 0);
|
|
cm.dispose();
|
|
} else if (playerAdd == 2) {
|
|
cm.sendOk("Sorry, the leader do not allowed you to enter.");
|
|
cm.dispose();
|
|
} else {
|
|
cm.sendOk("Error.");
|
|
cm.dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function playerAlreadyInLobby(player) {
|
|
return cm.getExpedition(ExpeditionType.ARIANT) != null && cm.getExpedition(ExpeditionType.ARIANT).contains(player) ||
|
|
cm.getExpedition(ExpeditionType.ARIANT1) != null && cm.getExpedition(ExpeditionType.ARIANT1).contains(player) ||
|
|
cm.getExpedition(ExpeditionType.ARIANT2) != null && cm.getExpedition(ExpeditionType.ARIANT2).contains(player);
|
|
} |