diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-01-08 16:49:09 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-01-08 16:49:09 -0300 |
commit | d7c60f32b33c03ad0f64d318c4980750910e2002 (patch) | |
tree | 0192257620f85c4fc36983f1aea875866955a637 /npc/025-1/ihclot.txt | |
parent | e4f1d1cca6d2f97c19b8e96313814327b8215bbf (diff) | |
download | serverdata-d7c60f32b33c03ad0f64d318c4980750910e2002.tar.gz serverdata-d7c60f32b33c03ad0f64d318c4980750910e2002.tar.bz2 serverdata-d7c60f32b33c03ad0f64d318c4980750910e2002.tar.xz serverdata-d7c60f32b33c03ad0f64d318c4980750910e2002.zip |
Ladies and Gentleman, allow me to present you Ihclot, the insanely expensive
and extremely expertise craftsmaster blacksmith. They will take over Tolchi in FI.
Their minimum wage is 415k GP for a level 50 equip with lv 10 options.
Maximum wage is 33 millions for a level 100 equip with lv 100 options.
Totally unbalanced, see
Diffstat (limited to 'npc/025-1/ihclot.txt')
-rw-r--r-- | npc/025-1/ihclot.txt | 136 |
1 files changed, 136 insertions, 0 deletions
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; +} + + |