summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-10-08 20:48:01 +0000
committerJesusaves <cpntb1@ymail.com>2021-10-08 20:48:01 +0000
commit5a1088088300a4363feb04a97b08075c585cebc5 (patch)
tree9f4ef401fbc568c973829a9a4de8ec2b5441a0c7
parentd155ce1ed965b6e74cf5b509dd0eb615b4d13834 (diff)
parent99385b26263c27020d8ce526afaa1811e4eceaa1 (diff)
downloadserverdata-5a1088088300a4363feb04a97b08075c585cebc5.tar.gz
serverdata-5a1088088300a4363feb04a97b08075c585cebc5.tar.bz2
serverdata-5a1088088300a4363feb04a97b08075c585cebc5.tar.xz
serverdata-5a1088088300a4363feb04a97b08075c585cebc5.zip
Merge branch 'npc-improvements' into 'master'
NPC Improvements See merge request TMW2/serverdata!68
-rw-r--r--npc/000-0-0/sailors.txt31
-rw-r--r--npc/000-0/sailors.txt16
-rw-r--r--npc/002-1/chefgado.txt10
-rw-r--r--npc/002-1/knife.txt1
-rw-r--r--npc/003-0-1/professor.txt4
-rw-r--r--npc/003-1/aidan.txt6
-rw-r--r--npc/003-1/constableperry.txt17
-rw-r--r--npc/003-1/hasan.txt27
-rw-r--r--npc/003-1/ishi.txt28
-rw-r--r--npc/003-1/lieutenantdausen.txt30
-rw-r--r--npc/014-2/mouboo.txt24
-rw-r--r--npc/functions/captcha.txt22
-rw-r--r--npc/functions/daily.txt18
-rw-r--r--npc/items/croconut.txt19
-rw-r--r--npc/items/emptybox.txt4
-rw-r--r--npc/items/miscrecipes.txt4
-rw-r--r--npc/items/shovel.txt2
-rw-r--r--npc/items/teleporter.txt12
18 files changed, 141 insertions, 134 deletions
diff --git a/npc/000-0-0/sailors.txt b/npc/000-0-0/sailors.txt
index d13802f85..629d58ec3 100644
--- a/npc/000-0-0/sailors.txt
+++ b/npc/000-0-0/sailors.txt
@@ -3,6 +3,7 @@
// Jesusalva
// Description:
// Tutorial
+// TODO: Do not hardcode keyboard keys. The player may have changed the keyboard or even mouse bindings.
000-0-0,30,34,0 script Elmo#sailors NPC_ELMO,{
OnBegin:
@@ -98,23 +99,23 @@ L_Step3:
setcamnpc;
showavatar NPC_ELMO;
mesn "Elmo";
- mesq l("You learn fast, good job. These clothes aren't a mighty armor, but they'll help.");
+ mesq l("You learn fast, good job. These clothes aren't mighty armor, but they'll help.");
next;
mesn "Elmo";
- mesq l("Let's jump straight to action, shall we? I'll spawn a mighty @@ to fight you!", getmonsterlink(Dummy));
+ mesq l("Let's jump straight to action, shall we? I'll build a mighty @@ to fight you!", getmonsterlink(Dummy));
next;
mesn "Elmo";
mesq l("On a computer, you can press @@ to attack it. On mobile, that would be the big button with the number 1.", b(l("Ctrl")));
next;
mesn "Elmo";
- mesq l("Another way to attack it is clicking on it. Now, there are some things you must know before fighting this dangerous creature!");
+ mesq l("Another way to attack it is clicking on it. Now, there are some things you must know before fighting this truly dangerous foe!");
next;
showavatar NPC_MAGIC_ARPAN;
mesn l("Magic Arpan");
- mesq l("Yayaya, by pressing @@ or clicking in @@, you'll open your char status window!", b(l("F2")), b(l("STA")));
+ mesq l("Yayaya, by pressing @@ or clicking in @@, you'll open your character status window!", b(l("F2")), b(l("STA")));
next;
mesn l("Magic Arpan");
- mesq l("You should allocate some attributes to it. You need @@, @@ and @@, on this order of importance.", b(l("Agility")), b(l("Dexterity")), b(l("Strength"))); // b(l("")),
+ mesq l("You should allocate some attributes. You need @@, @@ and @@, on this order of importance.", b(l("Agility")), b(l("Dexterity")), b(l("Strength"))); // b(l("")),
next;
mesn l("Magic Arpan");
mesq l("Once you allocate status points, you can fight it! Good luck, @@!", strcharinfo(0));
@@ -140,24 +141,24 @@ L_Step4:
percentheal 100,100;
mesn "Elmo";
mesq l("Did something happen?");
- mesc l("This is a menu, click on the option and then on send. You can use arrow keys if you prefer.");
+ mesc l("This is a menu, click on the option and then on submit. You can use arrow keys if you prefer.");
mes "";
select
l(">.< \"The Dummy is a real killer!\""),
l("T.T \"Someone else killed my Dummy!\""),
- l("'.' \"I forgot how to allocate status!\""),
+ l("'.' \"I forgot how to allocate points!\""),
l("-.- \"I forgot how to fight!\""),
- l("._. \"What are these status useful for?\""),
+ l("._. \"What are these statuses useful for?\""),
l("^.^ \"Nothing is wrong, don't worry!\"");
mes "";
switch (@menu) {
case 1:
mesn "Elmo";
- mesq l("Well, you clearly don't have a weapon. So, let me explain some quick.");
+ mesq l("Well, you don't have a weapon. So, let me explain quickly.");
next;
mesn "Elmo";
- mesq l("Don't be afraid of death. Of course, in most places, dying will reduce your Experience.");
+ mesq l("Don't be afraid of death. Of course, in most places, dying will make you lose some Experience you gathered.");
next;
mesn "Elmo";
mesq l("But you don't have any experience at the moment, so what do you have to lose?");
@@ -166,7 +167,7 @@ L_Step4:
mesq l("Try killing it, and if it kills you, just come back from death to continue killing it.");
mes l("What I want to say is: Kill non-stop!");
next;
- mesc l("Actually, the Dummy don't fight back. Are you afraid?");
+ mesc l("Actually, the Dummy will not fight back. Are you afraid?");
break;
case 2:
.@mct=mobcount("000-0-0", "Elmo#sailors::OnStep4");
@@ -213,7 +214,7 @@ L_Step4:
mes l("Your @@ determines several small things, including critical attacks and, limited to a certain extent, affect drop rates.", b(l("luck")));
next;
mesn "Elmo";
- mes l("But to defeat this dummy, I would say that %s should do the trick.", b(l("assigning 5 points to str, agi, dex and luck")));
+ mes l("But to defeat this dummy, I would say that %s should do the trick.", b(l("assigning 5 points each to str, agi, dex and luck")));
break;
}
close;
@@ -256,7 +257,7 @@ L_Skip:
L_Ready:
#TUTORIAL_DONE=true;
- //clearitem(); // The dummy don't drop anything :>
+ //clearitem(); // The dummy does not drop anything :>
resetlvl(2);
restorecam;
setq General_Narrator, 0;
@@ -273,12 +274,12 @@ L_Ready:
// Prevent players from forgetting what they were meant to do
// But if they logout, this will never trigger
OnSlow:
- npctalk3 l("Hey @@! You haven't clicked on me yet!", strcharinfo(0));
+ npctalk3 l("Hey @@! You haven't talked to me yet!", strcharinfo(0));
addtimer(30000,"Elmo#sailors::OnSlow2");
end;
OnSlow2:
- npctalk3 l("@@, do you need help? Are you lost? Click me!", strcharinfo(0));
+ npctalk3 l("@@, do you need help? Are you lost? Talk to me!", strcharinfo(0));
dispbottom l("Click on Elmo or Magic Arpan to continue and begin the game...");
addtimer(60000,"Elmo#sailors::OnSlow");
end;
diff --git a/npc/000-0/sailors.txt b/npc/000-0/sailors.txt
index 3a315b107..2e3c00821 100644
--- a/npc/000-0/sailors.txt
+++ b/npc/000-0/sailors.txt
@@ -28,13 +28,14 @@ OnTouch:
if ($EVENT$ == "Steam") goto L_FiresOfSteam;
mesn "Narrator";
- mesc l("You open your eyes. The salt water is not helping your vision.");
+ mesc l("You open your eyes. The remants of the salt water in your eyes is not particularly helping you see.");
mesc l("(Click next button to advance dialogs)"), 3;
next;
mesc l("What in the world is happening?! Where in Jesusalva's name are you?!");
next;
- mesc l("Actually. Who are you again? A headache which doesn't wants to pass strikes you.");
- mesc l("And on the meanwhile, ships sailors are shouting at you.");
+ mesc l("Actually. Who are you again? A headache which doesn't want to pass strikes you.");
+ mesc l("You can hear creaking planks and a sail flapping in the storm. A ship?");
+ mesc l("You hear shouting directed at you. Sailors from the ship?");
next;
showavatar NPC_ORC_MAN;
@@ -53,7 +54,7 @@ OnTouch:
setcamnpc "Sailors", 144, -80;
mesn l("Tritan Voice");
mesq l("We speak various languages on this world. Let's try gesturing!");
- mesq l("Hey, you on the stranded island! Can you hear us?!");
+ mesq l("Hey, you on the dune! Can you hear us?!");
next;
restorecam;
@@ -67,13 +68,13 @@ OnTouch:
next;
showavatar NPC_TRITAN_MAN_SAILOR;
setcamnpc "Sailors", 144, -80;
- mesq lg("This girl needs help, we need to rescue her!", "This guy needs help, we need to rescue him!");
+ mesq lg("This girl needs help, we need to rescue her!", "This boy needs help, we need to rescue him!");
next;
mesn;
mesc l("This is a menu. You can click on the desired option and press \"Send\", and double-clicking should work, too.");
mes "";
select
- l("I don't need a rescue. I'm enjoying myself here."),
+ l("I don't need to be rescued. I'm enjoying myself here."),
l("Thanks... I guess..."),
l("(Don't respond)");
mes "";
@@ -83,7 +84,8 @@ OnTouch:
mesq l("What do you mean? Do you at least have a rowboat with you?!");
next;
mesn l("Billy Bons");
- mesq l("We can't let you die from hunger! That wouldn't be cool at all! And I'm very cool!");
+ // Dying of thirst will set in waaaay sooner than dying of hunger.
+ mesq l("We can't let you die of thirst! That wouldn't be cool at all! And I'm very cool!");
next;
} else if (@menu == 2) {
mes ""; // You don't need to thank us!
diff --git a/npc/002-1/chefgado.txt b/npc/002-1/chefgado.txt
index 4c45ea0a2..6eb08d94c 100644
--- a/npc/002-1/chefgado.txt
+++ b/npc/002-1/chefgado.txt
@@ -29,10 +29,10 @@
L_Knife:
mesn;
- mesq l("I hate sea water, it always make knifes rusty. I already have a stockpile of rusty knifes, don't even know what to do with them.");
- if (TUTORIAL) mesc l("That indeed is true, you can see a pile of rusty knifes on the nearby table.");
+ mesq l("I hate the sea, the salty air always lets my knives rust. I already have a stockpile of rusty knives, don't even know what to do with them.");
+ if (TUTORIAL) mesc l("That indeed is true, you can see a pile of rusty knives on the nearby table.");
if (TUTORIAL) dnext;
- tutmes l("Unlike talking, when trying to pick objects or read signs, you should be at arms distance of them."), l("NOTE"), false;
+ tutmes l("Unlike talking, when trying to pick objects or read signs, you should be at an arms distance of them."), l("NOTE"), false;
tutmes l("This is often 1, 2 or 3 tiles. For talking, usually 4 or 5 tiles. Shouting can be done from 12 up to 18 tiles; But as shouting is rude, most NPCs won't react to it."), l("TUTORIAL"), false;
close;
@@ -60,7 +60,7 @@ L_Ask:
L_Start:
mes "";
mesn;
- mesq l("Great, I need 11 @@. Remember a good food makes a good crew.",getitemlink("PiouLegs"));
+ mesq l("Great, I need 11 @@. Only good food makes a good crew.",getitemlink("PiouLegs"));
setq ShipQuests_ChefGado, 1;
mes "";
menu
@@ -71,7 +71,7 @@ L_Start:
L_Continue:
setq ShipQuests_ChefGado, 1;
mesn;
- mesq l("Do you have the @@/11 @@ I requested? Sailors are getting hungry because you!",countitem("PiouLegs"),getitemlink("PiouLegs"));
+ mesq l("Do you have the @@/11 @@ I requested? The sailors are starving because of you!",countitem("PiouLegs"),getitemlink("PiouLegs"));
mes "";
menu
rif(countitem("PiouLegs") >= 11, l("Yes, take them.")), L_Reward,
diff --git a/npc/002-1/knife.txt b/npc/002-1/knife.txt
index 5628e1650..de0e90b68 100644
--- a/npc/002-1/knife.txt
+++ b/npc/002-1/knife.txt
@@ -33,6 +33,7 @@ L_Give:
setq ShipQuests_Knife, 1;
getitem RustyKnife, 1;
+ // TODO: replace keys with variables since the player may have remapped them, possibly replace the messages below with tutorial messages?
mesn l("Narrator");
mesc l("To open your inventory, use the F3 key or use your mouse to select it in the above menu in your client.");
next;
diff --git a/npc/003-0-1/professor.txt b/npc/003-0-1/professor.txt
index 0fa668d56..7a736c89d 100644
--- a/npc/003-0-1/professor.txt
+++ b/npc/003-0-1/professor.txt
@@ -76,7 +76,7 @@ OnSpeeching:
if (ANCIENTLANGUAGEBOUNCER == 1) {
ANCIENTLANGUAGEBOUNCER=0;
skill TMW2_ANCIENTLANGUAGES, 1, 0;
- dispbottom l("It was a boring speech, but you have learned ancient languages.");
+ dispbottom l("It was a boring lesson, but you have mastered Mananese.");
}
}
@@ -100,7 +100,7 @@ OnSpeeching:
// were fighting instead...
skill(TMW2_SPEECH, .@x, 0);
AFKING+=1;
- npctalk3 l("%s, you're a good student. You have a bright future if you keep listening to me.", strcharinfo(0));
+ npctalk3 l("%s, you're a good student. You will have a bright future if you keep studying.", strcharinfo(0));
dispbottom l("Learning from seeing (aka. AFK-ing) skill LEVEL UP!!");
break;
}
diff --git a/npc/003-1/aidan.txt b/npc/003-1/aidan.txt
index 47c7cf387..400529d84 100644
--- a/npc/003-1/aidan.txt
+++ b/npc/003-1/aidan.txt
@@ -16,7 +16,7 @@
{
select
rif(Zeny >= 2000, l("Register")),
- rif(Zeny < 2000, l("How do I get so much money?!")),
+ rif(Zeny < 2000, l("Where do I get so much money?!")),
l("Not at the moment"),
l("Information");
@@ -77,7 +77,7 @@
if (getq(General_Hunter) == 0) goto L_Assign;
mes "";
goto L_Assign;
- close; // Will never be reach.
+ close; // Will never be reached.
L_Weak:
mesn;
@@ -91,7 +91,7 @@ L_Register:
mesq l("The alliance also have a special program, called ##BGrand Hunter Quest##b, where you kill 10,000 of a monster and get great rewards.");
next;
mesn;
- mesq l("You can gain rares, even. Come register for this special program. It's free!");
+ mesq l("You can gain rare treasures, even. Come register for this special program. It's free!");
if (askyesno() == ASK_YES) {
GHQUEST=1;
setarray GHMEMO, 0, 0, 0;
diff --git a/npc/003-1/constableperry.txt b/npc/003-1/constableperry.txt
index 9eb9b292c..610809534 100644
--- a/npc/003-1/constableperry.txt
+++ b/npc/003-1/constableperry.txt
@@ -15,21 +15,20 @@ L_Intro:
next;
mesq l("Yes, I am a mouboo. Why? Can't a mouboo be a law and order enforcer?!");
next;
- mesq l("Have you ever felt struck? Lost? Didn't know about a quest, or an item is troubling you?");
- mesq l("Have no idea where in the world you are? Or what a certain mob drops, or even if you should challenge it?");
+ mesq l("Have you ever felt stuck? Lost? Didn't know about a quest, or an item is troubling you?");
+ mesq l("Have no idea where in the world you are? Or what a certain foe drops, or if you should even dare to challenge it?");
next;
mesn;
mesq l("Fear not! You can check our [@@https://wiki.moubootaurlegends.org|Wiki@@] to find that and other awesome stuff!");
- //mesq l("Fear not! You can check our [@@https://gitlab.com/TMW2/Docs/wikis/home|Wiki@@] to find that and other awesome stuff!");
mesc l("(To see the rules, use ##B@rules##b.)");
next;
mesq l("You can even join the project there. Contributors are greatly appreciated! %%N");
close;
L_Quest:
- // Quest Requeriment of 48 hours or idle before speaking for 60 min
+ // Quest Requirement of 48 hours or idle before speaking for 60 min
if (AFKING < 57600 && checkidle() < 3600) {
- npctalkonce l("What's that? He seems to be AFK but is not?");
+ npctalkonce l("What's that? They seem to be AFK but are not?");
if (.@touchevent)
end;
else
@@ -38,10 +37,10 @@ L_Quest:
// No warning given
if (!@afkbotwarned) {
mesn;
- mesq l("Stop right there, meliant. I can see you're AFK, it is written in your hat!");
+ mesq l("Stop right there, miscreant. I can see you're AFK, it is written on your hat!");
next;
mesn;
- mesq l("Moving while AFK is botting! I'll send you to a %s if you move while AFK! YOU HAVE BEEN WARNED!", b(l("cold, hard, iron cell")));
+ mesq l("Moving while AFK is botting! I'll send you to a %s if you move while AFK! ##BYOU HAVE BEEN WARNED!##b", b(l("cold, bleak and isolated cell")));
@afkbotwarned=true;
close;
}
@@ -52,7 +51,7 @@ L_Quest:
L_NowYouHaveDoneIt:
mesn;
- mesq l("NOW YOU HAVE DONE IT! By the powers to me vested as a Constable and Game Master, I sentence you to HALF HOUR IN A %s!", b(strtoupper(l("cold, hard, iron cell"))));
+ mesq l("##BNOW YOU HAVE DONE IT!##b By the powers to me vested as a Constable and Game Master, I sentence you to HALF AN HOUR IN A %s!", b(strtoupper(l("cold, bleak and isolated cell"))));
next;
mesn;
mesq l("Do you have any last wishes before being JAILED for your CRIMES?!");
@@ -81,7 +80,7 @@ L_NowYouHaveDoneIt:
getitem Blanket, 1;
setq1 FrostiaQuest_AFKCap, 3;
} else {
- mesq l("This is not the first time you're arrested for AFK botting, so, NO!");
+ mesq l("This is not the first time you've been arrested for AFK botting, so, ##BNO!##b");
}
break;
case 5:
diff --git a/npc/003-1/hasan.txt b/npc/003-1/hasan.txt
index 11df5e8ce..08d9cacdb 100644
--- a/npc/003-1/hasan.txt
+++ b/npc/003-1/hasan.txt
@@ -2,20 +2,20 @@
// Author:
// Jesusalva
// Description:
-// Hasan is the city bully and steals the player. He lost his father to a Murderer
-// Scorpion. Will respect player if they kill one. His mother is Sorfina, whom
-// explains this and cries that he never touched a Soul Menhir. Allowing player
-// to kill scorpion on Mahoud's Basement.
+// Hasan is the city bully and steals from the player. He lost his father to a Murderer
+// Scorpion. Will respect player if they kill one. His mother is Sorfina, who
+// explains this and cries that he never touched a Soul Menhir. Allows the player
+// to kill the scorpion on Mahoud's Basement.
//
// Player must report theft first to Dausen, who will tell the player that's
-// normal and nobody messes with Hasan, and giving player pointer that he should
+// normal and nobody messes with Hasan, and giving player a pointer that they should
// tell his mother, Sorfina.
//
-// Reward: Cotton Short, Hasan won't steal you anymore.
+// Reward: Cotton Short, Hasan won't steal from you anymore.
//
// GETQ1 Variable Value;
-// 0 - Never stolen by Hasan
-// 1 - Already stolen by Hasan
+// 0 - Hasan has never stolen from the player
+// 1 - Hasan already stole from the player
// 2 - Dausen pointed player to Sorfina
// 3 - Sorfina unlocked Mahoud's Basement
// 4 - Player killed Murderer Scorpion
@@ -37,7 +37,7 @@
if (getq(TulimsharQuest_Hasan) == 4) goto L_Finish;
if (getq(TulimsharQuest_Hasan) >= 5) goto L_Complete;
mesn strcharinfo(0);
- mesq l("Give me back what you've stole, thief!");
+ mesq l("Give me back what you stole, thief!");
next;
mesn;
mesq l("I stole nothing from you. Do you have any proof?");
@@ -62,16 +62,17 @@ L_Print:
mesq l("Photoshopped. Definitely. Good luck convincing somebody with that! %%a");
next;
mesn;
- mesq l("If you go to Lieutenant Dausen, he'll say that you used Gimp. Just give up.");
+ mesq l("If you go to Lieutenant Dausen, he'll say that you used GIMP. Just give up.");
close;
// TODO
L_Finish:
mesn;
- mesq l("Is that... Wait... Wow. You... Killed a murderer scorpion.");
+ // The scorpion and not a scorpion because of dramatic buildup.
+ mesq l("Is that... Wait... Wow. You... Killed the murderer scorpion.");
next;
mesn;
- mesq l("I promise I'll never steal from you again. Here, take this shorts.");
+ mesq l("I promise I'll never steal from you again. Here, take these shorts.");
mesq l("Good job, man!");
setq TulimsharQuest_Hasan, 5;
getitem CottonShorts, 1;
@@ -164,7 +165,7 @@ OnTouch:
end;
L_Steal:
- npctalkonce(l("*whistle*"));
+ npctalkonce(l("*whistles*"));
if (getq(TulimsharQuest_Hasan) == 0) goto L_DoSteal;
if (getq(TulimsharQuest_Hasan) <= 4 && rand(0,100) < 20) goto L_DoSteal;
end;
diff --git a/npc/003-1/ishi.txt b/npc/003-1/ishi.txt
index 5f1dbb99f..797f0b424 100644
--- a/npc/003-1/ishi.txt
+++ b/npc/003-1/ishi.txt
@@ -3,8 +3,8 @@
// Crazyfefe
// Jesusalva
//
-// Do not add void items to array.
-// note : the rare item system suck.
+// Do not add void items to the array.
+// note: the rare item system sucks.
003-1,97,97,0 script Ishi NPC_PLAYER_ARGAES,{
@@ -14,8 +14,9 @@
close;
}
if (BaseLevel < 10) {
- dispbottom l("##1Bug abuser detected! Automatically banning!!");
- atcommand "@ban 5mn "+strcharinfo(0);
+ // TODO: make jail stuff a function and replace this with the new function
+ dispbottom l("##1You abused a bug and will be jailed. If this was done in error, you have found a bug. Contact the nearest developer if this is the case.");
+ atcommand "@jailfor 5mn "+strcharinfo(0);
end;
}
@@ -37,8 +38,8 @@
if (Mobpt < @mpq_cost)
{
mesn l("Ishi, the Rewards Master");
- mesq l("Welcome! I see you have @@ Monster Points. But that isn't enough to get items at your current level, sorry!", Mobpt);
- mesc l("I need at minimum @@ Monster Points to get items at current level.",@mpq_cost);
+ mesq l("Welcome! I see you have %d Monster Points. But that isn't enough to get items at your current level, sorry!", Mobpt);
+ mesc l("I need at minimum %d Monster Points to get items at current level.",@mpq_cost);
close;
}
@@ -99,10 +100,11 @@
}
mesn l("Ishi, the Rewards Master");
- mesq l("Welcome! I see you have @@ Monster Points. Would you like to exchange some of those for items?", Mobpt);
+ // Highlight the amount of monster points in bold for better visibility since players will probably exchange monster points a lot
+ mesq l("Welcome! I see you have ##B%d Monster Points##b. Would you like to exchange some of those for items?", Mobpt);
next;
if (@mpq_cost > 0)
- mesc l("You can get up to @@ items.", (Mobpt/@mpq_cost));
+ mesc l("You can get up to %d items.", (Mobpt/@mpq_cost));
menuint
rif(Mobpt >= @mpq_cost, "1"), 1,
@@ -174,18 +176,18 @@ L_Items:
if (.@lucked) {
mes "";
mes l("Wow!");
- mes l("I can't believe.");
- mes l("you got lucky and got a(n) @@!", getitemlink(.@reward));
+ mes l("I can't believe it.");
+ mes l("You got lucky and got a(n) %s!", getitemlink(.@reward));
mes "";
} else {
- mesq l("You received one @@!", getitemlink(.@reward));
+ mesq l("You received one %s!", getitemlink(.@reward));
}
}
close;
L_Continue:
- mesq l("You still have @@ Monster Points! Do you want more items?", Mobpt);
+ mesq l("You still have ##B%d Monster Points##b! Do you want more items?", Mobpt);
select
l("Yes"),
l("No");
@@ -205,7 +207,7 @@ L_Give_all:
.@var = Mobpt / @mpq_cost;
if (.@var > 50) { // limit to avoid lag server. Probably a bad idea.
.@var = 50;
- mes l("You have too much points. I can't allow you to take all at once right now. I'll try to give you 50, and you come back later!");
+ mes l("You have too many points. I can't allow you to take all at once right now. I'll try to give you 50, and you can come back later!");
next;
}
diff --git a/npc/003-1/lieutenantdausen.txt b/npc/003-1/lieutenantdausen.txt
index 44b410dcf..d2edf6265 100644
--- a/npc/003-1/lieutenantdausen.txt
+++ b/npc/003-1/lieutenantdausen.txt
@@ -42,7 +42,7 @@
next;
select
rif(!.@q, l("Yes sir. I will help them.")),
- rif(getq(TulimsharQuest_Hasan) == 1, l("A guy named Hasan stole me!")),
+ rif(getq(TulimsharQuest_Hasan) == 1, l("A guy named Hasan stole from me!")),
rif (strcharinfo(2) == "Monster King", l("I'm with the Monster King.")),
l("What can you say about the monsters here?"),
l("Good bye, sir.");
@@ -60,7 +60,7 @@
// Hasan Quest
case 2:
setq TulimsharQuest_Hasan, 2;
- speech S_FIRST_BLANK_LINE, lg("Ah, Hasan... Sorry pal, afraid I can't do anything for you. Try talking to his mother Sorfina, she is on Mahoud's house, near the Inn.");
+ speech S_FIRST_BLANK_LINE, lg("Ah, Hasan... Sorry pal, afraid I can't do anything for you. Try talking to his mother Sorfina, she is in Mahoud's house, near the Inn.");
break;
// The Monster King guild have a special menu
case 3:
@@ -89,11 +89,11 @@ L_Reward:
next;
- speech 0x0,
- l("Wait a minute..."),
- l("The Tulimshar guards needs an freelance employee who would help us in our work. We are searching for people as you."),
- l("Take this badge, so you can get access to the guard house. You will find more work there. Bye, and good luck!");
- close;
+ speech 0x0,
+ l("Wait a minute..."),
+ l("The Tulimshar guards needs an freelance employee who would help us with our work. We are searching for people like you."),
+ l("Take this badge, so you can enter the guard house. You will find more work there. Bye, and good luck!");
+ return;
// Mob Tutorial Quest
function DausenMobTutorial {
@@ -134,10 +134,10 @@ function DausenMobTutorial {
mesq l("So. Uhm. The monsters here have varying levels of strength... I think the best way is to witness that yourself.");
next;
mesn;
- mesq l("Do you see the crocs, with their claws and such? They have high defense, this means your attacks deal less damage.");
+ mesq l("Do you see the crocs, with their claws and hard shell? They have high defense, this means your attacks deal less damage.");
next;
mesn;
- mesq l("They're not too dangerous, but takes a lot to kill. So, if you kill 10 of them, I'll know you're dedicated in learning which monsters are out there.");
+ mesq l("They're not too dangerous, but they can take a lot of hits. So, if you kill 10 of them, I'll know you're dedicated in learning which monsters are out there.");
next;
mesn;
mesq l("Can you do that? I'll be waiting!");
@@ -149,7 +149,7 @@ function DausenMobTutorial {
// Level Requeriment (same as blubs)
if (BaseLevel < 14) {
mesn;
- mesq l("There's some diversity, but you should keep aiming at helping people and killing small-fry. If you ever want a challenge, there's a Giant Maggot inside the town which will one-shot you.");
+ mesq l("There's some diversity, but you should keep aiming at helping people and killing small-fry. If you ever want a challenge, there's a Giant Maggot inside the town which can kill you in one hit.");
next;
mesn;
mesq l("Have you found Tulimshar's Secret Beach yet? Tulimshar is full of secrets. Some NPCs which only say hi may say something else depending on your level or insistence.");
@@ -158,10 +158,10 @@ function DausenMobTutorial {
// Reward
if (.@k >= 37) {
mesn;
- mesq l("Hmm, that's some progress. Nobody goes to the beach because these slimes, but it looks like this might change sometime soon.");
+ mesq l("Hmm, that's some progress. Nobody goes to the beach because of these slimes, but it looks like this might change sometime soon.");
next;
mesn;
- mesq l("Also, the Inn folks said the Ducks keep bothering them, but they've noticed a small decrease lately.");
+ mesq l("Also, the Inn folks said the Ducks keep bothering them, but they've noticed a small decrease already.");
next;
mesn;
mesq l("I don't know what you did, but both the Ducks and Blubs did got scared. I thank you in the name of the city guard. Please come back later.");
@@ -176,13 +176,13 @@ function DausenMobTutorial {
mesq l("West of here is a beach. There's a secret passage to it, underground. In there you'll find slime-like creatures called Blubs.");
next;
mesn;
- mesq l("Some are small, others are bigger. But they all fight togheter, so be mindful when they're in groups.");
+ mesq l("Some are small, others are bigger. But they all fight together, so be mindful when they're in groups.");
next;
mesn;
- mesq b(l("The big one without hat"))+" "+l("is your target. They spawn smaller versions of itself! Kill @@ of them and make the beach safe for tourists.", 37);
+ mesq b(l("The big one without hat"))+" "+l("is your target. They spawn smaller versions of themselves! Kill @@ of them and make the beach safe for tourists.", 37);
next;
mesn;
- mesq l("Or make yourself useful killing a Duck. They steal all Cherry Cake from the Inn and the staff is getting angry at me. It'll serve, too.");
+ mesq l("Or make yourself useful by killing some Ducks. They snatch all the Cherry Cake from the Inn and the staff is getting angry at me. It'll serve, too.");
compareandsetq TulimsharQuest_MobTutorial, 2, 3;
close;
case 4:
diff --git a/npc/014-2/mouboo.txt b/npc/014-2/mouboo.txt
index 2ed7f1b83..303310551 100644
--- a/npc/014-2/mouboo.txt
+++ b/npc/014-2/mouboo.txt
@@ -29,7 +29,7 @@
L_Begin:
.@q=getq(HurnscaldQuest_InjuriedMouboo);
.@q2=getq2(HurnscaldQuest_InjuriedMouboo);
- mesn l("Injuried Mouboo");
+ mesn l("Injured Mouboo");
mesq l("Booo....");
mesc l("The Mouboo seems to be lying in pain.");
next;
@@ -42,7 +42,7 @@ L_Begin:
switch (@menu) {
case 3:
mesc l("The Mouboo is lying down on the grass.");
- mesc l("There doesn't seems to be any physical wound.");
+ mesc l("There doesn't seem to be any physical wound.");
mesc l("A closer inspection suggests this mouboo has been... CURSED.");
if (.@q == 0)
setq HurnscaldQuest_InjuriedMouboo, 1, 100;
@@ -134,7 +134,7 @@ L_Begin:
// If ID is invalid, there's not enough items, it is bound = Cannot bury
if (.@id < 1) {
- mesc l("You are not using a weapon for a merciful (?) last blow.");
+ mesc l("You are not using a weapon for a merciful last blow.");
close;
}
@@ -143,7 +143,7 @@ L_Begin:
next;
if (askyesno() == ASK_YES) {
.@atk=getiteminfo(.@id, ITEMINFO_ATK);
- mesn l("Injuried Mouboo");
+ mesn l("Injured Mouboo");
if (.@q2 < 20)
mesq l("Re-ref... Reflect.");
else
@@ -187,19 +187,19 @@ L_Healed:
mesc l("Give a @@ to the Mouboo?", getitemlink(Coffee));
next;
if (askyesno() == ASK_YES) {
- mesn l("Injuried Mouboo");
- mesc l("*scream*");
+ mesn l("Injured Mouboo");
+ mesc l("*screams*");
mes "";
- mesc l("The Mouboo doesn't wants to drink the Coffee. Try to force him to drink anyway?");
+ mesc l("The Mouboo doesn't want to drink the Coffee. Try to force it to drink anyway?");
next;
if (askyesno() == ASK_YES) {
delitem Coffee, 1;
- mesc l("There's no change in the Mouboo condition.");
+ mesc l("There's no change in the condition of the poor Mouboo.");
next;
- mesc l("Maybe Hurnscald alchemist, Wyara, could explain why.");
+ mesc l("Maybe the Hurnscald alchemist, Wyara, could explain why.");
} else {
- mesc l("Coffee is good, why the Mouboo don't want it?");
- mesc l("Maybe someone in Hurnscald can help me?");
+ mesc l("Coffee is good, why does the Mouboo refuse to drink it?");
+ mesc l("Maybe someone in Hurnscald can help me.");
}
}
}
@@ -215,7 +215,7 @@ L_Uncursed:
close;
L_Killed:
- mesc l("Did this Mouboo just blinked? No, I made sure to kill it. Must have been my imagination.");
+ mesc l("Did this Mouboo just blink? No, I made sure it was truly dead. Must have been my imagination.");
close;
OnInit:
diff --git a/npc/functions/captcha.txt b/npc/functions/captcha.txt
index 9b69ad422..30e8b3c7a 100644
--- a/npc/functions/captcha.txt
+++ b/npc/functions/captcha.txt
@@ -79,7 +79,7 @@ function script CaptchVal {
function script CaptchExample {
if (!CAPTCHA_TIME || getarg(0, false)) {
- dispbottom("##1TO REPLY TO CAPTCHAS: @capcha <numeric answer>##1");
+ dispbottom("##1TO REPLY TO CAPTCHAS: @captcha <numeric answer>##1");
dispbottom l("Example: Give the answer for the following: one+1");
dispbottom l("Reply: %s", b("@captcha 2"));
dispbottom b(l("This example will not be shown again."));
@@ -105,19 +105,19 @@ OnCall:
dispbottom l("CAPTCHA: An error happened, try again."); end;}
// Verify answer
- .@ans$ = implode(.@atcmd_parameters$, " ");
+ .@ans$ = implode(.@atcmd_parameters$, " ");
.@ans=atoi(.@ans$);
if (.@ans == CAPTCHA_ANSWER) {
CAPTCHA_OK=gettimetick(2)+.cooldown;
$@BOTCHECK_TARGET=0;
dispbottom any(
- l("captcha successful"),
- l("captcha ok"),
- l("correct"),
- l("understood"),
- l("not bad"),
- l("hmpf. That'll do."),
- l("a bit longer and I would have jailed you %%\\ "),
+ l("Captcha successful"),
+ l("Captcha ok"),
+ l("Correct"),
+ l("Understood"),
+ l("Not bad"),
+ l("Hmpf. That'll do."),
+ l("A bit longer and I would have jailed you %%\\ "),
l("%%\\ that'll do."),
l("%%N"));
dispbottom l("Remember: Players can also help enforcing no-AFK-bot rule!");
@@ -168,7 +168,7 @@ OnTimer5000:
// 2. Player must be jailed, and we continue
if (CAPTCHA_TIME < CAPTCHA_OK) {
atcommand("@jailfor 40mn "+strcharinfo(0));
- dispbottom l("You failed to reply captcha in time and was arrested for AFK Botting. You can use @jailtime to keep track of time left.");
+ dispbottom l("You failed to reply to the captcha in time and were arrested for AFK Botting. You can use @jailtime to keep track of time left.");
CAPTCHA_OK=CAPTCHA_TIME;
detachrid();
continue;
@@ -231,7 +231,7 @@ function captchaProbe {
// Timer expired? Ban hammer
if (CAPTCHA_TIME+.thr > gettimetick(2) && CAPTCHA_OK <= CAPTCHA_TIME) {
atcommand("@jailfor 30mn "+strcharinfo(0));
- dispbottom l("You failed to reply captcha in time and was arrested for AFK Botting. You can use @jailtime to keep track of time left.");
+ dispbottom l("You failed to reply to the captcha in time and were arrested for AFK Botting. You can use @jailtime to keep track of time left.");
CaptchExample(true);
$@BOTCHECK_TARGET=false;
CAPTCHA_OK=CAPTCHA_TIME;
diff --git a/npc/functions/daily.txt b/npc/functions/daily.txt
index 5b75c801f..522d14a07 100644
--- a/npc/functions/daily.txt
+++ b/npc/functions/daily.txt
@@ -56,7 +56,7 @@ function script daily_login_bonus_handler {
} else if (#LOGIN_STREAK > 27) {
getitem StrangeCoin, 2;
getitem CasinoCoins, 1;
- dispbottom l("##2 @@ Days login bonus: ##B2x @@, 1x @@##b", #LOGIN_STREAK, getitemlink(StrangeCoin), getitemlink(CasinoCoins));
+ dispbottom l("##2 %d Days login bonus: ##B2x %s, 1x %s##b", #LOGIN_STREAK, getitemlink(StrangeCoin), getitemlink(CasinoCoins));
} else if (#LOGIN_STREAK == 27) {
#LOGIN_ALLTIME+=1;
.@am=1;
@@ -102,37 +102,37 @@ function script daily_login_bonus_handler {
if (.@am)
getitem .@prize, .@am;
- dispbottom l("##2 27 Days login bonus: ##B1x @@##b", getitemlink(.@prize));
+ dispbottom l("##2 27 Days login bonus: ##B1x %s##b", getitemlink(.@prize));
} else if (#LOGIN_STREAK == 21) {
getitem BronzeGift, 1;
- dispbottom l("##2 21 Days login bonus: ##B1x @@##b", getitemlink(BronzeGift));
+ dispbottom l("##2 21 Days login bonus: ##B1x %s##b", getitemlink(BronzeGift));
} else if (#LOGIN_STREAK == 14) {
getitem BronzeGift, 1;
- dispbottom l("##2 14 Days login bonus: ##B1x @@##b", getitemlink(BronzeGift));
+ dispbottom l("##2 14 Days login bonus: ##B1x %s##b", getitemlink(BronzeGift));
} else if (#LOGIN_STREAK == 7) {
getitem StrangeCoin, 3;
- dispbottom l("##2 7 Days login bonus: ##B3x @@##b", getitemlink(StrangeCoin));
+ dispbottom l("##2 7 Days login bonus: ##B3x %s##b", getitemlink(StrangeCoin));
} else if (#LOGIN_STREAK == 3) {
getitem StrangeCoin, 1;
- dispbottom l("##2 3 Days login bonus: ##B1x @@##b", getitemlink(StrangeCoin));
+ dispbottom l("##2 3 Days login bonus: ##B1x %s##b", getitemlink(StrangeCoin));
} else if (#LOGIN_STREAK % 3 == 0) {
.@value=max(20, rand2(#LOGIN_STREAK, #LOGIN_STREAK*2));
.@value+=(BaseLevel*5/2)+rand2(JobLevel, JobLevel*7/20);
.@value=.@value * 5 / 4; // Bonus 25%
Zeny=Zeny+.@value;
- dispbottom l("##2Daily login bonus: ##B@@ GP##b", .@value);
+ dispbottom l("##2Daily login bonus: ##B%d GP##b", .@value);
} else if (#LOGIN_STREAK % 3 == 2) {
.@value=max(5, rand2(0, (#LOGIN_STREAK/4)));
.@value+=(BaseLevel**2);
.@value=(.@value*3/4)+#LOGIN_STREAK; // 50% → 75%
getexp .@value, 0;
- dispbottom l("##2Daily login bonus: ##B@@ EXP##b", .@value);
+ dispbottom l("##2Daily login bonus: ##B%d EXP##b", .@value);
} else {
.@value=max(5, rand2(0, (#LOGIN_STREAK/4)));
.@value+=(JobLevel**2);
.@value=(.@value/2)+#LOGIN_STREAK; // 33% → 50%
getexp 0, .@value;
- dispbottom l("##2Daily login bonus: ##B@@ Job Exp.##b", .@value);
+ dispbottom l("##2Daily login bonus: ##B%d Job Exp.##b", .@value);
}
// Handle event login bonus
diff --git a/npc/items/croconut.txt b/npc/items/croconut.txt
index 39c420316..eececb0f7 100644
--- a/npc/items/croconut.txt
+++ b/npc/items/croconut.txt
@@ -4,13 +4,13 @@
// Reid
// Jesusalva
// Description:
-// Allows to cut a Croconut in multiple parts.
+// Allows to break a Croconut into multiple parts.
- script Croconut NPC_HIDDEN,{
close;
OnUse:
- mesc l("Do you want to cut this @@?", getitemlink(Croconut));
+ mesc l("Do you want to break open this %s?", getitemlink(Croconut));
select
l("Yes."),
@@ -40,12 +40,13 @@ L_Weapon:
}
L_TooWeak:
+ // Croconuts do not heal much. So opening them without fail should be possible at relatively low strength levels.
.@q = rand2(5);
- if (readparam2(bStr) > 30)
+ if (readparam2(bStr) > 10)
.@q = .@q + 1;
- if (readparam2(bStr) > 60)
+ if (readparam2(bStr) > 25)
.@q = .@q + 1;
- if (readparam2(bStr) > 90)
+ if (readparam2(bStr) > 35)
.@q = .@q + 1;
if (.@q == 0) goto L_TooWeakLost;
@@ -54,23 +55,23 @@ L_TooWeak:
if ( (.@q > 6) ) goto L_Good;
L_TooWeakLost:
- dispbottom l("Ops! You destroyed your @@.", getitemlink(Croconut));
+ dispbottom l("Oops! You destroyed your %s.", getitemlink(Croconut));
close;
L_TooWeakFail:
- dispbottom l("Well... you did not succeed in opening this @@.", getitemlink(Croconut));
+ dispbottom l("Well... you did not succeed in opening this %s.", getitemlink(Croconut));
getitem Croconut, 1;
close;
L_Weak:
- dispbottom l("You opened the @@ in two parts, but you crushed one of them.", getitemlink(Croconut));
+ dispbottom l("You broke the %s into two parts, but you crushed one of them.", getitemlink(Croconut));
getitem HalfCroconut, 1;
close;
L_Good:
- dispbottom l("You perfectly cut your @@ into two edible parts.", getitemlink(Croconut));
+ dispbottom l("You perfectly cut your %s into two edible parts.", getitemlink(Croconut));
getitem HalfCroconut, 2;
close;
diff --git a/npc/items/emptybox.txt b/npc/items/emptybox.txt
index b49a12b6c..ec667ebdc 100644
--- a/npc/items/emptybox.txt
+++ b/npc/items/emptybox.txt
@@ -2,14 +2,14 @@
// Authors:
// Jesusalva
// Description:
-// Allows to mount your own fish/plushroom/croconut box
+// Allows to create your own fish/plushroom/croconut box
- script Empty Box#it NPC_HIDDEN,{
close;
OnUse:
mesn;
- mesc l("You can fill this box with the following:");
+ mesc l("You can fill this box with the following items:");
mesc l("- @@ @@", 7, getitemlink(GrassCarp));
mesc l("- @@ @@", 8, getitemlink(Croconut));
mesc l("- @@ @@", 20, getitemlink(CommonCarp));
diff --git a/npc/items/miscrecipes.txt b/npc/items/miscrecipes.txt
index 1dee0861f..d0df7f3aa 100644
--- a/npc/items/miscrecipes.txt
+++ b/npc/items/miscrecipes.txt
@@ -9,7 +9,7 @@ function script TerraniteBlueprint {
// Lucky roll (0.25%)
if (rand2(2500) < 1) {
getitem AncientBlueprint, 1;
- dispbottom l("Wait a minute... This is written in Mananese! I can't read!");
+ dispbottom l("Wait a minute... This is written in Mananese! I can't read it!");
return;
}
@@ -49,7 +49,7 @@ function script LegendaryBlueprint {
// Unlucky roll (0.25%)
if (rand2(2500) < 1) {
getitem AncientBlueprint, 1;
- dispbottom l("Wait a minute... This is written in Mananese! I can't read!");
+ dispbottom l("Wait a minute... This is written in Mananese! I can't read it!");
return;
}
diff --git a/npc/items/shovel.txt b/npc/items/shovel.txt
index 7f5132a08..947d89eec 100644
--- a/npc/items/shovel.txt
+++ b/npc/items/shovel.txt
@@ -73,7 +73,7 @@ function script shovel_scatter {
function Dig {
- // First check: Did some player burried a TREASURE? O.o
+ // First check: Did some player bury some TREASURE? O.o
getmapxy(.@map$, .@x, .@y, 0);
for (.@i = 0; .@i < getarraysize($WorldBuriedTreasures_id); .@i++)
{
diff --git a/npc/items/teleporter.txt b/npc/items/teleporter.txt
index d08f006c7..b7e311b85 100644
--- a/npc/items/teleporter.txt
+++ b/npc/items/teleporter.txt
@@ -10,8 +10,8 @@
function Cooldown {
mesn;
- mesc l("Successive warps cause time-space distortions and thus, are not allowed.");
- mesc l("You can use it again in @@.", FuzzyTime(TELEPORTER_TIME));
+ mesc l("Successive warps cause time-space distortions and are thus not allowed.");
+ mesc l("You can use it again in %s.", FuzzyTime(TELEPORTER_TIME));
getitem @itemid, 1;
close;
}
@@ -26,14 +26,14 @@ OnUse:
if (TELEPORTER_TIME > gettimetick(2))
Cooldown();
if (BaseLevel < 20) {
- dispbottom l("This is too powerful to you. Get level 20 before attempting to use.");
+ dispbottom l("The might contained in this curious object is too powerful. You have to be at least level 20 to harness it.");
ReturnItem();
}
// TODO: Are you already at target point?
- // It have at least 20% chance to break
- // Chances begin at 100%, and lower in 0.01% each second
- // It will never be below 15%, which happens after x seconds
+ // The chance to break is always at least 20%
+ // Begins at 100% and each second will subtract 0.01%
+ // It will never go below 15%, which happens after x seconds
.@timet=limit(0, gettimetick(2)-TELEPORTER_TIME, 3600);
.@prop=.@timet*2777/1000; // Make it range from 0~10000
.@adj_breakrate=limit(1500, .@prop, 9500 );