summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--npc/008-1/confused-tree.txt57
-rw-r--r--npc/functions/confused-tree-dict.txt22
2 files changed, 56 insertions, 23 deletions
diff --git a/npc/008-1/confused-tree.txt b/npc/008-1/confused-tree.txt
index 5642e600..2d5a5363 100644
--- a/npc/008-1/confused-tree.txt
+++ b/npc/008-1/confused-tree.txt
@@ -42,6 +42,17 @@
if (@menu == 2)
{
+ .@sentence$ = "I am an idiot";
+ mes(l("Please write the following sentence:"));
+ mes("");
+ mesf(" ##B%s.", .@sentence$);
+ input(.@confirm$);
+
+ if (!startswith(strtoupper(.@confirm$), strtoupper(.@sentence$))) {
+ mes(l("Invalid!"));
+ close;
+ }
+
query_sql("TRUNCATE TABLE tree_quotes;");
mes(l("Database erased."));
next();
@@ -154,11 +165,11 @@
if (gettimetick(2) - .last_emote < .emote_rate)
{
++.ignored_times;
- end;
+ return;
}
.last_emote = gettimetick(2);
- emotion(getarg(0, E_SURPRISE));
+ return emotion(getarg(0, E_SURPRISE));
}
function rp {
@@ -213,6 +224,7 @@
// only handling a few of them
switch (ord($@regexmatch$[1]))
{
+ case 73: face(any(E_WINK, E_ANGEL)); break;
case 83: face(any(E_SAD, E_CRYING)); break;
case 85: face(E_SURPRISE); break;
case 93: face(any(E_HEARTEYE, E_HEART)); break;
@@ -280,7 +292,7 @@
&& is_dev() == false)
{
++.ignored_times;
- end;
+ return;
}
.last_reply = gettimetick(2);
@@ -295,6 +307,7 @@
{
htput(.seen_ht, strcharinfo(PC_NAME), gettimetick(2));
}
+ return;
}
function have_you_seen {
@@ -394,7 +407,7 @@
function monologue_player {
return sprintf("Your current monologue is at least %d line%s long.",
- @monologue, rif(@monologue > 1, "s"));
+ @monologue, rif(@monologue != 1, "s"));
}
function who_player {
@@ -404,18 +417,19 @@
function make_quote_table {
// Do not modify this
- return query_sql("CREATE TABLE IF NOT EXISTS `tree_quotes` ("
- " `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,"
- " `char_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',"
- " `grabber` INT(11) UNSIGNED NOT NULL DEFAULT '0',"
- " `timestamp` INT(10) UNSIGNED NOT NULL DEFAULT '0',"
- " `message` VARCHAR(150) NOT NULL DEFAULT '',"
- " PRIMARY KEY (`id`),"
- " KEY `char_id` (`char_id`),"
- " KEY `grabber` (`grabber`)"
- ") ENGINE=MyISAM;");
+ query_sql("CREATE TABLE IF NOT EXISTS `tree_quotes` ("
+ " `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,"
+ " `char_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',"
+ " `grabber` INT(11) UNSIGNED NOT NULL DEFAULT '0',"
+ " `timestamp` INT(10) UNSIGNED NOT NULL DEFAULT '0',"
+ " `message` VARCHAR(150) NOT NULL DEFAULT '',"
+ " PRIMARY KEY (`id`),"
+ " KEY `char_id` (`char_id`),"
+ " KEY `grabber` (`grabber`)"
+ ") ENGINE=MyISAM;");
.last_query = gettimetick(2);
+ return;
}
function grab_quote {
@@ -564,7 +578,7 @@
.@m$ = replacestr(.@o$, "*", ""); // original lowercase clean
- if (.@m$ ~= "(?:^| )tell(?: me)? a(?:n ?other| lame| bad| boring)? joke")
+ if (.@m$ ~= "(?:^| )tell(?: (?:me|him|her|us|them))? a(?:n ?other| lame| bad| boring)? joke")
reply(.jokes$[rand(.jokes)]);
else if (.@m$ ~= "(?:^| )heal me(?:$|[^a-z])")
@@ -583,7 +597,7 @@
else if (.@o$ ~= rp("(?:^[*]| )(?:kicks?|shakes?) .*~t"))
reply(special_drops());
- else if (.@o$ ~= rp("(?:^[*]| )(?:cuts?|nukes?|kills?|chops? down) .*~t"))
+ else if (.@o$ ~= rp("(?:^[*]| )(?:cuts?|nukes?|kills?|chops? down|saws?|hews?|murders?) .*~t"))
reply(.kill$[rand(.kill)]);
else if (.@o$ ~= rp("(?:^[*]| )pokes? .*~t"))
@@ -595,7 +609,7 @@
else if (compare(.@m$, " answer ") && .@m$ ~= "(?:life|universe|everything)(?:$|[^a-z])")
reply(.answer$[rand(.answer)]);
- else if (.@o$ ~= rp("(?:^[*]| )burns? .*~t"))
+ else if (.@o$ ~= rp("(?:^[*]| )(?:burns?|incinerates?|ignites?) .*~t"))
reply(.burning$[rand(.burning)]);
// XXX: maybe here send a fire particle effect
@@ -614,9 +628,12 @@
else if (.@m$ ~= rp("(?:^| )hates? .*~t"))
reply(.hate$[rand(.hate)]);
- else if (.@o$ ~= rp("(?:^[*]| )(?:eats?|shoots?|plucks?|tortures?|slaps?|slaps?|poisons?|breaks?|stabs?|throws?) .*~t"))
+ else if (.@o$ ~= rp("(?:^[*]| )(?:eats?|shoots?|plucks?|tortures?|slaps?|slaps?|poisons?|breaks?|stabs?|throws?|punch(?:es)?) .*~t"))
reply(.pain$[rand(.pain)]);
+ else if (.@o$ ~= rp("(?:^[*]| )(?:climbs?|rides?|mounts?) .*~t"))
+ reply(.climb$[rand(.climb)]);
+
else if (.@m$ ~= "(?:^| )(?:see y(?:a|ou)|good night|(?:bye)?bye+)(?:$|[^a-z])")
reply(.bye$[rand(.bye)]);
@@ -632,7 +649,7 @@
else if (.@m$ ~= "(?:^| )what.* version(?:$|[^a-z])")
reply("%%B ~n, version " + .version + "."); // XXX: maybe return Hercules version and serverdata commit instead
- else if (.@m$ ~= "(?:^| )(?:(?:8|eight)[ -]?ball|do you|should i)(?:$|[^a-z])")
+ else if (.@m$ ~= "(?:^| )(?:(?:8|eight)[ -]?ball|(?:should|would|will|do|does) (?:i|you|he|she|it|we|they))(?:$|[^a-z])")
reply(.eightball$[rand(.eightball)]);
else if (.@m$ ~= "(?:^| )roll(?: a| the)? dice(?:$|[^a-z])")
@@ -921,7 +938,7 @@ OnInit:
face();
// boring stuff below
- .version = 20; // increase this when you make a change
+ .version = 21; // increase this when you make a change
.uptime = gettimetick(2);
.alwaysVisible = true; // the NPC doesn't de-spawn when moving away
.pid = 1; // regex pattern id
diff --git a/npc/functions/confused-tree-dict.txt b/npc/functions/confused-tree-dict.txt
index be9bf27d..4250ec35 100644
--- a/npc/functions/confused-tree-dict.txt
+++ b/npc/functions/confused-tree-dict.txt
@@ -1,6 +1,7 @@
// Evol scripts.
// Author:
// gumi
+// rein
// Based on CrazyTree, originally made by:
// gumi
// pclouds
@@ -190,6 +191,7 @@ function script TREE_dictionaries {
"mermaid",
"merman",
"piano",
+ "prince",
"princess",
"pinkie",
"squirrel",
@@ -311,7 +313,8 @@ function script TREE_dictionaries {
"What kind of stories do giant sequoia trees tell? Tall tales.",
"What is the most frustrating thing about being a tree? Having so many limbs and not being able to walk.",
"What's black, highly dangerous, and lives in a tree? A crow with a machine gun.",
- "What kind of wood doesn't float? Natalie Wood.";
+ "What kind of wood doesn't float? Natalie Wood.",
+ "Two men passed a sign while looking for work. It was for tree fellers. They said: “what a shame, there are only two of us”.";
set getvariableofnpc(.jokes, .npc$), getarraysize(getvariableofnpc(.jokes$, .npc$));
setarray getvariableofnpc(.healing$[0], .npc$),
@@ -415,7 +418,10 @@ function script TREE_dictionaries {
"*is glowing.*",
"*is flaming.*",
"Ehemm. Where are firefighters? I need them now!",
- "*is so hot!.*";
+ "*is so hot!.*",
+ "*slowly catches fire.*",
+ "*trembles with trepidation.*",
+ "*is immune to fire.*";
set getvariableofnpc(.burning, .npc$), getarraysize(getvariableofnpc(.burning$, .npc$));
setarray getvariableofnpc(.kill$[0], .npc$),
@@ -429,7 +435,7 @@ function script TREE_dictionaries {
setarray getvariableofnpc(.love$[0], .npc$),
"♪♪ and IIII.. will alwayyyys loooovvve youuuuu. ♪♪ %%]",
"♪♪ nothing's gonna change my love for you, you oughta know by now how much I love you.. ♪ %%]",
- "♪ ..and then I go and spoil it all, by saying something stupid like: \"I love you.\" ♪",
+ "♪ ..and then I go and spoil it all, by saying something stupid like: “I love you.” ♪",
"♪ ..won't you find a place for me? somewhere in your heart... ♪♪",
"Thank you.",
"♪♪ ..I can't love another when my heart is somewhere far away.. ♪",
@@ -463,6 +469,8 @@ function script TREE_dictionaries {
"*groans.*",
"*cries.*",
"*faints.*",
+ "*shrieks.*",
+ "*hides behind itself.*",
"%%k",
"Why, what did I do to you? %%i";
set getvariableofnpc(.pain, .npc$), getarraysize(getvariableofnpc(.pain$, .npc$));
@@ -540,5 +548,13 @@ function script TREE_dictionaries {
"*goes hide in a corner %%S.*";
set getvariableofnpc(.shut_up, .npc$), getarraysize(getvariableofnpc(.shut_up$, .npc$));
+ setarray getvariableofnpc(.climb$[0], .npc$),
+ "*sways violently.*",
+ "*bends all the way to the ground.*",
+ "*creaks and bends.*",
+ "*welcomes those who come to play %%I.*",
+ "*beams with pride.*";
+ set getvariableofnpc(.climb, .npc$), getarraysize(getvariableofnpc(.climb$, .npc$));
+
return;
}