diff options
Diffstat (limited to 'npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt')
-rw-r--r-- | npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt | 330 |
1 files changed, 165 insertions, 165 deletions
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt index d39d5d1bc..4ff5b7c8b 100644 --- a/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt +++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_uncard.txt @@ -1,165 +1,165 @@ -//===== eAthena Script =======================================
-//= Kafra Express - Uncarder Module
-//===== By: ==================================================
-//= Skotlex
-//===== Current Version: =====================================
-//= 1.5
-//===== Compatible With: =====================================
-//= eAthena SVN R3424+
-//===== Description: =========================================
-//= Part of the Kafra Express Script Package.
-//= Offers uncarding services.
-//===== Additional Comments: =================================
-//= See config.txt for configuration.
-//============================================================
-
-- script keInit_uncard -1,{
-OnInit: //Load Config
- donpcevent "keConfig::OnLoadUncard";
- end;
-}
-
-function script F_keUncard {
-
-function SF_uncard;
-
- do {
- set @kmenu, select(
- "- Return",
- "- See Price Specifics",
- "- "+getequipname(1),
- "- "+getequipname(2),
- "- "+getequipname(3),
- "- "+getequipname(4),
- "- "+getequipname(5),
- "- "+getequipname(6),
- "- "+getequipname(7),
- "- "+getequipname(8),
- "- "+getequipname(9),
- "- "+getequipname(10)
- );
- if (@kmenu == 1)
- return;
- if (@kmenu == 2) { //Details
- mes "Okay, listen up...";
- next;
- mes "["+@name$+"]";
- if ($@keuc_BaseCost)
- mes "The base cost is of "+$@keuc_BaseCost+"z.";
- mes "Each card to be removed incurs a cost of +"+$@keuc_CardCost+"z.";
- mes "The refine level of the compounded equipment can incur an additional cost:";
- mes "Armors: "+$@keuc_UpgradeCostA+"z per level.";
- mes "Lv1 Weapons: "+$@keuc_UpgradeCostW1+"z per level.";
- mes "Lv2 Weapons: "+$@keuc_UpgradeCostW2+"z per level.";
- mes "Lv3 Weapons: "+$@keuc_UpgradeCostW3+"z per level.";
- mes "Lv4 Weapons: "+$@keuc_UpgradeCostW4+"z per level.";
-
- if ($@keuc_Mat1 && $@keuc_Qty1) {
- mes "The materials needed are:";
- mes "- "+$@keuc_Qty1+" "+getitemname($@keuc_Mat1)+".";
- }
- if ($@keuc_Mat2 && $@keuc_Qty2)
- mes "- "+$@keuc_Qty2+" "+getitemname($@keuc_Mat2)+".";
-
- if ($@keuc_Fail1Chance || $@keuc_Fail2Chance)
- mes "There is a chance the process might fail and you'll lose your items.";
-
- next;
- callfunc "F_keIntro", -1, "";
- } else {
- if (SF_uncard(@kmenu-2))
- return;
- }
- } while (@kmenu >1);
- return;
-
-//Subfunction SF_uncard (equipment-position)
-//Attempts to uncard the equipment.
-function SF_uncard {
- set @part, getarg(0);
- if(getequipcardcnt(@part) == 0) {
- callfunc "F_keIntro", e_ag, "There are no cards to remove there!";
- return 0;
- }
- set @cost, $@keuc_BaseCost;
- set @cost, @cost + $@keuc_CardCost*getequipcardcnt(@part);
-
- switch (getequipweaponlv(@part)) {
- case 0: //Armor
- set @upgradeCost, $@keuc_UpgradeCostA;
- break;
- case 1: //Lv1 Weapons
- set @upgradeCost, $@keuc_UpgradeCostW1;
- break;
- case 2: //Lv2 Weapons
- set @upgradeCost, $@keuc_UpgradeCostW2;
- break;
- case 3: //Lv3 Weapons
- set @upgradeCost, $@keuc_UpgradeCostW3;
- break;
- default: //Lv4 Weapons
- set @upgradeCost, $@keuc_UpgradeCostW4;
- }
-
- set @cost, @cost + @upgradeCost*getequiprefinerycnt(@part);
-
- set @price, callfunc("F_keCost",@cost,$@keuc_discount);
-
- if ($@keuc_Fail1Chance) {
- set @failsave, select(
- "- Cancel",
- "- Remove cards ("+@price+"z, item gets priority)",
- "- Remove cards ("+@price+"z, cards get priority)"
- );
- } else {
- set @failsave, select(
- "- Cancel",
- "- Remove cards ("+@price+"z)"
- );
- }
- if (@failsave == 1)
- return 0;
- set @failsave, @failsave-1; //1: Save item, 2: Save Card
-
- if (($@keuc_Mat1 && countitem($@keuc_Mat1) < $@keuc_Qty1)
- || ($@keuc_Mat2 && countitem($@keuc_Mat2) < $@keuc_Qty2)) {
- callfunc "F_keIntro", e_pif, "You do not have all the materials I need...";
- return 0;
- }
-
- if (!(callfunc("F_keCharge",@cost,$@keuc_discount,1))) {
- callfunc "F_keIntro", e_ag, "Sorry, you don't have enough zeny.";
- return 0;
- }
-
- if ($@keuc_Mat1 && $@keuc_Qty1)
- delitem $@keuc_Mat1, $@keuc_Qty1;
- if ($@keuc_Mat2 && $@keuc_Qty2)
- delitem $@keuc_Mat2, $@keuc_Qty2;
-
- set @failtype,-1;
- //Recycling cost...
- set @cost, rand(1000);
- if (@cost < $@keuc_Fail2Chance) //Total Failure
- set @failtype, 0;
- else if (@cost < $@keuc_Fail1Chance) //Partial Failure
- set @failtype, @failsave;
- else if (@cost < $@keuc_Fail0Chance) //Harmless Failure
- set @failtype, 3;
- else { //Success
- successremovecards @part;
- emotion e_ho;
- return 1;
- }
- failedremovecards @part,@failtype;
- if (@failtype == 1)
- mes "The cards were lost...";
- if (@failtype == 2)
- mes "The item was lost...";
- if (@failtype == 0)
- mes "Lost the cards and item...";
- callfunc "F_keIntro", e_swt, "...oops.";
- return 1;
-}
-
-}
+//===== eAthena Script ======================================= +//= Kafra Express - Uncarder Module +//===== By: ================================================== +//= Skotlex +//===== Current Version: ===================================== +//= 1.5 +//===== Compatible With: ===================================== +//= eAthena SVN R3424+ +//===== Description: ========================================= +//= Part of the Kafra Express Script Package. +//= Offers uncarding services. +//===== Additional Comments: ================================= +//= See config.txt for configuration. +//============================================================ + +- script keInit_uncard -1,{ +OnInit: //Load Config + donpcevent "keConfig::OnLoadUncard"; + end; +} + +function script F_keUncard { + +function SF_uncard; + + do { + set @kmenu, select( + "- Return", + "- See Price Specifics", + "- "+getequipname(1), + "- "+getequipname(2), + "- "+getequipname(3), + "- "+getequipname(4), + "- "+getequipname(5), + "- "+getequipname(6), + "- "+getequipname(7), + "- "+getequipname(8), + "- "+getequipname(9), + "- "+getequipname(10) + ); + if (@kmenu == 1) + return; + if (@kmenu == 2) { //Details + mes "Okay, listen up..."; + next; + mes "["+@name$+"]"; + if ($@keuc_BaseCost) + mes "The base cost is of "+$@keuc_BaseCost+"z."; + mes "Each card to be removed incurs a cost of +"+$@keuc_CardCost+"z."; + mes "The refine level of the compounded equipment can incur an additional cost:"; + mes "Armors: "+$@keuc_UpgradeCostA+"z per level."; + mes "Lv1 Weapons: "+$@keuc_UpgradeCostW1+"z per level."; + mes "Lv2 Weapons: "+$@keuc_UpgradeCostW2+"z per level."; + mes "Lv3 Weapons: "+$@keuc_UpgradeCostW3+"z per level."; + mes "Lv4 Weapons: "+$@keuc_UpgradeCostW4+"z per level."; + + if ($@keuc_Mat1 && $@keuc_Qty1) { + mes "The materials needed are:"; + mes "- "+$@keuc_Qty1+" "+getitemname($@keuc_Mat1)+"."; + } + if ($@keuc_Mat2 && $@keuc_Qty2) + mes "- "+$@keuc_Qty2+" "+getitemname($@keuc_Mat2)+"."; + + if ($@keuc_Fail1Chance || $@keuc_Fail2Chance) + mes "There is a chance the process might fail and you'll lose your items."; + + next; + callfunc "F_keIntro", -1, ""; + } else { + if (SF_uncard(@kmenu-2)) + return; + } + } while (@kmenu >1); + return; + +//Subfunction SF_uncard (equipment-position) +//Attempts to uncard the equipment. +function SF_uncard { + set @part, getarg(0); + if(getequipcardcnt(@part) == 0) { + callfunc "F_keIntro", e_ag, "There are no cards to remove there!"; + return 0; + } + set @cost, $@keuc_BaseCost; + set @cost, @cost + $@keuc_CardCost*getequipcardcnt(@part); + + switch (getequipweaponlv(@part)) { + case 0: //Armor + set @upgradeCost, $@keuc_UpgradeCostA; + break; + case 1: //Lv1 Weapons + set @upgradeCost, $@keuc_UpgradeCostW1; + break; + case 2: //Lv2 Weapons + set @upgradeCost, $@keuc_UpgradeCostW2; + break; + case 3: //Lv3 Weapons + set @upgradeCost, $@keuc_UpgradeCostW3; + break; + default: //Lv4 Weapons + set @upgradeCost, $@keuc_UpgradeCostW4; + } + + set @cost, @cost + @upgradeCost*getequiprefinerycnt(@part); + + set @price, callfunc("F_keCost",@cost,$@keuc_discount); + + if ($@keuc_Fail1Chance) { + set @failsave, select( + "- Cancel", + "- Remove cards ("+@price+"z, item gets priority)", + "- Remove cards ("+@price+"z, cards get priority)" + ); + } else { + set @failsave, select( + "- Cancel", + "- Remove cards ("+@price+"z)" + ); + } + if (@failsave == 1) + return 0; + set @failsave, @failsave-1; //1: Save item, 2: Save Card + + if (($@keuc_Mat1 && countitem($@keuc_Mat1) < $@keuc_Qty1) + || ($@keuc_Mat2 && countitem($@keuc_Mat2) < $@keuc_Qty2)) { + callfunc "F_keIntro", e_pif, "You do not have all the materials I need..."; + return 0; + } + + if (!(callfunc("F_keCharge",@cost,$@keuc_discount,1))) { + callfunc "F_keIntro", e_ag, "Sorry, you don't have enough zeny."; + return 0; + } + + if ($@keuc_Mat1 && $@keuc_Qty1) + delitem $@keuc_Mat1, $@keuc_Qty1; + if ($@keuc_Mat2 && $@keuc_Qty2) + delitem $@keuc_Mat2, $@keuc_Qty2; + + set @failtype,-1; + //Recycling cost... + set @cost, rand(1000); + if (@cost < $@keuc_Fail2Chance) //Total Failure + set @failtype, 0; + else if (@cost < $@keuc_Fail1Chance) //Partial Failure + set @failtype, @failsave; + else if (@cost < $@keuc_Fail0Chance) //Harmless Failure + set @failtype, 3; + else { //Success + successremovecards @part; + emotion e_ho; + return 1; + } + failedremovecards @part,@failtype; + if (@failtype == 1) + mes "The cards were lost..."; + if (@failtype == 2) + mes "The item was lost..."; + if (@failtype == 0) + mes "Lost the cards and item..."; + callfunc "F_keIntro", e_swt, "...oops."; + return 1; +} + +} |