Merge remote-tracking branch 'upstream/master' into Custom-rebirth-npc
This commit is contained in:
@@ -1,3 +1,13 @@
|
|||||||
/docs
|
# Project administration files
|
||||||
/handbook
|
.idea
|
||||||
/tools
|
.git
|
||||||
|
.github
|
||||||
|
|
||||||
|
# Not used by the build.
|
||||||
|
docs
|
||||||
|
handbook
|
||||||
|
sql
|
||||||
|
tools
|
||||||
|
|
||||||
|
# Created by the db when using docker-compose, large and causes rebuild issues if sent to the context.
|
||||||
|
docker-db-data
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,7 +2,6 @@
|
|||||||
.idea/
|
.idea/
|
||||||
*.iml
|
*.iml
|
||||||
/target
|
/target
|
||||||
/docker-db-data
|
|
||||||
|
|
||||||
# build files
|
# build files
|
||||||
|
|
||||||
|
|||||||
42
Dockerfile
42
Dockerfile
@@ -1,20 +1,42 @@
|
|||||||
# Initial Docker support thanks to xinyifly
|
# Initial Docker support thanks to xinyifly
|
||||||
|
# Optimisation performed by wejrox
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build stage
|
# Cosmic JAR creation stage
|
||||||
#
|
#
|
||||||
FROM maven:3.6.3-jdk-8 AS build
|
FROM maven:3.8.1-openjdk-16 AS jar
|
||||||
COPY src /home/app/src
|
|
||||||
COPY pom.xml /home/app
|
# Build in a separated location which won't have permissions issues.
|
||||||
RUN mvn -f /home/app/pom.xml clean package
|
WORKDIR /opt/cosmic
|
||||||
|
# Any changes to the pom will affect the entire build, so it should be copied first.
|
||||||
|
COPY pom.xml ./pom.xml
|
||||||
|
# Grab all the dependencies listed in the pom early, since it prevents changes to source code from requiring a complete re-download.
|
||||||
|
# Skip compiling tests since we don't want all the dependecies to be downloaded.
|
||||||
|
RUN mvn -f ./pom.xml clean dependency:go-offline -Dmaven.test.skip -T 1C
|
||||||
|
# Source code changes may not change dependencies, so it can go last.
|
||||||
|
# Skip compiling tests since we don't want all the dependecies to be downloaded for plugins.
|
||||||
|
COPY src ./src
|
||||||
|
RUN mvn -f ./pom.xml clean package -Dmaven.test.skip -T 1C
|
||||||
|
|
||||||
#
|
#
|
||||||
# Package stage
|
# Server creation stage
|
||||||
#
|
#
|
||||||
FROM openjdk:8
|
FROM openjdk:16
|
||||||
COPY --from=build /home/app/target/Cosmic.jar /usr/local/lib/Cosmic.jar
|
|
||||||
COPY ./ ./
|
# Host the server in a location that won't have permissions issues.
|
||||||
|
WORKDIR /opt/server
|
||||||
|
# Copy the wizet files first since they're so big and won't change often.
|
||||||
|
COPY wz ./wz
|
||||||
|
# Copy the JAR we build earlier.
|
||||||
|
COPY --from=jar /opt/cosmic/target/Cosmic.jar ./Server.jar
|
||||||
|
# Scripts are sourced on server startup, so you can mount over them for quicker redeploy.
|
||||||
|
COPY scripts ./scripts/
|
||||||
|
# Config is read on server startup, so you can mount over it for quicker redeploy.
|
||||||
|
COPY config.yaml ./
|
||||||
|
# Default exposure, although not required if using docker compose.
|
||||||
|
# This exposes the login server, and channels.
|
||||||
|
# Format for channels: WWCC, where WW is 75 plus the world number and CC is 75 plus the channel number (both zero indexed).
|
||||||
EXPOSE 8484 7575 7576 7577
|
EXPOSE 8484 7575 7576 7577
|
||||||
ENTRYPOINT ["java", "-jar", "/usr/local/lib/Cosmic.jar"]
|
ENTRYPOINT ["java", "-jar", "./Server.jar"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
52
README.md
52
README.md
@@ -27,8 +27,8 @@ Discord: https://discord.gg/JU5aQapVZK
|
|||||||
---
|
---
|
||||||
|
|
||||||
## Tools
|
## Tools
|
||||||
* **Java 8 SDK**
|
* **Java 16 SDK** - Needed to compile and run Java code. Install manually or through IntelliJ depending on how you prefer to launch the server. Not required for launching with Docker.
|
||||||
* Link: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
|
* Link: https://jdk.java.net/16/
|
||||||
|
|
||||||
|
|
||||||
* **IntelliJ IDEA** - Java IDE and your main tool for working with the source code. Community edition is good enough.
|
* **IntelliJ IDEA** - Java IDE and your main tool for working with the source code. Community edition is good enough.
|
||||||
@@ -136,7 +136,7 @@ If you are using Docker (quick start):
|
|||||||
|
|
||||||
#### Configuring the project
|
#### Configuring the project
|
||||||
|
|
||||||
The easiest way to set up your project is to load the repository directly into a new IntelliJ project.
|
The easiest way to set up your project is to clone the repository directly into a new IntelliJ project.
|
||||||
|
|
||||||
1. Install IntelliJ
|
1. Install IntelliJ
|
||||||
2. Create a new "Project from Version Control..."
|
2. Create a new "Project from Version Control..."
|
||||||
@@ -147,19 +147,20 @@ The easiest way to set up your project is to load the repository directly into a
|
|||||||
|
|
||||||
1. Install MySQL Server 8 and MySQL Workbench 8.
|
1. Install MySQL Server 8 and MySQL Workbench 8.
|
||||||
2. Using Workbench, create a new user with username "cosmic_server" and password "snailshell".
|
2. Using Workbench, create a new user with username "cosmic_server" and password "snailshell".
|
||||||
These are the defaults used in Cosmic.
|
This the default configuration in Cosmic.
|
||||||
* (Optional) Restrict the Schema Privileges for this new user for improved security.
|
* (Optional) Restrict the Schema Privileges for this new user for improved security.
|
||||||
Add a new entry with "Schemas matching pattern: cosmic" and only select "SELECT", "INSERT", "UPDATE", "DELETE" under "Object Rights"
|
Add a new entry with "Schemas matching pattern: cosmic" and only select "SELECT", "INSERT", "UPDATE", "DELETE" under "Object Rights"
|
||||||
3. Run the sql scripts in the "sql" directory of the project in the order indicated by their names.
|
3. Run the sql scripts in the "database/sql" directory of the project in the order indicated by their names.
|
||||||
* Make sure you are connected to the database with the "root" user.
|
* Make sure you are connected to the database with the "root" user to be able to run the scripts.
|
||||||
* Run scripts through the menu: "File" -> "Run SQL Script" -> select the script file to run -> "Run"
|
* Run scripts one by one through the menu: "File" -> "Run SQL Script" -> select the script file to run -> "Run"
|
||||||
* The 3rd script "3-db_shopupdate" is optional. It adds custom shop items for certain NPCs.
|
* The 3rd script "3-db_shopupdate" is optional. It adds custom shop items for certain NPCs.
|
||||||
|
* The 4th script "4-db_admin" is also optional, but recommended if you are new. It adds an admin account to simplify the setup.
|
||||||
|
|
||||||
Use this info when you connect to MySQL Server for the first time:
|
Use this info when you connect to MySQL Server for the first time:
|
||||||
* Server Host: localhost
|
* Server Host: localhost
|
||||||
* Port: 3306
|
* Port: 3306
|
||||||
* Username: root
|
* Username: root
|
||||||
* Password: whatever you entered in during the installation of MySQL Server
|
* Password: <whatever password you set during MySQL Server installation>
|
||||||
|
|
||||||
At the end of the execution of these sql scripts, you should have installed a database schema named "cosmic".
|
At the end of the execution of these sql scripts, you should have installed a database schema named "cosmic".
|
||||||
REGISTER YOUR FIRST ACCOUNT to be used in-game by **manually creating** an entry in the table "accounts" in the database with a username and password.
|
REGISTER YOUR FIRST ACCOUNT to be used in-game by **manually creating** an entry in the table "accounts" in the database with a username and password.
|
||||||
@@ -173,7 +174,7 @@ Alternatively, you can use the IP given by Hamachi to use on a Hamachi network,
|
|||||||
|
|
||||||
To launch the server, you may either:
|
To launch the server, you may either:
|
||||||
* Launch inside IntelliJ
|
* Launch inside IntelliJ
|
||||||
* Launch a jar file
|
* Launch a built jar file
|
||||||
* Launch with Docker
|
* Launch with Docker
|
||||||
|
|
||||||
#### Launch inside IntelliJ
|
#### Launch inside IntelliJ
|
||||||
@@ -185,17 +186,25 @@ To launch the server, you may either:
|
|||||||
#### Launch a jar file
|
#### Launch a jar file
|
||||||
1. Create the jar file
|
1. Create the jar file
|
||||||
* The jar file is created by the Maven assembly plugin in the package lifecycle.
|
* The jar file is created by the Maven assembly plugin in the package lifecycle.
|
||||||
* If you have Maven installed on your computer, simply run the command "mvn clean install" to create the jar file.
|
* If you already have Maven installed, simply run the command "mvn clean install" to create the jar file.
|
||||||
* IntelliJ also comes with built in Maven support. Open a new terminal window inside IntelliJ, type "mvn clean install" (your command should be marked green), then Ctrl+Enter to create the jar file.
|
* IntelliJ also comes with built-in Maven support. Open a new terminal window inside IntelliJ, type "mvn clean install" (your command should now be marked green), then Ctrl+Enter to build the jar file.
|
||||||
2. Launch the jar file
|
2. Launch the jar file
|
||||||
* Double click on "launch.bat"
|
* Double click on "launch.bat"
|
||||||
|
|
||||||
#### Launch with Docker
|
#### Launch with Docker
|
||||||
Run the command "docker compose up" at the root of the project.
|
1. Start Docker
|
||||||
|
2. Run the command "docker compose up" at the root of the project.
|
||||||
|
* If you make any changes to the code, make sure you append the "--build" option at the end of the command to force rebuild the server image.
|
||||||
|
|
||||||
---
|
---
|
||||||
### Creating an account and logging into the game
|
### Creating an account and logging into the game
|
||||||
|
|
||||||
|
If you ran the admin sql script, there already exists an account in your database with an admin character on it. You don't need to change its GM level. Log in using these credentials:
|
||||||
|
* Username: "admin"
|
||||||
|
* Password: "admin"
|
||||||
|
* Pin: "0000"
|
||||||
|
* Pic: "000000"
|
||||||
|
|
||||||
By default, the server source is set to allow AUTO-REGISTERING. This means that, by simply typing in a "Login ID" and a "Password", you're able to create a new account.
|
By default, the server source is set to allow AUTO-REGISTERING. This means that, by simply typing in a "Login ID" and a "Password", you're able to create a new account.
|
||||||
|
|
||||||
After creating a character, experiment typing in all-chat "@commands".
|
After creating a character, experiment typing in all-chat "@commands".
|
||||||
@@ -260,10 +269,6 @@ Besides myself for maintaining this repository, credits are to be given to Wizet
|
|||||||
|
|
||||||
Regarding distributability and usage of the code presented here: like it was before, this MapleStory server is open-source. By that, it is meant that anyone is **free to install, use, modify and redistribute the contents**, as long as there is **no kind of commercial trading involved** and the **credits to the original creators are maintained** within the codes.
|
Regarding distributability and usage of the code presented here: like it was before, this MapleStory server is open-source. By that, it is meant that anyone is **free to install, use, modify and redistribute the contents**, as long as there is **no kind of commercial trading involved** and the **credits to the original creators are maintained** within the codes.
|
||||||
|
|
||||||
This server source should be built and run on Java 8 in order to run properly -- used to be ran in Java 7, thanks kolakcc (Familiar) for the Java 8 support!
|
|
||||||
|
|
||||||
Consider using an IDE for setting up the server source into a project. Once mounted the project, build it on your machine and run the server using the "launch.bat" application.
|
|
||||||
|
|
||||||
In this project, many gameplay-wise issues generated from either the original WZ files and the server source have been partially or completely solved. Considering the use of the provided edited WZ's and server-side wz.xml files should be of the greatest importance when dealing with this instance of server source, in order to perceive it at it's full potential. My opinion, though!
|
In this project, many gameplay-wise issues generated from either the original WZ files and the server source have been partially or completely solved. Considering the use of the provided edited WZ's and server-side wz.xml files should be of the greatest importance when dealing with this instance of server source, in order to perceive it at it's full potential. My opinion, though!
|
||||||
|
|
||||||
- In other case, as fallback from the provided ones, consider using **whole clean set**. Selecting part of the provided ones to play pretty much *may eventually* lead to unexpected issues.
|
- In other case, as fallback from the provided ones, consider using **whole clean set**. Selecting part of the provided ones to play pretty much *may eventually* lead to unexpected issues.
|
||||||
@@ -289,17 +294,6 @@ By taking the v83 MapleStory as the angular stone, incrementally look forward to
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### Preparing the ambient
|
|
||||||
|
|
||||||
For Hamachi:
|
|
||||||
|
|
||||||
* Try opening it. It's that simple.
|
|
||||||
|
|
||||||
Hamachi is optional, though. You don't have to install Hamachi if you want to make the server just for use on your own machine.
|
|
||||||
However, if you want to let other players access your server, consider alternatively using port-forwarding methods.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
#### The MobBookUpdate example
|
#### The MobBookUpdate example
|
||||||
|
|
||||||
As an example of client WZ editing, consider the MapleMobBookUpdate tool project I developed, it updates all reported drop data on the Monster Book with what is currently being hold on the database:
|
As an example of client WZ editing, consider the MapleMobBookUpdate tool project I developed, it updates all reported drop data on the Monster Book with what is currently being hold on the database:
|
||||||
@@ -350,12 +344,8 @@ Our Discord channel is still available on: https://discord.gg/Q7wKxHX
|
|||||||
|
|
||||||
<hr id="donate" />
|
<hr id="donate" />
|
||||||
|
|
||||||
[//]: <> (If you REALLY liked what you have seen on this project, please feel free to donate a little something as a helping hand for my contributions towards Maple development. Also remember to **support Nexon**!)
|
|
||||||
|
|
||||||
### Disclaimer
|
### Disclaimer
|
||||||
|
|
||||||
[//]: <> (* HeavenMS development is decisively __ONLY accepting donations__ from the Paypal link aforementioned, in the __ronancpl/HeavenMS__ repository readme \(no patreons or other revenue resources\).)
|
|
||||||
|
|
||||||
* HeavenMS staff has __no current intention__ to publicly open a server with this source, if that ever comes to happen this note will be lifted. __Don't be scammed!__
|
* HeavenMS staff has __no current intention__ to publicly open a server with this source, if that ever comes to happen this note will be lifted. __Don't be scammed!__
|
||||||
|
|
||||||
* This server source is __NOT intended to be stable__ as is. Proper deadlock review and other maintenance contributions are needed in order to make it steps ahead on viability.
|
* This server source is __NOT intended to be stable__ as is. Proper deadlock review and other maintenance contributions are needed in order to make it steps ahead on viability.
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ server:
|
|||||||
DB_HOST: "localhost"
|
DB_HOST: "localhost"
|
||||||
DB_USER: "cosmic_server"
|
DB_USER: "cosmic_server"
|
||||||
DB_PASS: "snailshell"
|
DB_PASS: "snailshell"
|
||||||
INIT_CONNECTION_POOL_TIMEOUT: 60 # Seconds
|
INIT_CONNECTION_POOL_TIMEOUT: 90 # Seconds
|
||||||
|
|
||||||
#Login Configuration
|
#Login Configuration
|
||||||
WORLDS: 1 #Initial number of worlds on the server.
|
WORLDS: 1 #Initial number of worlds on the server.
|
||||||
|
|||||||
3
database/docker-db-data/.gitignore
vendored
Normal file
3
database/docker-db-data/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
*
|
||||||
|
*/
|
||||||
|
!.gitignore
|
||||||
@@ -20299,8 +20299,6 @@ USE `cosmic`;
|
|||||||
(5130106, 2022001, 1, 1, 0, 20000),
|
(5130106, 2022001, 1, 1, 0, 20000),
|
||||||
(6130102, 2022001, 1, 1, 0, 20000),
|
(6130102, 2022001, 1, 1, 0, 20000),
|
||||||
(6130103, 2022001, 1, 1, 0, 20000),
|
(6130103, 2022001, 1, 1, 0, 20000),
|
||||||
(6130200, 2022001, 1, 1, 0, 20000),
|
|
||||||
(6130201, 2022001, 1, 1, 0, 20000),
|
|
||||||
(2220000, 1322001, 1, 1, 0, 8000),
|
(2220000, 1322001, 1, 1, 0, 8000),
|
||||||
(9400551, 4031447, 1, 1, 0, 999999);
|
(9400551, 4031447, 1, 1, 0, 999999);
|
||||||
|
|
||||||
87
database/sql/4-db-admin.sql
Normal file
87
database/sql/4-db-admin.sql
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.0.22, for Win64 (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: 127.0.0.1 Database: cosmic
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.0.19
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
USE `cosmic`;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `accounts`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `accounts` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `accounts` DISABLE KEYS */;
|
||||||
|
INSERT INTO `accounts` VALUES (1,'admin','$2y$12$aFD9BDeUocDMY1X4tDYDyeJw/HhkQwCQWs3KAY7gCaRG0cpqJcaL.','0000','000000',0,'2021-05-24 00:00:01','2021-05-24 00:00:02','2005-05-11',0,NULL,NULL,1000000,1000000,1000000,3,0,'2005-05-11 03:00:00',0,1,NULL,0,NULL,0,NULL,NULL,0,0,'1234-5678',2);
|
||||||
|
/*!40000 ALTER TABLE `accounts` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `characters`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `characters` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `characters` DISABLE KEYS */;
|
||||||
|
INSERT INTO `characters` VALUES (1,1,0,'Admin',1,0,0,12,5,4,4,50,5,50,5,0,0,0,0,0,0,0,30030,20000,0,'0,0,0,0,0,0,0,0,0,0',10000,2,6,-1,25,'2021-05-24 00:00:03',1,0,1,0,0,5,0,4,1,0,0,0,0,0,0,0,0,0,0,24,24,24,24,-1,0,5,0,0,0,0,0,0,0,0,0,0,0,'','2021-05-24 00:00:04','2015-01-01 05:00:00',1,0);
|
||||||
|
/*!40000 ALTER TABLE `characters` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `inventoryequipment`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `inventoryequipment` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `inventoryequipment` DISABLE KEYS */;
|
||||||
|
INSERT INTO `inventoryequipment` VALUES (17,22,7,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,-1),(18,23,7,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1),(19,24,5,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,-1),(20,25,7,0,0,0,0,0,0,0,17,0,0,0,0,0,0,0,0,0,0,1,0,-1);
|
||||||
|
/*!40000 ALTER TABLE `inventoryequipment` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `inventoryitems`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `inventoryitems` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `inventoryitems` DISABLE KEYS */;
|
||||||
|
INSERT INTO `inventoryitems` VALUES (21,1,1,NULL,4161001,4,1,1,'',-1,0,-1,''),(22,1,1,NULL,1040002,-1,-5,1,'',-1,0,-1,''),(23,1,1,NULL,1060002,-1,-6,1,'',-1,0,-1,''),(24,1,1,NULL,1072001,-1,-7,1,'',-1,0,-1,''),(25,1,1,NULL,1302000,-1,-11,1,'',-1,0,-1,'');
|
||||||
|
/*!40000 ALTER TABLE `inventoryitems` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `keymap`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `keymap` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `keymap` DISABLE KEYS */;
|
||||||
|
INSERT INTO `keymap` VALUES (161,1,18,4,0),(162,1,65,6,106),(163,1,2,4,10),(164,1,23,4,1),(165,1,3,4,12),(166,1,4,4,13),(167,1,5,4,18),(168,1,6,4,24),(169,1,16,4,8),(170,1,17,4,5),(171,1,19,4,4),(172,1,25,4,19),(173,1,26,4,14),(174,1,27,4,15),(175,1,31,4,2),(176,1,34,4,17),(177,1,35,4,11),(178,1,37,4,3),(179,1,38,4,20),(180,1,40,4,16),(181,1,43,4,9),(182,1,44,5,50),(183,1,45,5,51),(184,1,46,4,6),(185,1,50,4,7),(186,1,56,5,53),(187,1,59,6,100),(188,1,60,6,101),(189,1,61,6,102),(190,1,62,6,103),(191,1,63,6,104),(192,1,64,6,105),(193,1,57,5,54),(194,1,48,4,22),(195,1,29,5,52),(196,1,7,4,21),(197,1,24,4,25),(198,1,33,4,26),(199,1,41,4,23),(200,1,39,4,27);
|
||||||
|
/*!40000 ALTER TABLE `keymap` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `storages`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `storages` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `storages` DISABLE KEYS */;
|
||||||
|
INSERT INTO `storages` VALUES (1,1,0,4,0);
|
||||||
|
/*!40000 ALTER TABLE `storages` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
7
database/sql/readme.txt
Normal file
7
database/sql/readme.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
---- Cosmic MySQL Database ----
|
||||||
|
|
||||||
|
These SQL files must be executed IN ORDER to set up the database:
|
||||||
|
- 1-db_database.sql (Tables and some data)
|
||||||
|
- 2-db_drops.sql (Remaining data: monster drops, reactor drops)
|
||||||
|
- 3-db_shopupdate.sql (Custom shops - optional, requires provided WZs)
|
||||||
|
- 4-db_admin (Basic admin account - optional)
|
||||||
@@ -5,8 +5,18 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
ports:
|
ports:
|
||||||
|
# Login server
|
||||||
- "8484:8484"
|
- "8484:8484"
|
||||||
|
# Channels.
|
||||||
|
# Format: WWCC, where WW is 75 plus the world number and CC is 75 plus the channel number (both zero indexed).
|
||||||
|
# In this case, world 1 channels 1-3.
|
||||||
- "7575-7577:7575-7577"
|
- "7575-7577:7575-7577"
|
||||||
|
volumes:
|
||||||
|
# Config changes can be reloaded without rebuilding the image.
|
||||||
|
# Still requires a redeployment as they're sourced on startup.
|
||||||
|
- ./config.yaml:/opt/server/config.yaml
|
||||||
|
- ./scripts:/opt/server/scripts
|
||||||
|
- ./wz:/opt/server/wz
|
||||||
environment:
|
environment:
|
||||||
DB_HOST: "db"
|
DB_HOST: "db"
|
||||||
|
|
||||||
@@ -18,5 +28,5 @@ services:
|
|||||||
MYSQL_USER: "cosmic_server"
|
MYSQL_USER: "cosmic_server"
|
||||||
MYSQL_PASSWORD: "snailshell"
|
MYSQL_PASSWORD: "snailshell"
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker-db-data:/var/lib/mysql
|
- ./database/docker-db-data:/var/lib/mysql
|
||||||
- ./sql:/docker-entrypoint-initdb.d
|
- ./database/sql:/docker-entrypoint-initdb.d
|
||||||
|
|||||||
31
pom.xml
31
pom.xml
@@ -12,23 +12,25 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<java.version>16</java.version>
|
||||||
<maven.compiler.target>1.8</maven.compiler.target>
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||||
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||||
<mainClass>net.server.Server</mainClass>
|
<mainClass>net.server.Server</mainClass>
|
||||||
|
|
||||||
<log4j.version>2.14.1</log4j.version>
|
<log4j.version>2.14.1</log4j.version>
|
||||||
|
<graalvm.version>21.1.0</graalvm.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP-java7</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
<version>2.4.13</version>
|
<version>4.0.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.mina</groupId>
|
<groupId>org.apache.mina</groupId>
|
||||||
<artifactId>mina-core</artifactId>
|
<artifactId>mina-core</artifactId>
|
||||||
<version>2.0.19</version>
|
<version>2.1.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
@@ -38,7 +40,12 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.esotericsoftware.yamlbeans</groupId>
|
<groupId>com.esotericsoftware.yamlbeans</groupId>
|
||||||
<artifactId>yamlbeans</artifactId>
|
<artifactId>yamlbeans</artifactId>
|
||||||
<version>1.13</version>
|
<version>1.15</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.jcip</groupId>
|
||||||
|
<artifactId>jcip-annotations</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Logging -->
|
<!-- Logging -->
|
||||||
@@ -62,6 +69,18 @@
|
|||||||
<artifactId>log4j-slf4j-impl</artifactId>
|
<artifactId>log4j-slf4j-impl</artifactId>
|
||||||
<version>${log4j.version}</version>
|
<version>${log4j.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Scripting -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.graalvm.js</groupId>
|
||||||
|
<artifactId>js</artifactId>
|
||||||
|
<version>${graalvm.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.graalvm.js</groupId>
|
||||||
|
<artifactId>js-scriptengine</artifactId>
|
||||||
|
<version>${graalvm.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ var maxMapId;
|
|||||||
|
|
||||||
var eventTime; // Max time allotted for the event, in minutes.
|
var eventTime; // Max time allotted for the event, in minutes.
|
||||||
|
|
||||||
var lobbyRange = [0, 0]; // Range of concurrent lobbies (min range is 0, max range is 7).
|
const maxLobbies = 7; // Max amount of concurrent active lobbies.
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
// After loading, ChannelServer
|
// After loading, ChannelServer
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
|
|||||||
@@ -31,8 +31,6 @@ var timer2;
|
|||||||
var timer3;
|
var timer3;
|
||||||
var timer4;
|
var timer4;
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
/*
|
/*
|
||||||
if(em.getChannelServer().getId() == 1) { // Only run on channel 1.
|
if(em.getChannelServer().getId() == 1) { // Only run on channel 1.
|
||||||
@@ -58,15 +56,19 @@ function cancelSchedule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var world = Packages.net.server.Server.getInstance().getWorld(em.getChannelServer().getWorld());
|
const Server = Java.type('net.server.Server');
|
||||||
world.setExpRate(8);
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
world.broadcastPacket(Packages.tools.MaplePacketCreator.serverNotice(6, "The Bunny Onslaught Survival Scanner (BOSS) has detected an Easter Bunny onslaught soon! The GM team has activated the Emergency XP Pool (EXP) that doubles experience gained for the next two hours!"));
|
var world = Server.getInstance().getWorld(em.getChannelServer().getWorld());
|
||||||
|
world.setExpRate(8);
|
||||||
|
world.broadcastPacket(MaplePacketCreator.serverNotice(6, "The Bunny Onslaught Survival Scanner (BOSS) has detected an Easter Bunny onslaught soon! The GM team has activated the Emergency XP Pool (EXP) that doubles experience gained for the next two hours!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop() {
|
function stop() {
|
||||||
var world = Packages.net.server.Server.getInstance().getWorld(em.getChannelServer().getWorld());
|
const Server = Java.type('net.server.Server');
|
||||||
world.setExpRate(4);
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
world.broadcastPacket(Packages.tools.MaplePacketCreator.serverNotice(6, "Unfortunately the Emergency XP Pool (EXP) has run out of juice for now and needs to recharge causing the EXP rate to go back to normal."));
|
var world = Server.getInstance().getWorld(em.getChannelServer().getWorld());
|
||||||
|
world.setExpRate(4);
|
||||||
|
world.broadcastPacket(MaplePacketCreator.serverNotice(6, "Unfortunately the Emergency XP Pool (EXP) has run out of juice for now and needs to recharge causing the EXP rate to go back to normal."));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------- FILLER FUNCTIONS ----------
|
// ---------- FILLER FUNCTIONS ----------
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* 3rd Job Event - Bowman
|
* 3rd Job Event - Bowman
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 108010100;
|
var entryMap = 108010100;
|
||||||
var exitMap = 105040305;
|
var exitMap = 105040305;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 108010101;
|
|||||||
|
|
||||||
var eventTime = 20; //20 minutes
|
var eventTime = 20; //20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -54,7 +53,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* 3rd Job Event - Magician
|
* 3rd Job Event - Magician
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 108010200;
|
var entryMap = 108010200;
|
||||||
var exitMap = 100040106;
|
var exitMap = 100040106;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 108010201;
|
|||||||
|
|
||||||
var eventTime = 20; //20 minutes
|
var eventTime = 20; //20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -54,7 +53,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* 3rd Job Event - Kenta's Mount Quest
|
* 3rd Job Event - Kenta's Mount Quest
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 923010000;
|
var entryMap = 923010000;
|
||||||
var exitMap = 923010100;
|
var exitMap = 923010100;
|
||||||
@@ -33,10 +32,10 @@ var eventMaps = [923010000];
|
|||||||
|
|
||||||
var eventTime = 5; //5 minutes
|
var eventTime = 5; //5 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -84,7 +83,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* 3rd Job Event - Pirate
|
* 3rd Job Event - Pirate
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 108010500;
|
var entryMap = 108010500;
|
||||||
var exitMap = 105070200;
|
var exitMap = 105070200;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 108010501;
|
|||||||
|
|
||||||
var eventTime = 20; //20 minutes
|
var eventTime = 20; //20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -46,7 +45,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* 3rd Job Event - Thief
|
* 3rd Job Event - Thief
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 108010400;
|
var entryMap = 108010400;
|
||||||
var exitMap = 107000402;
|
var exitMap = 107000402;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 108010401;
|
|||||||
|
|
||||||
var eventTime = 20; //20 minutes
|
var eventTime = 20; //20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -54,7 +53,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* 3rd Job Event - Warrior
|
* 3rd Job Event - Warrior
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 108010300;
|
var entryMap = 108010300;
|
||||||
var exitMap = 105070001;
|
var exitMap = 105070001;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 108010301;
|
|||||||
|
|
||||||
var eventTime = 20; //20 minutes
|
var eventTime = 20; //20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -54,7 +53,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ var maxMapId = 912020000;
|
|||||||
|
|
||||||
var eventTime = 2; //2 minutes
|
var eventTime = 2; //2 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ var maxMapId = 912010200;
|
|||||||
|
|
||||||
var eventTime = 4; //4 minutes
|
var eventTime = 4; //4 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ var maxMapId = 912010200;
|
|||||||
|
|
||||||
var eventTime = 4; //4 minutes
|
var eventTime = 4; //4 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var KC_bfd;
|
var KC_bfd;
|
||||||
var Plane_to_CBD;
|
var Plane_to_CBD;
|
||||||
var CBD_docked;
|
var CBD_docked;
|
||||||
|
|||||||
@@ -37,14 +37,14 @@ var maxMapId = 670010800;
|
|||||||
|
|
||||||
var eventTime = 75; // 75 minutes
|
var eventTime = 75; // 75 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -107,7 +107,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers && mask == 3)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers && mask == 3)) eligible = [];
|
||||||
if(onlyMarriedPlayers && hasNotMarried) eligible = [];
|
if(onlyMarriedPlayers && hasNotMarried) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -147,8 +147,11 @@ function setup(level, lobbyid) {
|
|||||||
eim.getInstanceMap(670010800).shuffleReactors();
|
eim.getInstanceMap(670010800).shuffleReactors();
|
||||||
|
|
||||||
var mapObj = eim.getInstanceMap(670010700);
|
var mapObj = eim.getInstanceMap(670010700);
|
||||||
var mobObj = Packages.server.life.MapleLifeFactory.getMonster(9400536);
|
|
||||||
mapObj.spawnMonsterOnGroundBelow(mobObj, new Packages.java.awt.Point(942, 478));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
var mobObj = MapleLifeFactory.getMonster(9400536);
|
||||||
|
mapObj.spawnMonsterOnGroundBelow(mobObj, new Point(942, 478));
|
||||||
|
|
||||||
respawnStages(eim);
|
respawnStages(eim);
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* Event - Scadur's Mount Quest
|
* Event - Scadur's Mount Quest
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 921110000;
|
var entryMap = 921110000;
|
||||||
var exitMap = 211050000;
|
var exitMap = 211050000;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 921110000;
|
|||||||
|
|
||||||
var eventTime = 3; //3 minutes
|
var eventTime = 3; //3 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -60,7 +59,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 2);
|
player.changeMap(entryMap, 2);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* Event - Wolves' Mount Quest
|
* Event - Wolves' Mount Quest
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 914030000;
|
var entryMap = 914030000;
|
||||||
var exitMap = 140010210;
|
var exitMap = 140010210;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 914030000;
|
|||||||
|
|
||||||
var eventTime = 3; //3 minutes
|
var eventTime = 3; //3 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -61,7 +60,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 1);
|
player.changeMap(entryMap, 1);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,16 +40,19 @@ function cancelSchedule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
var mapObj = em.getChannelServer().getMapFactory().getMap(800020120); // original mapid was 251010101
|
var mapObj = em.getChannelServer().getMapFactory().getMap(800020120); // original mapid was 251010101
|
||||||
var mobObj = Packages.server.life.MapleLifeFactory.getMonster(6090002);
|
var mobObj = MapleLifeFactory.getMonster(6090002);
|
||||||
|
|
||||||
if(mapObj.getMonsterById(6090002) != null) {
|
if(mapObj.getMonsterById(6090002) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mapObj.spawnMonsterOnGroundBelow(mobObj, new Packages.java.awt.Point(560, 50));
|
const Point = Java.type('java.awt.Point');
|
||||||
mapObj.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "From amongst the ruins shrouded by the mists, Bamboo Warrior appears."));
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
mapObj.spawnMonsterOnGroundBelow(mobObj, new Point(560, 50));
|
||||||
|
mapObj.broadcastMessage(MaplePacketCreator.serverNotice(6, "From amongst the ruins shrouded by the mists, Bamboo Warrior appears."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,15 +41,19 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var herbGarden = em.getChannelServer().getMapFactory().getMap(251010102);
|
var herbGarden = em.getChannelServer().getMapFactory().getMap(251010102);
|
||||||
var gcent = Packages.server.life.MapleLifeFactory.getMonster(5220004);
|
|
||||||
|
|
||||||
if(herbGarden.getMonsterById(5220004) != null) {
|
if(herbGarden.getMonsterById(5220004) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
herbGarden.spawnMonsterOnGroundBelow(gcent, new Packages.java.awt.Point(560, 50));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
herbGarden.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "From the mists surrounding the herb garden, the gargantuous Giant Centipede appears."));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var gcent = MapleLifeFactory.getMonster(5220004);
|
||||||
|
herbGarden.spawnMonsterOnGroundBelow(gcent, new Point(560, 50));
|
||||||
|
herbGarden.broadcastMessage(MaplePacketCreator.serverNotice(6, "From the mists surrounding the herb garden, the gargantuous Giant Centipede appears."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,15 +41,19 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var royalCatthusDesert = em.getChannelServer().getMapFactory().getMap(260010201);
|
var royalCatthusDesert = em.getChannelServer().getMapFactory().getMap(260010201);
|
||||||
var deo = Packages.server.life.MapleLifeFactory.getMonster(3220001);
|
|
||||||
|
|
||||||
if(royalCatthusDesert.getMonsterById(3220001) != null) {
|
if(royalCatthusDesert.getMonsterById(3220001) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
royalCatthusDesert.spawnMonsterOnGroundBelow(deo, new Packages.java.awt.Point(645, 275));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
royalCatthusDesert.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Deo slowly appeared out of the sand dust."));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var deo = MapleLifeFactory.getMonster(3220001);
|
||||||
|
royalCatthusDesert.spawnMonsterOnGroundBelow(deo, new Point(645, 275));
|
||||||
|
royalCatthusDesert.broadcastMessage(MaplePacketCreator.serverNotice(6, "Deo slowly appeared out of the sand dust."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,17 +41,21 @@ function start() {
|
|||||||
var bossMobid = 9400610;
|
var bossMobid = 9400610;
|
||||||
var bossMapid = 677000003;
|
var bossMapid = 677000003;
|
||||||
var bossMsg = "Amdusias has appeared!";
|
var bossMsg = "Amdusias has appeared!";
|
||||||
var bossPos = new Packages.java.awt.Point(467, 0);
|
|
||||||
|
|
||||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||||
if (map.getMonsterById(bossMobid) != null) {
|
if (map.getMonsterById(bossMobid) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boss = Packages.server.life.MapleLifeFactory.getMonster(bossMobid);
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
|
||||||
|
var boss = MapleLifeFactory.getMonster(bossMobid);
|
||||||
|
var bossPos = new Point(467, 0);
|
||||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||||
map.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, bossMsg));
|
map.broadcastMessage(MaplePacketCreator.serverNotice(6, bossMsg));
|
||||||
|
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,17 +41,21 @@ function start() {
|
|||||||
var bossMobid = 9400609;
|
var bossMobid = 9400609;
|
||||||
var bossMapid = 677000005;
|
var bossMapid = 677000005;
|
||||||
var bossMsg = "Andras has appeared!";
|
var bossMsg = "Andras has appeared!";
|
||||||
var bossPos = new Packages.java.awt.Point(201, 80);
|
|
||||||
|
|
||||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||||
if (map.getMonsterById(bossMobid) != null) {
|
if (map.getMonsterById(bossMobid) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boss = Packages.server.life.MapleLifeFactory.getMonster(bossMobid);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var boss = MapleLifeFactory.getMonster(bossMobid);
|
||||||
|
var bossPos = new Point(201, 80);
|
||||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||||
map.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, bossMsg));
|
map.broadcastMessage(MaplePacketCreator.serverNotice(6, bossMsg));
|
||||||
|
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,17 +41,21 @@ function start() {
|
|||||||
var bossMobid = 9400613;
|
var bossMobid = 9400613;
|
||||||
var bossMapid = 677000009;
|
var bossMapid = 677000009;
|
||||||
var bossMsg = "Valefor has appeared!";
|
var bossMsg = "Valefor has appeared!";
|
||||||
var bossPos = new Packages.java.awt.Point(251, -841);
|
|
||||||
|
|
||||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||||
if (map.getMonsterById(bossMobid) != null) {
|
if (map.getMonsterById(bossMobid) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boss = Packages.server.life.MapleLifeFactory.getMonster(bossMobid);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var boss = MapleLifeFactory.getMonster(bossMobid);
|
||||||
|
var bossPos = new Point(251, -841);
|
||||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||||
map.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, bossMsg));
|
map.broadcastMessage(MaplePacketCreator.serverNotice(6, bossMsg));
|
||||||
|
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,17 +41,21 @@ function start() {
|
|||||||
var bossMobid = 9400633;
|
var bossMobid = 9400633;
|
||||||
var bossMapid = 677000012;
|
var bossMapid = 677000012;
|
||||||
var bossMsg = "Astaroth has appeared!";
|
var bossMsg = "Astaroth has appeared!";
|
||||||
var bossPos = new Packages.java.awt.Point(842, 0);
|
|
||||||
|
|
||||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||||
if (map.getMonsterById(bossMobid) != null) {
|
if (map.getMonsterById(bossMobid) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boss = Packages.server.life.MapleLifeFactory.getMonster(bossMobid);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var boss = MapleLifeFactory.getMonster(bossMobid);
|
||||||
|
var bossPos = new Point(842, 0);
|
||||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||||
map.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, bossMsg));
|
map.broadcastMessage(MaplePacketCreator.serverNotice(6, bossMsg));
|
||||||
|
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,17 +41,21 @@ function start() {
|
|||||||
var bossMobid = 9400612;
|
var bossMobid = 9400612;
|
||||||
var bossMapid = 677000001;
|
var bossMapid = 677000001;
|
||||||
var bossMsg = "Marbas has appeared!";
|
var bossMsg = "Marbas has appeared!";
|
||||||
var bossPos = new Packages.java.awt.Point(461, 61);
|
|
||||||
|
|
||||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||||
if (map.getMonsterById(bossMobid) != null) {
|
if (map.getMonsterById(bossMobid) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boss = Packages.server.life.MapleLifeFactory.getMonster(bossMobid);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var boss = MapleLifeFactory.getMonster(bossMobid);
|
||||||
|
var bossPos = new Point(461, 61);
|
||||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||||
map.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, bossMsg));
|
map.broadcastMessage(MaplePacketCreator.serverNotice(6, bossMsg));
|
||||||
|
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,17 +41,21 @@ function start() {
|
|||||||
var bossMobid = 9400611;
|
var bossMobid = 9400611;
|
||||||
var bossMapid = 677000007;
|
var bossMapid = 677000007;
|
||||||
var bossMsg = "Crocell has appeared!";
|
var bossMsg = "Crocell has appeared!";
|
||||||
var bossPos = new Packages.java.awt.Point(171, 50);
|
|
||||||
|
|
||||||
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
var map = em.getChannelServer().getMapFactory().getMap(bossMapid);
|
||||||
if (map.getMonsterById(bossMobid) != null) {
|
if (map.getMonsterById(bossMobid) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var boss = Packages.server.life.MapleLifeFactory.getMonster(bossMobid);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var boss = MapleLifeFactory.getMonster(bossMobid);
|
||||||
|
var bossPos = new Point(171, 50);
|
||||||
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
map.spawnMonsterOnGroundBelow(boss, bossPos);
|
||||||
map.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, bossMsg));
|
map.broadcastMessage(MaplePacketCreator.serverNotice(6, bossMsg));
|
||||||
|
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,6 @@
|
|||||||
ThreeStep - based on xQuasar's King Clang spawner
|
ThreeStep - based on xQuasar's King Clang spawner
|
||||||
|
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.server.life);
|
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
@@ -48,7 +46,12 @@ function start() {
|
|||||||
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dangeroudCroko1.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(6220000), new Packages.java.awt.Point(90, 119));
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const spawnpoint = new Point(90, 119);
|
||||||
|
dangeroudCroko1.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(6220000), spawnpoint);
|
||||||
dangeroudCroko1.broadcastMessage(MaplePacketCreator.serverNotice(6, "The huge crocodile Dyle has come out from the swamp."));
|
dangeroudCroko1.broadcastMessage(MaplePacketCreator.serverNotice(6, "The huge crocodile Dyle has come out from the swamp."));
|
||||||
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
setupTask = em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
var setupTask;
|
var setupTask;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -45,16 +43,20 @@ function cancelSchedule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var eliza = MapleLifeFactory.getMonster(8220000);
|
||||||
var stairwayToTheSky2 = em.getChannelServer().getMapFactory().getMap(200010300);
|
var stairwayToTheSky2 = em.getChannelServer().getMapFactory().getMap(200010300);
|
||||||
var eliza = Packages.server.life.MapleLifeFactory.getMonster(8220000);
|
|
||||||
|
|
||||||
if(stairwayToTheSky2.getMonsterById(8220000) != null) {
|
if(stairwayToTheSky2.getMonsterById(8220000) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
stairwayToTheSky2.spawnMonsterOnGroundBelow(eliza, new Packages.java.awt.Point(208, 83));
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
stairwayToTheSky2.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Eliza has appeared with a black whirlwind."));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const spawnpoint = new Point(208, 83);
|
||||||
|
stairwayToTheSky2.spawnMonsterOnGroundBelow(eliza, spawnpoint);
|
||||||
|
stairwayToTheSky2.broadcastMessage(MaplePacketCreator.serverNotice(6, "Eliza has appeared with a black whirlwind."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,15 +42,19 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var theForestOfEvil1 = em.getChannelServer().getMapFactory().getMap(100040105);
|
var theForestOfEvil1 = em.getChannelServer().getMapFactory().getMap(100040105);
|
||||||
var faust1 = Packages.server.life.MapleLifeFactory.getMonster(5220002);
|
|
||||||
|
|
||||||
if(theForestOfEvil1.getMonsterById(5220002) != null) {
|
if(theForestOfEvil1.getMonsterById(5220002) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
theForestOfEvil1.spawnMonsterOnGroundBelow(faust1, new Packages.java.awt.Point(456, 278));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
theForestOfEvil1.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Faust appeared amidst the blue fog."));
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
|
||||||
|
var faust1 = MapleLifeFactory.getMonster(5220002);
|
||||||
|
const spawnpoint = new Point(456, 278);
|
||||||
|
theForestOfEvil1.spawnMonsterOnGroundBelow(faust1, spawnpoint);
|
||||||
|
theForestOfEvil1.broadcastMessage(MaplePacketCreator.serverNotice(6, "Faust appeared amidst the blue fog."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -43,16 +41,21 @@ function cancelSchedule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
var theForestOfEvil2 = em.getChannelServer().getMapFactory().getMap(100040106);
|
var theForestOfEvil2 = em.getChannelServer().getMapFactory().getMap(100040106);
|
||||||
var faust2 = Packages.server.life.MapleLifeFactory.getMonster(5220002);
|
var faust2 = MapleLifeFactory.getMonster(5220002);
|
||||||
|
|
||||||
if(theForestOfEvil2.getMonsterById(5220002) != null) {
|
if(theForestOfEvil2.getMonsterById(5220002) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
theForestOfEvil2.spawnMonsterOnGroundBelow(faust2, new Packages.java.awt.Point(474, 278));
|
const Point = Java.type('java.awt.Point');
|
||||||
theForestOfEvil2.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Faust appeared amidst the blue fog."));
|
const spawnpoint = new Point(474, 278);
|
||||||
|
theForestOfEvil2.spawnMonsterOnGroundBelow(faust2, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
theForestOfEvil2.broadcastMessage(MaplePacketCreator.serverNotice(6, "Faust appeared amidst the blue fog."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -43,8 +41,9 @@ function cancelSchedule() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
var labSecretBasementPath = em.getChannelServer().getMapFactory().getMap(261030000);
|
var labSecretBasementPath = em.getChannelServer().getMapFactory().getMap(261030000);
|
||||||
var chimera = Packages.server.life.MapleLifeFactory.getMonster(8220002);
|
var chimera = MapleLifeFactory.getMonster(8220002);
|
||||||
|
|
||||||
if(labSecretBasementPath.getMonsterById(8220002) != null) {
|
if(labSecretBasementPath.getMonsterById(8220002) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
@@ -54,8 +53,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 180;
|
var posY = 180;
|
||||||
posX = (Math.floor(Math.random() * 900) - 900);
|
posX = (Math.floor(Math.random() * 900) - 900);
|
||||||
labSecretBasementPath.spawnMonsterOnGroundBelow(chimera, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
labSecretBasementPath.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Kimera has appeared out of the darkness of the underground with a glitter in her eyes."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
labSecretBasementPath.spawnMonsterOnGroundBelow(chimera, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
labSecretBasementPath.broadcastMessage(MaplePacketCreator.serverNotice(6, "Kimera has appeared out of the darkness of the underground with a glitter in her eyes."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
var hotSand;
|
var hotSand;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -50,12 +48,18 @@ function start() {
|
|||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var kingClang = Packages.server.life.MapleLifeFactory.getMonster(5220001);
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var kingClang = MapleLifeFactory.getMonster(5220001);
|
||||||
var posX;
|
var posX;
|
||||||
var posY = 140;
|
var posY = 140;
|
||||||
posX = Math.floor((Math.random() * 2400) - 1600);
|
posX = Math.floor((Math.random() * 2400) - 1600);
|
||||||
hotSand.spawnMonsterOnGroundBelow(kingClang, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
hotSand.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "A strange turban shell has appeared on the beach."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
hotSand.spawnMonsterOnGroundBelow(kingClang, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
hotSand.broadcastMessage(MaplePacketCreator.serverNotice(6, "A strange turban shell has appeared on the beach."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,7 +42,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var goblinForest2 = em.getChannelServer().getMapFactory().getMap(250010504);
|
var goblinForest2 = em.getChannelServer().getMapFactory().getMap(250010504);
|
||||||
var kingSageCat = Packages.server.life.MapleLifeFactory.getMonster(7220002);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var kingSageCat = MapleLifeFactory.getMonster(7220002);
|
||||||
|
|
||||||
if(goblinForest2.getMonsterById(7220002) != null) {
|
if(goblinForest2.getMonsterById(7220002) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
@@ -53,8 +52,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 540;
|
var posY = 540;
|
||||||
posX = Math.floor((Math.random() * 1300) - 500);
|
posX = Math.floor((Math.random() * 1300) - 500);
|
||||||
goblinForest2.spawnMonsterOnGroundBelow(kingSageCat, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
goblinForest2.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "The ghostly air around here has become stronger. The unpleasant sound of a cat crying can be heard."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
goblinForest2.spawnMonsterOnGroundBelow(kingSageCat, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
goblinForest2.broadcastMessage(MaplePacketCreator.serverNotice(6, "The ghostly air around here has become stronger. The unpleasant sound of a cat crying can be heard."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,7 +42,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var leviathansCanyon = em.getChannelServer().getMapFactory().getMap(240040401);
|
var leviathansCanyon = em.getChannelServer().getMapFactory().getMap(240040401);
|
||||||
var leviathan = Packages.server.life.MapleLifeFactory.getMonster(8220003);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var leviathan = MapleLifeFactory.getMonster(8220003);
|
||||||
if(leviathansCanyon.getMonsterById(8220003) != null) {
|
if(leviathansCanyon.getMonsterById(8220003) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
@@ -53,8 +52,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 1125;
|
var posY = 1125;
|
||||||
posX = Math.floor((Math.random() * 600) - 300);
|
posX = Math.floor((Math.random() * 600) - 300);
|
||||||
leviathansCanyon.spawnMonsterOnGroundBelow(leviathan, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
leviathansCanyon.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Leviathan emerges from the canyon and the cold icy wind blows."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
leviathansCanyon.spawnMonsterOnGroundBelow(leviathan, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
leviathansCanyon.broadcastMessage(MaplePacketCreator.serverNotice(6, "Leviathan emerges from the canyon and the cold icy wind blows."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,8 +26,6 @@
|
|||||||
ThreeStep - based on xQuasar's King Clang spawner
|
ThreeStep - based on xQuasar's King Clang spawner
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -43,14 +41,19 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var thicketAroundTheBeach3 = em.getChannelServer().getMapFactory().getMap(104000400);
|
var thicketAroundTheBeach3 = em.getChannelServer().getMapFactory().getMap(104000400);
|
||||||
var mano = Packages.server.life.MapleLifeFactory.getMonster(2220000);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var mano = MapleLifeFactory.getMonster(2220000);
|
||||||
if(thicketAroundTheBeach3.getMonsterById(2220000) != null) {
|
if(thicketAroundTheBeach3.getMonsterById(2220000) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
thicketAroundTheBeach3.spawnMonsterOnGroundBelow(mano, new Packages.java.awt.Point(279, -496));
|
const Point = Java.type('java.awt.Point');
|
||||||
thicketAroundTheBeach3.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "A cool breeze was felt when Mano appeared."));
|
const spawnpoint = new Point(279, -496);
|
||||||
|
thicketAroundTheBeach3.spawnMonsterOnGroundBelow(mano, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
thicketAroundTheBeach3.broadcastMessage(MaplePacketCreator.serverNotice(6, "A cool breeze was felt when Mano appeared."));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,7 +42,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var moonRidge = em.getChannelServer().getMapFactory().getMap(222010310);
|
var moonRidge = em.getChannelServer().getMapFactory().getMap(222010310);
|
||||||
var nineTailedFox = Packages.server.life.MapleLifeFactory.getMonster(7220001);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var nineTailedFox = MapleLifeFactory.getMonster(7220001);
|
||||||
if(moonRidge.getMonsterById(7220001) != null) {
|
if(moonRidge.getMonsterById(7220001) != null) {
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
return;
|
return;
|
||||||
@@ -52,8 +51,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 33;
|
var posY = 33;
|
||||||
posX = Math.floor((Math.random() * 1300) - 800);
|
posX = Math.floor((Math.random() * 1300) - 800);
|
||||||
moonRidge.spawnMonsterOnGroundBelow(nineTailedFox, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
moonRidge.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "As the moon light dims, a long fox cry can be heard and the presence of the old fox can be felt"));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
moonRidge.spawnMonsterOnGroundBelow(nineTailedFox, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
moonRidge.broadcastMessage(MaplePacketCreator.serverNotice(6, "As the moon light dims, a long fox cry can be heard and the presence of the old fox can be felt"));
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
em.schedule("start", 3 * 60 *60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -45,7 +43,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var theSeaweedTower = em.getChannelServer().getMapFactory().getMap(230020100);
|
var theSeaweedTower = em.getChannelServer().getMapFactory().getMap(230020100);
|
||||||
var seruf = Packages.server.life.MapleLifeFactory.getMonster(4220001);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var seruf = MapleLifeFactory.getMonster(4220001);
|
||||||
|
|
||||||
if(theSeaweedTower.getMonsterById(4220001) != null) {
|
if(theSeaweedTower.getMonsterById(4220001) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
@@ -55,8 +54,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 520;
|
var posY = 520;
|
||||||
posX = Math.floor((Math.random() * 2300) - 1500);
|
posX = Math.floor((Math.random() * 2300) - 1500);
|
||||||
theSeaweedTower.spawnMonsterOnGroundBelow(seruf, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
theSeaweedTower.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "A strange shell has appeared from a grove of seaweed"));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
theSeaweedTower.spawnMonsterOnGroundBelow(seruf, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
theSeaweedTower.broadcastMessage(MaplePacketCreator.serverNotice(6, "A strange shell has appeared from a grove of seaweed"));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,19 +41,23 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var snackBarMap = em.getChannelServer().getMapFactory().getMap(105090310);
|
var snackBarMap = em.getChannelServer().getMapFactory().getMap(105090310);
|
||||||
var snackBar = Packages.server.life.MapleLifeFactory.getMonster(8220008);
|
|
||||||
|
if (snackBarMap.getMonsterById(8220008) != null || snackBarMap.getMonsterById(8220009) != null) {
|
||||||
if(snackBarMap.getMonsterById(8220008) != null || snackBarMap.getMonsterById(8220009) != null) {
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
var setPos = [[-626, -604], [735, -600]];
|
||||||
var setPos = [[-626, -604], [735, -600]];
|
var rndPos = setPos[Math.floor(Math.random() * setPos.length)];
|
||||||
var rndPos = setPos[Math.floor(Math.random() * setPos.length)];
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
snackBarMap.spawnMonsterOnGroundBelow(snackBar, new Packages.java.awt.Point(rndPos[0], rndPos[1]));
|
const Point = Java.type('java.awt.Point');
|
||||||
snackBarMap.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Slowly, a suspicious food stand opens up on a strangely remote place."));
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
em.schedule("start", 3 * 60 *60 * 1000);
|
|
||||||
|
var snackBar = MapleLifeFactory.getMonster(8220008);
|
||||||
|
snackBarMap.spawnMonsterOnGroundBelow(snackBar, new Point(rndPos[0], rndPos[1]));
|
||||||
|
snackBarMap.broadcastMessage(MaplePacketCreator.serverNotice(6, "Slowly, a suspicious food stand opens up on a strangely remote place."));
|
||||||
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------- FILLER FUNCTIONS ----------
|
// ---------- FILLER FUNCTIONS ----------
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,7 +42,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var eastRockyMountain5 = em.getChannelServer().getMapFactory().getMap(101030404);
|
var eastRockyMountain5 = em.getChannelServer().getMapFactory().getMap(101030404);
|
||||||
var stumpy = Packages.server.life.MapleLifeFactory.getMonster(3220000);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var stumpy = MapleLifeFactory.getMonster(3220000);
|
||||||
|
|
||||||
if(eastRockyMountain5.getMonsterById(3220000) != null) {
|
if(eastRockyMountain5.getMonsterById(3220000) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
@@ -54,8 +53,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 1280;
|
var posY = 1280;
|
||||||
posX = Math.floor((Math.random() * 800) + 400);
|
posX = Math.floor((Math.random() * 800) + 400);
|
||||||
eastRockyMountain5.spawnMonsterOnGroundBelow(stumpy, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
eastRockyMountain5.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Stumpy has appeared with a stumping sound that rings the Stone Mountain."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
eastRockyMountain5.spawnMonsterOnGroundBelow(stumpy, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
eastRockyMountain5.broadcastMessage(MaplePacketCreator.serverNotice(6, "Stumpy has appeared with a stumping sound that rings the Stone Mountain."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,7 +42,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var territoryOfWanderingBear = em.getChannelServer().getMapFactory().getMap(250010304);
|
var territoryOfWanderingBear = em.getChannelServer().getMapFactory().getMap(250010304);
|
||||||
var taeRoon = Packages.server.life.MapleLifeFactory.getMonster(7220000);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var taeRoon = MapleLifeFactory.getMonster(7220000);
|
||||||
|
|
||||||
if(territoryOfWanderingBear.getMonsterById(7220000) != null) {
|
if(territoryOfWanderingBear.getMonsterById(7220000) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
@@ -54,8 +53,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 390;
|
var posY = 390;
|
||||||
posX = Math.floor((Math.random() * 700) - 800);
|
posX = Math.floor((Math.random() * 700) - 800);
|
||||||
territoryOfWanderingBear.spawnMonsterOnGroundBelow(taeRoon, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
territoryOfWanderingBear.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Tae Roon has appeared with a soft whistling sound."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
territoryOfWanderingBear.spawnMonsterOnGroundBelow(taeRoon, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
territoryOfWanderingBear.broadcastMessage(MaplePacketCreator.serverNotice(6, "Tae Roon has appeared with a soft whistling sound."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,8 +26,6 @@
|
|||||||
ThreeStep - based on xQuasar's King Clang spawner
|
ThreeStep - based on xQuasar's King Clang spawner
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -43,7 +41,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var whirlpoolOfTime = em.getChannelServer().getMapFactory().getMap(220050100);
|
var whirlpoolOfTime = em.getChannelServer().getMapFactory().getMap(220050100);
|
||||||
var timer1 = Packages.server.life.MapleLifeFactory.getMonster(5220003);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var timer1 = MapleLifeFactory.getMonster(5220003);
|
||||||
|
|
||||||
if(whirlpoolOfTime.getMonsterById(5220003) != null) {
|
if(whirlpoolOfTime.getMonsterById(5220003) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
@@ -53,8 +52,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 1030;
|
var posY = 1030;
|
||||||
posX = Math.floor((Math.random() * 770) - 770);
|
posX = Math.floor((Math.random() * 770) - 770);
|
||||||
whirlpoolOfTime.spawnMonsterOnGroundBelow(timer1, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
whirlpoolOfTime.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
whirlpoolOfTime.spawnMonsterOnGroundBelow(timer1, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
whirlpoolOfTime.broadcastMessage(MaplePacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -44,7 +42,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var lostTime1 = em.getChannelServer().getMapFactory().getMap(220050000);
|
var lostTime1 = em.getChannelServer().getMapFactory().getMap(220050000);
|
||||||
var timer2 = Packages.server.life.MapleLifeFactory.getMonster(5220003);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var timer2 = MapleLifeFactory.getMonster(5220003);
|
||||||
|
|
||||||
if(lostTime1.getMonsterById(5220003) != null) {
|
if(lostTime1.getMonsterById(5220003) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
@@ -54,8 +53,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 1030;
|
var posY = 1030;
|
||||||
posX = Math.floor((Math.random() * 1400) - 1000);
|
posX = Math.floor((Math.random() * 1400) - 1000);
|
||||||
lostTime1.spawnMonsterOnGroundBelow(timer2, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
lostTime1.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
lostTime1.spawnMonsterOnGroundBelow(timer2, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
lostTime1.broadcastMessage(MaplePacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.client);
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
scheduleNew();
|
scheduleNew();
|
||||||
}
|
}
|
||||||
@@ -45,7 +43,8 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var lostTime2 = em.getChannelServer().getMapFactory().getMap(220050200);
|
var lostTime2 = em.getChannelServer().getMapFactory().getMap(220050200);
|
||||||
var timer3 = Packages.server.life.MapleLifeFactory.getMonster(5220003);
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
var timer3 = MapleLifeFactory.getMonster(5220003);
|
||||||
|
|
||||||
if(lostTime2.getMonsterById(5220003) != null) {
|
if(lostTime2.getMonsterById(5220003) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
@@ -55,8 +54,12 @@ function start() {
|
|||||||
var posX;
|
var posX;
|
||||||
var posY = 1030;
|
var posY = 1030;
|
||||||
posX = Math.floor((Math.random() * 1400) - 700);
|
posX = Math.floor((Math.random() * 1400) - 700);
|
||||||
lostTime2.spawnMonsterOnGroundBelow(timer3, new Packages.java.awt.Point(posX, posY));
|
const Point = Java.type('java.awt.Point');
|
||||||
lostTime2.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
const spawnpoint = new Point(posX, posY);
|
||||||
|
lostTime2.spawnMonsterOnGroundBelow(timer3, spawnpoint);
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
lostTime2.broadcastMessage(MaplePacketCreator.serverNotice(6, "Tick-Tock Tick-Tock! Timer makes it's presence known."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,15 +41,19 @@ function cancelSchedule() {
|
|||||||
|
|
||||||
function start() {
|
function start() {
|
||||||
var graysPrairie = em.getChannelServer().getMapFactory().getMap(221040301);
|
var graysPrairie = em.getChannelServer().getMapFactory().getMap(221040301);
|
||||||
var zeno = Packages.server.life.MapleLifeFactory.getMonster(6220001);
|
|
||||||
|
|
||||||
if(graysPrairie.getMonsterById(6220001) != null) {
|
if(graysPrairie.getMonsterById(6220001) != null) {
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
graysPrairie.spawnMonsterOnGroundBelow(zeno, new Packages.java.awt.Point(-4224, 776));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
graysPrairie.broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "Zeno has appeared with a heavy sound of machinery."));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
|
||||||
|
var zeno = MapleLifeFactory.getMonster(6220001);
|
||||||
|
graysPrairie.spawnMonsterOnGroundBelow(zeno, new Point(-4224, 776));
|
||||||
|
graysPrairie.broadcastMessage(MaplePacketCreator.serverNotice(6, "Zeno has appeared with a heavy sound of machinery."));
|
||||||
em.schedule("start", 3 * 60 * 60 * 1000);
|
em.schedule("start", 3 * 60 * 60 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Vs Balrog
|
* @event: Vs Balrog
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 6, maxPlayers = 30;
|
var minPlayers = 6, maxPlayers = 30;
|
||||||
var minLevel = 50, maxLevel = 255;
|
var minLevel = 50, maxLevel = 255;
|
||||||
@@ -43,14 +41,14 @@ var bossMobId = 8830003;
|
|||||||
var eventTime = 60; // 60 minutes
|
var eventTime = 60; // 60 minutes
|
||||||
var releaseClawTime = 1;
|
var releaseClawTime = 1;
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -105,7 +103,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -136,14 +134,17 @@ function releaseLeftClaw(eim) {
|
|||||||
|
|
||||||
function spawnBalrog(eim) {
|
function spawnBalrog(eim) {
|
||||||
var mapObj = eim.getInstanceMap(entryMap);
|
var mapObj = eim.getInstanceMap(entryMap);
|
||||||
|
|
||||||
mapObj.spawnFakeMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830000), new Packages.java.awt.Point(412, 258));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830002), new Packages.java.awt.Point(412, 258));
|
const Point = Java.type('java.awt.Point');
|
||||||
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830006), new Packages.java.awt.Point(412, 258));
|
mapObj.spawnFakeMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830000), new Point(412, 258));
|
||||||
|
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830002), new Point(412, 258));
|
||||||
|
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830006), new Point(412, 258));
|
||||||
}
|
}
|
||||||
|
|
||||||
function spawnSealedBalrog(eim) {
|
function spawnSealedBalrog(eim) {
|
||||||
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(bossMobId), new Packages.java.awt.Point(412, 258));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(bossMobId), new Point(412, 258));
|
||||||
}
|
}
|
||||||
|
|
||||||
function playerEntry(eim, player) {
|
function playerEntry(eim, player) {
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Vs Balrog
|
* @event: Vs Balrog
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 30;
|
var minPlayers = 3, maxPlayers = 30;
|
||||||
var minLevel = 50, maxLevel = 255;
|
var minLevel = 50, maxLevel = 255;
|
||||||
@@ -43,14 +41,14 @@ var bossMobId = 8830010;
|
|||||||
var eventTime = 60; // 60 minutes
|
var eventTime = 60; // 60 minutes
|
||||||
var releaseClawTime = 1;
|
var releaseClawTime = 1;
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -105,7 +103,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -136,14 +134,17 @@ function releaseLeftClaw(eim) {
|
|||||||
|
|
||||||
function spawnBalrog(eim) {
|
function spawnBalrog(eim) {
|
||||||
var mapObj = eim.getInstanceMap(entryMap);
|
var mapObj = eim.getInstanceMap(entryMap);
|
||||||
|
|
||||||
mapObj.spawnFakeMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830007), new Packages.java.awt.Point(412, 258));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830009), new Packages.java.awt.Point(412, 258));
|
const Point = Java.type('java.awt.Point');
|
||||||
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830013), new Packages.java.awt.Point(412, 258));
|
mapObj.spawnFakeMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830007), new Point(412, 258));
|
||||||
|
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830009), new Point(412, 258));
|
||||||
|
mapObj.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8830013), new Point(412, 258));
|
||||||
}
|
}
|
||||||
|
|
||||||
function spawnSealedBalrog(eim) {
|
function spawnSealedBalrog(eim) {
|
||||||
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(bossMobId), new Packages.java.awt.Point(412, 258));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
eim.getInstanceMap(entryMap).spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(bossMobId), new Point(412, 258));
|
||||||
}
|
}
|
||||||
|
|
||||||
function playerEntry(eim, player) {
|
function playerEntry(eim, player) {
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
* @Author Ronan
|
* @Author Ronan
|
||||||
* Event - Balrog Quest
|
* Event - Balrog Quest
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 910520000;
|
var entryMap = 910520000;
|
||||||
var exitMap = 105100100;
|
var exitMap = 105100100;
|
||||||
@@ -31,10 +30,10 @@ var maxMapId = 910520000;
|
|||||||
|
|
||||||
var eventTime = 10; //10 minutes
|
var eventTime = 10; //10 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -63,7 +62,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 1);
|
player.changeMap(entryMap, 1);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
@@ -96,7 +96,8 @@ function isBalrog(mob) {
|
|||||||
|
|
||||||
function monsterKilled(mob, eim) {
|
function monsterKilled(mob, eim) {
|
||||||
if(isBalrog(mob)) {
|
if(isBalrog(mob)) {
|
||||||
eim.spawnNpc(1061015, new java.awt.Point(0, 115), mob.getMap());
|
const Point = Java.type('java.awt.Point');
|
||||||
|
eim.spawnNpc(1061015, new Point(0, 115), mob.getMap());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function monsterValue(eim, mobId) {
|
function monsterValue(eim, mobId) {
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
importPackage(Packages.client);
|
|
||||||
importPackage(Packages.tools);
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var Orbis_btf;
|
var Orbis_btf;
|
||||||
var Boat_to_Orbis;
|
var Boat_to_Orbis;
|
||||||
var Orbis_Boat_Cabin;
|
var Orbis_Boat_Cabin;
|
||||||
@@ -64,7 +60,9 @@ function takeoff() {
|
|||||||
|
|
||||||
em.setProperty("docked","false");
|
em.setProperty("docked","false");
|
||||||
|
|
||||||
if(Math.random() < 0.42) em.schedule("approach", (invasionStartTime + (Math.random() * invasionDelayTime)));
|
if (Math.random() < 0.42) {
|
||||||
|
em.schedule("approach", (invasionStartTime + Math.trunc((Math.random() * invasionDelayTime))));
|
||||||
|
}
|
||||||
em.schedule("arrived", rideTime);
|
em.schedule("arrived", rideTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,6 +86,7 @@ function approach() {
|
|||||||
em.setProperty("haveBalrog","true");
|
em.setProperty("haveBalrog","true");
|
||||||
Boat_to_Orbis.broadcastEnemyShip(true);
|
Boat_to_Orbis.broadcastEnemyShip(true);
|
||||||
Boat_to_Ellinia.broadcastEnemyShip(true);
|
Boat_to_Ellinia.broadcastEnemyShip(true);
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
Boat_to_Orbis.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
||||||
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
Boat_to_Ellinia.broadcastMessage(MaplePacketCreator.musicChange("Bgm04/ArabPirate"));
|
||||||
|
|
||||||
@@ -96,6 +95,8 @@ function approach() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function invasion() {
|
function invasion() {
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
|
||||||
var map1 = Boat_to_Ellinia;
|
var map1 = Boat_to_Ellinia;
|
||||||
var pos1 = new java.awt.Point(-538, 143);
|
var pos1 = new java.awt.Point(-538, 143);
|
||||||
map1.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8150000), pos1);
|
map1.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(8150000), pos1);
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 970042711;
|
|||||||
|
|
||||||
var eventTime = 5; //5 minutes
|
var eventTime = 5; //5 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -117,7 +117,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 610030800;
|
|||||||
|
|
||||||
var eventTime = 2; // 2 minutes for first stg
|
var eventTime = 2; // 2 minutes for first stg
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
|
|||||||
@@ -39,8 +39,6 @@
|
|||||||
---------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------
|
||||||
**/
|
**/
|
||||||
|
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var Orbis_btf;
|
var Orbis_btf;
|
||||||
var Leafre_btf;
|
var Leafre_btf;
|
||||||
var Cabin_to_Orbis;
|
var Cabin_to_Orbis;
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Cafe PQ 1
|
* @event: Cafe PQ 1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 120;
|
var minLevel = 21, maxLevel = 120;
|
||||||
@@ -40,14 +38,14 @@ var eventMaps = [190000000, 190000001, 190000002];
|
|||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
var couponsNeeded = 400; // total of coupons to complete the event
|
var couponsNeeded = 400; // total of coupons to complete the event
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -102,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -255,6 +253,7 @@ function monsterKilled(mob, eim) {
|
|||||||
if(eim.isEventCleared()) return;
|
if(eim.isEventCleared()) return;
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Cafe PQ 2
|
* @event: Cafe PQ 2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 120;
|
var minLevel = 21, maxLevel = 120;
|
||||||
@@ -40,14 +38,14 @@ var eventMaps = [191000000, 191000001];
|
|||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
var couponsNeeded = 350; // total of coupons to complete the event
|
var couponsNeeded = 350; // total of coupons to complete the event
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -102,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -255,6 +253,7 @@ function monsterKilled(mob, eim) {
|
|||||||
if(eim.isEventCleared()) return;
|
if(eim.isEventCleared()) return;
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Cafe PQ 3
|
* @event: Cafe PQ 3
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 120;
|
var minLevel = 21, maxLevel = 120;
|
||||||
@@ -40,14 +38,14 @@ var eventMaps = [192000000, 192000001];
|
|||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
var couponsNeeded = 350; // total of coupons to complete the event
|
var couponsNeeded = 350; // total of coupons to complete the event
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -102,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -255,6 +253,7 @@ function monsterKilled(mob, eim) {
|
|||||||
if(eim.isEventCleared()) return;
|
if(eim.isEventCleared()) return;
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Cafe PQ 4
|
* @event: Cafe PQ 4
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 120;
|
var minLevel = 21, maxLevel = 120;
|
||||||
@@ -40,14 +38,14 @@ var eventMaps = [195000000, 195010000, 195020000, 195030000];
|
|||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
var couponsNeeded = 450; // total of coupons to complete the event
|
var couponsNeeded = 450; // total of coupons to complete the event
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -102,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -255,6 +253,7 @@ function monsterKilled(mob, eim) {
|
|||||||
if(eim.isEventCleared()) return;
|
if(eim.isEventCleared()) return;
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Cafe PQ 5
|
* @event: Cafe PQ 5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 120;
|
var minLevel = 21, maxLevel = 120;
|
||||||
@@ -40,14 +38,14 @@ var eventMaps = [196000000, 196010000];
|
|||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
var couponsNeeded = 500; // total of coupons to complete the event
|
var couponsNeeded = 500; // total of coupons to complete the event
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -102,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -255,6 +253,7 @@ function monsterKilled(mob, eim) {
|
|||||||
if(eim.isEventCleared()) return;
|
if(eim.isEventCleared()) return;
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
var itemObj = new Item(4001007, 0, getDroppedQuantity(mob));
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Cafe PQ 6
|
* @event: Cafe PQ 6
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 120;
|
var minLevel = 21, maxLevel = 120;
|
||||||
@@ -40,14 +38,14 @@ var eventMaps = [197000000, 197010000];
|
|||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
var couponsNeeded = 300; // total of coupons to complete the event
|
var couponsNeeded = 300; // total of coupons to complete the event
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -102,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -255,6 +253,7 @@ function monsterKilled(mob, eim) {
|
|||||||
if(eim.isEventCleared()) return;
|
if(eim.isEventCleared()) return;
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(4001007, 0, 1);
|
var itemObj = new Item(4001007, 0, 1);
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
|
|||||||
@@ -35,14 +35,14 @@ var maxMapId = 925010300;
|
|||||||
|
|
||||||
var eventTime = 6; // 6 minutes
|
var eventTime = 6; // 6 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -80,7 +80,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
/**
|
/**
|
||||||
*Dollhouse Event
|
*Dollhouse Event
|
||||||
**/
|
**/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap = 922000010;
|
var entryMap = 922000010;
|
||||||
var exitMap = 221024400;
|
var exitMap = 221024400;
|
||||||
@@ -46,7 +45,8 @@ function playerEntry(eim, player) {
|
|||||||
|
|
||||||
player.changeMap(entryMap, 0);
|
player.changeMap(entryMap, 0);
|
||||||
em.setProperty("noEntry","true");
|
em.setProperty("noEntry","true");
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
player.getClient().announce(MaplePacketCreator.getClock(eventTime * 60));
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 922020100;
|
|||||||
|
|
||||||
var eventTime = 20; // 20 minutes
|
var eventTime = 20; // 20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -100,7 +100,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 930000800;
|
|||||||
|
|
||||||
var eventTime = 30; // 30 minutes
|
var eventTime = 30; // 30 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -90,7 +90,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -35,14 +35,14 @@ var maxMapId = 921100300;
|
|||||||
|
|
||||||
var eventTime = 10; // 10 minutes
|
var eventTime = 10; // 10 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -80,7 +80,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
You should have received a copy of the GNU Affero General Public License
|
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/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var Orbis_btf;
|
var Orbis_btf;
|
||||||
var Genie_to_Orbis;
|
var Genie_to_Orbis;
|
||||||
|
|||||||
@@ -38,14 +38,14 @@ var waitTime = 3; // 3 minutes
|
|||||||
var eventTime = 90; // 90 minutes
|
var eventTime = 90; // 90 minutes
|
||||||
var bonusTime = 0.5; // 30 seconds
|
var bonusTime = 0.5; // 30 seconds
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -112,7 +112,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader)) eligible = [];
|
if(!(hasLeader)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var returnTo = new Array(200000141, 250000100);
|
var returnTo = new Array(200000141, 250000100);
|
||||||
var rideTo = new Array(250000100, 200000141);
|
var rideTo = new Array(250000100, 200000141);
|
||||||
var birdRide = new Array(200090300, 200090310);
|
var birdRide = new Array(200090300, 200090310);
|
||||||
@@ -33,7 +31,8 @@ function playerEntry(eim, player) {
|
|||||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||||
onRide = eim.getMapFactory().getMap(birdRide[myRide]);
|
onRide = eim.getMapFactory().getMap(birdRide[myRide]);
|
||||||
player.changeMap(onRide, onRide.getPortal(0));
|
player.changeMap(onRide, onRide.getPortal(0));
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(rideTime / 1000));
|
player.getClient().announce(MaplePacketCreator.getClock(rideTime / 1000));
|
||||||
eim.schedule("timeOut", rideTime);
|
eim.schedule("timeOut", rideTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 910010400;
|
|||||||
|
|
||||||
var eventTime = 10; // 10 minutes
|
var eventTime = 10; // 10 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -249,8 +249,9 @@ function friendlyItemDrop(eim, mob) {
|
|||||||
if (mob.getId() == 9300061) {
|
if (mob.getId() == 9300061) {
|
||||||
var cakes = eim.getIntProperty("bunnyCake") + 1;
|
var cakes = eim.getIntProperty("bunnyCake") + 1;
|
||||||
eim.setIntProperty("bunnyCake", cakes);
|
eim.setIntProperty("bunnyCake", cakes);
|
||||||
|
|
||||||
mob.getMap().broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "The Moon Bunny made rice cake number " + cakes + "."));
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
mob.getMap().broadcastMessage(MaplePacketCreator.serverNotice(6, "The Moon Bunny made rice cake number " + cakes + "."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,7 +259,8 @@ function friendlyDamaged(eim, mob) {
|
|||||||
if (mob.getId() == 9300061) {
|
if (mob.getId() == 9300061) {
|
||||||
var bunnyDamage = eim.getIntProperty("bunnyDamaged") + 1;
|
var bunnyDamage = eim.getIntProperty("bunnyDamaged") + 1;
|
||||||
if (bunnyDamage > 5) {
|
if (bunnyDamage > 5) {
|
||||||
broadcastMessage(Packages.tools.MaplePacketCreator.serverNotice(6, "The Moon Bunny is feeling sick. Please protect it so it can make delicious rice cakes."));
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
|
broadcastMessage(MaplePacketCreator.serverNotice(6, "The Moon Bunny is feeling sick. Please protect it so it can make delicious rice cakes."));
|
||||||
eim.setIntProperty("bunnyDamaged", 0);
|
eim.setIntProperty("bunnyDamaged", 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,9 +25,6 @@
|
|||||||
|
|
||||||
// GMS-like event string data thanks to iHealForLove
|
// GMS-like event string data thanks to iHealForLove
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 21, maxLevel = 30;
|
var minLevel = 21, maxLevel = 30;
|
||||||
@@ -41,14 +38,14 @@ var maxMapId = 889100001;
|
|||||||
|
|
||||||
var eventTime = 15; // 15 minutes
|
var eventTime = 15; // 15 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -113,7 +110,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -277,6 +274,7 @@ function monsterKilled(mob, eim) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
@@ -305,9 +303,11 @@ function snowmanEvolve(eim, curLevel) {
|
|||||||
|
|
||||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||||
mapobj.killMonster(snowman, null, false, 2);
|
mapobj.killMonster(snowman, null, false, 2);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var snowman = MapleLifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
var snowman = MapleLifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||||
mapobj.spawnMonsterOnGroundBelow(snowman, new java.awt.Point(-180, 15));
|
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||||
|
|
||||||
if(curLevel >= 4) {
|
if(curLevel >= 4) {
|
||||||
mapobj.allowSummonState(false);
|
mapobj.allowSummonState(false);
|
||||||
|
|||||||
@@ -25,9 +25,6 @@
|
|||||||
|
|
||||||
// GMS-like event string data thanks to iHealForLove
|
// GMS-like event string data thanks to iHealForLove
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 31, maxLevel = 40;
|
var minLevel = 31, maxLevel = 40;
|
||||||
@@ -41,14 +38,14 @@ var maxMapId = 889100011;
|
|||||||
|
|
||||||
var eventTime = 20; // 20 minutes
|
var eventTime = 20; // 20 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -113,7 +110,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -277,6 +274,7 @@ function monsterKilled(mob, eim) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
@@ -305,9 +303,11 @@ function snowmanEvolve(eim, curLevel) {
|
|||||||
|
|
||||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||||
mapobj.killMonster(snowman, null, false, 2);
|
mapobj.killMonster(snowman, null, false, 2);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var snowman = MapleLifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
var snowman = MapleLifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||||
mapobj.spawnMonsterOnGroundBelow(snowman, new java.awt.Point(-180, 15));
|
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||||
|
|
||||||
if(curLevel >= 4) {
|
if(curLevel >= 4) {
|
||||||
mapobj.allowSummonState(false);
|
mapobj.allowSummonState(false);
|
||||||
|
|||||||
@@ -25,9 +25,6 @@
|
|||||||
|
|
||||||
// GMS-like event string data thanks to iHealForLove
|
// GMS-like event string data thanks to iHealForLove
|
||||||
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 3, maxPlayers = 6;
|
var minPlayers = 3, maxPlayers = 6;
|
||||||
var minLevel = 41, maxLevel = 50;
|
var minLevel = 41, maxLevel = 50;
|
||||||
@@ -41,14 +38,14 @@ var maxMapId = 889100021;
|
|||||||
|
|
||||||
var eventTime = 25; // 25 minutes
|
var eventTime = 25; // 25 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -113,7 +110,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -277,6 +274,7 @@ function monsterKilled(mob, eim) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var mapObj = mob.getMap();
|
var mapObj = mob.getMap();
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
var itemObj = new Item((forceDrop || Math.random() < 0.77) ? 4032094 : 4032095, 0, 1); // 77% chance of not fake
|
||||||
var dropper = eim.getPlayers().get(0);
|
var dropper = eim.getPlayers().get(0);
|
||||||
|
|
||||||
@@ -305,9 +303,11 @@ function snowmanEvolve(eim, curLevel) {
|
|||||||
|
|
||||||
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
eim.setIntProperty("snowmanLevel", curLevel + 2); // increment by 2 to decrement by 1 on friendlyKilled
|
||||||
mapobj.killMonster(snowman, null, false, 2);
|
mapobj.killMonster(snowman, null, false, 2);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var snowman = MapleLifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
var snowman = MapleLifeFactory.getMonster(9400317 + (5 * difficulty) + curLevel);
|
||||||
mapobj.spawnMonsterOnGroundBelow(snowman, new java.awt.Point(-180, 15));
|
mapobj.spawnMonsterOnGroundBelow(snowman, new Point(-180, 15));
|
||||||
|
|
||||||
if(curLevel >= 4) {
|
if(curLevel >= 4) {
|
||||||
mapobj.allowSummonState(false);
|
mapobj.allowSummonState(false);
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Horntail Battle
|
* @event: Horntail Battle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 6, maxPlayers = 30;
|
var minPlayers = 6, maxPlayers = 30;
|
||||||
var minLevel = 100, maxLevel = 255;
|
var minLevel = 100, maxLevel = 255;
|
||||||
@@ -38,14 +36,14 @@ var maxMapId = 240060200;
|
|||||||
|
|
||||||
var eventTime = 120; // 120 minutes
|
var eventTime = 120; // 120 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -97,15 +95,17 @@ function setup(channel) {
|
|||||||
eim.getInstanceMap(240060000).resetPQ(level);
|
eim.getInstanceMap(240060000).resetPQ(level);
|
||||||
eim.getInstanceMap(240060100).resetPQ(level);
|
eim.getInstanceMap(240060100).resetPQ(level);
|
||||||
eim.getInstanceMap(240060200).resetPQ(level);
|
eim.getInstanceMap(240060200).resetPQ(level);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var map, mob;
|
var map, mob;
|
||||||
map = eim.getInstanceMap(240060000);
|
map = eim.getInstanceMap(240060000);
|
||||||
mob = MapleLifeFactory.getMonster(8810000);
|
mob = MapleLifeFactory.getMonster(8810000);
|
||||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(960, 120));
|
map.spawnMonsterOnGroundBelow(mob, new Point(960, 120));
|
||||||
|
|
||||||
map = eim.getInstanceMap(240060100);
|
map = eim.getInstanceMap(240060100);
|
||||||
mob = MapleLifeFactory.getMonster(8810001);
|
mob = MapleLifeFactory.getMonster(8810001);
|
||||||
map.spawnMonsterOnGroundBelow(mob, new java.awt.Point(-420, 120));
|
map.spawnMonsterOnGroundBelow(mob, new Point(-420, 120));
|
||||||
|
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
setEventRewards(eim);
|
setEventRewards(eim);
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 240050310;
|
|||||||
|
|
||||||
var eventTime = 25; // 25 minutes
|
var eventTime = 25; // 25 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 103000805;
|
|||||||
|
|
||||||
var eventTime = 30; // 30 minutes
|
var eventTime = 30; // 30 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var returnTo = new Array(103000100, 103000310);
|
var returnTo = new Array(103000100, 103000310);
|
||||||
var rideTo = new Array(103000310, 103000100);
|
var rideTo = new Array(103000310, 103000100);
|
||||||
var trainRide = new Array(103000301, 103000302);
|
var trainRide = new Array(103000301, 103000302);
|
||||||
@@ -34,7 +32,8 @@ function playerEntry(eim, player) {
|
|||||||
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
returnMap = eim.getMapFactory().getMap(returnTo[myRide]);
|
||||||
onRide = eim.getMapFactory().getMap(trainRide[myRide]);
|
onRide = eim.getMapFactory().getMap(trainRide[myRide]);
|
||||||
player.changeMap(onRide, onRide.getPortal(0));
|
player.changeMap(onRide, onRide.getPortal(0));
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.getClient().announce(MaplePacketCreator.getClock(rideTime / 1000));
|
player.getClient().announce(MaplePacketCreator.getClock(rideTime / 1000));
|
||||||
player.getClient().announce(MaplePacketCreator.earnTitleMessage("The next stop is at Kerning " + (myRide == 0 ? "Square" : "Subway") + " Station. The exit is to your left."));
|
player.getClient().announce(MaplePacketCreator.earnTitleMessage("The next stop is at Kerning " + (myRide == 0 ? "Square" : "Subway") + " Station. The exit is to your left."));
|
||||||
eim.schedule("timeOut", rideTime);
|
eim.schedule("timeOut", rideTime);
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 541010100;
|
|||||||
|
|
||||||
var eventTime = 10; // 10 minutes
|
var eventTime = 10; // 10 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 809050016;
|
|||||||
|
|
||||||
var eventTime = 15; // 15 minutes
|
var eventTime = 15; // 15 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 922011100;
|
|||||||
|
|
||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
importPackage(Packages.tools);
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var eventTime = 10 * 60 * 1000; // 10 minutes
|
var eventTime = 10 * 60 * 1000; // 10 minutes
|
||||||
var entryMap = 106021600;
|
var entryMap = 106021600;
|
||||||
var exitMap = 106021402;
|
var exitMap = 106021402;
|
||||||
@@ -34,7 +31,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(difficulty, lobbyId){
|
function setup(difficulty, lobbyId){
|
||||||
@@ -66,7 +63,9 @@ function respawn(eim){
|
|||||||
|
|
||||||
var weddinghall = eim.getMapInstance(entryMap);
|
var weddinghall = eim.getMapInstance(entryMap);
|
||||||
weddinghall.getPortal(1).setPortalState(false);
|
weddinghall.getPortal(1).setPortalState(false);
|
||||||
weddinghall.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(mobId), new java.awt.Point(292, 143));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
weddinghall.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(mobId), new Point(292, 143));
|
||||||
} else {
|
} else {
|
||||||
eim.schedule("respawn", 10000);
|
eim.schedule("respawn", 10000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
importPackage(Packages.tools);
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var eventTime = 10 * 60 * 1000; // 10 minutes
|
var eventTime = 10 * 60 * 1000; // 10 minutes
|
||||||
var entryMap = 106021601;
|
var entryMap = 106021601;
|
||||||
var exitMap = 106021402;
|
var exitMap = 106021402;
|
||||||
@@ -34,7 +31,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(difficulty, lobbyId){
|
function setup(difficulty, lobbyId){
|
||||||
@@ -57,7 +54,9 @@ function respawn(eim){
|
|||||||
|
|
||||||
var weddinghall = eim.getMapInstance(entryMap);
|
var weddinghall = eim.getMapInstance(entryMap);
|
||||||
weddinghall.getPortal(1).setPortalState(false);
|
weddinghall.getPortal(1).setPortalState(false);
|
||||||
weddinghall.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(mobId), new java.awt.Point(292, 143));
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
|
weddinghall.spawnMonsterOnGroundBelow(MapleLifeFactory.getMonster(mobId), new Point(292, 143));
|
||||||
} else {
|
} else {
|
||||||
eim.schedule("respawn", 10000);
|
eim.schedule("respawn", 10000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Magatia PQ (Alcadno)
|
* @event: Magatia PQ (Alcadno)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 4, maxPlayers = 4;
|
var minPlayers = 4, maxPlayers = 4;
|
||||||
var minLevel = 71, maxLevel = 85;
|
var minLevel = 71, maxLevel = 85;
|
||||||
@@ -38,14 +36,14 @@ var maxMapId = 926110600;
|
|||||||
|
|
||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -100,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -144,11 +142,12 @@ function setup(level, lobbyid) {
|
|||||||
|
|
||||||
eim.getInstanceMap(926110201).shuffleReactors(2518000, 2612004);
|
eim.getInstanceMap(926110201).shuffleReactors(2518000, 2612004);
|
||||||
eim.getInstanceMap(926110202).shuffleReactors(2518000, 2612004);
|
eim.getInstanceMap(926110202).shuffleReactors(2518000, 2612004);
|
||||||
|
|
||||||
eim.spawnNpc(2112010, new java.awt.Point(252, 243), eim.getInstanceMap(926110203));
|
const Point = Java.type('java.awt.Point');
|
||||||
eim.spawnNpc(2112010, new java.awt.Point(200, 100), eim.getInstanceMap(926110401));
|
eim.spawnNpc(2112010, new Point(252, 243), eim.getInstanceMap(926110203));
|
||||||
eim.spawnNpc(2112011, new java.awt.Point(200, 100), eim.getInstanceMap(926110500));
|
eim.spawnNpc(2112010, new Point(200, 100), eim.getInstanceMap(926110401));
|
||||||
eim.spawnNpc(2112018, new java.awt.Point(200, 100), eim.getInstanceMap(926110600));
|
eim.spawnNpc(2112011, new Point(200, 100), eim.getInstanceMap(926110500));
|
||||||
|
eim.spawnNpc(2112018, new Point(200, 100), eim.getInstanceMap(926110600));
|
||||||
|
|
||||||
respawnStages(eim);
|
respawnStages(eim);
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
@@ -245,15 +244,17 @@ function respawnStages(eim) {
|
|||||||
var mapobj = eim.getMapInstance(926110401);
|
var mapobj = eim.getMapInstance(926110401);
|
||||||
var mobcount = mapobj.countMonster(9300150);
|
var mobcount = mapobj.countMonster(9300150);
|
||||||
var mobobj;
|
var mobobj;
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
if(mobcount == 0) {
|
if(mobcount == 0) {
|
||||||
mobobj = MapleLifeFactory.getMonster(9300150);
|
mobobj = MapleLifeFactory.getMonster(9300150);
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Packages.java.awt.Point(-278, -126));
|
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-278, -126));
|
||||||
|
|
||||||
mobobj = MapleLifeFactory.getMonster(9300150);
|
mobobj = MapleLifeFactory.getMonster(9300150);
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Packages.java.awt.Point(-542, -126));
|
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||||
} else if(mobcount == 1) {
|
} else if(mobcount == 1) {
|
||||||
mobobj = MapleLifeFactory.getMonster(9300150);
|
mobobj = MapleLifeFactory.getMonster(9300150);
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Packages.java.awt.Point(-542, -126));
|
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,14 +312,16 @@ function yuleteAction(eim) {
|
|||||||
var mob1 = 9300143, mob2 = 9300144;
|
var mob1 = 9300143, mob2 = 9300144;
|
||||||
|
|
||||||
mapobj.destroyNPC(2112010);
|
mapobj.destroyNPC(2112010);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var mobobj1, mobobj2;
|
var mobobj1, mobobj2;
|
||||||
for(var i = 0; i < 5; i++) {
|
for(var i = 0; i < 5; i++) {
|
||||||
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
||||||
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
||||||
|
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Packages.java.awt.Point(-455, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(-455, 135));
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Packages.java.awt.Point(-455, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(-455, 135));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -326,8 +329,8 @@ function yuleteAction(eim) {
|
|||||||
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
||||||
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
||||||
|
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Packages.java.awt.Point(0, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(0, 135));
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Packages.java.awt.Point(0, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(0, 135));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -335,8 +338,8 @@ function yuleteAction(eim) {
|
|||||||
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
||||||
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
||||||
|
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Packages.java.awt.Point(360, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(360, 135));
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Packages.java.awt.Point(360, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(360, 135));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,8 +23,6 @@
|
|||||||
* @event: Magatia PQ (Zenumist)
|
* @event: Magatia PQ (Zenumist)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 4, maxPlayers = 4;
|
var minPlayers = 4, maxPlayers = 4;
|
||||||
var minLevel = 71, maxLevel = 85;
|
var minLevel = 71, maxLevel = 85;
|
||||||
@@ -38,14 +36,14 @@ var maxMapId = 926100600;
|
|||||||
|
|
||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -100,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -144,11 +142,12 @@ function setup(level, lobbyid) {
|
|||||||
|
|
||||||
eim.getInstanceMap(926100201).shuffleReactors(2518000, 2612004);
|
eim.getInstanceMap(926100201).shuffleReactors(2518000, 2612004);
|
||||||
eim.getInstanceMap(926100202).shuffleReactors(2518000, 2612004);
|
eim.getInstanceMap(926100202).shuffleReactors(2518000, 2612004);
|
||||||
|
|
||||||
eim.spawnNpc(2112000, new java.awt.Point(252, 243), eim.getInstanceMap(926100203));
|
const Point = Java.type('java.awt.Point');
|
||||||
eim.spawnNpc(2112000, new java.awt.Point(200, 100), eim.getInstanceMap(926100401));
|
eim.spawnNpc(2112000, new Point(252, 243), eim.getInstanceMap(926100203));
|
||||||
eim.spawnNpc(2112001, new java.awt.Point(200, 100), eim.getInstanceMap(926100500));
|
eim.spawnNpc(2112000, new Point(200, 100), eim.getInstanceMap(926100401));
|
||||||
eim.spawnNpc(2112018, new java.awt.Point(200, 100), eim.getInstanceMap(926100600));
|
eim.spawnNpc(2112001, new Point(200, 100), eim.getInstanceMap(926100500));
|
||||||
|
eim.spawnNpc(2112018, new Point(200, 100), eim.getInstanceMap(926100600));
|
||||||
|
|
||||||
respawnStages(eim);
|
respawnStages(eim);
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
@@ -245,15 +244,17 @@ function respawnStages(eim) {
|
|||||||
var mapobj = eim.getMapInstance(926100401);
|
var mapobj = eim.getMapInstance(926100401);
|
||||||
var mobcount = mapobj.countMonster(9300150);
|
var mobcount = mapobj.countMonster(9300150);
|
||||||
var mobobj;
|
var mobobj;
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
if(mobcount == 0) {
|
if(mobcount == 0) {
|
||||||
mobobj = MapleLifeFactory.getMonster(9300150);
|
mobobj = MapleLifeFactory.getMonster(9300150);
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Packages.java.awt.Point(-278, -126));
|
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-278, -126));
|
||||||
|
|
||||||
mobobj = MapleLifeFactory.getMonster(9300150);
|
mobobj = MapleLifeFactory.getMonster(9300150);
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Packages.java.awt.Point(-542, -126));
|
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||||
} else if(mobcount == 1) {
|
} else if(mobcount == 1) {
|
||||||
mobobj = MapleLifeFactory.getMonster(9300150);
|
mobobj = MapleLifeFactory.getMonster(9300150);
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj, new Packages.java.awt.Point(-542, -126));
|
mapobj.spawnMonsterOnGroundBelow(mobobj, new Point(-542, -126));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,14 +312,16 @@ function yuleteAction(eim) {
|
|||||||
var mob1 = 9300143, mob2 = 9300144;
|
var mob1 = 9300143, mob2 = 9300144;
|
||||||
|
|
||||||
mapobj.destroyNPC(2112000);
|
mapobj.destroyNPC(2112000);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var mobobj1, mobobj2;
|
var mobobj1, mobobj2;
|
||||||
for(var i = 0; i < 5; i++) {
|
for(var i = 0; i < 5; i++) {
|
||||||
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
||||||
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
||||||
|
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Packages.java.awt.Point(-455, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(-455, 135));
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Packages.java.awt.Point(-455, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(-455, 135));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -326,8 +329,8 @@ function yuleteAction(eim) {
|
|||||||
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
||||||
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
||||||
|
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Packages.java.awt.Point(0, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(0, 135));
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Packages.java.awt.Point(0, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(0, 135));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -335,8 +338,8 @@ function yuleteAction(eim) {
|
|||||||
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
mobobj1 = MapleLifeFactory.getMonster(mob1);
|
||||||
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
mobobj2 = MapleLifeFactory.getMonster(mob2);
|
||||||
|
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Packages.java.awt.Point(360, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj1, new Point(360, 135));
|
||||||
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Packages.java.awt.Point(360, 135));
|
mapobj.spawnMonsterOnGroundBelow(mobobj2, new Point(360, 135));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ var maxMapId = 914020000;
|
|||||||
|
|
||||||
var eventTime = 10; // 10 minutes
|
var eventTime = 10; // 10 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 7];
|
const maxLobbies = 7;
|
||||||
|
|
||||||
function init() {}
|
function init() {}
|
||||||
|
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 920011300;
|
|||||||
|
|
||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ var maxMapId = 220080001;
|
|||||||
|
|
||||||
var eventTime = 45; // 45 minutes
|
var eventTime = 45; // 45 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -98,7 +98,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -23,9 +23,6 @@
|
|||||||
* @event: Pink Bean Battle
|
* @event: Pink Bean Battle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.server.life);
|
|
||||||
importPackage(Packages.client.inventory);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 6, maxPlayers = 30;
|
var minPlayers = 6, maxPlayers = 30;
|
||||||
var minLevel = 120, maxLevel = 255;
|
var minLevel = 120, maxLevel = 255;
|
||||||
@@ -39,14 +36,14 @@ var maxMapId = 270050300;
|
|||||||
|
|
||||||
var eventTime = 140; // 140 minutes
|
var eventTime = 140; // 140 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -104,10 +101,12 @@ function setup(channel) {
|
|||||||
eim.getInstanceMap(270050100).resetPQ(level);
|
eim.getInstanceMap(270050100).resetPQ(level);
|
||||||
eim.getInstanceMap(270050200).resetPQ(level);
|
eim.getInstanceMap(270050200).resetPQ(level);
|
||||||
eim.getInstanceMap(270050300).resetPQ(level);
|
eim.getInstanceMap(270050300).resetPQ(level);
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
|
const Point = Java.type('java.awt.Point');
|
||||||
var mob = MapleLifeFactory.getMonster(8820000);
|
var mob = MapleLifeFactory.getMonster(8820000);
|
||||||
mob.disableDrops();
|
mob.disableDrops();
|
||||||
eim.getInstanceMap(270050100).spawnMonsterOnGroundBelow(mob, new java.awt.Point(0, -42));
|
eim.getInstanceMap(270050100).spawnMonsterOnGroundBelow(mob, new Point(0, -42));
|
||||||
|
|
||||||
eim.startEventTimer(eventTime * 60000);
|
eim.startEventTimer(eventTime * 60000);
|
||||||
setEventRewards(eim);
|
setEventRewards(eim);
|
||||||
@@ -234,7 +233,8 @@ function spawnJrBoss(mobObj, gotKilled) {
|
|||||||
mobObj.getMap().killMonster(mobObj.getId());
|
mobObj.getMap().killMonster(mobObj.getId());
|
||||||
spawnid = mobObj.getId() - 17;
|
spawnid = mobObj.getId() - 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const MapleLifeFactory = Java.type('server.life.MapleLifeFactory');
|
||||||
var mob = MapleLifeFactory.getMonster(spawnid);
|
var mob = MapleLifeFactory.getMonster(spawnid);
|
||||||
mobObj.getMap().spawnMonsterOnGroundBelow(mob, mobObj.getPosition());
|
mobObj.getMap().spawnMonsterOnGroundBelow(mob, mobObj.getPosition());
|
||||||
}
|
}
|
||||||
@@ -254,6 +254,7 @@ function monsterKilled(mob, eim) {
|
|||||||
|
|
||||||
if(stage == 5) {
|
if(stage == 5) {
|
||||||
var iid = 4001193;
|
var iid = 4001193;
|
||||||
|
const Item = Java.type('client.inventory.Item');
|
||||||
var itemObj = new Item(iid, 0, 1);
|
var itemObj = new Item(iid, 0, 1);
|
||||||
var mapObj = eim.getMapFactory().getMap(270050100);
|
var mapObj = eim.getMapFactory().getMap(270050100);
|
||||||
var reactObj = mapObj.getReactorById(2708000);
|
var reactObj = mapObj.getReactorById(2708000);
|
||||||
|
|||||||
@@ -38,14 +38,14 @@ var maxMapId = 925100500;
|
|||||||
|
|
||||||
var eventTime = 4; // 4 minutes
|
var eventTime = 4; // 4 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 0];
|
const maxLobbies = 1;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -90,7 +90,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
* @author: Ronan
|
* @author: Ronan
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var isPq = true;
|
var isPq = true;
|
||||||
var minPlayers = 1, maxPlayers = 1;
|
var minPlayers = 1, maxPlayers = 1;
|
||||||
var minLevel = 12, maxLevel = 255;
|
var minLevel = 12, maxLevel = 255;
|
||||||
@@ -17,14 +15,14 @@ var maxMapId = 922240100;
|
|||||||
|
|
||||||
var eventTime = 3; // 3 minutes
|
var eventTime = 3; // 3 minutes
|
||||||
|
|
||||||
var lobbyRange = [0, 19];
|
const maxLobbies = 20;
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
setEventRequirements();
|
setEventRequirements();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setLobbyRange() {
|
function getMaxLobbies() {
|
||||||
return lobbyRange;
|
return maxLobbies;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setEventRequirements() {
|
function setEventRequirements() {
|
||||||
@@ -79,7 +77,7 @@ function getEligibleParty(party) { //selects, from the given party, the tea
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
if(!(hasLeader && eligible.length >= minPlayers && eligible.length <= maxPlayers)) eligible = [];
|
||||||
return eligible;
|
return Java.to(eligible, Java.type('net.server.world.MaplePartyCharacter[]'));
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup(level, lobbyid) {
|
function setup(level, lobbyid) {
|
||||||
@@ -102,7 +100,8 @@ function respawnStages(eim) {}
|
|||||||
function playerEntry(eim, player) {
|
function playerEntry(eim, player) {
|
||||||
var map = eim.getMapInstance(entryMap);
|
var map = eim.getMapInstance(entryMap);
|
||||||
player.changeMap(map, map.getPortal(0));
|
player.changeMap(map, map.getPortal(0));
|
||||||
|
|
||||||
|
const MaplePacketCreator = Java.type('tools.MaplePacketCreator');
|
||||||
player.announce(MaplePacketCreator.showEffect("event/space/start"));
|
player.announce(MaplePacketCreator.showEffect("event/space/start"));
|
||||||
player.startMapEffect("Please rescue Gaga within the time limit.", 5120027);
|
player.startMapEffect("Please rescue Gaga within the time limit.", 5120027);
|
||||||
}
|
}
|
||||||
@@ -199,7 +198,8 @@ function clearPQ(eim) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function spawnGrandpaBunny(eim) {
|
function spawnGrandpaBunny(eim) {
|
||||||
eim.spawnNpc(9001105, new java.awt.Point(175, -20), eim.getInstanceMap(maxMapId));
|
const Point = Java.type('java.awt.Point');
|
||||||
|
eim.spawnNpc(9001105, new Point(175, -20), eim.getInstanceMap(maxMapId));
|
||||||
}
|
}
|
||||||
|
|
||||||
function monsterKilled(mob, eim) {}
|
function monsterKilled(mob, eim) {}
|
||||||
|
|||||||
@@ -19,8 +19,6 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap;
|
var entryMap;
|
||||||
var exitMap;
|
var exitMap;
|
||||||
var otherMap;
|
var otherMap;
|
||||||
|
|||||||
@@ -19,8 +19,6 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
importPackage(Packages.tools);
|
|
||||||
|
|
||||||
var entryMap;
|
var entryMap;
|
||||||
var exitMap;
|
var exitMap;
|
||||||
var otherMap;
|
var otherMap;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user