summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/001-11/Demure.txt53
-rw-r--r--npc/commands/event.txt3
2 files changed, 51 insertions, 5 deletions
diff --git a/npc/001-11/Demure.txt b/npc/001-11/Demure.txt
index 14b3cd1d3..8e14066b3 100644
--- a/npc/001-11/Demure.txt
+++ b/npc/001-11/Demure.txt
@@ -5,6 +5,9 @@
// Valentine Event Master
001-11,40,25,0 script Demure#Valentine NPC_FEMALE,{
+ goto L_Main;
+
+ // Functions
function ScoreValentine {
.@nb = query_sql("SELECT c.name, i.value FROM `acc_reg_num_db` AS i, `char` AS c WHERE i.key='#VALENTINE_POINTS' AND i.account_id=c.account_id ORDER BY i.value DESC LIMIT 10", .@name$, .@value);
@@ -21,6 +24,40 @@
mes("10."+.@name$[9]+" ("+.@value[9]+")");
next;
}
+ // $@VALENTINE_GIFTSTACKS
+ // (account id, gifts to receive)
+ // $@VALENTINE_LOVELETTER
+ // (account id, list of names)
+ function SendGift {
+ mesn;
+ mesq l("How many chocolate do you want to send? You currenly have: @@", countitem(BoxOfChocolates));
+ input @Val_Ammo;
+ if (@Val_Ammo > countitem(BoxOfChocolates)) {
+ mesc l("You don't have that many!");
+ return;
+ }
+ }
+ function GetGift {
+ .@m = htget($@VALENTINE_GIFTSTACKS, getcharid(3));
+ if (.@m > 0) {
+ mesq l("Hey, look, you have @@ boxes to collect!", .@m);
+ .@n$ = htget($@VALENTINE_LOVELETTER, getcharid(3), l("Secret Admirer"));
+ mesq l("They were given with @@ by @@.", any(l("love"), l("passion"), l("affection")), .@n$);
+
+ inventoryplace BoxOfChocolates, .@m;
+ getitem BoxOfChocolates, .@m;
+ htput $@VALENTINE_GIFTSTACKS, getcharid(3), 0;
+ htput $@VALENTINE_LOVELETTER, getcharid(3), "";
+
+ } else {
+ mesq l("Sorry, you don't have any chocolate to pick up.");
+ }
+
+ return;
+ }
+
+// Script begin
+L_Main:
// Safety Check
if ($EVENT$ != "Valentine") {
warp "Save", 0, 0; end;
@@ -35,12 +72,18 @@
next;
do {
mesc l("You currently have @@ points, @@ boxes of chocolate and @@ love letters.", #VALENTINE_POINTS, countitem(BoxOfChocolates), countitem(LoveLetter));
- mesc l("@@ boxes of chocolate were given to you as a gift.", #VALENTINE_OPENED-#VALENTINE_RECEIVED);
+ if (#VALENTINE_OPENED-#VALENTINE_RECEIVED > 0) {
+ mesc l("@@ boxes of chocolate were given to you as a gift.", #VALENTINE_OPENED-#VALENTINE_RECEIVED);
+ // Demure can just send Soren's Chocolate to somebody else.
+ // Everyone else cannot send their gift chocolates. Please don't lose the boxes.
+ if (!is_gm())
+ .@eatfirst=true;
+ }
mes "";
select
l("Information"),
l("Scoreboards"),
- l("Send Chocolate"),
+ rif(!.@eatfirst, l("Send Chocolate")),
l("Receive Chocolate"),
l("Okay, bye");
mes "";
@@ -59,6 +102,7 @@
next;
mes l("When receiving the chocolate, you must eat it before event ends to get a point for that!");
mes l("These boxes cannot be sold, but they'll be deleted a while after the event ends.");
+ mes l("You also cannot send any boxes before eating any you've received, but Demure is an exception for this rule.");
next;
mes l("As with all TMW2 Major Events, the top 1 receive a special pet, and the other ranked ones get diverse rewards.");
mes l("There might be reward for anyone who doesn't gets a rank, but I never count on that. So, let's start?");
@@ -68,9 +112,10 @@
ScoreValentine();
break;
case 3:
+ SendGift(); next;
+ break;
case 4:
- mesn;
- mesq l("NYI");
+ GetGift(); next;
break;
}
} while (@menu != 5);
diff --git a/npc/commands/event.txt b/npc/commands/event.txt
index bf678a5a0..12ea6f301 100644
--- a/npc/commands/event.txt
+++ b/npc/commands/event.txt
@@ -79,6 +79,7 @@ function script GlobalEventMenu {
DelAccRegFromEveryPlayer("#VALENTINE_RECEIVED");
DelAccRegFromEveryPlayer("#VALENTINE_OPENED");
DelAccRegFromEveryPlayer("#VALENTINE_SENT");
+ htdelete $@VALENTINE_GIFTSTACKS;
htdelete $@VALENTINE_LOVELETTER;
$@VALENTINE_LOVELETTER=0;
}
@@ -123,7 +124,7 @@ function script GlobalEventMenu {
case 1: sClear(); set $EVENT$, ""; logmes "Disabled events.", LOGMES_ATCOMMAND;
break;
case 2:
- set $EVENT$, "Valentine"; $@VALENTINE_LOVELETTER = htnew(); logmes "Enabled VALENTINE DAY event.", LOGMES_ATCOMMAND;
+ set $EVENT$, "Valentine"; $@VALENTINE_LOVELETTER = htnew(); $@VALENTINE_GIFTSTACKS = htnew(); logmes "Enabled VALENTINE DAY event.", LOGMES_ATCOMMAND;
break;
case 3: sEaster(); break;
case 4: