summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-04-29 11:41:26 -0300
committerJesusaves <cpntb1@ymail.com>2019-04-29 11:41:26 -0300
commit54839495835e5ad0126f194486e1c635ac8d14dd (patch)
tree9ca5354f9628c3111c18ada4a8a92678122ba498 /npc
parent32b98f594ebf693e79946c14637f22fa5f12a9ca (diff)
downloadserverdata-54839495835e5ad0126f194486e1c635ac8d14dd.tar.gz
serverdata-54839495835e5ad0126f194486e1c635ac8d14dd.tar.bz2
serverdata-54839495835e5ad0126f194486e1c635ac8d14dd.tar.xz
serverdata-54839495835e5ad0126f194486e1c635ac8d14dd.zip
Minor balance + total rewrite to Dausen (Tulimshar Siege)
Diffstat (limited to 'npc')
-rw-r--r--npc/003-1/lieutenantdausen.txt182
-rw-r--r--npc/012-1/guards.txt5
-rw-r--r--npc/functions/siege.txt2
3 files changed, 36 insertions, 153 deletions
diff --git a/npc/003-1/lieutenantdausen.txt b/npc/003-1/lieutenantdausen.txt
index 46803c7cc..62c9c9628 100644
--- a/npc/003-1/lieutenantdausen.txt
+++ b/npc/003-1/lieutenantdausen.txt
@@ -117,121 +117,39 @@
L_MKControl:
mesn;
mes l("Oh noes! You've found the Tulimshar control panel!");
- menu
- l("Initiate small siege (lv. 20)"), L_MKSmall,
- l("Initiate medium siege (lv. 30)"), L_MKMedium,
- l("Initiate huge siege (lv. 40)"), L_MKHuge,
- l("Abort"), -;
+ select
+ l("Abort"),
+ l("Initiate a siege");
+ mes "";
+ if (@menu == 2) {
+ doevent "Lieutenant Dausen::OnStartSiege";
+ closedialog;
+ }
close;
OnMKSiege:
- addmapmask "003-1", MASK_MATTACK;
- addmapmask "004-1", MASK_MATTACK;
- changemusic "003-1", any("mythica.ogg", "eric_matyas_ghouls.ogg", "misuse.ogg", "Arabesque.ogg");
- disablenpc("Mana Stone");
- $@SIEGE_TULIM=rand(0,10);
- pvpon("003-1");
- pvpon("004-1");
- announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all);
- areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 10, "Lieutenant Dausen::OnBlackScorpionDeath");
+ $@SIEGE_TULIM=rand(1,10);
+OnStartSiege:
+ siege_setup("004-1");
+ siege_setup("003-1", "WARNING! WARNING! Siege starting at Tulimshar!!");
+ siege_cast("014-3", .name$, 0, TP_TULIM);
initnpctimer;
end;
-L_MKSmall:
- addmapmask "003-1", MASK_MATTACK;
- addmapmask "004-1", MASK_MATTACK;
- changemusic "003-1", "mythica.ogg";
- disablenpc("Mana Stone");
- $@SIEGE_TULIM=0; // factor zero
- pvpon("003-1");
- pvpon("004-1");
- announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all);
- areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 10, "Lieutenant Dausen::OnBlackScorpionDeath");
- initnpctimer;
- close;
-
-L_MKMedium:
- addmapmask "003-1", MASK_MATTACK;
- addmapmask "004-1", MASK_MATTACK;
- changemusic "003-1", "eric_matyas_ghouls.ogg";
- disablenpc("Mana Stone");
- $@SIEGE_TULIM=1; // factor one
- pvpon("003-1");
- pvpon("004-1");
- announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all);
- areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 15, "Lieutenant Dausen::OnBlackScorpionDeath");
- initnpctimer;
- close;
-
-L_MKHuge:
- addmapmask "003-1", MASK_MATTACK;
- addmapmask "004-1", MASK_MATTACK;
- changemusic "003-1", "misuse.ogg";
- disablenpc("Mana Stone");
- $@SIEGE_TULIM=5; // factor five
- pvpon("003-1");
- pvpon("004-1");
- announce(("##1WARNING! WARNING! Siege starting at Tulimshar!!"), bc_all);
- areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 30, "Lieutenant Dausen::OnBlackScorpionDeath");
- initnpctimer;
- close;
-
OnGuardDeath:
end;
-OnBlackScorpionDeath:
- areamonster("004-1", 0, 0, 79, 81, strmobinfo(1, BlackScorpion), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpionDeath");
- getmapxy(.@m$,.@x,.@y,3);
- if (rand(10000) <= 90+($@SIEGE_TULIM*100))
- makeitem StrangeCoin, 1, .@m$, .@x, .@y;
- end;
-
-OnBlackScorpion2Death:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, BlackScorpion), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death");
- getmapxy(.@m$,.@x,.@y,3);
- if (rand(10000) <= 850+($@SIEGE_TULIM*100))
- makeitem StrangeCoin, 1, .@m$, .@x, .@y;
- end;
-
-OnGreenSlimeDeath:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, GreenSlime), GreenSlime, 1, "Lieutenant Dausen::OnGreenSlimeDeath");
- getmapxy(.@m$,.@x,.@y,3);
- if (rand(10000) <= 200+($@SIEGE_TULIM*100))
- makeitem StrangeCoin, 1, .@m$, .@x, .@y;
- end;
-
-OnCandiedSlimeDeath:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), CandiedSlime, 1, "Lieutenant Dausen::OnCandiedSlimeDeath");
+// Respawn monster from $@SIEGE_TMPMOBS memory
+OnRespawn:
getmapxy(.@m$,.@x,.@y,3);
- if (rand(10000) <= 150+($@SIEGE_TULIM*100))
+ siege_spawn(.@m$, any_of($@SIEGE_TMPMOBS), 1, .name$+"::OnRespawn");
+ if (rand(10000) <= $coinsrate+($@SIEGE_TULIM*50))
makeitem StrangeCoin, 1, .@m$, .@x, .@y;
end;
-OnManaGhostDeath:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), ManaGhost, 1, "Lieutenant Dausen::OnManaGhostDeath");
- getmapxy(.@m$,.@x,.@y,3);
- if (rand(10000) <= 900+($@SIEGE_TULIM*100))
- makeitem StrangeCoin, 1, .@m$, .@x, .@y;
- end;
-
-OnLieutenantDeath:
- getitem StrangeCoin, 1;
- Karma=Karma+1;
- mapannounce("003-1", l("##2The Monster Lieutenant was defeated by @@!", strcharinfo(0)), bc_map);
- $MK_TEMPVAR+=1;
- end;
-
-OnColonelDeath:
- getitem StrangeCoin, 1;
- Karma=Karma+1;
- $MOST_HEROIC$=strcharinfo(0);
- mapannounce("003-1", l("##2The Monster Colonel was defeated by @@!", strcharinfo(0)), bc_map);
- $MK_TEMPVAR+=10;
- end;
-
OnTimer5000:
- areamonster("004-1", 0, 0, 79, 81, "Black Scorpion", BlackScorpion, 5+$@SIEGE_TULIM, "Lieutenant Dausen::OnBlackScorpionDeath");
- areamonster("003-1", 0, 0, 120, 155, "Black Scorpion", BlackScorpion, 5+$@SIEGE_TULIM, "Lieutenant Dausen::OnBlackScorpion2Death");
+ siege_cast("004-1", .name$, 0, TP_TULIM);
+ siege_cast("003-1", .name$, 0, TP_TULIM);
mapannounce("003-1", "##2Message to all Tulimshar NPCs: Take shelter!", bc_map);
disablenpc "Ched";
disablenpc "Aahna";
@@ -293,8 +211,8 @@ OnTimer5000:
end;
OnTimer15000:
- areamonster("004-1", 0, 0, 79, 81, ("Black Scorpion"), BlackScorpion, 5, "Lieutenant Dausen::OnBlackScorpionDeath");
- areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 10, "Lieutenant Dausen::OnBlackScorpion2Death");
+ siege_cast("004-1", .name$, $@SIEGE_TULIM, TP_TULIM);
+ siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM);
disablenpc "Aidan";
disablenpc "Inar";
disablenpc "Malivox";
@@ -306,57 +224,30 @@ OnTimer15000:
disablenpc "Colin";
end;
-OnTimer60000:
- if ($@SIEGE_TULIM >= 1 && $@SIEGE_TULIM < 5) {
- mapannounce("003-1", "##1The Monster Lieutenant arrived!", bc_map);
- areamonster("003-1", 0, 0, 120, 155, ("Monster Lieutenant"), 1077, 1, "Lieutenant Dausen::OnLieutenantDeath");
- }
- areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 3, "Lieutenant Dausen::OnBlackScorpion2Death");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, GreenSlime), 1085, 10+$@SIEGE_TULIM, "Lieutenant Dausen::OnGreenSlimeDeath");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), 1089, 1+$@SIEGE_TULIM, "Lieutenant Dausen::OnCandiedSlimeDeath");
- end;
-
+// Boss after 2 minutes
OnTimer120000:
- if ($@SIEGE_TULIM >= 5) {
- mapannounce("003-1", "##1The Monster Colonel arrived!", bc_map);
- areamonster("003-1", 0, 0, 120, 155, ("Monster Colonel"), 1036, 1, "Lieutenant Dausen::OnColonelDeath");
- }
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 15);
- areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, GreenSlime), 1085, 10, "Lieutenant Dausen::OnGreenSlimeDeath");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 2, "Lieutenant Dausen::OnManaGhostDeath");
- end;
-
-OnTimer180000:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 25);
- areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), 1089, 10, "Lieutenant Dausen::OnCandiedSlimeDeath");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 2, "Lieutenant Dausen::OnManaGhostDeath");
- end;
-
-OnTimer240000:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 25);
- areamonster("003-1", 0, 0, 120, 155, ("Black Scorpion"), BlackScorpion, 1, "Lieutenant Dausen::OnBlackScorpion2Death");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 2, "Lieutenant Dausen::OnManaGhostDeath");
+ siege_boss("003-1", $@SIEGE_TULIM);
+ siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM);
end;
+// Special spawn after 5 minutes
OnTimer300000:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 5);
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, CandiedSlime), 1089, 1, "Lieutenant Dausen::OnCandiedSlimeDeath");
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 1, "Lieutenant Dausen::OnManaGhostDeath");
+ siege_cast("004-1", .name$, $@SIEGE_TULIM, TP_TULIM);
+ siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM);
end;
+OnTimer60000:
+OnTimer180000:
+OnTimer240000:
OnTimer360000:
OnTimer420000:
OnTimer480000:
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 5+$@SIEGE_TULIM);
- areamonster("003-1", 0, 0, 120, 155, ("Red Slime"), 1092, 1+$@SIEGE_TULIM);
+ siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM);
end;
OnTimer540000:
mapannounce("003-1", "##1The Monster Army is getting tired of resistance!", bc_map);
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, SlimeBlast), 1090, 5+$@SIEGE_TULIM);
- areamonster("003-1", 0, 0, 120, 155, strmobinfo(1, ManaGhost), 1068, 1, "Lieutenant Dausen::OnManaGhostDeath");
+ siege_cast("003-1", .name$, $@SIEGE_TULIM, TP_TULIM);
end;
OnTimer600000:
@@ -366,15 +257,10 @@ OnTimer600000:
end;
OnTimer630000:
- removemapmask "003-1", MASK_MATTACK;
- removemapmask "004-1", MASK_MATTACK;
- changemusic "003-1", "bartk_adventure.ogg"; // Restore to default
+ siege_revert("003-1");
+ siege_revert("004-1");
enablenpc("Mana Stone");
$@SIEGE_TULIM=0;
- killmonsterall("003-1", 0);
- killmonsterall("004-1", 0);
- pvpoff("003-1");
- pvpoff("004-1");
announce(("Tulimshar siege is over!"), bc_all);
enablenpc "Ched";
enablenpc "Aahna";
diff --git a/npc/012-1/guards.txt b/npc/012-1/guards.txt
index 080ea00c6..c79c147e9 100644
--- a/npc/012-1/guards.txt
+++ b/npc/012-1/guards.txt
@@ -646,10 +646,6 @@ OnTimer15000:
disablenpc "Rakinorf, Mayor";
end;
-OnTimer60000:
- siege_cast("012-1", .name$, $@SIEGE_HURNS, TP_HURNS);
- end;
-
OnTimer120000:
siege_boss("012-1", $@SIEGE_HURNS);
siege_cast("012-1", .name$, $@SIEGE_HURNS, TP_HURNS);
@@ -661,6 +657,7 @@ OnTimer300000:
siege_cast("012-1", .name$, $@SIEGE_HURNS, TP_HURNS);
end;
+OnTimer60000:
OnTimer180000:
OnTimer240000:
OnTimer360000:
diff --git a/npc/functions/siege.txt b/npc/functions/siege.txt
index 0ca53f45d..6a68450f7 100644
--- a/npc/functions/siege.txt
+++ b/npc/functions/siege.txt
@@ -141,7 +141,7 @@ function script siege_setup {
changemusic .@m$, any("mythica.ogg", "eric_matyas_ghouls.ogg", "misuse.ogg", "Arabesque.ogg");
disablenpc("Mana Stone");
pvpon(.@m$);
- setmapflag(.@m$,mf_bexp,rand(140,160)); // 40~60% EXP UP on siege maps
+ setmapflag(.@m$,mf_bexp,rand(120,140)); // 20~40% EXP UP on siege maps
if (.@msg$ != "")
kamibroadcast(col(.@msg$,1));
return;