summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/001-1/rewards.txt9
-rw-r--r--npc/003-1/cyndala.txt144
-rw-r--r--npc/003-1/silvia.txt2
3 files changed, 152 insertions, 3 deletions
diff --git a/npc/001-1/rewards.txt b/npc/001-1/rewards.txt
index 7fe26ca17..cf3f36b97 100644
--- a/npc/001-1/rewards.txt
+++ b/npc/001-1/rewards.txt
@@ -31,10 +31,17 @@ OnInit:
tradertype(NST_CUSTOM);
- //sellitem GoldenWarlordPlate,2500; // Item still not balanced
+ // Equipment
sellitem ThunderStaff,20000;
sellitem PiouEgg,5000;
sellitem Googles,800;
+
+ // Temporary, but later may sell rare dyes (eg. golden?)
+ sellitem RedCottonDye, 50;
+ sellitem GreenCottonDye, 50;
+ sellitem BlueCottonDye, 50;
+
+ // Consumables
sellitem ElixirOfLife,35;
sellitem Grenade,12;
sellitem Curshroom,7;
diff --git a/npc/003-1/cyndala.txt b/npc/003-1/cyndala.txt
index a11b06e6b..9fd6e4620 100644
--- a/npc/003-1/cyndala.txt
+++ b/npc/003-1/cyndala.txt
@@ -1,12 +1,152 @@
+// TMW2 Script.
// Author:
// Saulc
+// Jesusalva
+// Description:
+// Will be with dye functions for a while...
+
+// Original code from evol
+// Authors:
+// Reid
003-1,41,80,0 script Cyndala NPC_FEMALE,{
-hello;
+ function explain_dyes {
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Look at your equipment, can you guess what material it is made from?"),
+ l("Seek a colorant for that material: Cotton, cashmere, leather, Lazurite..."),
+ l("Once you have the appropriate colorant for the item, ##bdrag the colorant##b to the material."),
+ l("Example:"),
+ l("Drag and drop a @@ in a @@, and you will obtain a @@.", getitemlink(RedCottonDye), getitemlink(ArtisTankTop), getitemlink(ArtisTankTop, RedCottonDye)),
+ l("Dye cards are not the only thing which exist, but they are the coolest!");
+ }
+
+ function item_is_bleachable
+ {
+ .@item_index = getarg(0);
+ if (.@item_index < 0)
+ return false;
+
+ getinventorylist;
+
+ if (@inventorylist_card1[.@item_index] != 0)
+ {
+ if ((@inventorylist_card1[.@item_index] > YellowCottonDye) ||
+ (@inventorylist_card1[.@item_index] < CrimsonCashmereDye))
+ {
+ return false;
+ }
+ .@is_bleachable = true;
+ }
+
+ return .@is_bleachable;
+ }
+
+ function remove_cards_from_item
+ {
+ .@item_index = -1;
+
+ speech S_FIRST_BLANK_LINE,
+ l("What item would you like to bleach?");
+
+ narrator S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("You can drag and drop an item to the NPC window or select an item through your inventory.");
+
+ .@item_index = requestitemindex();
+ if (!item_is_bleachable(.@item_index))
+ {
+ speech S_LAST_NEXT,
+ l("You should know this, an item like this can't be bleached.");
+
+ return;
+ }
+
+ speech S_LAST_NEXT,
+ l("Your mind is set? You will loose the color dye during this process.");
+
+ switch (askyesno())
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Ok, let me see..."),
+ l("...");
+
+ failedremovecardsindex .@item_index, 1;
+
+ speech S_LAST_NEXT | S_NO_NPC_NAME,
+ l("..."),
+ l("Here it is, clean like a whistle!");
+ break;
+ case 2:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Is it truly a hard choice to make?");
+ break;
+ }
+ }
+
+ mesn;
+ mesq l("Hello, darling!");
+ mes "";
+
+ do
+ {
+ select
+ l("Excuse me."),
+ l("Could you bleach my clothes?"),
+ l("What can you say about dyes?"),
+ rif(getgmlevel(), l("Technical problem, gimme info about an item."));
+
+ switch (@menu)
+ {
+ case 2:
+ remove_cards_from_item();
+ break;
+ case 3:
+ explain_dyes();
+ break;
+ case 4:
+ .@item = requestitemindex();
+ mes "Item index selected: " + str(.@item);
+ mes "slots=" + str(MAX_SLOTS);
+ for (.@i = 0; .@i < MAX_SLOTS; .@i++)
+ {
+ mes "slot " + str(.@i) + " = " + str(getcardbyindex(.@item, .@i));
+ }
+ mes str(@inventorylist_card1[.@item]);
+ mes str(YellowCottonDye);
+ mes "item options:";
+ for (.@i = 0; .@i < 5; .@i ++)
+ {
+ mes sprintf("%d: Option: %d, Value: %d", .@i, getitemoptionidbyindex(.@item, .@i), getitemoptionvaluebyindex(.@item, .@i));
+ }
+ break;
+ default:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("I wish you a good time in town.");
+ break;
+ }
+
+ } while (@menu != 1);
+
+
+ closeclientdialog;
+ goodbye;
+ close;
+
+
+
+
+
+
+
+
+
+
+
+
+
OnInit:
- .@npcId = getnpcid(0, "Cyndala");
+ .@npcId = getnpcid(0, .name$);
//setunitdata(.@npcId, UDT_HEADTOP, 2929);
setunitdata(.@npcId, UDT_HEADMIDDLE, 1319);//TODO
setunitdata(.@npcId, UDT_HEADBOTTOM, 2207);
diff --git a/npc/003-1/silvia.txt b/npc/003-1/silvia.txt
index 9e3ceaa57..b98dbd4dc 100644
--- a/npc/003-1/silvia.txt
+++ b/npc/003-1/silvia.txt
@@ -1,5 +1,7 @@
+// TMW2 Script.
// Author:
// Saulc
+// Jesusalva
003-1,109,150,0 script Silvia NPC_FEMALE,{