summaryrefslogtreecommitdiff
path: root/npc/025-1
diff options
context:
space:
mode:
Diffstat (limited to 'npc/025-1')
-rw-r--r--npc/025-1/_import.txt1
-rw-r--r--npc/025-1/ihclot.txt136
2 files changed, 137 insertions, 0 deletions
diff --git a/npc/025-1/_import.txt b/npc/025-1/_import.txt
index b534e2772..8077fd8b5 100644
--- a/npc/025-1/_import.txt
+++ b/npc/025-1/_import.txt
@@ -3,4 +3,5 @@
"npc/025-1/_config.txt",
"npc/025-1/_mobs.txt",
"npc/025-1/ctrl.c",
+"npc/025-1/ihclot.txt",
"npc/025-1/salohcin.txt",
diff --git a/npc/025-1/ihclot.txt b/npc/025-1/ihclot.txt
new file mode 100644
index 000000000..d4f260d67
--- /dev/null
+++ b/npc/025-1/ihclot.txt
@@ -0,0 +1,136 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Ihclot is Tolchi spelled backwards
+
+025-1,96,66,0 script Ihclot NPC_RAIJIN_FEMALE_LEGION_ARTIS,{
+ function apRefresh;
+ function getPrice;
+ function getPriceInt;
+
+ apRefresh();
+ mesn;
+ mesq l("I put options on items upon request, but I am very expensive! This is deducted from your tweaking quota.");
+ if (!.@left) {
+ mesc l("You currently have no Tweaking AP, so you will need to wait %02d minute(s).", 60-gettime(GETTIME_MINUTE)), 1;
+ close;
+ }
+ next;
+ mesn;
+ mesq l("I'll read the options from you, but the level will be paid by me, and failure rate is non-existant. I am the best. blacksmith. in. the. universe! Use %s if you need to change any options.", b("@ucp"));
+ csysGUI_Report();
+
+ mesc l("Please select the item you plan in tweaking."), 1;
+ // Request and confirm
+ .@id=requestitemindex();
+ if (!csys_Confirm(.@id))
+ return false;
+
+ // Find numeric ID
+ delinventorylist();
+ getinventorylist();
+ .@handle=@inventorylist_id[.@id];
+ .@lv=getiteminfo(.@handle, ITEMINFO_ELV);
+
+ // Invalid (absolutely should never happen)
+ if (.@handle < 1) {
+ mesn;
+ mesq l("...What? Which item? Sorry, too much smoke around here.");
+ next;
+ return;
+ }
+ // Multiple
+ if (countitem(.@handle) != 1) {
+ mesn;
+ mesq l("Sorry, but you have multiple %s.", getitemlink(.@handle));
+ next;
+ return;
+ }
+ // Permission NG: (Not Granted)
+ if (.@lv < .minLevel) {
+ mesn;
+ mesq l("Sorry, but I won't dare touch a %s.", getitemlink(.@handle));
+ next;
+ mesn;
+ mesq l("Depending on the case, Nicholas, in Hurnscald, can do a better job than me.");
+ tutmes l("The selected item is too weak. %s will only tweak items level %d or higher.", .name$, .minLevel);
+ next;
+ return;
+ }
+ // Aleady slotted
+ if (getitemoptionidbyindex(.@id, 0) > 0) {
+ mesn;
+ mesq l("I'm not going to try to improve this masterpiece. Look its options!");
+ next;
+ return;
+ }
+
+ // Calculate price
+ .@price=.@lv**3; // Cubic function to determine price.
+ mesn;
+ mesq l("Please select the level I should use.");
+ menuint
+ l("Abort (%d GP)", fnum(.@price*0)), 0,
+ getPrice(.@price, 10), 10,
+ getPrice(.@price, 20), 20,
+ getPrice(.@price, 30), 30,
+ getPrice(.@price, 40), 40,
+ getPrice(.@price, 50), 50,
+ getPrice(.@price, 60), 60,
+ getPrice(.@price, 70), 70,
+ getPrice(.@price, 80), 80,
+ getPrice(.@price, 90), 90,
+ getPrice(.@price, 100), 100;
+ mes "";
+ if (@menuret == 0)
+ close;
+
+ // Ask player to confirm
+ if (!csys_Confirm(.@id))
+ return false;
+
+ // Perform payment
+ Zeny-=getPriceInt(.@price, @menuret);
+ SMITH_TWEAKS+=1;
+
+ // Apply the bonuses
+ csys_ApplyPerfect(.@id, .@level);
+ mesn;
+ mesc l("Well, here you are. I hope you enjoy ^^", 3);
+ close;
+
+/* *************************************************************************** */
+function apRefresh {
+ .@left=gettimeparam(GETTIME_HOUR)-SMITH_TWEAKS;
+ if (.@left > 6) {
+ .@left=6;
+ SMITH_TWEAKS=gettimeparam(GETTIME_HOUR)-6;
+ }
+ return;
+}
+
+function getPriceInt {
+ .@price=getarg(0);
+ .@level=getarg(1);
+ return .@price*.@level/3;
+}
+
+function getPrice {
+ .@price=getarg(0);
+ .@level=getarg(1);
+ .@final=getPriceInt(.@price, .@level);
+ if (Zeny >= .@final)
+ return l("Level %d (%d GP)", .@level, fnum(.@final));
+ else
+ return "";
+}
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 5;
+ .minLevel = 50;
+ end;
+}
+
+