summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/012-7/celestia.txt6
-rw-r--r--npc/029-0/event.txt43
-rw-r--r--npc/functions/hub.txt4
-rw-r--r--npc/functions/politics.txt27
-rw-r--r--npc/functions/util.txt2
-rw-r--r--npc/functions/vault.txt4
6 files changed, 64 insertions, 22 deletions
diff --git a/npc/012-7/celestia.txt b/npc/012-7/celestia.txt
index 48b776c6c..8ad80de44 100644
--- a/npc/012-7/celestia.txt
+++ b/npc/012-7/celestia.txt
@@ -6,8 +6,6 @@
// Celestia Yeti King's quest. Designed so if you're with 4 players, all 4 can
// summon the Yeti King, helping you while doing the quest by themselves.
-// TODO: OnPCDieEvent must reset quest
-
012-7,35,49,0 script Celestia NPC_ELF_F,{
.@q1=getq(HurnscaldQuest_Celestia);
@@ -213,7 +211,7 @@ L_DrinkTea:
}
mesc l("To your pleasant surprise the tea is actually quite good.");
next;
- mesc l("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavour, but in a very good way.");
+ mesc l("Despite its initial dubious fragrance, the tea comes off as very smooth and mellow with a bit of natural sweetness and a touch of an earthy forest like flavor, but in a very good way.");
next;
mesc l("Clearly an exotic tea, with a refined flavor fit for a refined woman such as Celestia.");
close;
@@ -258,7 +256,7 @@ L_OtherQuest:
mesn;
mesq l("Wasn't there something on the Holy Bible? About a young boy trapped by his brothers somewhere because envy?");
mesc l("If you don't want to look at the Bible, you can try to solve the following riddle:");
- mesc l("\"When you're thristy, you may look for me. I'm often in desert areas, but this time, the winter has come.\""), 3;
+ mesc l("\"When you're thirsty, you may look for me. I'm often in desert areas, but this time, the winter has come.\""), 3;
CINDY_PLAYER_STRUCK=false;
next;
clear;
diff --git a/npc/029-0/event.txt b/npc/029-0/event.txt
index 031530d29..e2e671100 100644
--- a/npc/029-0/event.txt
+++ b/npc/029-0/event.txt
@@ -235,8 +235,10 @@ OnMinute02:
003-0-2,34,21,0 script Alliance Officer NPC_HALBERDBARBARIAN,{
mesn;
- mesq l("Good %s, %s. The council is not in session right now.", (is_night() ? l("evening") : l("morning")), lg("peasant"));
- if (($BETASERVER || debug) && BaseLevel < 60) goto L_PowerUp;
+ mesq l("Good %s, %s. The council is not in session right now.",
+ (is_night() ? l("evening") : l("morning")),
+ (strcharinfo(0) == $MOST_HEROIC$ ? lg("hero") : lg("peasant")));
+ if (($BETASERVER || debug) && BaseLevel < 60 && !#BETA_REVIVE) goto L_PowerUp;
close;
L_PowerUp:
@@ -249,6 +251,25 @@ L_PowerUp:
next;
mesc l("Awake lost potential? This will mess with your char data irreversibly, beware."), 1;
if (askyesno() == ASK_NO) close;
+ inventoryplace Iten, 1, NPCEyes, 4;
+
+ // Chose a stage (NO TTL)
+ mesc l("Please select where you left off on Main Quest.");
+ mesc l("The one with a star (*) is advised.");
+ mesc l("It is NOT advised for new players to skip parts of the Main Quest.");
+ mesc l("Skipping will FORSAKE rewards for the quest and related; So choose wisely!");
+ mes "";
+ menuint
+ "Nard Quest finished", 1,
+ "Lua Quest finished", 3,
+ "Airlia Quest finished", 6,
+ "Librarian Quest finished", 10,
+ "Blue Sage Quest finished", 12,
+ "(*) King Gelid Quest complete", 17,
+ "Lightbringer/Barbara finished", 19;
+ mes "";
+ // Save stage
+ .@mq = @menuret;
// IP Blacklist
if (array_find($@IPBLIST$, getcharip()) < 0)
@@ -262,13 +283,20 @@ L_PowerUp:
// Skip a few quests
setq ShipQuests_Arpan, 5;
- if (getq(General_Narrator) < 17) {
- // Homunculus
+ if (.@mq > 10)
+ setq NivalisQuest_BlueSage, 12;
+ if (.@mq >= 17) {
sk_lvup(AM_REST);
sk_lvup(AM_RESURRECTHOMUN);
sk_lvup(AM_CALLHOMUN);
- setq General_Narrator, 17;
}
+ if (.@mq >= 18) {
+ BARBARA_STATE=any(1, 2, 3);
+ }
+
+ // Update main quest
+ if (getq(General_Narrator) < .@mq)
+ setq General_Narrator, .@mq;
// Monster points
MPQUEST=true;
@@ -302,14 +330,19 @@ L_PowerUp:
getitembound Bread, 10, 4;
// Regeneration and misc
+ getitem StrangeCoin, 100;
+ Zeny+=50000;
percentheal 100,100;
mesc l("You awake a long forgotten potential, and feel ready to take over the world.");
+ #BETA_REVIVE=true;
close;
OnInit:
.distance=4;
+ /*
if (!$BETASERVER && !debug)
disablenpc .name$;
+ */
end;
}
diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt
index a2a981da9..57bcd915a 100644
--- a/npc/functions/hub.txt
+++ b/npc/functions/hub.txt
@@ -56,6 +56,7 @@ function script HUB_Login {
TUTORIAL=true;
//BaseLevel = get_byte(##00_INFO, 0) + 1;
// TODO: Display quick tutorial
+ dispbottom l("Mirror Lake : Created temporary character; It'll be reset on logout.");
dispbottom l("Mirror Lake : Obtain help with %s.", b("@info"));
}
@@ -214,6 +215,9 @@ function script HUB_Logout {
setq1 HurnscaldQuest_Sagratha, 3;
setq3 HurnscaldQuest_Sagratha, 0;
}
+ // Died or logged out during Yeti King Fight
+ if (getq(HurnscaldQuest_Celestia) > 1)
+ setq HurnscaldQuest_Celestia, 1;
// First death produces a warning message
if (PC_DIE_COUNTER <= 1 && .@dead) {
dispbottom l("Dying outside a town square will cause EXP loss.");
diff --git a/npc/functions/politics.txt b/npc/functions/politics.txt
index 2cc6eb076..0a35d2458 100644
--- a/npc/functions/politics.txt
+++ b/npc/functions/politics.txt
@@ -159,40 +159,46 @@ OnSun0000:
// Send salary to Town Administrators (20% from exports and 5GP/reputation)
// Strange Coins: 1 each 10 reputation points
+ .@msg$=sprintf(
+ "You've received the money for the term (%02d/%02d, the %dth legislature)",
+ gettime(GETTIME_DAYOFMONTH),
+ gettime(GETTIME_MONTH),
+ gettimeparam(GETTIME_WEEKDAY));
+
.@tax=$TULIM_EXPORT/500;
.@tax+=$TULIM_REPUTATION*5;
.@tax=min($TULIM_MONEY, .@tax);
.@cp=limit(1, $TULIM_REPUTATION/10, 10);
$TULIM_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($TULIM_MAYOR$), "Tulimshar Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($TULIM_MAYOR$), "Tulimshar Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
.@tax=$HALIN_EXPORT/500;
.@tax+=$HALIN_REPUTATION*5;
.@tax=min($HALIN_MONEY, .@tax);
.@cp=limit(1, $HALIN_REPUTATION/10, 10);
$HALIN_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($HALIN_MAYOR$), "Halinarzo Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($HALIN_MAYOR$), "Halinarzo Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
.@tax=$HURNS_EXPORT/500;
.@tax+=$HURNS_REPUTATION*5;
.@tax=min($HURNS_MONEY, .@tax);
.@cp=limit(1, $HURNS_REPUTATION/10, 10);
$HURNS_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($HURNS_MAYOR$), "Hurnscald Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($HURNS_MAYOR$), "Hurnscald Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
.@tax=$LOF_EXPORT/500;
.@tax+=$LOF_REPUTATION*5;
.@tax=min($LOF_MONEY, .@tax);
.@cp=limit(1, $LOF_REPUTATION/10, 10);
$LOF_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($LOF_MAYOR$), "LoF Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($LOF_MAYOR$), "LoF Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
.@tax=$NIVAL_EXPORT/500;
.@tax+=$NIVAL_REPUTATION*5;
.@tax=min($NIVAL_MONEY, .@tax);
.@cp=limit(1, $NIVAL_REPUTATION/10, 10);
$NIVAL_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($NIVAL_MAYOR$), "Nivalis Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($NIVAL_MAYOR$), "Nivalis Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
/* Towns with volunteer town admins
.@tax=$FROSTIA_EXPORT/500;
@@ -200,14 +206,14 @@ OnSun0000:
.@tax=min($FROSTIA_MONEY, .@tax);
.@cp=limit(1, $FROSTIA_REPUTATION/10, 10);
$FROSTIA_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($FROSTIA_MAYOR$), "Frostia Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($FROSTIA_MAYOR$), "Frostia Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
.@tax=$CANDOR_EXPORT/500;
.@tax+=$CANDOR_REPUTATION*5;
.@tax=min($CANDOR_MONEY, .@tax);
.@cp=limit(1, $CANDOR_REPUTATION/10, 10);
$CANDOR_MONEY-=.@tax;
- rodex_sendmail(gf_charnameid($CANDOR_MAYOR$), "Candor Townhall", "Term Income", "You've received the money for the term.", .@tax, StrangeCoin, .@cp);
+ rodex_sendmail(gf_charnameid($CANDOR_MAYOR$), "Candor Townhall", "Term Income", .@msg$, .@tax, StrangeCoin, .@cp);
*/
// Conduct elections
@@ -368,7 +374,7 @@ function script POL_TownInfo {
-// Town Managment
+// Town Management
// POL_Manage( TOWNCODE )
function script POL_Manage {
.@town$="$"+getarg(0);
@@ -432,9 +438,10 @@ function script POL_Manage {
break;
mesc l("Are you sure?");
if (askyesno() == ASK_YES) {
+ .@BN=rand2(.@cost/52, .@cost/24) + 1;
.@GP=getd("$"+getarg(0)+"_MONEY");
setd(.@town$+"_MONEY", .@GP-.@cost);
- setd(.@town$+"_EXPORT", .@EX+rand2(4,6));
+ setd(.@town$+"_EXPORT", .@EX+.@BN);
TOWN_ACTIONS[.@TP]+=1;
mesc l("Investment executed"), 2;
next;
@@ -563,7 +570,7 @@ function script POL_Manage {
}
detachrid();
attachrid(.@you);
- kamibroadcast(sprintf("%s has ANNULED THE EXILE %s from %s.",
+ kamibroadcast(sprintf("%s has ANNULLED THE EXILE %s from %s.",
.@MAYOR$, .@ex$, getarg(0)));
TOWN_ACTIONS[.@TP]+=6;
break;
diff --git a/npc/functions/util.txt b/npc/functions/util.txt
index 2ee553b51..5ca6c3d6e 100644
--- a/npc/functions/util.txt
+++ b/npc/functions/util.txt
@@ -991,7 +991,7 @@ function script gettimeparam {
if (.@p == GETTIME_WEEKDAY)
return .@a;
- // Months (estimative)
+ // Months (estimative. FIXME - use (gettime(YEAR)-1970)*12 + gettime(MONTH))
.@t=.@t/30;
if (.@p == GETTIME_MONTH)
return .@t;
diff --git a/npc/functions/vault.txt b/npc/functions/vault.txt
index 050eb4d6f..2911a47c1 100644
--- a/npc/functions/vault.txt
+++ b/npc/functions/vault.txt
@@ -34,8 +34,8 @@ function script MirrorLakeSendTo {
closeclientdialog;
dispbottom l("Darkness fills your vision...");
sleep2(1000);
- //kick(getcharid(3), 7); // 7 is not a valid kick reason
- atcommand("@kick "+strcharinfo(0));
+ kick(getcharid(3), 7); // 7 is not a valid kick reason
+ //atcommand("@kick "+strcharinfo(0));
end;
}