EXP system & Mob buffs/diseases optimization

Solved a problem within EXP distribution system that would hand out less overall EXP than the expected when the amount to be earned is low.
Optimized mob buffs and diseases, now using a dedicated thread to process all status expirations on a batch.
Refactored MonitoredLockTypes names to something more easily identificable.
Added a delay on mob effect applications, to be registered in after the cast animation time.
Fixed Flame Thrower acting passively when a attacking skill is used by the player.
This commit is contained in:
ronancpl
2018-06-30 22:48:02 -03:00
parent dac5c43635
commit 94425ba616
57 changed files with 926 additions and 608 deletions

View File

@@ -22,8 +22,8 @@ function end(mode, type, selection) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Dawn Warrior?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
cm.sendOk("Train a bit more and I can show you the way of the #rDawn Warrior#k.");
cm.dispose();
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rDawn Warrior#k.");
qm.dispose();
return;
}

View File

@@ -22,8 +22,8 @@ function end(mode, type, selection) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Blaze Wizard?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
cm.sendOk("Train a bit more and I can show you the way of the #rBlaze Wizard#k.");
cm.dispose();
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rBlaze Wizard#k.");
qm.dispose();
return;
}

View File

@@ -22,8 +22,8 @@ function end(mode, type, selection) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Wind Archer?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
cm.sendOk("Train a bit more and I can show you the way of the #rWind Archer#k.");
cm.dispose();
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rWind Archer#k.");
qm.dispose();
return;
}

View File

@@ -22,8 +22,8 @@ function end(mode, type, selection) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Night Walker?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
cm.sendOk("Train a bit more and I can show you the way of the #rNight Walker#k.");
cm.dispose();
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rNight Walker#k.");
qm.dispose();
return;
}

View File

@@ -22,8 +22,8 @@ function end(mode, type, selection) {
qm.sendYesNo("Have you made your decision? The decision will be final, so think carefully before deciding what to do. Are you sure you want to become a Thunder Breaker?");
} else if (status == 1) {
if(!qm.canGetFirstJob(jobType)) {
cm.sendOk("Train a bit more and I can show you the way of the #rThunder Breaker#k.");
cm.dispose();
qm.sendOk("Train a bit more until you reach #blevel 10, " + qm.getFirstJobStatRequirement(jobType) + "#k and I can show you the way of the #rThunder Breaker#k.");
qm.dispose();
return;
}

View File

@@ -41,7 +41,7 @@ function end(mode, type, selection) {
if (status == 0) {
if(qm.haveItem(5460000)) {
qm.sendOk("You got the Pet Snack! Thanks! You can use these to feed multiple pets at once!");
qm.teachSkill(0008, 1, 1, -1);
qm.teachSkill(8, 1, 1, -1);
qm.gainItem(5460000, -1, false);
qm.completeQuest();
qm.dispose();