123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337 |
- //===== rAthena Script =======================================
- //= Infinite Space
- //===== Description: =========================================
- //= [Walkthrough Conversion]
- //= Infinite Space related merchants and enchanter
- //===== Changelogs: ==========================================
- //= 1.0 Initial release [crazyarashi]
- //= 1.1 Removed unecessary use of functions [Everade]
- //= 1.2 Added warp scroll merchant [Everade]
- //============================================================
- // Food Merchant
- - shop inf_ration -1,512:-1,513:-1,515:-1,516:-1
- cmd_fild07,63,268,1 script Emergency Food Merchant#pa0829_01 4_M_BIBI,{
- mes "[Emergency Food Merchant]";
- mes "I have a lot of stuff over here, of course, not for free.";
- close2;
- callshop "inf_ration",1;
- end;
- }
- // Warp Scroll Seller
- cmd_fild07,375,167,1 script Ruins Black Trader#pa0829_01 4_F_JOB_HUNTER,{
- mes "[Ruins Black Trader]";
- mes "Hey, isn't it hard to walk in and out of here every time? For just ^0000ff20,000^000000 Zeny, you can have a scroll that will take you directly to the entrance of the ruins, what do you think?";
- Purchase:
- next;
- switch( select( "Give me one", "I don't think so" )) {
- case 1:
- if (!checkweight(22980,1) || (MaxWeight - Weight) < 1000) {
- mes "You can't proceed with the conversation because you have a large quantity of items.";
- mes "Please organize your items and try again.";
- close;
- }
- else if (Zeny < 20000) {
- mes "[Ruins Black Trader]";
- mes "You don't seem to have any more money. A scroll costs 20,000 Zeny.";
- close;
- }
- Zeny -= 20000;
- getitem 22980,1;
- mes "[Ruins Black Trader]";
- mes "It was a good deal. Need more?";
- goto Purchase;
- case 2:
- mes "[Ruins Black Trader]";
- mes "Come back anytime";
- close;
- }
- }
- // Equipment Shop
- cmd_fild07,57,275,5 script Artifact Appraiser#pa0829_01 1_F_02,{
- if (!checkweight(1201,1) || (MaxWeight - Weight) < 1000) {
- mes "You can't proceed with the conversation because you have a large quantity of items.";
- mes "Please organize your items and try again.";
- close;
- }
- .@stone_id = 6905;
- mes "[ Artifact Appraiser ]";
- mes "Choose the type of equipment that you want to purchase. You can purchase as many as you want, as long as you have " + getitemname(.@stone_id) + ".";
- next;
- switch (select("Cancel:Weapons:Armors")) {
- case 1:
- mes "[ Artifact Appraiser ]";
- mes "Please come back whenever you want~";
- close;
- case 2:
- setarray .@equip_id,1994,1938,13323,13126,28703,2024,16038,21014,28105,18128;
- .@price = 50;
- break;
- case 3:
- setarray .@equip_id,15141,22075,20779,19033;
- .@price = 50;
- break;
- }
- .@menu$ = "Cancel:";
- for (.@i = 0; .@i < getarraysize(.@equip_id); .@i++)
- .@menu$ += getitemname(.@equip_id[.@i]) + ":";
- .@s = select(.@menu$) - 1;
- switch (.@s) {
- case 0:
- mes "[ Artifact Appraiser ]";
- mes "Please come back whenever you want~";
- close;
- default:
- .@s--;
- mes "[ Artifact Appraiser ]";
- mes "You need ^0000FF" + .@price + "^000000 " + getitemname(.@stone_id) + " to purchase the " + getitemname(.@equip_id[.@s]) + "~";
- next;
- if (select("Cancel:Purchase") == 1) {
- mes "[ Artifact Appraiser ]";
- mes "Please come back whenever you want~";
- close;
- }
- if (countitem(.@stone_id) < .@price) {
- mes "[ Artifact Appraiser ]";
- mes "You don't have enough " + getitemname(.@stone_id) + " to purchase this item.";
- close;
- }
- mes "[ Artifact Appraiser ]";
- mes "Thank you for your trust. Please come back again next time.";
- delitem .@stone_id,.@price;
- getitem .@equip_id[.@s],1;
- close;
- }
- }
- // Equipment Enchanter
- cmd_fild07,60,275,3 script Artifact Enhancer#pa0829_01 4_F_JOB_BLACKSMITH,{
- if (!checkweight(1201,1) || (MaxWeight - Weight) < 1000) {
- mes "You can't proceed with the conversation because you have a large quantity of items.";
- mes "Please organize your items and try again.";
- close;
- }
- disable_items;
- .@stone_id = 6905;
- function equip_check;
- mes "[ Artifact Enhancer ]";
- mes "If you're looking to strengthen the equipment that you've obtained in the Infinite Space, you have come to the right place.";
- mes "Do you have any " + getitemname(.@stone_id) + "?";
- next;
- switch (select("How do I enchant my equipment?:Enchant equipment.:Initialize equipment's enchant.")) {
- case 1:
- mes "[ Artifact Enhancer ]";
- mes "You'll be able to obtain " + getitemname(.@stone_id) + ", if you explore the space under the Paros Lighthouse.";
- next;
- mes "[ Artifact Enhancer ]";
- mes "For that material, I can reinforce the equipment that you got from the Infinite Space.";
- next;
- mes "[ Artifact Enhancer ]";
- mes "I can only enchant the 3rd and the 4th slot.";
- next;
- mes "[ Artifact Enhancer ]";
- mes "There is no chance of the equipment being destroyed during the enchanting process, but there's a high probability that it will be destroyed when initializing the enchants.";
- next;
- mes "[ Artifact Enhancer ]";
- mes "Then come visit me when you want to enchant the equipment.";
- break;
- case 2:
- .@stone_id = 6905;
- .@fee = 20;
- mes "[ Artifact Enhancer ]";
- mes "Please select the equipment that you want to enchant.";
- next;
- switch (select("Cancel:Weapon:Armor:Shoes:Garment:Helm")) {
- case 1:
- mes "[ Artifact Enhancer ]";
- mes "Then come visit me when you want to enchant the equipment.";
- close;
- case 2:
- .@part = EQI_HAND_R;
- break;
- case 3:
- .@part = EQI_ARMOR;
- break;
- case 4:
- .@part = EQI_SHOES;
- break;
- case 5:
- .@part = EQI_GARMENT;
- break;
- case 6:
- .@part = EQI_HEAD_TOP;
- break;
- }
- .@equip_id = getequipid(.@part);
- .@refine = getequiprefinerycnt(.@part);
- equip_check(.@equip_id);
- for (.@i = 0;.@i < 4;.@i++) {
- .@card[.@i] = getequipcardid(.@part,.@i);
- .@check[.@i] = getequipcardid(.@part,.@i);
- }
- if (.@card[2] > 0) {
- mes "[ Artifact Enhancer ]";
- mes "I can only enchant up to the third slot. Your equipment can't be further enchanted.";
- close;
- }
- switch (.@part) {
- case EQI_HAND_R:
- setarray .@enchant$,
- "4700,4701:4710,4711:4720,4721",
- "4811,4810,4809,4808,4820,4821,4822,4823:4815,4814,4813,4812,4826,4827,4828,4829:4832,4833,4834,4835,4836,4837,4838,4839";
- break;
- case EQI_ARMOR:
- case EQI_SHOES:
- setarray .@enchant$,
- "4700,4701,4702,4703:4710,4711,4712,4713:4720,4721,4722,4723",
- "4795,4796,4797:4870,4871,4800:4870,4871,4800";
- break;
- case EQI_GARMENT:
- case EQI_HEAD_TOP:
- setarray .@enchant$,
- "4700,4701,4702,4703:4710,4711,4712,4713:4720,4721,4722,4723",
- "4861,4862,4867,4868,4900:4861,4862,4867,4868,4900:4861,4862,4867,4868,4900";
- break;
- }
- .@slot = (.@card[3] > 0 ? 2 : 3);
- .@index = (.@slot == 3 ? 0 : 1);
- mes "[ Artifact Enhancer ]";
- mes "You can choose 3 types of enchant, and the enchant fee is " + .@fee + " " + getitemname(.@stone_id) + ".";
- mes "I'll make sure it gets enchanted without a problem.";
- next;
- .@type = select("Quit:Physical:Magical:Range") - 2;
- mes "[ Artifact Enhancer ]";
- if (.@slot == 3)
- mes "Okay, let's begin the first enchantment.";
- else
- mes "Okay, let's proceed with the second enchantment.";
- next;
- if (select("I'll return later.:Please proceed.") == 1) {
- mes "[ Artifact Enhancer ]";
- mes "If you change your mind, just return to me.";
- close;
- }
- if (countitem(.@stone_id) < .@fee) {
- mes "[ Artifact Enhancer ]";
- mes "Hm. By the way, I don't think you were listening, you don't have enough " + getitemname(.@stone_id) + ".";
- close;
- }
- explode(.@T$,.@enchant$[.@index],":");
- explode(.@TT$,.@T$[.@type],",");
- .@enchant = atoi(.@TT$[rand(getarraysize(.@TT$))]);
- .@card[.@slot] = .@enchant;
- delitem .@stone_id,.@fee;
- if (callfunc("F_IsEquipIDHack", .@part, .@equip_id) || callfunc("F_IsEquipRefineHack", .@part, .@refine) || callfunc("F_IsEquipCardHack", .@part, .@check[0], .@check[1], .@check[2], .@check[3]))
- close;
- delequip .@part;
- getitem2 .@equip_id,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
- specialeffect2 EF_REPAIRWEAPON;
- mes "[ Artifact Enhancer ]";
- mes "Hm. It was well done. Check your equipment at once.";
- break;
-
- case 3:
- .@stone_id = 6905;
- .@fee = 30;
- .@break_chance = 30;
- mes "[ Artifact Enhancer ]";
- mes "Please select the equipment that you want to enchant.";
- next;
- switch (select("Cancel:Weapon:Armor:Shoes:Garment:Helm")) {
- case 1:
- mes "[ Artifact Enhancer ]";
- mes "Then come visit me when you want to enchant the equipment.";
- close;
- case 2:
- .@part = EQI_HAND_R;
- break;
- case 3:
- .@part = EQI_ARMOR;
- break;
- case 4:
- .@part = EQI_SHOES;
- break;
- case 5:
- .@part = EQI_GARMENT;
- break;
- case 6:
- .@part = EQI_HEAD_TOP;
- break;
- }
- .@equip_id = getequipid(.@part);
- .@refine = getequiprefinerycnt(.@part);
- equip_check(.@equip_id);
- for (.@i = 0; .@i < 4; .@i++) {
- .@card[.@i] = getequipcardid(.@part,.@i);
- .@check[.@i] = .@card[.@i];
- }
- if (.@card[3] == 0) {
- mes "[ Artifact Enhancer ]";
- mes "Your equipment doesn't have any enchant on it.";
- close;
- }
- mes "[ Artifact Enhancer ]";
- mes "There is a chance that your infinite space equipment will be destroyed on the initializion process. Are you still willing to proceed?";
- next;
- if (select("Quit:Proceed") == 1) {
- mes "[ Artifact Enhancer ]";
- mes "If you change your mind, just return to me.";
- close;
- }
- if (countitem(.@stone_id) < .@fee) {
- mes "[ Artifact Enhancer ]";
- mes "Hm. By the way, I don't think you were listening, you don't have enough " + getitemname(.@stone_id) + ".";
- close;
- }
- delitem .@stone_id,.@fee;
- if (callfunc("F_IsEquipIDHack", .@part, .@equip_id) || callfunc("F_IsEquipRefineHack", .@part, .@refine) || callfunc("F_IsEquipCardHack", .@part, .@check[0], .@check[1], .@check[2], .@check[3]))
- close;
- delequip .@part;
- if (rand(1,100) > .@chance) {
- getitem2 .@equip_id,1,1,.@refine,0,.@card[0],.@card[1],0,0;
- specialeffect2 EF_REPAIRWEAPON;
- mes "[ Artifact Enhancer ]";
- mes "Hm. It was well done. Check your equipment at once.";
- } else {
- specialeffect2 EF_REFINEFAIL;
- mes "[ Artifact Enhancer ]";
- mes "Well, I did warn you. You aren't lucky, eh?";
- }
- break;
- }
- close;
- function equip_check {
- setarray .@equip_id,1994,1938,13323,13126,28703,2024,16038,21014,28105,18128,15141,22075,20779,19033;
- if (!getarg(0)) {
- mes "[ Artifact Enhancer ]";
- mes "Did you take off your equipment?";
- close;
- }
- if (inarray(.@equip_id,getarg(0)) == -1) {
- mes "[ Artifact Enhancer ]";
- mes "This equipment is not suitable for enchanting. Don't forget that only the infinite equipment series can be enchanted.";
- close;
- }
- return;
- }
- }
|