summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwushin <pasekei@gmail.com>2014-01-30 15:04:29 -0800
committerwushin <pasekei@gmail.com>2014-01-30 15:04:29 -0800
commit9387e32fffe53279316c2596fd0f17f786506d81 (patch)
treebc832fea3cf1aae93f86a8a3256e912f3a7ed5cf
parent447f80120e31b97abb935e38bc2fee9e0ec9809e (diff)
parent049b7e2e0023bd8b36fbb66d3fbb8c8da2a2baaa (diff)
downloadserverdata-9387e32fffe53279316c2596fd0f17f786506d81.tar.gz
serverdata-9387e32fffe53279316c2596fd0f17f786506d81.tar.bz2
serverdata-9387e32fffe53279316c2596fd0f17f786506d81.tar.xz
serverdata-9387e32fffe53279316c2596fd0f17f786506d81.zip
Merge pull request #70 from CandyCurt/XmasFix
Xmas fix
-rw-r--r--world/map/db/mob_db.txt2
-rw-r--r--world/map/npc/030-2/avalia.txt2
-rw-r--r--world/map/npc/030-3/orum_homunculus.txt4
-rw-r--r--world/map/npc/030-4/mana_battery.txt90
-rw-r--r--world/map/npc/annuals/xmas/config.txt11
-rw-r--r--world/map/npc/annuals/xmas/core.txt14
6 files changed, 99 insertions, 24 deletions
diff --git a/world/map/db/mob_db.txt b/world/map/db/mob_db.txt
index 68d9f8d0..e5348ccd 100644
--- a/world/map/db/mob_db.txt
+++ b/world/map/db/mob_db.txt
@@ -122,7 +122,7 @@
1110, AngryGreenSlime, AngryGreenSlime, 60, 1000, 0, 0, 126, 1, 100, 160, 20, 30, 20, 30, 10, 10, 30, 30, 1, 1, 1, 0, 21, 175, 1200, 1872, 672, 480, 502, 200, 4004, 20, 501, 100, 521, 250, 522, 200, 526, 500, 503, 500, 535, 750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
1111, CandiedSlime, CandiedSlime, 50, 800, 0, 800, 250, 3, 50, 50, 20, 30, 20, 30, 10, 10, 30, 30, 1, 1, 1, 0, 21, 175, 1200, 1872, 672, 480, 510, 1000, 509, 1000, 515, 200, 516, 200, 538, 200, 512, 200, 508, 500, 514, 750, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
1112, Santaboo, Santaboo, 50, 2200, 0, 0, 150, 2, 80, 125, 50, 10, 25, 10, 25, 0, 60, 30, 2, 2, 1, 3, 20, 129, 600, 1872, 672, 480, 512, 1000, 736, 1200, 737, 1200, 738, 1200, 739, 1200, 511, 50, 4042, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 30
-1113, Pollett, Pollett, 30, 500, 0, 0, 7, 1, 6, 10, 1, 5, 1, 2, 1, 0, 20, 25, 1, 1, 1, 3, 20, 129, 800, 1600, 672, 480, 4026, 1000, 4023, 500, 700, 300, 862, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
+1113, Pollett, Pollett, 30, 500, 0, 0, 7, 1, 6, 10, 1, 5, 1, 2, 1, 0, 20, 25, 1, 1, 1, 3, 20, 129, 800, 1600, 672, 480, 4026, 1000, 4023, 500, 700, 300, 862, 100, 1189, 400, 1189, 400, 1189, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 40
1114, Nutcracker, Nutcracker, 110, 6000, 0, 0, 1300, 1, 81, 281, 20, 42, 40, 20, 10, 5, 60, 40, 1, 1, 1, 0, 29, 133, 400, 872, 672, 900, 569, 1000, 660, 750, 539, 750, 503, 250, 640, 200, 4004, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30,
//ID, Name, Jname, LV, HP, SP, EXP, JEXP, Range1, ATK1, ATK2, DEF, MDEF, STR, AGI, VIT, INT, DEX, LUK, Range2, Range3, Scale, Race, Element,Mode, Speed, Adelay, Amotion,Dmotion,Drop1id,Drop1per, Drop2id,Drop2%, Drop3id,Drop3%, Drop4id,Drop4%, Drop5id,Drop5%, Drop6id,Drop6%, Drop7id,Drop7%, Drop8id,Drop8%, Item1, Item2, MEXP, ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount,mutationstrength
diff --git a/world/map/npc/030-2/avalia.txt b/world/map/npc/030-2/avalia.txt
index 2b04add5..038b0dd2 100644
--- a/world/map/npc/030-2/avalia.txt
+++ b/world/map/npc/030-2/avalia.txt
@@ -16,7 +16,7 @@ L_OffSeason:
close;
L_XmasMain:
- if(@xmas_reward_done_state) goto L_Thanks;
+ if(@xmas_reward_done_state) goto L_ThankYou;
if(@xmas_reward1_done_state) goto L_Thanks;
if(@xmas_reward_start_state) goto L_Reward;
if(@xmas_reward2_done_state) goto L_Reward;
diff --git a/world/map/npc/030-3/orum_homunculus.txt b/world/map/npc/030-3/orum_homunculus.txt
index 8c10ac9c..f699737e 100644
--- a/world/map/npc/030-3/orum_homunculus.txt
+++ b/world/map/npc/030-3/orum_homunculus.txt
@@ -1,5 +1,5 @@
// Annual Xmas
-// Author: Wushin
+// Authors: Wushin, Chayenne
019-3.gat,79,30,0|script|#OrumTelepathy1|45,3,3,
{
@@ -177,7 +177,7 @@ L_OffSeason:
L_XmasMain:
if !(@xmas_knows_route) goto L_SetPath;
if((@xmas_list_deliver) && !(@xmas_side)) goto L_OffSeason;
- if((@xmas_reward_done_state) && (@xmas_side)) goto L_Thanks;
+ if((@xmas_reward_done_state) && (@xmas_side)) goto L_ThankYou;
if((@xmas_reward1_done_state) && (@xmas_side)) goto L_Thanks;
if((@xmas_reward2_done_state) && (@xmas_side)) goto L_Reward;
if((@xmas_reward_start_state) && (@xmas_side)) goto L_Reward;
diff --git a/world/map/npc/030-4/mana_battery.txt b/world/map/npc/030-4/mana_battery.txt
index 7a6977e8..a86dd527 100644
--- a/world/map/npc/030-4/mana_battery.txt
+++ b/world/map/npc/030-4/mana_battery.txt
@@ -18,7 +18,6 @@
// player gets state set to finished for winning the battle once and mode bit set on easy/hard accordingly
// every player *is* allowed to restart the quest ONCE himself if he hasnt started it himself yet
-//TODO Balance mobs for level 50/candor (with assistance, i dont care if a speed archer cant solo that thing)
//TODO Add an icreasing particle effect to the chest, move it half a tile right
// and make it one of those lab tables from the slime quests
@@ -27,6 +26,8 @@
set $@XmasBattleStatusClone, 0;
callfunc "XmasStates";
set @xmas_battle_side, 0;
+ if ($@XmasBattleCoolDown)
+ goto L_CoolDown;
if (@xmas_side)
set @xmas_battle_side, 1;
if ($@XmasBattleStatus)
@@ -83,7 +84,7 @@ L_BattleGood:
L_StartGood:
if ($@XmasBattleStatus)
goto L_BattleInProgress;
- set $@XmasBattleStatus, 1;
+ set @xmas_battle_status, 1;
goto L_Start;
goto L_Close;
@@ -93,13 +94,13 @@ L_StartGoodHard:
callsub S_CheckHardReq;
delitem $@xmas_boss_req$[ @xmas_battle_side ], $@xmas_boss_amount[ @xmas_battle_side ];
mes "You pour a handfull of " + $@xmas_boss_req$[@xmas_battle_side] + " over the Mana Battery.";
- set $@XmasBattleStatus, 2;
+ set @xmas_battle_status, 2;
goto L_Start;
L_StartBad:
if ($@XmasBattleStatus)
goto L_BattleInProgress;
- set $@XmasBattleStatus, 3;
+ set @xmas_battle_status, 3;
goto L_Start;
L_StartBadHard:
@@ -108,7 +109,7 @@ L_StartBadHard:
callsub S_CheckHardReq;
delitem $@xmas_boss_req$[ @xmas_battle_side ], $@xmas_boss_amount[ @xmas_battle_side ];
mes "You pour a handfull of " + $@xmas_boss_req$[@xmas_battle_side] + " over the Mana Battery.";
- set $@XmasBattleStatus, 4;
+ set @xmas_battle_status, 4;
goto L_Start;
L_Start:
@@ -121,6 +122,9 @@ L_Start:
mes "it seems like this will not turn out as planned, Look this Guard of Honour is going crazy!";
next;
npctalk "The Guards are out of control!";
+ if ($@XmasBattleStatus)
+ goto L_BattleAlreadyStarted;
+ set $@XmasBattleStatus, @xmas_battle_status;
set $@XmasBattleStatusClone, $@XmasBattleStatus;
set $@XmasBossRound, 0;
set $@XmasBossPlayerCount, getmapusers("030-4.gat");
@@ -131,8 +135,8 @@ L_Start:
L_ThrowOut:
// if the player didnt get a bomb yet
mes "This looks dangerous. Come back when you are prepared";
- warp "030-2",151,25;
next;
+ warp "030-2",151,25;
goto L_Close;
L_Coward:
@@ -154,19 +158,32 @@ L_Helper:
L_Repeat:
//Player wants to try again on hard mode again
+ if ($@XmasBattleStatus)
+ goto L_BattleInProgress;
callsub S_CheckHardReq;
delitem $@xmas_boss_req$[ @xmas_battle_side ], $@xmas_boss_amount[ @xmas_battle_side ];
- set $@XmasBattleStatus, (2 * (@xmas_battle_side)) + 2;
+ set @xmas_battle_status, (2 * (@xmas_battle_side)) + 2;
goto L_Start;
L_Quit:
warp "030-2",151,25;
goto L_Close;
+L_CoolDown:
+ mes "The AniManOMat is too hot to handle right now, you should wait a bit to try a new battery.";
+ menu
+ "No I prefer to leave now, get me out of here.", L_Quit,
+ "Ughhh, but I'm certain this time the battery will work!", -;
+ goto L_Close;
+
L_BattleInProgress:
mes "The mana battery looks like it is about to explode. You better take cover!";
goto L_Close;
+L_BattleAlreadyStarted:
+ mes "Seems like someone was faster than you.";
+ goto L_Close;
+
L_Close:
callsub S_ClearVariables;
close;
@@ -174,7 +191,9 @@ L_Close:
// per NPC logic
OnTimer5000:
setnpctimer 0;
- if ($@XmasBattleStatus) goto L_CaveLogic;
+ if ($@XmasBattleStatus)
+ goto L_CaveLogic;
+ goto L_CleanUp;
L_Return_1:
set $@XmasBossPlayerCount, 0;
@@ -185,7 +204,7 @@ L_CaveLogic:
if ($@XmasBossPlayerCount < 1)
goto L_AllDead;
set $@BombTimer, $@BombTimer + 5; // Advance 5 seconds
- if (mobcount("030-4.gat", "AniManOMat::OnGuardDeath") <= 0)
+ if ((mobcount("030-4.gat", "AniManOMat::OnGuardDeath") + 1) == 0)
goto L_NextWave;
if ($@BombTimer >= 120)
goto L_NextWave;
@@ -193,14 +212,15 @@ L_CaveLogic:
L_NextWave:
set $@BombTimer, 0;
+ set $@DangerCellNumber, rand(8);
set $@XmasBossRound, $@XmasBossRound + 1;
- if (($@XmasBossRound > 10) && (mobcount("030-4.gat", "AniManOMat::OnGuardDeath") < 0))
+ if (($@XmasBossRound > 10) && ((mobcount("030-4.gat", "AniManOMat::OnGuardDeath") + 1) == 0))
goto L_Finished;
// Break/LastChance(s)
- if (($@XmasBossRound > 10) && ($@XmasBossRound <= 12))
+ if (($@XmasBossRound > 10) && ($@XmasBossRound <= 16))
goto L_Return_1;
//KillerWaves
- if ($@XmasBossRound > 12)
+ if ($@XmasBossRound > 16)
areamonster "030-4.gat", 0, 0, 50, 50, "", 1114, $@XmasBossRound*2 + $@XmasBossPlayerCount*3, "AniManOMat::OnGuardDeath";
//Normal Waves 1 to 10
// Guard Amount doubles if on hard mode
@@ -250,6 +270,14 @@ L_NextWave:
OnTick:
if (isdead()) end;
set $@XmasBossPlayerCount, $@XmasBossPlayerCount + 1;
+ if(isin("030-4.gat", $@DangerCellX1[$@DangerCellNumber], $@DangerCellY1[$@DangerCellNumber], $@DangerCellX2[$@DangerCellNumber], $@DangerCellY2[$@DangerCellNumber]))
+ goto L_DangerCell;
+ end;
+
+L_DangerCell:
+ message strcharinfo(0), "Target Aquired. Locking on Now.";
+ misceffect 10001, strcharinfo(0);
+ percentheal -20, 0;
end;
OnGuardDeath:
@@ -267,7 +295,6 @@ L_Finished:
L_CleanUp:
areatimer "030-4.gat", 0, 0, 50, 50, 10, "AniManOMat::OnReward";
- set $@XmasBattleStatus, 0;
set $@XmasBossPlayerCount, 0;
set $@XmasBossRound, 0;
set $@BombTimer, 0;
@@ -275,7 +302,7 @@ L_CleanUp:
set $@SkullAmount, 0;
killmonster "030-4.gat", "AniManOMat::OnGuardDeath";
stopnpctimer;
- setnpctimer 0;
+ cmdothernpc "#XmasChamberCooler", "CoolDown";
end;
OnReward:
@@ -333,7 +360,7 @@ L_Restart:
"", // unused
"Scrrreeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaatch",
"Scrrreeeeeeeeeeeeeeeeeeeeeaaaaaaaaaaaaaaaaaaaaatch",
- "Avalia: Oh ooooh...",
+ "Avalia: I am getting a weird sensation ... ",
"Orums Homunculus : I think they know what we are up to!",
"Avalia : Oh no! This is going to blow up",
"Orums Homunculus : The Door is locked you idiot, fight for your life.",
@@ -347,7 +374,7 @@ L_Restart:
"Orums Homunculus : Strange they are getting more and not less.",
"Avalia : Oh no, they are too powerful. Fight my warriors, Fight for the spirit of Christmas.",
"Orums Homunculus : If I was smart enough to stop talking, it would have happened already..",
- "Avalia : I cannot believe it, this is makeing them stronger. More and more of them are comeing.",
+ "Avalia : I cannot believe it, this is making them stronger. More and more of them are coming.",
"Orums Homunculus : I think we are almost done, the bomb should explode any second.",
"Avalia : Those poor creatures. Just kill them all.",
"Orums Homunculus : A N Y S E C O N D.",
@@ -361,9 +388,24 @@ L_Restart:
"Orum's Homunculus : Boy are you lame. So what now? The battery is still not placed! Go try again!",
"Avalia : W00t you actually made it through. I think now that the manabattery lost some of its abundant power this seems to have given those nutcrackers that didn't go crazy a good boost of life energy. Thank you for your help all and come see me for a reward.",
"Orum's Homunculus : Good. They are dead. Now GET OUT OF THERE, this bomb is dangerous!";
+ // Danger Cells to attack sitters
+ // 0: 19,20,29,29
+ // 1: 30,20,40,29
+ // 2: 41,20,50,29
+ // 3: 19,31,29,40
+ // 4: 30,31,40,40
+ // 5: 41,31,50,40
+ // 6: 19,42,29,50
+ // 7: 30,42,40,50
+ // 8: 41,42,50,50
+ setarray $@DangerCellX1, 19, 30, 41, 19, 30, 41, 19, 30, 41;
+ setarray $@DangerCellY1, 20, 20, 20, 31, 31, 31, 42, 42, 42;
+ setarray $@DangerCellX2, 29, 40, 50, 29, 40, 50, 29, 40, 50;
+ setarray $@DangerCellY2, 29, 29, 29, 40, 40, 40, 50, 50, 50;
end;
S_Announce:
+ mapannounce "030-4.gat", "Danger Cell Activated. Zone " + $@DangerCellNumber + " activated.", 0;
mapannounce "030-4.gat", $@msg$, 0;
mapannounce "030-2.gat", $@msg$, 0;
set $@msg$, "";
@@ -391,6 +433,22 @@ S_ClearVariables:
set @xmas_battle_side, 0;
set @bonus, 0;
set @xmas_state, 0;
+ set @xmas_battle_status, 0;
set @karma_bonus, 0;
return;
}
+
+030-4.gat,0,0,0|script|#XmasChamberCooler|-1,
+{
+ end;
+OnCommandCoolDown:
+ set $@XmasBattleStatus, 0;
+ set $@XmasBattleCoolDown, 1;
+ initnpctimer;
+ end;
+
+OnTimer120000:
+ set $@XmasBattleCoolDown, 0;
+ stopnpctimer;
+ end;
+}
diff --git a/world/map/npc/annuals/xmas/config.txt b/world/map/npc/annuals/xmas/config.txt
index caf4ad77..4eacec58 100644
--- a/world/map/npc/annuals/xmas/config.txt
+++ b/world/map/npc/annuals/xmas/config.txt
@@ -268,10 +268,15 @@ L_Main:
if($@xmas_debug == $@xmas_reward_time)
goto L_RewardTime;
- if((gettime(6) == $@xmas_reward_start_month && gettime(5) >= $@xmas_reward_start_day)
- || (gettime(6) == $@xmas_end_month && gettime(5) <= $@xmas_reward_end_day))
+ if((gettime(6) == $@xmas_reward_start_month && gettime(5) >= $@xmas_reward_start_day
+ && (gettime(5) <= $@xmas_reward_end_day && $@xmas_reward_start_month == $@xmas_end_month
+ || !($@xmas_reward_start_month == $@xmas_end_month)))
+ || (gettime(6) == $@xmas_end_month && gettime(5) <= $@xmas_reward_end_day
+ && (gettime(5) >= $@xmas_reward_start_day && $@xmas_reward_start_month == $@xmas_end_month
+ || !($@xmas_reward_start_month == $@xmas_end_month)))
+ || (gettime(6) < $@xmas_end_month && gettime(6) > $@xmas_reward_start_month))
goto L_RewardTime;
- if(gettime(6) == $@xmas_start_month)
+ if((gettime(6) >= $@xmas_start_month) || (gettime(6) <= $@xmas_end_month && gettime(5) <= $@xmas_reward_start_day))
goto L_EventTime;
L_NoEventTime:
diff --git a/world/map/npc/annuals/xmas/core.txt b/world/map/npc/annuals/xmas/core.txt
index 41ec2ce5..0f0c53b4 100644
--- a/world/map/npc/annuals/xmas/core.txt
+++ b/world/map/npc/annuals/xmas/core.txt
@@ -173,8 +173,20 @@ function|script|XmasMainItemReward|,
{
callfunc "XmasSetReward";
- if(($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_start_state) || (@xmas_reward1_done_state)))
+ if (($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_start_state) || (@xmas_reward1_done_state)))
goto L_FinalGift;
+ if (($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_done_state) || (@xmas_reward2_done_state)))
+ goto L_GotGift;
+ if ($@xmas_time == $@xmas_reward_time)
+ goto L_NoGift;
+ goto L_Return;
+
+L_GotGift:
+ mes "Hey, this is not for you!";
+ goto L_Return;
+
+L_NoGift:
+ mes "Oh someone got a present. Maybe you can get one too if help the right person?";
goto L_Return;
L_FinalGift: