summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/001-1/portal.txt7
-rw-r--r--npc/025-2-3/boss.txt1
-rw-r--r--npc/025-2-4/_import.txt1
-rw-r--r--npc/025-2-4/tree.txt39
-rw-r--r--npc/commands/grantpower.txt13
-rw-r--r--npc/functions/hub.txt2
-rw-r--r--npc/functions/util.txt11
7 files changed, 73 insertions, 1 deletions
diff --git a/npc/001-1/portal.txt b/npc/001-1/portal.txt
index 0c02c67c9..428787378 100644
--- a/npc/001-1/portal.txt
+++ b/npc/001-1/portal.txt
@@ -97,6 +97,13 @@ L_TranslationFix:
mes l("EVENT CANCELLED DUE TO PLAYER INACTIVITY");
mes l("%s has EXILED %s from %s.", "", "", "");
mes l("Aurora Events");
+ // Legendary Messages
+ mes l("WARNING: The %s is a %s. Besides being insanely powerful, no duplicate of them exist in the world. They can be tweaked freely and can hold multiple cards as well, and scale according to your level. Use its powers wisely. However, beware: This weapon cannot be traded except with \"@grantpower\" command, and if you abandon the world, the weapon will abandon you as well!", getitemlink(Acorn), b(l("legendary weapon"))), 1;
+ mes l("%s, you did your best to avenge a fallen comrade. It is my wish that you continue protecting this world. Therefore, I bestow upon you, the legendary %s. Please use its powers to protect your friend and the world peace!", "", getitemlink(Acorn)), 2;
+ mes l("%s, you did your best to protect this world inhabitants. It is my wish that you continue protecting this world. Therefore, I bestow upon you, the legendary %s. Please use its powers to protect your friend and the world peace!", "", getitemlink(Acorn)), 2;
+ mes l("%s, you did your best to entretain me. It is my wish that you continue protecting this world. Therefore, I bestow upon you, the legendary %s. Please use its powers to protect your friend and the world peace!", "", getitemlink(Acorn)), 2;
+ mes l("%s, you proved your worth today. It is my wish that you continue protecting this world. Therefore, I bestow upon you, the legendary %s. Please use its powers to protect your friend and the world peace!", "", getitemlink(Acorn)), 2;
+ mesc l("%s, your dedication is touching. It is my wish that you continue protecting this world. Therefore, I bestow upon you, the legendary %s. Please use its powers to protect your friend and the world peace!", "", getitemlink(Acorn)), 2;
mes l("sample");
close;
diff --git a/npc/025-2-3/boss.txt b/npc/025-2-3/boss.txt
index 30d374c2b..ebed55c0f 100644
--- a/npc/025-2-3/boss.txt
+++ b/npc/025-2-3/boss.txt
@@ -25,6 +25,7 @@ OnBossDeath:
} else {
mapannounce "025-2-3", "Boss deafeated by: " + strcharinfo(0), bc_all;
}
+ callfunc "02524_Revenge_BlackBox";
end;
}
diff --git a/npc/025-2-4/_import.txt b/npc/025-2-4/_import.txt
index a012b10d4..e9181f3b4 100644
--- a/npc/025-2-4/_import.txt
+++ b/npc/025-2-4/_import.txt
@@ -1,5 +1,6 @@
// Map 025-2-4: Mana Tree Cave
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/025-2-4/025-2-4_aegis_blackbox.txt",
"npc/025-2-4/_mobs.txt",
"npc/025-2-4/_warps.txt",
"npc/025-2-4/tree.txt",
diff --git a/npc/025-2-4/tree.txt b/npc/025-2-4/tree.txt
index bc6544889..1087346c0 100644
--- a/npc/025-2-4/tree.txt
+++ b/npc/025-2-4/tree.txt
@@ -5,17 +5,54 @@
// Pinkie Cave Tree is part of Legendary Weapons
025-2-4,39,33,0 script Mana Tree NPC_MANATREE,{
+ function manatreeOff;
+ function manatreeAgain;
+ function manatreeAegis;
+
setpcblock(PCBLOCK_HARD, true);
mesc l("A tree glows in this dark cave, surrounded by mana lanes.");
next;
mesc l("This might be the place of a great secret, but yet, all you can do is stare.");
next;
- mesc l("...for now.");
+ if (!true) manatreeOff();
+ else if ($AEGIS_HOLDER$ == "" && @manacool < gettimetick(2)) manatreeAegis();
+ else manatreeAgain();
+
next;
setpcblock(PCBLOCK_HARD, false);
closeclientdialog;
close;
+function manatreeOff {
+ mesc l("...for now.");
+ return;
+}
+
+function manatreeAgain {
+ // TODO: getitem Manapple, 1; // Maybe can obtain one daily/weekly?
+ return;
+}
+
+function manatreeAegis {
+ mesc l("For which player do you wish to pray?");
+ next;
+ input .@prayer$;
+ if (.@prayer$ == strcharinfo(0)) {
+ mesc l("The tree doesn't likes your selfishness.");
+ percentheal -20, -50;
+ return;
+ }
+ @manacool=gettimetick(2)+30;
+ .@cid=getcharid(3, .@prayer$);
+ if (.@cid < 1) {
+ mesc l("Did you just make up that someone?");
+ return;
+ }
+ 02524_Tree_BlackBox(.@prayer$, .@cid);
+ @manacool+=150;
+ return;
+}
+
OnInit:
.sex = G_OTHER;
.distance = 2;
diff --git a/npc/commands/grantpower.txt b/npc/commands/grantpower.txt
index 3ce37e47b..d051c5896 100644
--- a/npc/commands/grantpower.txt
+++ b/npc/commands/grantpower.txt
@@ -55,6 +55,19 @@ OnCall:
detachrid();
attachrid(.@ori);
delitem .@ite, 1;
+ switch (.@ite) {
+ case DemureAxe:
+ $DEMUR_HOLDER$ = .@request$; break;
+ case Tyranny:
+ $TYRAN_HOLDER$ = .@request$; break;
+ case Runestaff:
+ $RUNES_HOLDER$ = .@request$; break;
+ case AegisShield:
+ $AEGIS_HOLDER$ = .@request$; break;
+ default:
+ Exception("Invalid legendary item "+str(.@ite),
+ RB_DEFAULT|RB_IRCBROADCAST); break;
+ }
} else {
Exception("Player not found.", RB_ISFATAL|RB_SPEECH);
}
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index 9974ae624..6f8378660 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -225,6 +225,8 @@ function script HUB_Logout {
// Register logout time
if (!.@dead)
CHAREG_CLEANUP=gettimetick(2);
+
+ callfunc "02524_Avenge_BlackBox", .@dead;
return;
}
diff --git a/npc/functions/util.txt b/npc/functions/util.txt
index 1966ce6df..5d510a709 100644
--- a/npc/functions/util.txt
+++ b/npc/functions/util.txt
@@ -633,6 +633,17 @@ function script alignment {
return 0;
}
+// Returns if you are a legendary weapon holder
+// islegendary( {strcharinfo} )
+function script islegendary {
+ .@you$ = getarg(0, strcharinfo(0));
+ return (.@you$ == $LIGHT_HOLDER$ ||
+ .@you$ == $AEGIS_HOLDER$ ||
+ .@you$ == $TYRAN_HOLDER$ ||
+ .@you$ == $RUNES_HOLDER$ ||
+ .@you$ == $DEMUR_HOLDER$);
+}
+
// Returns if an event is a ranked Aurora Event or not
// (Had to be moved from functions/aurora.txt)
function script FYEventUsesRanking {