More PQ-esque script modules + HP Bar on some bosses
Completed (hopefully, now!) implementation of automated modules for PQ scripting. Added HP bar for some bosses that wouldn't display it before (like King Slime, Alishar and CRog).
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
var windowTime = 10 * 1000;
|
||||
|
||||
function enter(pi) {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
var level = em.getProperty("level");
|
||||
if(em.getProperty("stage2b") == "0") {
|
||||
var eim = pi.getEventInstance();
|
||||
var level = eim.getProperty("level");
|
||||
if(eim.getProperty("stage2b") == "0") {
|
||||
pi.getMap(925100202).spawnAllMonstersFromMapSpawnList(level, true);
|
||||
em.setProperty("stage2b", "1");
|
||||
eim.setProperty("stage2b", "1");
|
||||
}
|
||||
|
||||
pi.warp(925100202,0);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
var windowTime = 10 * 1000;
|
||||
|
||||
function enter(pi) {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
var level = em.getProperty("level");
|
||||
if(em.getProperty("stage3b") == "0") {
|
||||
var eim = pi.getEventInstance();
|
||||
var level = eim.getProperty("level");
|
||||
if(eim.getProperty("stage3b") == "0") {
|
||||
pi.getMap(925100302).spawnAllMonstersFromMapSpawnList(level, true);
|
||||
em.setProperty("stage3b", "1");
|
||||
eim.setProperty("stage3b", "1");
|
||||
}
|
||||
|
||||
pi.warp(925100302,0);
|
||||
|
||||
@@ -1,49 +1,9 @@
|
||||
/*
|
||||
This file is part of the OdinMS Maple Story Server
|
||||
Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
|
||||
Matthias Butz <matze@odinms.de>
|
||||
Jan Christian Meyer <vimes@odinms.de>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation version 3 as published by
|
||||
the Free Software Foundation. You may not use, modify or distribute
|
||||
this program under any other version of the GNU Affero General Public
|
||||
License.
|
||||
|
||||
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 Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/***********
|
||||
@Author Jvlaple
|
||||
***********/
|
||||
|
||||
function enter(pi) {
|
||||
var nextMap = 925100100;
|
||||
var eim = pi.getPlayer().getEventInstance();
|
||||
var party = eim.getPlayers();
|
||||
var target = eim.getMapInstance(nextMap);
|
||||
var targetPortal = target.getPortal("sp");
|
||||
var mobCount = pi.countMonster();
|
||||
var playerS = pi.isLeader();
|
||||
// only let people through if the eim is ready
|
||||
if (playerS == false) {
|
||||
// do nothing; send message to player
|
||||
pi.getPlayer().dropMessage(6, "Only the party leader may enter this portal.");
|
||||
return false;
|
||||
}else if (mobCount < 1) {
|
||||
eim.setProperty("entryTimeStamp", 1000 * 60 * 6);
|
||||
for(var g=0; g<party.size(); g++) {
|
||||
party.get(g).changeMap(target, targetPortal);
|
||||
}
|
||||
return true;
|
||||
}else {
|
||||
pi.getPlayer().dropMessage(6, "You need to kill all monsters before proceeding.");
|
||||
return false;
|
||||
}
|
||||
if (pi.getMap().getMonsters().size() == 0) {
|
||||
pi.warp(925100100,0); //next
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
function enter(pi) {
|
||||
try {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
if (em != null && em.getProperty("stage2").equals("3")) {
|
||||
var eim = pi.getEventInstance();
|
||||
if (eim != null && eim.getProperty("stage2").equals("3")) {
|
||||
pi.warp(925100200,0); //next
|
||||
return(true);
|
||||
} else {
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
importPackage(Packages.server.life);
|
||||
|
||||
function enter(pi) {
|
||||
if (pi.getMap().getReactorByName("sMob1").getState() >= 1 && pi.getMap().getReactorByName("sMob2").getState() >= 1 && pi.getMap().getReactorByName("sMob3").getState() >= 1 && pi.getMap().getReactorByName("sMob4").getState() >= 1) {
|
||||
if (pi.isLeader()) {
|
||||
var em = pi.getEventManager("PiratePQ");
|
||||
|
||||
var level = parseInt(em.getProperty("level"));
|
||||
var chests = parseInt(em.getProperty("openedChests"));
|
||||
if (pi.getMap().getReactorByName("sMob1").getState() >= 1 && pi.getMap().getReactorByName("sMob2").getState() >= 1 && pi.getMap().getReactorByName("sMob3").getState() >= 1 && pi.getMap().getReactorByName("sMob4").getState() >= 1 && pi.getMap().getMonsters().size() == 0) {
|
||||
var eim = pi.getEventInstance();
|
||||
|
||||
if(eim.getProperty("spawnedBoss") == null) {
|
||||
var level = parseInt(eim.getProperty("level"));
|
||||
var chests = parseInt(eim.getProperty("openedChests"));
|
||||
var boss;
|
||||
|
||||
|
||||
if(chests == 0) boss = MapleLifeFactory.getMonster(9300119); //lord pirate
|
||||
else if(chests == 1) boss = MapleLifeFactory.getMonster(9300105); //angry lord pirate
|
||||
else boss = MapleLifeFactory.getMonster(9300106); //enraged lord pirate
|
||||
|
||||
|
||||
boss.changeDifficulty(level, true);
|
||||
|
||||
|
||||
pi.getMap(925100500).spawnMonsterOnGroundBelow(boss, new java.awt.Point(777, 140));
|
||||
pi.warpParty(925100500); //next
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The leader must be here.");
|
||||
return(false);
|
||||
}
|
||||
eim.setProperty("spawnedBoss", "true");
|
||||
}
|
||||
|
||||
pi.warp(925100500, 0);
|
||||
return(true);
|
||||
} else {
|
||||
pi.playerMessage(5, "The portal is not opened yet.");
|
||||
return(false);
|
||||
|
||||
@@ -2,7 +2,6 @@ function enter(pi) {
|
||||
if ((pi.getMap().getMonsters().size() == 0 || pi.getMap().getMonsterById(9300183) != null) && (pi.getMap().getReactorByName("") == null || pi.getMap().getReactorByName("").getState() == 1)) {
|
||||
if(pi.isLeader()) {
|
||||
pi.getEventInstance().clearPQ();
|
||||
pi.getEventInstance().warpEventTeam(930000800);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -28,7 +28,7 @@ function enter(pi) {
|
||||
var evLevel = ((pi.getMapId() - 1) % 5) + 1;
|
||||
|
||||
if(pi.getPlayer().getEventInstance().isLeader(pi.getPlayer()) && pi.getPlayer().getEventInstance().getPlayerCount() > 1) {
|
||||
pi.message("Being the party leader, you cannot leave before your teammates leave first.");
|
||||
pi.message("Being the party leader, you cannot leave before your teammates leave first or you pass leadership.");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ function enter(pi) {
|
||||
if(pi.getMap().getMonsters().isEmpty()) {
|
||||
var nextStage;
|
||||
|
||||
if(pi.getMapId() % 500 != 0) nextStage = pi.getMapId() + 100;
|
||||
else nextStage = 970030001 + ((pi.getMapId() - 970030100) / 500);
|
||||
if(pi.getMapId() % 500 >= 100) nextStage = pi.getMapId() + 100;
|
||||
else nextStage = 970030001 + (Math.floor((pi.getMapId() - 970030100) / 500));
|
||||
|
||||
pi.warp(nextStage);
|
||||
return true;
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
function enter(pi) {
|
||||
pi.warp(100000000,0);
|
||||
var map = pi.getPlayer().getSavedLocation("BOSSPQ");
|
||||
if (map == -1)
|
||||
map = 100000000;
|
||||
|
||||
pi.warp(map,0);
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user