sader1992 Posted August 11, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Share Posted August 11, 2017 View File sader's Enchantment NPC Note: it's recommended to not use All-In-One scripts like this one , it's better if you create a npc that does only what you want from it! Information: with this script you can add any item and any ore to enchant in exchange of zeny/items. read the configuration carefully the configuration start at line 238 to remove example: Armor you need to delete Armor and EQI_ARMOR if you want to remove the weapon tab you may want to remove the shield tab too etc I did plan to rewrite this script , however I backed out of it the script work the way it is I have no plan to rewrite it, and I am impressed by my self writing this script with too many config If I rewrite this now i would spend 99% of the time just preparing the new config , so i don't see any point of rewriting it yes the script could be written better , but it's not worth it. for any error contact me plz for faster update https://github.com/sader1992/sader_scripts Submitter sader1992 Submitted 08/10/2017 Category Utilities Video Content Author sader1992 1 1 Quote Link to comment Share on other sites More sharing options...
eirwanda Posted August 13, 2017 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 59 Reputation: 3 Joined: 11/13/16 Last Seen: July 1, 2019 Share Posted August 13, 2017 is it possible to make only few equipment can be enchant??? Quote Link to comment Share on other sites More sharing options...
sader1992 Posted August 13, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted August 13, 2017 13 minutes ago, eirwanda said: is it possible to make only few equipment can be enchant??? you can remove some option like mid head or armor etc but you can't put a specific IDs for the items you wanna enchant only i may add whitelist and blacklist functionality later you can say it's in my list of things to do with this script Quote Link to comment Share on other sites More sharing options...
eirwanda Posted August 13, 2017 Group: Members Topic Count: 28 Topics Per Day: 0.01 Content Count: 59 Reputation: 3 Joined: 11/13/16 Last Seen: July 1, 2019 Share Posted August 13, 2017 42 minutes ago, sader1992 said: you can remove some option like mid head or armor etc but you can't put a specific IDs for the items you wanna enchant only i may add whitelist and blacklist functionality later you can say it's in my list of things to do with this script ok iam waiting for it good luck Quote Link to comment Share on other sites More sharing options...
sader1992 Posted August 13, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted August 13, 2017 @eirwanda i did upload new version however it would take time to be approved Quote Link to comment Share on other sites More sharing options...
ItsFree Posted August 13, 2017 Group: Members Topic Count: 44 Topics Per Day: 0.01 Content Count: 121 Reputation: 7 Joined: 04/11/15 Last Seen: October 29, 2024 Share Posted August 13, 2017 testing on some minutes looking for something like this for a time long xD Quote Link to comment Share on other sites More sharing options...
ItsFree Posted August 14, 2017 Group: Members Topic Count: 44 Topics Per Day: 0.01 Content Count: 121 Reputation: 7 Joined: 04/11/15 Last Seen: October 29, 2024 Share Posted August 14, 2017 (edited) Tested and worked but... just a question is there a way to put that can "enchant" all equipments ¿? i mean on this part //--------------------------------------------------------------// //if specific put the IDs here //--------------------------------------------------------------// setarray .Weapons$,1601,1201,1204,1207,1210,1213,1216,1219,1222,1247,1248,1249; //right handed weapons setarray .Armors$,2301,2303,2305,2307,2307,2309,2312,2314,2316,2321,2323,2325,2328,2330,2332; //Armors setarray .Shields$,2101,2103,2105,2107,2113,2117; //Shields and left hand weapons setarray .Germents$,2512,2501,2503,2505; //Germents setarray .Shoses$,2416,2401,2403,2405,2411; //Shoses setarray .Accessarys$,2628,2608,2609,2612,2613,2627; //Accessarys setarray .Uppers$,2206,2208,2211,2216; //Uppers setarray .Middels$,2218,2241; //Middels setarray .Lowers$,2628,2206; //Lowers i've to put the ID of the equip that can be able to enchant, but is there a way to put "all equiptments" without taking care this ¿? Edit: Ok.... my bad... is here: //--------------------------------------------------------------// //if you want to put specific IDs for kind of gear put it to 1 //--------------------------------------------------------------// .specific_Weapons = 1; .specific_Armors = 0; .specific_Shields = 0; .specific_Germents = 0; .specific_Shoses = 0; .specific_Accessarys = 0; .specific_Uppers = 0; .specific_Middels = 0; .specific_Lowers = 0; Edited August 14, 2017 by ItsFree Quote Link to comment Share on other sites More sharing options...
Kasthiel Posted November 7, 2017 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 38 Reputation: 3 Joined: 04/21/14 Last Seen: August 3, 2021 Share Posted November 7, 2017 how would you do to instead of remove and the items disappear they go back to the inventory? Quote Link to comment Share on other sites More sharing options...
sader1992 Posted November 7, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted November 7, 2017 53 minutes ago, Kasthiel said: how would you do to instead of remove and the items disappear they go back to the inventory? comment this line [210] delitem .@item,1; in s_brack: specialeffect2 155; mes "I am sorry"; mes "We did Fail"; specialeffect2 EF_PHARMACY_FAIL; if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } close; end; Quote Link to comment Share on other sites More sharing options...
Kasthiel Posted November 8, 2017 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 38 Reputation: 3 Joined: 04/21/14 Last Seen: August 3, 2021 Share Posted November 8, 2017 3 hours ago, sader1992 said: comment this line [210] delitem .@item,1; in s_brack: specialeffect2 155; mes "I am sorry"; mes "We did Fail"; specialeffect2 EF_PHARMACY_FAIL; if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } close; end; Hi, thanks, but I do not know if it worked right. My friend and I are trying to use this script, but are fighting with me that I wanted instead of removing everything I could remove the orb I wanted and without ever needing to enchant on it, does it? Another question, is ... I added many orbs in the script, now when I create the item the npc says that I do not have the item, even if it has been configured its id, is some mistake or something else that I need to leave the map and come back to be able to add a new orb in the same weapon that I just put? The options to request the item are active, but when I use one and I'm going to sweat again even though I have another inventory, it says I do not have one. Quote Link to comment Share on other sites More sharing options...
sader1992 Posted November 8, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted November 8, 2017 1 hour ago, Kasthiel said: Hi, thanks, but I do not know if it worked right. My friend and I are trying to use this script, but are fighting with me that I wanted instead of removing everything I could remove the orb I wanted and without ever needing to enchant on it, does it? Another question, is ... I added many orbs in the script, now when I create the item the npc says that I do not have the item, even if it has been configured its id, is some mistake or something else that I need to leave the map and come back to be able to add a new orb in the same weapon that I just put? The options to request the item are active, but when I use one and I'm going to sweat again even though I have another inventory, it says I do not have one. i know that this script not optimized cuz i don't have the time to , but it is working without a problem as far as i know can you post yours after you added your items ? and explaining the first question more Quote Link to comment Share on other sites More sharing options...
Kasthiel Posted November 8, 2017 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 38 Reputation: 3 Joined: 04/21/14 Last Seen: August 3, 2021 Share Posted November 8, 2017 50 minutes ago, sader1992 said: i know that this script not optimized cuz i don't have the time to , but it is working without a problem as far as i know can you post yours after you added your items ? and explaining the first question more The function that is configured removes and destroys all orb and cards of the equipment, what would be better, is instead of doing this, could choose and remove only 1 at a time, same when we will select the orb and the slot. We would choose the equipped slot and remove. //===== rAthena Script ======================================= //= saders enchant npc //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 2.0 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/3602-saders-enchantment-npc/ //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //============================================================ //============================================================ sala_vip,80,105,6 script Encantadora [VIP] 485,{ callsub s_check_menu; end; s_check_menu: if(.s_only_vip == 1 && vip_status(1)){ mes "^A020F0[Encantadora]^000000"; mes "Este serviço é apenas para VIP!"; close; } if (BaseLevel < .s_level_required[0] || BaseLevel > .s_level_required[1]){ mes "^A020F0[Encantadora]^000000"; mes "Você não atende os requisitos."; mes " "; mes "Nível mínimo: "+.s_level_required[0]+"."; mes "Nível máximo: "+.s_level_required[1]+"."; close; } callsub s_start_menu; end; s_start_menu: mes "^A020F0[Encantadora]^000000"; mes "Olá!"; mes "Você quer encantar seus itens!"; mes "Eu sou a melhora feiticeira do mundo!"; next; if (.s_zeny > 0) { mes "^A020F0[Encantadora]^000000"; mes "Isso vai te custar " + .s_zeny + " Zeny!"; } if (.item_is_required == 1) { mes "E uma Pedra de Encantamento."; } mes "Eu farei o meu melhor para encantá-lo com sucesso!"; mes "Mas lembre-se..."; mes "Há sorte neste trabalho também."; next; mes "^A020F0[Encantadora]^000000"; mes "Preste atenção."; mes "Se você tiver itens iguais ao item que deseja encantar."; mes "Deposite eles no armazém e volte aqui!"; next; mes "^A020F0[Encantadora]^000000"; mes "Preste atenção."; mes "Se tiver mais de uma Pedra de Encantamento no inventário guarde todas as quais não for usar no seu armazém."; mes "Deixe apenas a que for usar no inventário."; next; set s_all_selected,0; set s_orb_selected,0; set selected_orb_id ,0; set s_slot_selected,0; set remove_orbs,0; set selected_orb_size,0; set s_item_refine,0; if(.remove_enchant == 1){ callsub s_select_menu; }else{ callsub s_select_armor; } close; end; s_select_menu: mes "^A020F0[Encantadora]^000000"; mes "Então, o que quer fazer!"; next; if(.enable_the_shop == 1){ switch(select("Encantar:Remover Encantamento:Os itens que você pode encantar")){ case 2: remove_orbs = 1; case 3: callsub Q_shop; } }else{ switch(select("Encantar:Remover Encantamento")){ case 2: remove_orbs = 1; } } callsub s_select_armor; end; s_select_armor: next; mes "^A020F0[Encantadora]^000000"; mes "Selecione o item que deseja encantar."; for(.@i=0; .@i<getarraysize(.s_all$); .@i++) if(getequipid(.s_all_loc[.@i])>-1) { set .@armor_menu$, .@armor_menu$ + .s_all$[.@i] + " - [ ^E81B02" + getitemname(getequipid(.s_all_loc[.@i])) + "^000000 ]:"; }else{ set .@armor_menu$, .@armor_menu$ + .s_all$[.@i] + " - [ ^D6C4E8" + "Slot Vazio" + "^000000 ]:"; } set s_all_selected, select(.@armor_menu$) -1; if(getequipid(.s_all_loc[s_all_selected])< 0) { mes "^A020F0[Encantadora]^000000"; mes "Você não tem item equipado neste slot."; close; } if (countitem(getequipid(.s_all_loc[s_all_selected])) > 1){ mes "^A020F0[Encantadora]^000000"; mes "Você tem mais de um item que você deseja encantar."; close; } s_item_refine = getequiprefinerycnt(.s_all_loc[s_all_selected]); callsub s_specific_gears; end; s_specific_gears: if( getd(".specific_" + .s_all$[s_all_selected] + "s") ==1){ for(.@i=0;.@i<getarraysize(getd("." + .s_all$[s_all_selected] + "s$"));.@i++){ if(getequipid(.s_all_loc[s_all_selected]) == atoi(getd("." + .s_all$[s_all_selected] + "s$["+.@i+"]"))){ .@good_to_go = 1; } } }else{ for(.@i=0;.@i<getarraysize(.black_list$);.@i++){ if(getequipid(.s_all_loc[s_all_selected]) == atoi(.black_list$[.@i])){ .@black_list_item = 1; } } .@good_to_go = 1; } if(!.@good_to_go || .@black_list_item == 1){ mes "Desculpe. Eu não posso encantar este item."; close; } if(remove_orbs == 1){callsub s_select_remove;} if(.chosse_orb == 1){callsub s_select_orb;}else{callsub s_random_orb;} end; Q_shop: switch(select("Armas:Armaduras:Escudos:Vestuários:Calçados:Acessórios:Topo:Meio:Baixo")){ case 1: callshop "enchantable_items_Weapon",1; break; case 2: callshop "enchantable_items_Armor",1; break; case 3: callshop "enchantable_items_Shield",1; break; case 4: callshop "enchantable_items_Germent",1; break; case 5: callshop "enchantable_items_Shose",1; break; case 6: callshop "enchantable_items_Accessary",1; break; case 7: callshop "enchantable_items_Upper",1; break; case 8: callshop "enchantable_items_Middel",1; break; case 9: callshop "enchantable_items_Lower",1; break; } end; s_select_orb: next; mes "^A020F0[Encantadora]^000000"; mes "Selecione a Pedra de Encantamento que deseja."; for(.@i=0; .@i<getarraysize(getd("." + .s_all$[s_all_selected] + "$")); .@i++) set .@orb_menu$, .@orb_menu$ + getitemname(atoi(getd("." + .s_all$[s_all_selected] + "$["+.@i+"]"))) + ":"; set s_orb_selected, select(.@orb_menu$) -1; selected_orb_id = getd("." + .s_all$[s_all_selected] + "$["+s_orb_selected+"]"); callsub s_select_slot; end; s_select_slot: next; mes "^A020F0[Encantadora]^000000"; mes "Qual slot?"; .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); for(.@i=getd(".slot_count_" + .s_all$[s_all_selected]); .@i<4; .@i++) if(getequipcardid(.s_all_loc[s_all_selected],.@i)!= null) { set .@slot_menu$, .@slot_menu$ + " [ ^E81B02" + getitemname(getequipcardid(.s_all_loc[s_all_selected],.@i)) + "^000000 ]:"; }else{ set .@slot_menu$, .@slot_menu$ + " [ ^D6C4E8" + "Slot Vazio" + "^000000 ]:"; } set s_slot_selected, select(.@slot_menu$) -1; if(.s_enchant_overwrite == 0){ if(getequipcardid(.s_all_loc[s_all_selected],s_slot_selected) > 0){ mes "Você já possui Pedra de Encantamento neste slot!"; close; } } callsub s_enchant_progress; end; s_enchant_progress: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); if (Zeny < .s_zeny) { mes "^A020F0[Encantadora]^000000"; mes "Desculpe, mas você não tem zeny suficiente."; close; } if(.item_is_required == 1){ if (countitem(selected_orb_id) < 1){ mes"Você não tem Pedra de Encantamento."; close; } } close2; specialeffect2 EF_MAPPILLAR; progressbar "ffff00",.progress_time; set Zeny, Zeny-.s_zeny; if(.item_is_required == 1){delitem selected_orb_id,1;} if (rand(100) < .success_chanse[s_slot_selected]) callsub s_enchant_success; else callsub s_brack; end; s_brack: specialeffect2 155; mes "^A020F0[Encantadora]^000000"; mes "Sinto muito!"; mes "Eu... falhei"; specialeffect2 EF_PHARMACY_FAIL; if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; mes "e quebrou!!"; specialeffect EF_SUI_EXPLOSION; } close; end; s_enchant_success: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); mes "^A020F0[Encantadora]^000000"; mes "Sucesso ao encatar o item!"; specialeffect2 154; setd(".@card" + s_slot_selected, selected_orb_id); set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, .@card0, .@card1, .@card2, .@card3; equip .@item; close; end; s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } case 2: specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, 0, 0, 0, 0; set Zeny, Zeny-.s_zeny_remove; } close; end; s_random_orb: selected_orb_size = rand(getarraysize(getd("." + .s_all$[s_all_selected] + "$"))); selected_orb_id = getd("." + .s_all$[s_all_selected] + "$["+selected_orb_size+"]"); callsub s_select_slot; end; OnInit: //--------------------------------------------------------------// //--------------------------------------------------------------// //-------------------- configuration -----------------------// //--------------------------------------------------------------// //--------------------------------------------------------------// //--------------------------------------------------------------// //Se você deseja remover um do menu, é necessário removê-lo também! / ou adicione //--------------------------------------------------------------// setarray .s_all$,"Weapon","Armor","Shield","Germent","Shose","Accessary","Upper","Middel","Lower"; setarray .s_all_loc,EQI_HAND_R,EQI_ARMOR,EQI_HAND_L,EQI_GARMENT,EQI_SHOES,EQI_ACC_L,EQI_HEAD_TOP,EQI_HEAD_MID,EQI_HEAD_LOW; //--------------------------------------------------------------// //IDs de Orbs (Nota: Shield = mão esquerda para que a arma da mão esquerda conta como Shield também! //--------------------------------------------------------------// //right handed weapons setarray .Weapon$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709, 4710,4711,4712,4713,4714,4715,4716,4717,4718,4719, 4720,4721,4722,4723,4724,4725,4726,4727,4728,4729, 4730,4731,4732,4733,4734,4735,4736,4737,4738,4739, 4740,4741,4742,4743,4744,4745,4746,4747,4748,4749, 4750,4751,4752,4753,4754,4755,4756,4757,4758,4759, 4760,4761,4806, 4883,4896,4897,4898,4899,4906,4907, 4882,4766,4767,4894,4895,4904,4905, 4807,4842, 4791,4792,4793,4794,4893,4902,4903, 4890,4786,4891,4787,4892,4788,4789,4790, 4927,4795,4796,4797,4798,4799, 4928,4870,4871,4800,4801,4802, 4815,4814,4813,4812,4826,4827,4828,4829,4830,4831, 4885,4886,4887,4888,4889, 4811,4810,4809,4808,4820,4821,4822,4823,4824,4825, 4818,4817,4816,4843,4844, 4832,4833,4834,4835,4836,4837,4838,4839,4840,4841, 4861,4862,4867,4868,4900, 4863,4864,4865,48636, 4908,4909,4910, 4911,4912,4913, 4914,4915,4916, 4917,4918,4919, 4920,4921,4922, 4923,4924,4925, 4926,4939,4940,4941,4764,4765, 4859,4860,4762,4763, 4933,934,4935, 4994,4995,4996, 4997,4998,4999, 4869,4872,4873,4881, 4942,4943,4944, 4945,4946,4947, 4948,4949,4950, 4850,4851,4852, 4853,4854,4855,4856,4857,4858, 4936,4937,4938, 4803,4804,4805,4819,4845,4846,4847,4848,4849,4875,4876,4877,4878,4879,4880,4884,4929,4930,4931,4932; //Armors setarray .Armor$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //Shields and left hand weapons setarray .Shield$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //Germent setarray .Germent$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //Shose setarray .Shose$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //orbs id setarray .Accessary$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709,; //Accessary setarray .Upper$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //Middel setarray .Middel$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //Lower setarray .Lower$, 4700,4701,4702,4703,4704,4705,4706,4707,4708,4709; //--------------------------------------------------------------// //se você quiser colocar IDs específicos para o tipo de equipamento, coloque-o em 1 //--------------------------------------------------------------// .specific_Weapons = 1; .specific_Armors = 1; .specific_Shields = 1; .specific_Germents = 1; .specific_Shoses = 1; .specific_Accessarys = 1; .specific_Uppers = 1; .specific_Middels =1; .specific_Lowers = 1; //--------------------------------------------------------------// //se específico colocar as ID aqui //--------------------------------------------------------------// setarray .Weapons$,1601,1201,1204,1207,1210,1213,1216,1219,1222,1247,1248,1249; //right handed weapons setarray .Armors$,2301,2303,2305,2307,2307,2309,2312,2314,2316,2321,2323,2325,2328,2330,2332; //Armors setarray .Shields$,2101,2103,2105,2107,2113,2117; //Shields and left hand weapons setarray .Germents$,2512,2501,2503,2505; //Germents setarray .Shoses$,2416,2401,2403,2405,2411; //Shoses setarray .Accessarys$,2628,2608,2609,2612,2613,2627; //Accessarys setarray .Uppers$,2206,2208,2211,2216; //Uppers setarray .Middels$,2218,2241; //Middels setarray .Lowers$,2628,2206; //Lowers //--------------------------------------------------------------// //se não específico, coloque as IDs da lista negra aqui (se desejar //--------------------------------------------------------------// setarray .black_list$,2335,2338,2340,2341; //--------------------------------------------------------------// //Aqui você pode fazer um número de slot específico para cada tipo //0 = all 4 slot ,1 = last 3 slot ,2 = last 2 slot ,3 = last 1 slot //--------------------------------------------------------------// .slot_count_Weapon = 0; .slot_count_Armor = 0; .slot_count_Shield = 0; .slot_count_Germent = 0; .slot_count_Shose = 0; .slot_count_Accessary = 0; .slot_count_Upper = 0; .slot_count_Middel = 0; .slot_count_Lower = 0; //--------------------------------------------------------------// //outra configuração //--------------------------------------------------------------// setarray .s_level_required,100,255; //the level required to use the npc .s_only_vip = 1; //if you want only vip to use it put it to 1 setarray .success_chanse,100,75,50,25; //success chanse [1st_slot_chanse,2nd_slot_chanse,3rd_slot_chanse,4th_slot_chanse] .s_zeny = 1000000; //if you don't want zeny requirment set it to 0 .s_zeny_remove = 1000000; //this for enchantment reset .item_is_required = 1; //if you want the orb it self to be required 1 = yes , 0 = no .s_enchant_overwrite = 1; //if 1 then you can overwrite the enchant .progress_time = 10; //the time that needed to wait until the socket end .chosse_orb = 0; //0 = random ,1 = yes .brack_chance = 0; //the chanse that it will brack if it fail .remove_enchant = 1; //0 = no ,1 = yes //--------------------------------------------------------------// //Isso só mostrará os itens que o npc pode encantar em uma loja, mas ninguém pode comprar, contanto que você não lhes dê o valor //--------------------------------------------------------------// .enable_the_shop = 0; //--------------------------------------------------------------// //Não edite aqui //--------------------------------------------------------------// npcshopdelitem "enchantable_items_Weapon",512; npcshopdelitem "enchantable_items_Armor",512; npcshopdelitem "enchantable_items_Shield",512; npcshopdelitem "enchantable_items_Germent",512; npcshopdelitem "enchantable_items_Shose",512; npcshopdelitem "enchantable_items_Accessary",512; npcshopdelitem "enchantable_items_Upper",512; npcshopdelitem "enchantable_items_Middel",512; npcshopdelitem "enchantable_items_Lower",512; for (.@i = 0; .@i < getarraysize(.Weapons$); .@i++) npcshopadditem "enchantable_items_Weapon", atoi(.Weapons$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Armors$); .@i++) npcshopadditem "enchantable_items_Armor", atoi(.Armors$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Shields$); .@i++) npcshopadditem "enchantable_items_Shield", atoi(.Shields$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Germents$); .@i++) npcshopadditem "enchantable_items_Germent", atoi(.Germents$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Shoses$); .@i++) npcshopadditem "enchantable_items_Shose", atoi(.Shoses$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Accessarys$); .@i++) npcshopadditem "enchantable_items_Accessary", atoi(.Accessarys$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Uppers$); .@i++) npcshopadditem "enchantable_items_Upper", atoi(.Uppers$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Middels$); .@i++) npcshopadditem "enchantable_items_Middel", atoi(.Middels$[.@i]),1; for (.@i = 0; .@i < getarraysize(.Lowers$); .@i++) npcshopadditem "enchantable_items_Lower", atoi(.Lowers$[.@i]),1; end; } - pointshop enchantable_items_Weapon -1,#YOU_CAN_ENCHANT_Weapons,512:1; - pointshop enchantable_items_Armor -1,#YOU_CAN_ENCHANT_Armors,512:1; - pointshop enchantable_items_Shield -1,#YOU_CAN_ENCHANT_Shields,512:1; - pointshop enchantable_items_Germent -1,#YOU_CAN_ENCHANT_Germents,512:1; - pointshop enchantable_items_Shose -1,#YOU_CAN_ENCHANT_Shoses,512:1; - pointshop enchantable_items_Accessary -1,#YOU_CAN_ENCHANT_Accessarys,512:1; - pointshop enchantable_items_Upper -1,#YOU_CAN_ENCHANT_Uppers,512:1; - pointshop enchantable_items_Middel -1,#YOU_CAN_ENCHANT_Middels,512:1; - pointshop enchantable_items_Lower -1,#YOU_CAN_ENCHANT_Lowers,512:1; Quote Link to comment Share on other sites More sharing options...
sader1992 Posted November 8, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted November 8, 2017 21 minutes ago, Kasthiel said: The function that is configured removes and destroys all orb and cards of the equipment, what would be better, is instead of doing this, could choose and remove only 1 at a time, same when we will select the orb and the slot. We would choose the equipped slot and remove for the item required you can't use random orb with it or else the ppl will retry with the orb in there bag it would be the same as select orb i will clear that when i rewrite it for the orb's removal just edit from the line 252 this s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } case 2: specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, 0, 0, 0, 0; set Zeny, Zeny-.s_zeny_remove; } close; end; to s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ case 1 : end; case 2: if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } switch(select(getitemname(.@card0),getitemname(.@card1),getitemname(.@card2),getitemname(.@card3))){ case 1: .@card0 = 0; break; case 2: .@card1 = 0; break; case 3: .@card2 = 0; break; case 4: .@card3 = 0; break; } specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, .@card0, .@card1, .@card2, .@card3; set Zeny, Zeny-.s_zeny_remove; } close; end; and now you can select the enchant you want to remove Quote Link to comment Share on other sites More sharing options...
Kasthiel Posted November 8, 2017 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 38 Reputation: 3 Joined: 04/21/14 Last Seen: August 3, 2021 Share Posted November 8, 2017 17 minutes ago, sader1992 said: for the item required you can't use random orb with it or else the ppl will retry with the orb in there bag it would be the same as select orb i will clear that when i rewrite it for the orb's removal just edit from the line 252 this s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } case 2: specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, 0, 0, 0, 0; set Zeny, Zeny-.s_zeny_remove; } close; end; to s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ case 1 : end; case 2: if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } switch(select(getitemname(.@card0),getitemname(.@card1),getitemname(.@card2),getitemname(.@card3))){ case 1: .@card0 = 0; break; case 2: .@card1 = 0; break; case 3: .@card2 = 0; break; case 4: .@card3 = 0; break; } specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, .@card0, .@card1, .@card2, .@card3; set Zeny, Zeny-.s_zeny_remove; } close; end; and now you can select the enchant you want to remove Sorry to be disturbing you, she's almost perfect. Only 2 things are missing. 1ª when the shop is active, I select remove orb it jumps straight to the shop, I believe it is something in that part, I already tried to put a "closed" and "end" but I think I did not find the right place. s_select_menu: mes "^A020F0[Encantadora]^000000"; mes "Então, o que quer fazer!"; next; if(.enable_the_shop == 1){ switch(select("Encantar:Remover Encantamento:Os itens que você pode encantar")){ case 2: remove_orbs = 1; case 3: callsub Q_shop; } }else{ switch(select("Encantar:Remover Encantamento")){ case 2: remove_orbs = 1; } } callsub s_select_armor; end; Another is, I wanted it to be pretty even at the time of add, this quay with text [empty slot] instead of null, like the image ... Only that left over ... And the random option issue, I forgot to disable, but even active or inactive was not working very well, now it worked as it was meant to be. Thank you. https://imgur.com/a/CNsg1 Quote Link to comment Share on other sites More sharing options...
sader1992 Posted November 8, 2017 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted November 8, 2017 after case 2: remove_orbs = 1; use break; so it will be case 2: remove_orbs = 1; break; and this for the empty slots s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ case 1 : end; case 2: if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } if(.@card0 == 0).@card0$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card0$ = getitemname(.@card0); if(.@card1 == 0).@card1$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card1$ = getitemname(.@card1); if(.@card2 == 0).@card2$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card2$ = getitemname(.@card2); if(.@card3 == 0).@card3$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card3$ = getitemname(.@card3); switch(select(.@card0$,.@card1$,.@card2$,.@card3$)){ case 1: .@card0 = 0; break; case 2: .@card1 = 0; break; case 3: .@card2 = 0; break; case 4: .@card3 = 0; break; } specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, .@card0, .@card1, .@card2, .@card3; set Zeny, Zeny-.s_zeny_remove; } close; end; 1 Quote Link to comment Share on other sites More sharing options...
Kasthiel Posted November 8, 2017 Group: Members Topic Count: 19 Topics Per Day: 0.00 Content Count: 38 Reputation: 3 Joined: 04/21/14 Last Seen: August 3, 2021 Share Posted November 8, 2017 41 minutes ago, sader1992 said: after case 2: remove_orbs = 1; use break; so it will be case 2: remove_orbs = 1; break; and this for the empty slots s_select_remove: .@card0 = getequipcardid(.s_all_loc[s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[s_all_selected],3); next; mes "^A020F0[Encantadora]^000000"; mes "Isso removerá todos as Cartas e Pedra de Encantamento dentro do item!"; if (.s_zeny_remove > 0) { mes "Isso vai te custar " + .s_zeny_remove + " Zeny."; } mes "Você tem certeza?"; switch(select("Não:Sim")){ case 1 : end; case 2: if (Zeny < .s_zeny_remove) { mes "Desculpe, mas você não tem zeny suficiente."; close; } if(.@card0 == 0).@card0$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card0$ = getitemname(.@card0); if(.@card1 == 0).@card1$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card1$ = getitemname(.@card1); if(.@card2 == 0).@card2$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card2$ = getitemname(.@card2); if(.@card3 == 0).@card3$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card3$ = getitemname(.@card3); switch(select(.@card0$,.@card1$,.@card2$,.@card3$)){ case 1: .@card0 = 0; break; case 2: .@card1 = 0; break; case 3: .@card2 = 0; break; case 4: .@card3 = 0; break; } specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; getitem2 .@item, 1, 1, s_item_refine, 0, .@card0, .@card1, .@card2, .@card3; set Zeny, Zeny-.s_zeny_remove; } close; end; It was 1000% ... The way I wanted it, super top. Thank you. Quote Link to comment Share on other sites More sharing options...
LordJasz Posted June 20, 2018 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 24 Reputation: 0 Joined: 05/21/18 Last Seen: August 13, 2023 Share Posted June 20, 2018 The chance for breaking the item is not working for me. (im using the 2.5V ALPHA) And when I fail it just pop up the next message and i cant do anything after this And I tried to put all values on .brack_chance = 100; //the chanse that it will brack if it fail and it never breaks the item. Could you help? }else{ specialeffect2 155; mes "I am sorry"; mes "We did Fail"; specialeffect2 EF_PHARMACY_FAIL; if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } close; } end; Quote Link to comment Share on other sites More sharing options...
sader1992 Posted June 21, 2018 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted June 21, 2018 22 hours ago, LordJasz said: The chance for breaking the item is not working for me. (im using the 2.5V ALPHA) And when I fail it just pop up the next message and i cant do anything after this And I tried to put all values on and it never breaks the item. Could you help? as i see there is no problems in the code can you post the error you see in the terminal ? Quote Link to comment Share on other sites More sharing options...
vcpoker Posted June 21, 2018 Group: Members Topic Count: 3 Topics Per Day: 0.00 Content Count: 21 Reputation: 0 Joined: 04/07/16 Last Seen: November 22, 2020 Share Posted June 21, 2018 @sader1992 Am I doing something wrong, I set the settings for no. of slot which is "1" if last 3 slot only. Everytime I enchant my garment, it goes in the first slot. Another thing doing the 2nd slot enchant will delete all the enhant. Quote Link to comment Share on other sites More sharing options...
LordJasz Posted June 21, 2018 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 24 Reputation: 0 Joined: 05/21/18 Last Seen: August 13, 2023 Share Posted June 21, 2018 11 hours ago, sader1992 said: as i see there is no problems in the code can you post the error you see in the terminal ? Yeah I agree... but somehow it doesn't work for me, and doesn't show any kinda error, it just popup the window and i cannot move more. I put a close behind the brack_chance to at least when it fails i can close the window, but it seems that it is making the break not work: }else{ specialeffect2 155; mes "I am sorry"; mes "We did Fail"; specialeffect2 EF_PHARMACY_FAIL; close; <- [THIS ONE] if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } close; } end; i actually don't know how it's not working, seems ok for me either. Imma look for any news and I will post here what I find Quote Link to comment Share on other sites More sharing options...
sader1992 Posted June 21, 2018 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted June 21, 2018 (edited) 1 hour ago, LordJasz said: Yeah I agree... but somehow it doesn't work for me, and doesn't show any kinda error, it just popup the window and i cannot move more. I put a close behind the brack_chance to at least when it fails i can close the window, but it seems that it is making the break not work: }else{ specialeffect2 155; mes "I am sorry"; mes "We did Fail"; specialeffect2 EF_PHARMACY_FAIL; close; <- [THIS ONE] if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } close; } end; i actually don't know how it's not working, seems ok for me either. Imma look for any news and I will post here what I find please try this from if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); // <<<<<<<<<<<<<<<<<<<<<<<<< delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } to if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[.@s_all_selected]); // <<<<<<<<<<<<<<<<<<<<<<<<< delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } Edited June 21, 2018 by sader1992 1 Quote Link to comment Share on other sites More sharing options...
sader1992 Posted June 21, 2018 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Author Share Posted June 21, 2018 @vcpoker please download the new version 2.6 1 Quote Link to comment Share on other sites More sharing options...
LordJasz Posted June 21, 2018 Group: Members Topic Count: 7 Topics Per Day: 0.00 Content Count: 24 Reputation: 0 Joined: 05/21/18 Last Seen: August 13, 2023 Share Posted June 21, 2018 50 minutes ago, sader1992 said: please try this from if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[s_all_selected]); // <<<<<<<<<<<<<<<<<<<<<<<<< delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } to if (rand(100) < .brack_chance){ set .@item, getequipid(.s_all_loc[.@s_all_selected]); // <<<<<<<<<<<<<<<<<<<<<<<<< delitem .@item,1; mes "and it broke!!"; specialeffect EF_SUI_EXPLOSION; } 100% working now! thank you. youre a beast o/ Quote Link to comment Share on other sites More sharing options...
vcpoker Posted June 22, 2018 Group: Members Topic Count: 3 Topics Per Day: 0.00 Content Count: 21 Reputation: 0 Joined: 04/07/16 Last Seen: November 22, 2020 Share Posted June 22, 2018 8 hours ago, sader1992 said: @vcpoker please download the new version 2.6 Thanks a lot. It's working, I'll test out other functions. Quote Link to comment Share on other sites More sharing options...
LearningRO Posted July 11, 2018 Group: Members Topic Count: 107 Topics Per Day: 0.02 Content Count: 778 Reputation: 73 Joined: 02/10/12 Last Seen: Yesterday at 12:30 AM Share Posted July 11, 2018 (edited) hi, @sader1992how about to make when player use this npc need stone to enchant the equipment ex: player want to enhant gladius with Vit+3, player must have that items and item will gone/deleted when try to enchant it possible?? Edited July 11, 2018 by melv0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.