From 91f9ffaedb9a759fbffdde2bc85afa6d41e5bcc3 Mon Sep 17 00:00:00 2001 From: Playtester Date: Tue, 4 Jul 2006 20:54:12 +0000 Subject: * Added the Socket Enchant NPC written by Sousuke_PL - I already tested and fixed some stuff but requires some more testing git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7528 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/merchants/socket_enchant.txt | 825 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 825 insertions(+) create mode 100644 npc/merchants/socket_enchant.txt (limited to 'npc/merchants/socket_enchant.txt') diff --git a/npc/merchants/socket_enchant.txt b/npc/merchants/socket_enchant.txt new file mode 100644 index 000000000..790c8abd7 --- /dev/null +++ b/npc/merchants/socket_enchant.txt @@ -0,0 +1,825 @@ +//===== eAthena Script ======================================= +//= Socket Enchant +//===== By: ================================================== +//= Sousuke_PL +//===== Current Version: ===================================== +//= 0.1 +//===== Compatible With: ===================================== +//= eAthena SVN +//===== Description: ========================================= +//= item loses all element refinement and upgrades but +//= cards too? +//===== Additional Comments: ================================= +//= 0.1 +//============================================================ + + +lhz_in02.gat,281,35,5 script Socket Enchant 84,{ + + + mes "[Socket Enchant]"; + mes "Hello."; + mes "How can I help you?"; + next; + menu "Upgrade my item",-,"Nothing",L_Not; + + mes "[Socket Enchant]"; + mes "This is weapon or armor?"; + next; + menu "Weapon",L_Weapon1,"Armor",L_Armor1; + + +//============================================================ +//= Weapon +//============================================================ + + L_WaepJump: + mes "[Socket Enchant]"; + mes "Choose the number of page. Type 1 to 5:"; + next; + input @weapsite; + if(@weapsite > 5) goto L_WaepJump; + + if(@weapsite == 1) goto L_Weapon1; + if(@weapsite == 2) goto L_Weapon2; + if(@weapsite == 3) goto L_Weapon3; + if(@weapsite == 4) goto L_Weapon4; + if(@weapsite == 5) goto L_Weapon5; + + + + L_Weapon1: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Trident[2]",Trident,"Rope[3]",Rope,"Violin[3]",Violin,"Chain[2]",Chain,"Gladius[2]",Gladius,"Gakkung Bow[1]",Gakkung_Bow,"Next",L_Weapon2,"Jump to page...",L_WaepJump; + + L_Weapon2: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Pike[3]",Pike,"Haedonggum[1]",Haedonggum,"Lute[2]",Lute,"Wire Whip[2]",Wire_Whip,"Waghnak[3]",Waghnak,"Arbalest[1]",Arbalest,"Next",L_Weapon3,"Jump to page...",L_WaepJump; + + L_Weapon3: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Hunter Bow",Hunter_Bow,"(Int) Survivor's Rod",Int_Survivors_Rod,"Zweihander",Zweihander,"Flamberge",Flamberge,"Infiltrator",Infiltrator,"Ballista",Ballista,"Next",L_Weapon4,"Jump to page...",L_WaepJump; + + L_Weapon4: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Stunner",Stunner,"Berserk",Berserk,"Claymore",Claymore,"Gungnir",Gungnir,"Poison Knife",Poison_Knife,"Sucsamad",Sucsamad,"Next",L_Weapon5,"Jump to page...",L_WaepJump; + + L_Weapon5: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Ginnungagap",Ginnungagap,"Cutlus",Cutlus,"Crescent Scythe",Crescent_Scythe,"Ice Pick",Ice_Pick,"(Dex) Survivor's Rod",Dex_Survivors_Rod,"Next",L_Weapon1,"Jump to page...",L_WaepJump; + + + Trident: + set @olditem,1460; + set @newitem,1461; + callfunc "f_weapon_c"; + + Rope: + set @olditem,1950; + set @newitem,1951; + callfunc "f_weapon_c"; + + Violin: + set @olditem,1901; + set @newitem,1902; + callfunc "f_weapon_c"; + + Chain: + set @olditem,1519; + set @newitem,1520; + callfunc "f_weapon_b"; + + Gladius: + set @olditem,1219; + set @newitem,1220; + callfunc "f_weapon_b"; + + Gakkung_Bow: + set @olditem,1714; + set @newitem,1716; + callfunc "f_weapon_b"; + + Pike: + set @olditem,1407; + set @newitem,1408; + callfunc "f_weapon_b"; + + Haedonggum: + set @olditem,1123; + set @newitem,1128; + callfunc "f_weapon_b"; + + Lute: + set @olditem,1905; + set @newitem,1906; + callfunc "f_weapon_b"; + + Wire_Whip: + set @olditem,1954; + set @newitem,1955; + callfunc "f_weapon_b"; + + Waghnak: + set @olditem,1801; + set @newitem,1802; + callfunc "f_weapon_b"; + + Arbalest: + set @olditem,1713; + set @newitem,1715; + callfunc "f_weapon_b"; + + Hunter_Bow: + set @olditem,1718; + set @newitem,1726; + callfunc "f_weapon_a"; + + Int_Survivors_Rod: + set @olditem,1619; + set @newitem,1620; + callfunc "f_weapon_a"; + + Zweihander: + set @olditem,1168; + set @newitem,1716; + callfunc "f_weapon_a3"; + + Flamberge: + set @olditem,1129; + set @newitem,1149; + callfunc "f_weapon_a"; + + Infiltrator: + set @olditem,1261; + set @newitem,1266; + callfunc "f_weapon_a2"; + + Ballista: + set @olditem,1722; + set @newitem,1727; + callfunc "f_weapon_a"; + + Stunner: + set @olditem,1522; + set @newitem,1532; + callfunc "f_weapon_a"; + + Berserk: + set @olditem,1814; + set @newitem,1816; + callfunc "f_weapon_a"; + + Claymore: + set @olditem,1163; + set @newitem,1172; + callfunc "f_weapon_a"; + + Gungnir: + set @olditem,1413; + set @newitem,1418; + callfunc "f_weapon_s"; + + Poison_Knife: + set @olditem,1239; + set @newitem,13016; + callfunc "f_weapon_s"; + + Sucsamad: + set @olditem,1236; + set @newitem,13018; + callfunc "f_weapon_s"; + + Ginnungagap: + set @olditem,13002; + set @newitem,13019; + callfunc "f_weapon_s"; + + Cutlus: + set @olditem,1135; + set @newitem,13400; + callfunc "f_weapon_s"; + + Crescent_Scythe: + set @olditem,1466; + set @newitem,1476; + callfunc "f_weapon_s"; + + Ice_Pick: + set @olditem,1230; + set @newitem,13017; + callfunc "f_weapon_s2"; + + Dex_Survivors_Rod: + set @olditem,1617; + set @newitem,1618; + callfunc "f_weapon_s2"; + + + +//============================================================ +//= Armor +//============================================================ + + L_ArmorJump: + mes "[Socket Enchant]"; + mes "Choose the number of page. Type 1 to 6:"; + next; + input @weapsite; + if(@armorsite > 6) goto L_ArmorJump; + + if(@armorsite == 1) goto L_ArmorJump1; + if(@armorsite == 2) goto L_ArmorJump2; + if(@armorsite == 3) goto L_ArmorJump3; + if(@armorsite == 4) goto L_ArmorJump4; + if(@armorsite == 5) goto L_ArmorJump5; + if(@armorsite == 6) goto L_ArmorJump6; + + + L_Armor1: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Mantle",Mantle,"Coat",Coat,"Circlet",Circlet,"Biretta",Biretta,"Mirror Shield",Mirror_Shield,"Chain Mail",Chain_Mail,"Shield",Shield,"Bongun Hat",Bongun_Hat,"Next",L_Armor2,"Jump to page...",L_ArmorJump; + L_Armor2: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Saint's Robe",Saints_Robe,"Silk Robe",Silk_Robe,"Boots",Boots,"Shoes",Shoes,"Muffler",Muffler,"Guard",Guard,"Buckler",Buckler,"Munak Hat",Munak_Hat,"Next",L_Armor3,"Jump to page...",L_ArmorJump; + + L_Armor3: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Gemmed Sallet",Gemmed_Sallet,"Bucket Hat",Bucket_Hat,"Memory Book",Memory_Book,"Tights",Tights,"Legion Plate Armor",Legion_Plate_Armor,"Full Plate",Full_Plate,"Thief Clothes",Thief_Clothes,"Next",L_Armor4,"Jump to page...",L_ArmorJump; + + L_Armor4: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Greaves",Greaves,"Coif",Coif,"Manteau",Manteau,"Helm",Helm,"Ninja Suit",Ninja_Suit,"Orc Helm",Orc_Helm,"Ancient Cape",Ancient_Cape,"Next",L_Armor5,"Jump to page...",L_ArmorJump; + + L_Armor5: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Monk Hat",Monk_Hat,"Golden Gear",Golden_Gear,"Brooch",Brooch,"Tiara",Tiara,"Sphinx Hat",Sphinx_Hat,"Robe of Cast",Robe_of_Cast,"Earring",Earring,"Next",L_Armor6,"Jump to page...",L_ArmorJump; + + L_Armor6: + + close2; + mes "[Socket Enchant]"; + mes "Please choose your item:"; + menu "Ring",Ring,"Bow Thimble",Bow_Thimble,"Majestic Goat",Majestic_Goat,"Spiky Band",Spiky_Band,"Bone Helm",Bone_Helm,"Corsair",Corsair,"Crown",Crown,"Next",L_Armor1,"Jump to page...",L_ArmorJump; + + + Mantle: + set @olditem,2307; + set @newitem,2308; + callfunc "f_armor_c"; + + Coat: //http://ro.doddlercon.com/wiki/index.php?title=Socket_Enchant it's Long Coat O_o + set @olditem,2309; + set @newitem,2310; + callfunc "f_armor_c"; + + Circlet: + set @olditem,2232; + set @newitem,2233; + callfunc "f_armor_c"; + + Biretta: + set @olditem,2216; + set @newitem,2217; + callfunc "f_armor_c"; + + Mirror_Shield: + set @olditem,2107; + set @newitem,2108; + callfunc "f_armor_b"; + + Chain_Mail: + set @olditem,2314; + set @newitem,2315; + callfunc "f_armor_b"; + + Shield: + set @olditem,2105; + set @newitem,2106; + callfunc "f_armor_b"; + + Bongun_Hat: + set @olditem,5046; + set @newitem,5168; + callfunc "f_armor_b"; + + Saints_Robe: + set @olditem,2325; + set @newitem,2326; + callfunc "f_armor_b2"; + + Silk_Robe: + set @olditem,2321; + set @newitem,2322; + callfunc "f_armor_b2"; + + Boots: + set @olditem,2405; + set @newitem,2406; + callfunc "f_armor_b2"; + + Shoes: + set @olditem,2403; + set @newitem,2404; + callfunc "f_armor_b2"; + + Muffler: + set @olditem,2503; + set @newitem,2504; + callfunc "f_armor_b2"; + + Guard: + set @olditem,2101; + set @newitem,2102; + callfunc "f_armor_b2"; + + Buckler: + set @olditem,2103; + set @newitem,2104; + callfunc "f_armor_b2"; + + Munak_Hat: + set @olditem,2264; + set @newitem,5167; + callfunc "f_armor_a"; + + Gemmed_Sallet: + set @olditem,2230; + set @newitem,2231; + callfunc "f_armor_a2"; + + Bucket_Hat: + set @olditem,5114; + set @newitem,5120; + callfunc "f_armor_a2"; + + Memory_Book: + set @olditem,2109; + set @newitem,2121; + callfunc "f_armor_a2"; + + Tights: + set @olditem,2330; + set @newitem,2331; + callfunc "f_armor_a2"; + + Legion_Plate_Armor: + set @olditem,2341; + set @newitem,2342; + callfunc "f_armor_a2"; + + Full_Plate: + set @olditem,2316; + set @newitem,2317; + callfunc "f_armor_a2"; + + Thief_Clothes: + set @olditem,2335; + set @newitem,2336; + callfunc "f_armor_a2"; + + Greaves: + set @olditem,2411; + set @newitem,2412; + callfunc "f_armor_a2"; + + Coif: + set @olditem,5092; + set @newitem,5093; + callfunc "f_armor_c"; + + Manteau: + set @olditem,2505; + set @newitem,2506; + callfunc "f_armor_c"; + + Helm: + set @olditem,2228; + set @newitem,2229; + callfunc "f_armor_c"; + + Ninja_Suit: + set @olditem,2337; + set @newitem,2359; + callfunc "f_armor_c"; + + Orc_Helm: + set @olditem,2299; + set @newitem,5157; + callfunc "f_armor_c"; + + Ancient_Cape: + set @olditem,2507; + set @newitem,2525; + callfunc "f_armor_a2"; + + Monk_Hat: + set @olditem,2251; + set @newitem,5158; + callfunc "f_armor_a2"; + + Golden_Gear: + set @olditem,2246; + set @newitem,5159; + callfunc "f_armor_a2"; + + Brooch: + set @olditem,2605; + set @newitem,2625; + callfunc "f_armor_a2"; + + Tiara: + set @olditem,2234; + set @newitem,5164; + callfunc "f_armor_s"; + + Sphinx_Hat: + set @olditem,5053; + set @newitem,5166; + callfunc "f_armor_s"; + + Robe_of_Cast: + set @olditem,2343; + set @newitem,2360; + callfunc "f_armor_s"; + + Earring: + set @olditem,2602; + set @newitem,2622; + callfunc "f_armor_s"; + + Ring: + set @olditem,2601; + set @newitem,2621; + callfunc "f_armor_s"; + + Bow_Thimble: + set @olditem,2619; + set @newitem,2671; + callfunc "f_armor_s"; + + Majestic_Goat: + set @olditem,2256; + set @newitem,5160; + callfunc "f_armor_s2"; + + Spiky_Band: + set @olditem,2258; + set @newitem,5161; + callfunc "f_armor_s2"; + + Bone_Helm: + set @olditem,5017; + set @newitem,5162; + callfunc "f_armor_s2"; + + Corsair: + set @olditem,5019; + set @newitem,5163; + callfunc "f_armor_s2"; + + Crown: + set @olditem,2235; + set @newitem,5165; + callfunc "f_armor_s2"; + + + + +//============================================================ +//= Other +//============================================================ + + L_Not: + mes "[Socket Enchant]"; + mes "Bye~!"; + close; + + L_No: + mes "[Socket Enchant]"; + mes "Ok, Bye."; + close; + +} + +//============================================================ +//= Functions add slots +//============================================================ + +function script addslot { + + mes "[Socket Enchant]"; + mes "Upgrade cost "+@addprice+" zeny and ^5533FF"+@itemupname$+"^000000."; + next; + mes "[Socket Enchant]"; + mes "Are you sure? Remember that it can fail."; + mes "Do you want to continue?"; + next; + menu "Yes",-,"No",L_No; + + + if(countitem(@olditem)<1) goto L_NoItem; + if(Zeny<@addprice) goto L_NoZeny; + if(countitem(@itemup)<@itemupiece) goto L_NoItemUp; + + delitem @itemup,@itemupiece; + set Zeny,Zeny-@addprice; + delitem @olditem,1; + if(@rateit>rand(1,100))goto L_Fail; + getitem @newitem,1; + + mes "[Socket Enchant]"; + mes "Ok, take your item, Bye."; + close; + + + L_NoItem: + mes "[Socket Enchant]"; + mes "You don't have this item."; + mes "Come back when you get it."; + close; + + L_NoItemUp: + mes "[Socket Enchant]"; + mes "You don't have all ingridients. Come back when you get it."; + close; + + L_NoZeny: + mes "[Socket Enchant]"; + mes "You don't have enough money. Come back later."; + close; + + L_Fail: + mes "[Socket Enchant]"; + mes "Sorry, but i could't upgrade it."; + close; + +} + +//============================================================ + +function script addslot2 { + + mes "[Socket Enchant]"; + mes "Upgrade cost "+@addprice+" zeny and ^5533FF"+@itemupname1$+"^000000 and ^5533FF"+@itemupname2$+"^000000."; + next; + mes "[Socket Enchant]"; + mes "Are you sure? Remember that it can fail."; + mes "Do you want to continue?"; + next; + menu "Yes",-,"No",L_No; + + + if(countitem(@olditem)<1) goto L_NoItem; + if(Zeny<@addprice) goto L_NoZeny; + if((countitem(@itemup1)<@itemupiece1) && (countitem(@itemup2)<@itemupiece2)) goto L_NoItemUp; + + delitem @itemup1,@itemupiece1; + delitem @itemup2,@itemupiece2; + set Zeny,Zeny-@addprice; + delitem @olditem,1; + if(@rateit>rand(1,100))goto L_Fail; + getitem @newitem,1; + + mes "[Socket Enchant]"; + mes "Ok, take your item, Bye."; + close; + + + L_NoItem: + mes "[Socket Enchant]"; + mes "You don't have this item."; + mes "Come back when you get it."; + close; + + L_NoItemUp: + mes "[Socket Enchant]"; + mes "You don't have all ingridients. Come back when you get it."; + close; + + L_NoZeny: + mes "[Socket Enchant]"; + mes "You don't have enough money. Come back later."; + close; + + L_Fail: + mes "[Socket Enchant]"; + mes "Sorry, but i could't upgrade it."; + close; + +} + + +//============================================================ +//= Functions +//============================================================ + +//= Weapon + +function script f_weapon_c { + + set @rateit,50; //success rate + set @addprice,200000; + set @itemup,1010; + set @itemupiece,10; + set @itemupname$,"10 Phracon"; + callfunc "addslot"; + +} + +function script f_weapon_b { + + set @rateit,40; //success rate + set @addprice,300000; + set @itemup1,984; + set @itemupiece1,2; + set @itemupname1$,"2 Oridecon"; + set @itemup2,999; + set @itemupiece2,5; + set @itemupname2$,"5 Steel"; + callfunc "addslot2"; + +} + +function script f_weapon_a { + + set @rateit,30; //success rate + set @addprice,500000; + set @itemup1,984; + set @itemupiece1,2; + set @itemupname1$,"2 Oridecon"; + set @itemup2,999; + set @itemupiece2,10; + set @itemupname2$,"10 Steel"; + callfunc "addslot2"; + +} + +function script f_weapon_a2 { + + set @rateit,30; //success rate + set @addprice,700000; + set @itemup1,984; + set @itemupiece1,2; + set @itemupname1$,"2 Oridecon"; + set @itemup2,999; + set @itemupiece2,10; + set @itemupname2$,"10 Steel"; + callfunc "addslot2"; + +} + +function script f_weapon_a3 { + + set @rateit,30; //success rate + set @addprice,800000; + set @itemup1,984; + set @itemupiece1,2; + set @itemupname1$,"2 Oridecon"; + set @itemup2,999; + set @itemupiece2,10; + set @itemupname2$,"10 Steel"; + callfunc "addslot2"; + +} + +function script f_weapon_s { + + set @rateit,20; //success rate + set @addprice,1000000; + set @itemup1,984; + set @itemupiece1,5; + set @itemupname1$,"5 Oridecon"; + set @itemup2,999; + set @itemupiece2,10; + set @itemupname2$,"10 Steel"; + callfunc "addslot2"; + +} + +function script f_weapon_s2 { + + set @rateit,20; //success rate + set @addprice,2000000; + set @itemup1,984; + set @itemupiece1,5; + set @itemupname1$,"5 Oridecon"; + set @itemup2,999; + set @itemupiece2,10; + set @itemupname2$,"10 Steel"; + callfunc "addslot2"; + +} + +//= Armor + +function script f_armor_c { + + set @rateit,50; //success rate + set @addprice,200000; + set @itemup,999; + set @itemupiece,3; + set @itemupname$,"3 Steel"; + callfunc "addslot"; + +} + +function script f_armor_b { + + set @rateit,40; //success rate + set @addprice,250000; + set @itemup,999; + set @itemupiece,5; + set @itemupname$,"5 Steel"; + callfunc "addslot"; + +} + +function script f_armor_b2 { + + set @rateit,40; //success rate + set @addprice,300000; + set @itemup,999; + set @itemupiece,5; + set @itemupname$,"5 Steel"; + callfunc "addslot"; + +} + +function script f_armor_a { + + set @rateit,30; //success rate + set @addprice,300000; + set @itemup,985; + set @itemupiece,1; + set @itemupname$,"1 Elunium"; + callfunc "addslot"; + +} + +function script f_armor_a2 { + + set @rateit,30; //success rate + set @addprice,400000; + set @itemup,985; + set @itemupiece,1; + set @itemupname$,"1 Elunium"; + callfunc "addslot"; + +} + +function script f_armor_s { + + set @rateit,20; //success rate + set @addprice,1000000; + set @itemup,985; + set @itemupiece,2; + set @itemupname$,"2 Elunium"; + callfunc "addslot"; + +} + +function script f_armor_s2 { + + set @rateit,20; //success rate + set @addprice,2000000; + set @itemup,985; + set @itemupiece,2; + set @itemupname$,"2 Elunium"; + callfunc "addslot"; + +} + + +prt_in.gat,32,72,5 duplicate(Socket Enchant) Socket Enchant 84 +payon.gat,141,164,6 duplicate(Socket Enchant) Socket Enchant 84 +morocc_in.gat,62,40,5 duplicate(Socket Enchant) Socket Enchant 84 \ No newline at end of file -- cgit v1.2.3-70-g09d2