Experimental Character/Client Closure + Morph & Crash skills patch

Player Trade is now enabled inside PQ & events.
Refactored minigame code, now using enums rather than strings for logistics.
Fixed Transformations not applying stat buffs properly.
Warrior's Crash skills now acts accordingly with their description (rather than applying all combined debuffs).
Added a server flag for Crash skills, to apply mob immunity debuffs as well.
Fixed Shark Wave not stacking charges.
Dragon Roar now properly stuns the mobs (stun effect won't show up, though).
Refactored empty method on MapleCharacter, now freeing more resources.
[EXPERIMENTAL] Upon lifetime's end of the object, empty function will be called alongside MapleClient's clear, should issues arise from that, it's TBD.
This commit is contained in:
ronancpl
2018-06-23 13:00:28 -03:00
parent c4d6531177
commit d50b7b6960
30 changed files with 387 additions and 163 deletions

View File

@@ -56,8 +56,8 @@ function start() {
var jobBase = parseInt(cm.getJobId() / 100);
var jobStyle = 1;
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle)){
if(cm.getPlayer().getLevel() >= 70 && jobBase % 10 == jobStyle) {
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle && cm.getJobId() % 10 == 0)){
if(cm.getPlayer().getLevel() >= 50 && jobBase % 10 == jobStyle) {
status++;
action(1, 0, 1);
return;

View File

@@ -28,8 +28,8 @@ actionx = {"Mental" : false, "Physical" : false};
function start() {
var jobBase = parseInt(cm.getJobId() / 100);
var jobStyle = 2;
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle)){
if(cm.getPlayer().getLevel() >= 70 && jobBase % 10 == jobStyle) {
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle && cm.getJobId() % 10 == 0)){
if(cm.getPlayer().getLevel() >= 50 && jobBase % 10 == jobStyle) {
status++;
action(1, 0, 1);
return;

View File

@@ -30,8 +30,8 @@ actionx = {"Mental" : false, "Physical" : false};
function start() {
var jobBase = parseInt(cm.getJobId() / 100);
var jobStyle = 3;
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle)){
if(cm.getPlayer().getLevel() >= 70 && jobBase % 10 == jobStyle) {
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle && cm.getJobId() % 10 == 0)){
if(cm.getPlayer().getLevel() >= 50 && jobBase % 10 == jobStyle) {
status++;
action(1, 0, 1);
return;

View File

@@ -28,8 +28,8 @@ actionx = {"Mental" : false, "Physical" : false};
function start() {
var jobBase = parseInt(cm.getJobId() / 100);
var jobStyle = 4;
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle)){
if(cm.getPlayer().getLevel() >= 70 && jobBase % 10 == jobStyle) {
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle && cm.getJobId() % 10 == 0)){
if(cm.getPlayer().getLevel() >= 50 && jobBase % 10 == jobStyle) {
status++;
action(1, 0, 1);
return;

View File

@@ -28,8 +28,8 @@ actionx = {"Mental" : false, "Physical" : false};
function start() {
var jobBase = parseInt(cm.getJobId() / 100);
var jobStyle = 5;
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle)){
if(cm.getPlayer().getLevel() >= 70 && jobBase % 10 == jobStyle) {
if (!(cm.getPlayer().getLevel() >= 70 && jobBase == jobStyle && cm.getJobId() % 10 == 0)){
if(cm.getPlayer().getLevel() >= 50 && jobBase % 10 == jobStyle) {
status++;
action(1, 0, 1);
return;

View File

@@ -40,9 +40,8 @@ function start() {
var options = new Array("What's a stimulator?","Create a Warrior weapon","Create a Bowman weapon","Create a Magician weapon","Create a Thief weapon","Create a Pirate Weapon",
"Create a Warrior weapon with a Stimulator","Create a Bowman weapon with a Stimulator","Create a Magician weapon with a Stimulator","Create a Thief weapon with a Stimulator","Create a Pirate Weapon with a Stimulator");
if(cm.isQuestStarted(7301)) options.push("Make #t4001078#");
if(cm.isQuestStarted(7301) || cm.isQuestStarted(7303)) options.push("Make #t4001078#");
for (var i = 0; i < options.length; i++){
selStr += "\r\n#L" + i + "# " + options[i] + "#l";
}

View File

@@ -11,7 +11,8 @@ var name_tree = [];
var role_tree = [];
var name_cursor, role_cursor;
// make sure the server names are lexicograffically EQUALS to the correspondent function.
// new server names are to be appended at the start of the name stack, building up the chronology.
// make sure the server names are lexicograffically equivalent to their correspondent function.
var servers = ["HeavenMS", "MapleSolaxia", "MoopleDEV", "MetroMS", "BubblesDEV", "ThePackII", "OdinMS", "Contributors"];
var servers_history = [];
@@ -24,6 +25,14 @@ function setHistory(from, to) {
servers_history.push([from, to]);
}
/*
function writeServerStaff_MapleNext() {
addPerson("John Doe", "The role");
setHistory(INITIAL_YEAR [, CURRENT_YEAR]);
}
*/
function writeServerStaff_HeavenMS() {
addPerson("Ronan", "Developer");
addPerson("Vcoc", "Freelance Developer");