Made CWKPQ fully-functional, using the Expedition system (won't work with the lobby system).
216 lines
7.3 KiB
JavaScript
216 lines
7.3 KiB
JavaScript
/*
|
|
NPC Name: The Forgotten Temple Manager
|
|
Map(s): Deep in the Shrine - Forgotten Twilight
|
|
Description: Pink Bean battle starter
|
|
*/
|
|
var status = -1;
|
|
|
|
function start() {
|
|
if (cm.getPlayer().getLevel() < 120) {
|
|
cm.sendOk("There is a level requirement of 120 to attempt Pink Bean.");
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
if (cm.getPlayer().getClient().getChannel() != 5) {
|
|
cm.sendOk("Pink Bean may only be attempted on channel 5.");
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
var em = cm.getEventManager("PinkBeanBattle");
|
|
|
|
if (em == null) {
|
|
cm.sendOk("The event isn't started, please contact a GM.");
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
var eim_status = em.getProperty("state");
|
|
var marr = cm.getQuestRecord(160104);
|
|
var data = marr.getCustomData();
|
|
if (data == null) {
|
|
marr.setCustomData("0");
|
|
data = "0";
|
|
}
|
|
var time = parseInt(data);
|
|
if (eim_status == null || eim_status.equals("0")) {
|
|
|
|
var squadAvailability = cm.getSquadAvailability("PinkBean");
|
|
if (squadAvailability == -1) {
|
|
status = 0;
|
|
if (time + (12 * 3600000) >= cm.getCurrentTime() && !cm.getPlayer().isGM()) {
|
|
cm.sendOk("You have already went to PinkBean in the past 12 hours. Time left: " + cm.getReadableMillis(cm.getCurrentTime(), time + (12 * 3600000)));
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
cm.sendYesNo("Are you interested in becoming the leader of the expedition Squad?");
|
|
|
|
} else if (squadAvailability == 1) {
|
|
if (time + (12 * 3600000) >= cm.getCurrentTime() && !cm.getPlayer().isGM()) {
|
|
cm.sendOk("You have already went to PinkBean in the past 12 hours. Time left: " + cm.getReadableMillis(cm.getCurrentTime(), time + (12 * 3600000)));
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
// -1 = Cancelled, 0 = not, 1 = true
|
|
var type = cm.isSquadLeader("PinkBean");
|
|
if (type == -1) {
|
|
cm.sendOk("The squad has ended, please re-register.");
|
|
cm.dispose();
|
|
} else if (type == 0) {
|
|
var memberType = cm.isSquadMember("PinkBean");
|
|
if (memberType == 2) {
|
|
cm.sendOk("You been banned from the squad.");
|
|
cm.dispose();
|
|
} else if (memberType == 1) {
|
|
status = 5;
|
|
cm.sendSimple("What would you like to do? \r\n#b#L0#Join the squad to Twilight of the Gods#l \r\n#b#L1#Leave the squad to Twilight of the Gods#l \r\n#b#L2#See the list of members on the squad#l");
|
|
} else if (memberType == -1) {
|
|
cm.sendOk("The squad has ended, please re-register.");
|
|
cm.dispose();
|
|
} else {
|
|
status = 5;
|
|
cm.sendSimple("What would you like to do? \r\n#b#L0#Join the squad to Twilight of the Gods#l \r\n#b#L1#Leave the squad to Twilight of the Gods#l \r\n#b#L2#See the list of members on the squad#l");
|
|
}
|
|
} else { // Is leader
|
|
status = 10;
|
|
cm.sendSimple("What do you want to do, expedition leader? \r\n#b#L0#View expedition list#l \r\n#b#L1#Kick from expedition#l \r\n#b#L2#Remove user from ban list#l \r\n#r#L3#Select expedition team and enter#l");
|
|
// TODO viewing!
|
|
}
|
|
} else {
|
|
var eim = cm.getDisconnected("PinkBeanBattle");
|
|
if (eim == null) {
|
|
var squd = cm.getSquad("PinkBean");
|
|
if (squd != null) {
|
|
if (time + (12 * 3600000) >= cm.getCurrentTime() && !cm.getPlayer().isGM()) {
|
|
cm.sendOk("You have already went to PinkBean in the past 12 hours. Time left: " + cm.getReadableMillis(cm.getCurrentTime(), time + (12 * 3600000)));
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
cm.sendYesNo("The squad's battle against the boss has already begun.\r\n" + squd.getNextPlayer());
|
|
status = 3;
|
|
} else {
|
|
cm.sendOk("The squad's battle against the boss has already begun.");
|
|
cm.safeDispose();
|
|
}
|
|
} else {
|
|
cm.sendYesNo("Ah, you have returned. Would you like to join your squad in the fight again?");
|
|
status = 2;
|
|
}
|
|
}
|
|
} else {
|
|
var eim = cm.getDisconnected("PinkBeanBattle");
|
|
if (eim == null) {
|
|
var squd = cm.getSquad("PinkBean");
|
|
if (squd != null) {
|
|
if (time + (12 * 3600000) >= cm.getCurrentTime() && !cm.getPlayer().isGM()) {
|
|
cm.sendOk("You have already went to PinkBean in the past 12 hours. Time left: " + cm.getReadableMillis(cm.getCurrentTime(), time + (12 * 3600000)));
|
|
cm.dispose();
|
|
return;
|
|
}
|
|
cm.sendYesNo("The squad's battle against the boss has already begun.\r\n" + squd.getNextPlayer());
|
|
status = 3;
|
|
} else {
|
|
cm.sendOk("The squad's battle against the boss has already begun.");
|
|
cm.safeDispose();
|
|
}
|
|
} else {
|
|
cm.sendYesNo("Ah, you have returned. Would you like to join your squad in the fight again?");
|
|
status = 2;
|
|
}
|
|
}
|
|
}
|
|
|
|
function action(mode, type, selection) {
|
|
switch (status) {
|
|
case 0:
|
|
if (mode == 1) {
|
|
if (cm.registerSquad("PinkBean", 5, " has been named the Leader of the squad. If you would you like to join please register for the Expedition Squad within the time period.")) {
|
|
cm.sendOk("You have been named the Leader of the Squad. For the next 5 minutes, you can add the members of the Expedition Squad.");
|
|
} else {
|
|
cm.sendOk("An error has occurred adding your squad.");
|
|
}
|
|
}
|
|
cm.dispose();
|
|
break;
|
|
case 2:
|
|
if (!cm.reAdd("PinkBeanBattle", "PinkBean")) {
|
|
cm.sendOk("Error... please try again.");
|
|
}
|
|
cm.safeDispose();
|
|
break;
|
|
case 3:
|
|
if (mode == 1) {
|
|
var squd = cm.getSquad("PinkBean");
|
|
if (squd != null && !squd.getAllNextPlayer().contains(cm.getPlayer().getName())) {
|
|
squd.setNextPlayer(cm.getPlayer().getName());
|
|
cm.sendOk("You have reserved the spot.");
|
|
}
|
|
}
|
|
cm.dispose();
|
|
break;
|
|
case 5:
|
|
if (selection == 0) { // join
|
|
var ba = cm.addMember("PinkBean", true);
|
|
if (ba == 2) {
|
|
cm.sendOk("The squad is currently full, please try again later.");
|
|
} else if (ba == 1) {
|
|
cm.sendOk("You have joined the squad successfully");
|
|
} else {
|
|
cm.sendOk("You are already part of the squad.");
|
|
}
|
|
} else if (selection == 1) {// withdraw
|
|
var baa = cm.addMember("PinkBean", false);
|
|
if (baa == 1) {
|
|
cm.sendOk("You have withdrawed from the squad successfully");
|
|
} else {
|
|
cm.sendOk("You are not part of the squad.");
|
|
}
|
|
} else if (selection == 2) {
|
|
if (!cm.getSquadList("PinkBean", 0)) {
|
|
cm.sendOk("Due to an unknown error, the request for squad has been denied.");
|
|
}
|
|
}
|
|
cm.dispose();
|
|
break;
|
|
case 10:
|
|
if (mode == 1) {
|
|
if (selection == 0) {
|
|
if (!cm.getSquadList("PinkBean", 0)) {
|
|
cm.sendOk("Due to an unknown error, the request for squad has been denied.");
|
|
}
|
|
cm.dispose();
|
|
} else if (selection == 1) {
|
|
status = 11;
|
|
if (!cm.getSquadList("PinkBean", 1)) {
|
|
cm.sendOk("Due to an unknown error, the request for squad has been denied.");
|
|
cm.dispose();
|
|
}
|
|
} else if (selection == 2) {
|
|
status = 12;
|
|
if (!cm.getSquadList("PinkBean", 2)) {
|
|
cm.sendOk("Due to an unknown error, the request for squad has been denied.");
|
|
cm.dispose();
|
|
}
|
|
} else if (selection == 3) { // get inside
|
|
if (cm.getSquad("PinkBean") != null) {
|
|
var dd = cm.getEventManager("PinkBeanBattle");
|
|
dd.startInstance(cm.getSquad("PinkBean"), cm.getMap(), 160104);
|
|
} else {
|
|
cm.sendOk("Due to an unknown error, the request for squad has been denied.");
|
|
}
|
|
cm.dispose();
|
|
}
|
|
} else {
|
|
cm.dispose();
|
|
}
|
|
break;
|
|
case 11:
|
|
cm.banMember("PinkBean", selection);
|
|
cm.dispose();
|
|
break;
|
|
case 12:
|
|
if (selection != -1) {
|
|
cm.acceptMember("PinkBean", selection);
|
|
}
|
|
cm.dispose();
|
|
break;
|
|
}
|
|
} |