Jump to content

Search the Community

Showing results for 'sure refine and derefine'.

  • Search By Author

Content Type


Forums

  • Announcements
    • Rules & Guidelines
    • Community News
    • Development News
    • Ragnarok News
    • Community Crowdfunding
  • Support & Releases
    • General
    • Scripting
    • Database
    • Source
    • Graphic Enhancements
    • Web
    • Client-side
    • Third Party
    • Projects
  • Discussion & Suggestions
    • Database Discussion
    • Script Discussion
    • Source Discussion
    • Renewal Discussion
    • Archives
  • Community
    • rAthena General
    • Arts & Writings
    • Off Topic
  • International Forums
    • Filipino Support
    • German Support
    • Indonesian/Malaysian Support
    • Portuguese Support
    • Russian Support (Русский)
    • Spanish Support

Categories

  • Server Resources
    • Server Managers/Editors
    • Scripts
    • Source Modifications
  • Web Resources
    • General Website Templates
    • Forum Templates
    • FluxCP Themes
    • FluxCP Addons
    • Other Web/CP Scripts
  • Graphics Resources
    • Sprites & Palettes
    • Maps & 3D Resources
    • Other Graphics
  • Client Resources
    • GRF Files
    • Client Tools
    • Spriting & Paletting Tools
    • Texture & Mapping Tools
    • Editors
    • Patchers

Categories

  • Low Rate
  • Mid Rate
  • High Rate
  • Super High Rate

Categories

  • Records Test
  • Complete Installation Guides
  • Client Guides
    • Data Folder
  • MySQL Guides
  • Database Guides
  • Map Guides

Categories

  • rAthena Forums
  • rAthena Development
  • FluxCP Development

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


Server


Github


Discord


Interests


Website URL


Yahoo


Skype

Found 20 results

  1. Ronald

    Refiner Npc

    Hi @Jonald All you need is the search bar. https://rathena.org/board/search/?&q=sure refine and derefine&search_and_or=and&sortby=relevancy
  2. Hello, I would like to have a NPC of Save +10 Refine for Item and Derefine for Zeny
  3. prontera,155,181,5 script Sample 4_F_KAFRA1,{ .@eqi = select(.eqi_menu$); mes "it cost "+F_InsertComma(.cost[.@option])+" Zeny"; if (getequipid(.eqi_list[.@eqi]) <= 0) { mes "you didnt have any equipment there."; } else if (Zeny < .cost[.@option]) { } else { .@option = select("refine", "derefine"); Zeny -= .cost[.@option]; if (.@option == 1) { successrefitem .eqi_list[.@eqi]; } else { downrefitem .eqi_list[.@eqi]; } mes "done."; } close; OnInit: setarray .cost, 10000, // refine 100000; // de-refine setarray .eqi_list, EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES; .@size = getarraysize(.eqi_list); for (.@i = 0; .@i < .@size; .@i++) .eqi_menu$ = .eqi_menu$ + F_getpositionname(.eqi_list[.@i]) + ":"; end; }
  4. Please could anyone give me script for HD refiner.... the one that refine & derefine without breaking the equipment? Please anyone?
  5. Compiled without errors but not tested. Please try it from your end. //##################################################################### //# # //# ##### # ######## # # ##### ## # # # //# # ### ## # # # # # # ### # //# #### # # ## ###### #### # # # # # # //# # ####### ## # # # # # # ####### # //# ##### # # ## # # ##### # ## # # # //# # //##################################################################### // //=========== Script for eAthena Users ====================// //= Refiner and Repairman made by Rikimaru on eathena .net=// //=========================================================// //======== Description ====================================// //== Easy made Refiner with Repairman for new eAthena =====// //== Users. Please do not remove theese Credits ===========// //== Refines the complete Equipment to +10 and repairs ====// //== All broken items in the Players inventory ============// //================= Version : =============================// //============= V. 1.0 Bug Fixes by Rikimaru ==============// //============= V. 1.1 Added a Derefiner !! ===============// //=========== Credits End =================================// // // //===================== Script of Smith/Repairman =========// prontera,155,180,5 script Smith 63,{ mes "[Smith]"; mes "Hi,I can Refine your"; mes "Equipment to +10"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[Smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[Smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[Smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +10,Thx for using my Service!"; next; for(set @part,1;@part<11;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 10) successrefitem @part; mes "[Smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now. You need 10.000 Zeny for that."; next; setarray .@a[1],EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R,EQI_GARMENT,EQI_SHOES; select(getequipname(EQI_HEAD_TOP),getequipname(EQI_ARMOR),getequipname(EQI_HAND_L),getequipname(EQI_HAND_R),getequipname(EQI_GARMENT),getequipname(EQI_SHOES)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 10000 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refine."; close; } atcommand "@refine "+ .@a[@menu] +" -10"; set zeny,zeny - 10000; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } }
  6. //##################################################################### //# # //# ##### # ######## # # ##### ## # # # //# # ### ## # # # # # # ### # //# #### # # ## ###### #### # # # # # # //# # ####### ## # # # # # # ####### # //# ##### # # ## # # ##### # ## # # # //# # //##################################################################### // //=========== Script for eAthena Users ====================// //= Refiner and Repairman made by Rikimaru on eathena .net=// //=========================================================// //======== Description ====================================// //== Easy made Refiner with Repairman for new eAthena =====// //== Users. Please do not remove theese Credits ===========// //== Refines the complete Equipment to +10 and repairs ====// //== All broken items in the Players inventory ============// //================= Version : =============================// //============= V. 1.0 Bug Fixes by Rikimaru ==============// //============= V. 1.1 Added a Derefiner !! ===============// //=========== Credits End =================================// // // //===================== Script of Smith/Repairman =========// prontera,155,180,5 script Smith 63,{ mes "[Smith]"; mes "Hi,I can Refine your"; mes "Equipment to +10"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[Smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[Smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[Smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +10,Thx for using my Service!"; next; for(set @part,1;@part<11;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 10) successrefitem @part; mes "[Smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now. You need 10.000 Zeny for that."; next; setarray .@a[1],256,16,32,2,4,64,8,128,512,1; select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 10000 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refine."; close; } atcommand "@refine "+ .@a[@menu] +" -10"; set zeny,zeny - 10000; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } } Evening , im using a refiner npc script from rikimaru , but its seems the npc even refine accessories , middle head and lower head . how can i disable refining that 3 parts middle , lower and acces . i look for the thread
  7. i have an instan refiner npc everything works except for derefine it always says thsi item is not available to derefine. // //=====// /==/ /==/ /==/ // // // /==/ /==/ /=/ /==/ // //=====// /==/ /=/ /==============/ /========/ /==//===/ /==/ /==/ // //=////// /==/ /==//=/ /==/ /==/==/==/==/==/ / / / /==/ /==/ /==/ // // == /==/ /==//=/ /==/ /==/ /==/ /==/ ======/ / /==/ /==/ /==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ / /===/ / /==/ /==/ /==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ / /===/ / /==/ /==/=====/==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ /========/ /==/ /==///////==/ // ================ rAthena Script ================================================== //= Refiner and Repairman made by Rikimaru on rathena.org==// //=========================================================// //======== Description ====================================// //== Easy made Refiner with Repairman for new rAthena =====// //== Users. Please do not remove theese Credits ===========// //== Refines the complete Equipment to +100 and repairs ===// //== All broken items in the Players inventory ============// //================= Version : =============================// //============= V. 1.0 Bug Fixes by Rikimaru ==============// //=========== Credits End =================================// //===================== Script of Smith/Repairman =========// turbo_room,90,119,3 script Smith 63,{ mes "[Smith]"; mes "Hi,I can Refine your"; mes "Equipment to +20"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[Smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[Smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[Smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +20,Thx for using my Service!"; next; for(set @part,1;@part<101;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 20) successrefitem @part; mes "[Smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now. You need 10.000 Zeny for that."; next; setarray .@a[1],256,16,32,2,4,64,8,128,512,1; select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 10000 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refined."; close; } atcommand "@refine "+ .@a[@menu] +" -90"; set zeny,zeny - 10000; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } }
  8. Hi, Anyone can share me a refiner +10 script? or help me to script? I need a refiner for FREE OF CHARGES, multiple refine 1 by 1, do not refine accessory and MID & LOWER....... Auto read & follow itemdb which can refine which cannot refine... and 2nd option together with this NPC Can multiple derefine 1 by 1 Thank you!
  9. Hi. Is it possible to have this script? Like instant refine to +100 and derefine by 10? Thank you!
  10. Hello everyone, can somebody help me. This is a working Instant +4 refiner. My problem is this also upgrade headgears like beret, and any other items that is not refinable. Thank you. turbo_room,64,86,5 script Insta +4 Refiner 907,{ mes "[Smith]"; mes "Hi,I can Refine your"; mes "Equipment to +4"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[Smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[Smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[Smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +4,Thx for using my Service!"; next; for(set @part,1;@part<101;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 4) successrefitem @part; mes "[Smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now."; next; setarray .@a[1],4,16,64,256; select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 1 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refined."; close; } atcommand "@refine "+ .@a[@menu] +" -90"; set zeny,zeny - 1; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } }
  11. Hello, I hope someone can help me out with this support its all about the Refine Function of Emistry. My request is Add another Argument on the function on how many "Refine Ticket" will cost on the desired level of refine. Refine Ticket will not be consumed if player cancel to refine it. Remove the function that will unequip the item when refine is succes! here's the script : //--- Bitmasks ---- // 1 - Top Headgear // 2 - Armor // 4 - Left Hand // 8 - Right Hand // 16 - Garment // 32 - Shoes // 64 - Left Accessory // 128 - Right Accessory // 256 - Middle Headgear // 512 - Lower Headgear // 1024 - Costume : Head Low // 2048 - Costume : Head Mid // 4096 - Costume : Head Top // Notes : You can Customize it according to whatever way you want. // Different NPCs / Items with Different Settings. // It will consume the items that you defined to Refine the Equipments according to your Settings. // ........callfunc( "RefineFunc",<arg1>,<arg2>,<arg3>,<arg4>,<arg5>,<arg6>,<arg7>,<arg8>{,<arg9>,<arg10>} ); // - arg1 = bitmask ( refer table above ) // - arg2 = Minimum refine rate // - arg3 = Maximum refine rate // - arg4 = Refine Count ( negative = derefine / positive = refine ) // - arg5 = Check if Item can be refine ( 1 = true , 0 = false ) // - arg6 = Refine Success Rate ( 0 = default / 1~100% = succes rate ) // - arg7 = Amount of refine count dropped when failure ( must be negative ) // - arg8 = Drop refine count success rate ( 0 ~ 100% ) // - arg9 = Gained Bonus Refine Rate ( 0 ~ 100% ) // - arg10 = Required Item for Bonus Rate if Any ( leave 0 if dont need item ) // ** Arg9 ~ Arg10 is Optional. //----------- If used this as Item Script ----------- // Example : Red Potion as Refine Ticket // 501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "RefineFunc",63,0,20,2,1,80,-3,50,20,501 ); },{},{} // * set Arg.10 to the item id of Red Potion. ( *must* ) // Item will gone if they cancel the process halfway.. //----------- If used this as NPC Script ------------ // Example : // 80% success refine between 0 ~ 20 // 50% minus 3 refine when failed // each refine increase refine count by 2 // if provide 1 apple...gain 20% success refine rate // prontera,155,181,5 script Refiner 757,{ // callfunc( "RefineFunc",63,0,20,2,1,80,-3,50,20,512 ); // } prontera,155,181,5 script Refiner 757,{ callfunc( "RefineFunc",63,0,20,1,1,0,0,0,20,512 ); } function script RefineFunc { .@arg_count = getargcount(); // show information .@display_info = 1; // this this value to your custom max refine if your server have different default max refine .@server_max_refine = (( checkre(0) )? 20:10 ); // argument count checking if( .@arg_count < 8 ){ message strcharinfo(0),"Insufficient Arg. Min. required 8 Args but received only "+.@arg_count; return; } // save arg into a temp array. while( .@i < .@arg_count ){ .@arg[.@i] = getarg( .@i ); .@i++; } // check max refine count ( remove this part if you have custom max refine ) if( .@arg[2] > .@server_max_refine ){ message strcharinfo(0),"[Arg:3] RefineFunc Max Refine must not exceed "+.@server_max_refine +" but received "+.@arg[2]+"."; return; } // Refine Count must not 0. if( !.@arg[3] ){ message strcharinfo(0),"[Arg:4] RefineFunc Count must not 0."; return; } // Refine rate must not negative. if( .@arg[5] < 0 ){ message strcharinfo(0),"[Arg:6] RefineFunc Refine Rate must not Negative. Received "+.@arg[5]; return; } // Refine decrement must not positive. ( so they can differentiate it ) if( .@arg[6] > 0 ){ message strcharinfo(0),"[Arg:7] RefineFunc Failure Decrement must not Positive. Received "+.@arg[6]; return; } // Bonus Refine rate must not negative. if( .@arg[8] < 0 ){ message strcharinfo(0),"[Arg:9] RefineFunc Bonus Rate must not Negative. Received "+.@arg[8]; return; } // check for required item for gaining bonus rate if any if( .@arg[9] ) if( getitemname( .@arg[9] ) == "null" ){ message strcharinfo(0),"[Arg:10] RefineFunc Invalid Bonus Rate Item ID "+.@arg[9]; return; } // generate selection menu .@i = 1; while( .@i < 14 ){ .@equip_id = getequipid( .@i ); if( .@equip_id > 0 ){ .@equip_enableref = (( .@arg[4] )? getequipisenableref( .@i ):1 ); if( .@arg[0] & ( 1 << ( .@i-1 ) ) && .@equip_enableref ){ .@equip_refine = getequiprefinerycnt( .@i ); .@equip_slot = getitemslots( .@equip_id ); if( .@equip_refine >= .@arg[1] && .@equip_refine < .@arg[2] ){ set .@menu$,.@menu$ + ( ( .@equip_refine )?"+"+.@equip_refine+" ":"" ) + getitemname( .@equip_id ) + " ["+.@equip_slot+"]"; .@equipment_count++; } } } set .@menu$,.@menu$ + ":"; .@i++; } // check if any available equip to refine if( !.@equipment_count ){ message strcharinfo(0),"Sorry, but you didnt have equipment that refined between "+.@arg[1]+" ~ "+.@arg[2]+" for refine."; end; }else{ // get equipment data .@equip_part = select( .@menu$ ); .@equip_id = getequipid( .@equip_part ); .@equip_refine = getequiprefinerycnt( .@equip_part ); .@equip_slot = getitemslots( .@equip_id ); for( .@i = 0; .@i < 4; .@i++ ) .@equip_card[.@i] = getequipcardid( .@equip_part,.@i ); .@target_refine = .@equip_refine + .@arg[3]; // determine refine count if( .@target_refine > .@arg[2] ) .@target_refine = .@arg[2]; else if( .@target_refine < 0 ) .@target_refine = 0; if( .@equip_refine == .@target_refine ){ message strcharinfo(0),"That's your current refine rate."; close; } .@success_rate = (( .@arg[5] )? .@arg[5]:getequippercentrefinery( .@equip_part ) ); // display information if( .@display_info ){ mes "Target Refine : "; mes "^0055FF"+( ( .@target_refine )?"+"+.@target_refine:"" )+" "+getitemname( .@equip_id )+" ["+.@equip_slot+"]^000000"; mes "Success Rate : ^777777"+.@success_rate+" %^000000"; if( .@success_rate < 100 ){ if( .@arg[8] ) mes "Bonus Rate : ^777777"+.@arg[8]+" %^000000"; if( .@arg[9] ){ mes "Required Item : ^FF0000"+getitemname( .@arg[9] )+"^000000"; mes " "; mes "^777777**"+getitemname( .@arg[9] )+" is required for bonus rate^000000"; } } next; } if( select( "[^0055FF"+.@success_rate+"%^000000] "+( ( .@arg[3] < 0 )?"De-":"" )+"Refine to ^0055FF"+( ( .@target_refine )?"+"+.@target_refine:"" )+" "+getitemname( .@equip_id )+" ["+.@equip_slot+"]^000000","Cancel" ) == 1 ){ if( getequipisequiped( .@equip_part ) ){ // if it's not De-refine and below 100% success if( .@arg[3] > 0 && .@success_rate < 100 ){ // calculate refine rate + bonus rate if( .@arg[9] ){ if( countitem( .@arg[9] ) ) if( select( "Use ^0055FF"+getitemname( .@arg[9] )+"^000000 to increase Refine Rate","Continue" ) == 1 ){ .@success_rate += .@arg[8]; delitem .@arg[9],1; } }else{ .@success_rate += .@arg[8]; } } delequip .@equip_part; // success and increase refine count if( rand( 100 ) < .@success_rate ){ getitem2 .@equip_id,1,1,.@target_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; message strcharinfo(0),"Succesfully refined to +"+.@target_refine+" "+getitemname( .@equip_id ); specialeffect2 EF_REFINEOK; close; // failed and decrease refine count }else if( .@arg[6] && .@arg[3] && rand( 100 ) < .@arg[7] ){ .@target_refine = ( .@equip_refine + .@arg[6] ); if( .@target_refine < 0 ) .@target_refine = 0; getitem2 .@equip_id,1,1,.@target_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; message strcharinfo(0),"Failed and refine count dropped to +"+.@target_refine+" "+getitemname( .@equip_id ); // failed and destroy equip }else{ message strcharinfo(0),"Failed to refine and destroyed "+getitemname( .@equip_id ); } specialeffect2 EF_REFINEFAIL; } } } close; } Anyone?
  12. hello, i found great script here, that an event with refining and rewards i need help to custom the script like an IRO spooky machine event so the refine should automatic untill it break. any help for this? thanks the current script is made by Lil Trol and the code is like this : ///////////////////////////////////////////////////////////////////////// // SPOOKY NPC // // LIL TROLL//COLDFIRE // ///////////////////////////////////////////////////////////////////////// // RATHENA SCRIPT // //---------------------------------------------------------------------// // Version 1 // // Features: ( REFINE EVENT ) // // - When a piece of setted item/equip is break he will get prize. // // - The players can also claim their reward if they wanted their // // item to be saved and exchange to prize but the prize pool // // will be demoted to lower refine break prize. // // - The piece of equip can be set to a certain chance rate of // // success or derefine each try. // // - In every min/hour of configuration that is set to the npc // // it will unhide/hide. // // - Set your own prize, rates, equipslot, equip to be used, etc. // // its very easy to configure. // // - Atcommand "Refine" is used to create random desirable rates. // ///////////////////////////////////////////////////////////////////////// // You can remove punishment if you want just put "//" before callfunc "Punishment"; payo2,107,101,4script Spooky 63,{ function v; function x; function z; function y; goto DoubleProtection; // Double check set reset.. so that set again and again.. - To prevent abuse of refining. DoubleProtection: goto MainMenu; MainMenu: if(#Spooky == 0 ) { // just mprove the dialogue.. ok? mes .sname$; mes "Hello "+strcharinfo(0)+"!"; mes "Im here to give you a `"+x(.s[0])+"`. I will also refine it for free. I`snt that interesting?"; next; mes .sname$; mes "Yes I knew you think it was awesome!"; next; mes .sname$; mes "Also, I will give you prize for each every successful refine or break of `"+x(.s[0])+"`. Isnt that great?"; next; mes .sname$; mes "Now what do you think doing? Do you want to grab the item or not?"; next; switch(select("[ Yes,sure! ]:[ No,bye! ]")) { case 1: Spooky: set #Spooky,1; mes .sname$; mes "You really wanted to do this ehh... Alright heres your `"+x(.s[0])+"`."; getitem .s[0],.t[0]; next; mes .sname$; mes "Ok you got `"+x(.s[0])+"` please equip that. And i will unequip all of your equipments. Then talk to me again ok?"; close2; nude; break; case 2: mes .sname$; mes "Its not my loss anyways! (XD) Have fun!"; close2; callfunc "Punishment"; break; } } if(#Spooky == 1 ) { goto PrizePerRefine; PrizePerRefine: mes .sname$; mes "Lets start refining the `"+x(.s[0])+"`! Would you like to proceed?"; next; switch(select("[ Yeah lets proceed! ]:[ Wait a bit! ]")) { case 1: set #Spooky,2; mes .sname$; mes "Ok talk to me again! I do prepare a bit."; close; case 2: mes .sname$; mes "I really dont like to wait.. See you the other way arround!"; close2; callfunc "Punishment"; } } if(#Spooky == 2 ) { goto DoubleCheck; DoubleCheck: // This is important so that equip checking for set can be reset everytime new refine is done! - To prevent abuse of refining! goto StartRefining; StartRefining: setarray .@a[1],256,16,32,2,4,64,8,128,512,1; set .@g, getequipid(.p); set .@e, getequiprefinerycnt(.p); mes .sname$; mes "The '"+z(.p)+"' is currently +"+y(.p)+"."; if(.@e ==1 ) mes "Break Prize is `"+x(.s[1])+":"+.t[1]+"`."; if(.@e ==2 ) mes "Break Prize is `"+x(.s[2])+":"+.t[2]+"`."; if(.@e ==3 ) mes "Break Prize is `"+x(.s[3])+":"+.t[3]+"`."; if(.@e ==4 ) mes "Break Prize is `"+x(.s[4])+":"+.t[4]+"`."; if(.@e ==5 ) mes "Break Prize is `"+x(.s[5])+":"+.t[5]+"`."; if(.@e ==6 ) mes "Break Prize is `"+x(.s[6])+":"+.t[6]+"`."; if(.@e ==7 ) mes "Break Prize is `"+x(.s[7])+":"+.t[7]+"`."; if(.@e ==8 ) mes "Break Prize is `"+x(.s[8])+":"+.t[8]+"`."; if(.@e ==9 ) mes "Break Prize is `"+x(.s[9])+":"+.t[9]+"`."; next; set .@m,select(v(1),v(2),v(3),v(4),v(5),v(6),v(7),v(8),v(9),v(10),"Claim Prize"); if(.@m == 11){ mes .sname$; if(.@e <= 3) { mes "You can only claim prize when you reach +4 refine!"; close; } mes "When you claim the prize, pool of prize that is set to 'when break' will be demoted to lower refine prize."; next; mes .sname$; mes "Still would you like to claim the prize?"; next; menu "Yes, I do!",Confirm,"No, I want to try again,",Decline; Confirm: mes .sname$; mes .sname$; if(.@e == 9) { mes "Now your prize is `"+x(.s[8])+":"+.t[8]+"`."; getitem(.s[8],.t[8]); unequip .p; sleep2 200; } if(.@e == 8) { mes "Now your prize is `"+x(.s[7])+":"+.t[7]+"`."; getitem(.s[7],.t[7]); unequip .p; sleep2 200; } if(.@e == 7) { mes "Now your prize is `"+x(.s[6])+":"+.t[6]+"`."; getitem(.s[6],.t[6]); unequip .p; sleep2 200; } if(.@e == 6) { mes "Now your prize is `"+x(.s[5])+":"+.t[5]+"`."; getitem(.s[5],.t[5]); unequip .p; sleep2 200; } if(.@e == 5) { mes "Now your prize is `"+x(.s[4])+":"+.t[4]+"`."; getitem(.s[4],.t[4]); unequip .p; sleep2 200; } if(.@e == 4) { mes "Now your prize is `"+x(.s[3])+":"+.t[3]+"`."; getitem(.s[3],.t[3]); unequip .p; sleep2 200; } specialeffect2 611; delitem .s,1; mes "Congratulations!"; set #Spooky,4; close2; goto MainMenu; Decline: close2; goto MainMenu; } if(.@m != .p || .@g != .s[0] ){ mes .sname$; mes "Pfff.... I only refine `"+x(.s[0])+ "`"; close; } if (getequipid(.p) != .@g || (getequiprefinerycnt(.p) != .@e)) { mes .sname$; mes "You changed your equipment! Dont you do that to me!"; close2; callfunc "Punishment"; end; } set .@f,rand(1,100); set .@f,rand(1,100); if(.@e ==0 ) { if(.@f < .c[0]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +1 "; mes "When break Prize is : "+x(.s[1])+""; next; goto MainMenu; close; } else { next; mes .sname$; mes "Nothing happend.."; goto MainMenu; close; } } set .@g, getequipid(.p); if(.@e ==1 ) { if(.@f < .c[1]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +2 "; mes "When break Prize is : '"+x(.s[1])+":"+.t[1]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[1] ) { unequip .p; sleep2 100; delitem .@s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize '"+x(.s[1])+":"+.t[1]+"`."; getitem .s[1],.t[1]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e ==2 ) { if(.@f < .c[2]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +3 "; mes "When break Prize is : '"+x(.s[2])+":"+.t[2]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[2] ) { unequip .p; sleep2 100; delitem .@s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[2])+"`."; getitem .s[2],.t[2]; set #Spooky,4; next; goto MainMenu; close; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e ==3 ) { if(.@f < .c[3]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +4 "; mes "When break Prize is : '"+x(.s[3])+":"+.t[3]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[3] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[3])+"`."; getitem .s[3],.t[3]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e ==4 ) { if(.@f < .c[4]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +5 "; mes "When break Prize is : '"+x(.s[4])+":"+.t[4]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[4] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[4])+"`."; getitem .s[4],.t[4]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 5 ) { if(.@f < .c[5]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +6 "; mes "When break Prize is : '"+x(.s[5])+":"+.t[5]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[5] ) { unequip .p; sleep2 100; delitem .@s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[5])+"`."; getitem .s[5],.t[5]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 6 ) { if(.@f < .c[6]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +7 "; mes "When break Prize is : '"+x(.s[7])+":"+.t[6]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[6] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[7])+"`."; getitem .s[7],.t[6]; set #Spooky,3; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 7 ) { if(.@f < .c[7]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +8 "; mes "When break Prize is : '"+x(.s[7])+":"+.t[7]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[7] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[7])+"`."; getitem .s[7],.t[7]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 8 ) { if(.@f < .c[8]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +9 "; mes "When break Prize is : '"+x(.s[8])+":"+.t[8]+"`"; next; goto MainMenu; close; } else { if(.@f < .d[8] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize `"+x(.s[8])+"`."; getitem .s[8],.t[8]; set #Spooky,4; close2; goto MainMenu; } else { next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } if(.@e == 9 ) { if(.@f < .c[9]) { next; atcommand "@refine "+ .@a[@menu] +" +1"; mes .sname$; mes "Now its +10 "; mes "Proceed to get your prize!"; set #Spooky,3; next; goto MainMenu; close; } else { if(.@f < .d[9] ) { unequip .p; sleep2 100; delitem .s,1; specialeffect2 155; mes .sname$; mes "You only made this far? What an unlucky pip!"; next; mes .sname$; mes "Here's your prize '"+x(.s[9])+":"+.t[9]+"`."; getitem .s[9],.t[9]; set #Spooky,3; close2; goto MainMenu; } else{ next; mes .sname$; mes "Still you are lucky, "+x(.s[0])+"` is not broke but refine decrease to 1."; atcommand "@refine "+ .@a[@menu] +" -1"; next; goto MainMenu; close; } } } } // End Spooky 2 if(#Spooky == 3 ) { if(.@e >= 10) { mes "You really are awesome! You make me believe superhuman exists!.. Good for you! (XD). Here is your prize `"+x(.s[10])+"`:'"+.t[10]+"'."; getitem .s[10],.t[10]; unequip .p; sleep2 200; delitem .s,1; set #Spooky,6; specialeffect2 610; close2; announce ""+strcharinfo(0)+" made a +10 `"+.s+"` and won `"+x(.s[10])+"`:'"+.t[10]+"'.",bc_all; close; } } // End Spooky 3 if(#Spooky == 4 ) { mes .sname$; mes "Better luck next time! If there is nextime! LOL!"; emotion e_heh; set #Spooky,5; close; } // End Spooky 4 if(#Spooky == 5 ) { mes .sname$; mes "I think I do not have any important bable with you today. Come back later and I will give you another "+getitemname(.s[0])+".."; close; } // End Spooky 5 if(#Spooky == 6 ) { mes .sname$; mes "Congratulations for being the grand winner! Lets see if you can win nextime!.."; close; } // End Spooky 6 function v { return ""+getequipname(getarg(0))+""; } function x { return ""+getitemname(getarg(0))+""; } function z { return ""+getequipname(getarg(0))+""; } function y { return ""+getequiprefinerycnt(getarg(0))+""; } OnInit: set .sname$,"[ Spooky Something? ]"; // You can change the name inside the bars. // Dont remove the comas and columns. setarray .s[0],2102, // Change this to what ever item the npc will refine. (MUST BE CUSTOM ITEM BOUND FOR BEST RESULT!) 501, // +1 Prize when the equip break. 502, // +2 Prize when the equip break. 503, // +3 Prize when the equip break. 504, // +4 Prize when the equip break. 505, // +5 Prize when the equip break. 506, // +6 Prize when the equip break. 507, // +7 Prize when the equip break. 508, // +8 Prize when the equip break. 509, // +9 Prize when the equip break. 510; // +10 Prize after successful refining of the equip. setarray .t[0], 1, // Amount of item that will refine by the NPC. 1, // +1 Prize amount when the equip break. 1, // +2 Prize amount when the equip break. 1, // +3 Prize amount when the equip break. 1, // +4 Prize amount when the equip break. 1, // +5 Prize amount when the equip break. 1, // +6 Prize amount when the equip break. 1, // +7 Prize amount when the equip break. 1, // +8 Prize amount when the equip break. 1, // +9 Prize amount when the equip break. 1; // +10 Prize amount after successful refining of the equip. setarray .c[0], 80, // +1 Chance to refine in %. 75, // +2 Chance to refine in %. 70, // +3 Chance to refine in %. 65, // +4 Chance to refine in %. 60, // +5 Chance to refine in %. 55, // +6 Chance to refine in %. 50, // +7 Chance to refine in %. 35, // +8 Chance to refine in %. 20, // +9 Chance to refine in %. 5; // +10 Chance to refine in %. setarray .d[0], 35, // +1 Fail minus refine %. 40, // +2 Fail minus refine %. 45, // +3 Fail minus refine %. 50, // +4 Fail minus refine %. 55, // +5 Fail minus refine %. 60, // +6 Fail minus refine %. 65, // +7 Fail minus refine %. 70, // +8 Fail minus refine %. 80, // +9 Fail minus refine %. 85; // +10 Fail minus refine %. set .p,3; // Slot of desired equip that will be to used, see below for detail. setarray .gmaid[0],2000000, // ADD GM ACCOUNT ID HERE. // Auto delete @atcommand of players. 2000002; /* EQI_HEAD_TOP (1) - Upper Headear EQI_ARMOR (2) - Armor (Where you keep your Jackets and Robes) EQI_HAND_L (3) - What is in your Left hand. EQI_HAND_R (4) - What is in your Right hand. EQI_GARMENT (5) - The garment slot (Mufflers, Hoods, Manteaus) EQI_SHOES (6) - What foot gear the player has on. EQI_ACC_L (7) - Accessory 1. EQI_ACC_R (8) - Accessory 2. EQI_HEAD_MID (9) - Middle Headgear (masks and glasses) EQI_HEAD_LOW (10) - Lower Headgear (beards, some masks) */ enablenpc strnpcinfo(0); //initnpctimer; end; OnMinute00: query_sql("DELETE FROM `global_reg_value` WHERE `str` = '#Spooky'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(set .@i,0; .@i<.@size; set .@i,.@i+1) { if(attachrid(.@aid[.@i])){ set #Spooky,0; } } announce "Spooky Npc Event is now available!",8; enablenpc strnpcinfo(0); end; OnMinute12: announce "Spooky Npc Event will be gone at 3mins!",8; end; OnMinute13: announce "Spooky Npc Event will be gone at 2mins!",8; end; OnMinute14: announce "Spooky Npc Event will be gone at 1min!",8; end; OnMinute15: announce "Spooky Npc Event will be appear again after one hour!",8; disablenpc strnpcinfo(0); end; OnMinute16: query_sql("DELETE FROM `global_reg_value` WHERE `str` = '#Spooky'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(set .@i,0; .@i<.@size; set .@i,.@i+1) { if(attachrid(.@aid[.@i])){ set #Spooky,0; } } end; OnMinute30: //OnTimer10000: query_sql("DELETE FROM `global_reg_value` WHERE `str` = '#Spooky'"); set .@size, query_sql("select account_id from `char` where online = 1", .@aid); for(set .@i,0; .@i<.@size; set .@i,.@i+1) { if(attachrid(.@aid[.@i])){ set #Spooky,0; } } for(set .@i,0; .@i<getarraysize(.gmaid); set .@i,.@i+1) { if(.@aid!=.gmaid[.@i]){ query_sql "DELETE FROM `log`.`atcommandlog` WHERE `account_id` = '"+.@aid[.@i]+"'"; debugmes "Atcommand garbage has been deleted!::Lil-Troll :D"; } } //initnpctimer; end; } // End Spooky NPC function script Punishment { atcommand "@nuke "+strcharinfo(0); sleep2 500; atcommand "@raise "+strcharinfo(0); sleep2 500; atcommand "@nuke "+strcharinfo(0); sleep2 500; atcommand "@raise "+strcharinfo(0); sleep2 500; atcommand "@nuke "+strcharinfo(0); return; } Thank you before
  13. prontera,155,187,3 script Instant Refiner 710,{ select "Refine", "Derefine"; for ( .@i = 1; .@i <= 10; .@i++ ) { if ( getequipisequiped( .@i ) ) { if ( getequipisenableref( .@i ) ) { if ( @menu == 1 ) { while ( getequiprefinerycnt( .@i ) < 10 ) successrefitem .@i; } else { while ( getequiprefinerycnt( .@i ) > 0 ) downrefitem .@i; // me still using old emu ... // downrefitem .@i, getequiprefinerycnt( .@i ); // perhaps you also using old version like me } } } } close; }actually I just realise that *getequipis.... command always return 0 when nothing equip there ... erm ...my previous statement was incorrect
  14. muahahaha me already got a support PM on the 1st day on return, I can't even believe it prontera,155,187,3 script Instant Refiner 710,{ select "Refine", "Derefine"; for ( .@i = 1; .@i <= 10; .@i++ ) { if ( getequipisequiped( .@i ) ) { if ( getequipisenableref( .@i ) ) { if ( @menu == 1 ) { while ( getequiprefinerycnt( .@i ) < 10 ) successrefitem .@i; } else { // while ( getequiprefinerycnt( .@i ) > 0 ) // downrefitem .@i; // me still using old emu ... downrefitem .@i, getequiprefinerycnt( .@i ); } } } } close; } Emistry problem is because he didn't add *getequipisequiped checkafter read the source script.c file only realise it doesn't cause that error
  15. I just want to know if you guys can fix Emistry Refiner NPC, actually there's no error in the script its just that when you refine example your headgear the NPC will automatically remove it from your Equip i just thought of it if when someone didnt notice that they are Overweight, i think you know what i mean, so here's the script... //--- Bitmasks ---- // 1 - Top Headgear // 2 - Armor // 4 - Left Hand // 8 - Right Hand // 16 - Garment // 32 - Shoes // 64 - Left Accessory // 128 - Right Accessory // 256 - Middle Headgear // 512 - Lower Headgear // 1024 - Costume : Head Low // 2048 - Costume : Head Mid // 4096 - Costume : Head Top // Notes : You can Customize it according to whatever way you want. // Different NPCs / Items with Different Settings. // It will consume the items that you defined to Refine the Equipments according to your Settings. // ........callfunc( "RefineFunc",<arg1>,<arg2>,<arg3>,<arg4>,<arg5>,<arg6>,<arg7>,<arg8>{,<arg9>,<arg10>} ); // - arg1 = bitmask ( refer table above ) // - arg2 = Minimum refine rate // - arg3 = Maximum refine rate // - arg4 = Refine Count ( negative = derefine / positive = refine ) // - arg5 = Check if Item can be refine ( 1 = true , 0 = false ) // - arg6 = Refine Success Rate ( 0 = default / 1~100% = succes rate ) // - arg7 = Amount of refine count dropped when failure ( must be negative ) // - arg8 = Drop refine count success rate ( 0 ~ 100% ) // - arg9 = Gained Bonus Refine Rate ( 0 ~ 100% ) // - arg10 = Required Item for Bonus Rate if Any ( leave 0 if dont need item ) // ** Arg9 ~ Arg10 is Optional. //----------- If used this as Item Script ----------- // Example : Red Potion as Refine Ticket // 501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "RefineFunc",63,0,10,2,1,80,-3,50,20,501 ); },{},{} // * set Arg.10 to the item id of Red Potion. ( *must* ) // Item will gone if they cancel the process halfway.. //----------- If used this as NPC Script ------------ // Example : // 80% success refine between 0 ~ 20 // 50% minus 3 refine when failed // each refine increase refine count by 2 // if provide 1 apple...gain 20% success refine rate // prontera,155,181,5 script Refiner 757,{ // callfunc( "RefineFunc",63,0,20,2,1,80,-3,50,20,512 ); // } prontera,143,172,5 script Mr.Smith 726,{ callfunc( "RefineFunc",63,0,10,1,1,0,0,0,10,26001 ); } function script RefineFunc { .@arg_count = getargcount(); // show information .@display_info = 1; // this this value to your custom max refine if your server have different default max refine .@server_max_refine = (( checkre(0) )? 20:10 ); // argument count checking if( .@arg_count < 8 ){ message strcharinfo(0),"Insufficient Arg. Min. required 8 Args but received only "+.@arg_count; return; } // save arg into a temp array. while( .@i < .@arg_count ){ .@arg[.@i] = getarg( .@i ); .@i++; } // check max refine count ( remove this part if you have custom max refine ) if( .@arg[2] > .@server_max_refine ){ message strcharinfo(0),"[Arg:3] RefineFunc Max Refine must not exceed "+.@server_max_refine +" but received "+.@arg[2]+"."; return; } // Refine Count must not 0. if( !.@arg[3] ){ message strcharinfo(0),"[Arg:4] RefineFunc Count must not 0."; return; } // Refine rate must not negative. if( .@arg[5] < 0 ){ message strcharinfo(0),"[Arg:6] RefineFunc Refine Rate must not Negative. Received "+.@arg[5]; return; } // Refine decrement must not positive. ( so they can differentiate it ) if( .@arg[6] > 0 ){ message strcharinfo(0),"[Arg:7] RefineFunc Failure Decrement must not Positive. Received "+.@arg[6]; return; } // Bonus Refine rate must not negative. if( .@arg[8] < 0 ){ message strcharinfo(0),"[Arg:9] RefineFunc Bonus Rate must not Negative. Received "+.@arg[8]; return; } // check for required item for gaining bonus rate if any if( .@arg[9] ) if( getitemname( .@arg[9] ) == "null" ){ message strcharinfo(0),"[Arg:10] RefineFunc Invalid Bonus Rate Item ID "+.@arg[9]; return; } // generate selection menu .@i = 1; while( .@i < 14 ){ .@equip_id = getequipid( .@i ); if( .@equip_id > 0 ){ .@equip_enableref = (( .@arg[4] )? getequipisenableref( .@i ):1 ); if( .@arg[0] & ( 1 << ( .@i-1 ) ) && .@equip_enableref ){ .@equip_refine = getequiprefinerycnt( .@i ); .@equip_slot = getitemslots( .@equip_id ); if( .@equip_refine >= .@arg[1] && .@equip_refine < .@arg[2] ){ set .@menu$,.@menu$ + ( ( .@equip_refine )?"+"+.@equip_refine+" ":"" ) + getitemname( .@equip_id ) + " ["+.@equip_slot+"]"; .@equipment_count++; } } } set .@menu$,.@menu$ + ":"; .@i++; } // check if any available equip to refine if( !.@equipment_count ){ message strcharinfo(0),"Sorry, but you didnt have equipment that refined between "+.@arg[1]+" ~ "+.@arg[2]+" for refine."; end; }else{ // get equipment data .@equip_part = select( .@menu$ ); .@equip_id = getequipid( .@equip_part ); .@equip_refine = getequiprefinerycnt( .@equip_part ); .@equip_slot = getitemslots( .@equip_id ); for( .@i = 0; .@i < 4; .@i++ ) .@equip_card[.@i] = getequipcardid( .@equip_part,.@i ); .@target_refine = .@equip_refine + .@arg[3]; // determine refine count if( .@target_refine > .@arg[2] ) .@target_refine = .@arg[2]; else if( .@target_refine < 0 ) .@target_refine = 0; if( .@equip_refine == .@target_refine ){ message strcharinfo(0),"That's your current refine rate."; close; } .@success_rate = (( .@arg[5] )? .@arg[5]:getequippercentrefinery( .@equip_part ) ); // display information if( .@display_info ){ mes "Target Refine : "; mes "^0055FF"+( ( .@target_refine )?"+"+.@target_refine:"" )+" "+getitemname( .@equip_id )+" ["+.@equip_slot+"]^000000"; mes "Success Rate : ^777777"+.@success_rate+" %^000000"; if( .@success_rate < 100 ){ if( .@arg[8] ) mes "Bonus Rate : ^777777"+.@arg[8]+" %^000000"; if( .@arg[9] ){ mes "Required Item : ^FF0000"+getitemname( .@arg[9] )+"^000000"; mes " "; mes "^777777**"+getitemname( .@arg[9] )+" is required for bonus rate^000000"; } } next; } if( select( "[^0055FF"+.@success_rate+"%^000000] "+( ( .@arg[3] < 0 )?"De-":"" )+"Refine to ^0055FF"+( ( .@target_refine )?"+"+.@target_refine:"" )+" "+getitemname( .@equip_id )+" ["+.@equip_slot+"]^000000","Cancel" ) == 1 ){ if( getequipisequiped( .@equip_part ) ){ // if it's not De-refine and below 100% success if( .@arg[3] > 0 && .@success_rate < 100 ){ // calculate refine rate + bonus rate if( .@arg[9] ){ if( countitem( .@arg[9] ) ) if( select( "Use ^0055FF"+getitemname( .@arg[9] )+"^000000 to increase Refine Rate","Continue" ) == 1 ){ .@success_rate += .@arg[8]; delitem .@arg[9],1; } }else{ .@success_rate += .@arg[8]; } } delequip .@equip_part; // success and increase refine count if( rand( 100 ) < .@success_rate ){ getitem2 .@equip_id,1,1,.@target_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; message strcharinfo(0),"Succesfully refined to +"+.@target_refine+" "+getitemname( .@equip_id ); specialeffect2 EF_REFINEOK; close; // failed and decrease refine count }else if( .@arg[6] && .@arg[3] && rand( 100 ) < .@arg[7] ){ .@target_refine = ( .@equip_refine + .@arg[6] ); if( .@target_refine < 0 ) .@target_refine = 0; getitem2 .@equip_id,1,1,.@target_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; message strcharinfo(0),"Failed and refine count dropped to +"+.@target_refine+" "+getitemname( .@equip_id ); // failed and destroy equip }else{ message strcharinfo(0),"Failed to refine and destroyed "+getitemname( .@equip_id ); } specialeffect2 EF_REFINEFAIL; } } } close; }
  16. From topic: http://rathena.org/board/topic/87248-spooky-machine/#entry221966 Credits to: Core1 Features: ///////////////////////////////////////////////////////////////////////// // SPOOKY NPC // // LIL TROLL//COLDFIRE // ///////////////////////////////////////////////////////////////////////// // RATHENA SCRIPT // //---------------------------------------------------------------------// // Version 1.1 // // Features: ( REFINE EVENT ) // // - When a piece of setted item/equip is break he will get prize. // // - The players can also claim their reward if they wanted their // // item to be saved and exchange to prize but the prize pool // // will be demoted to lower refine break prize. // // - The piece of equip can be set to a certain chance rate of // // success or derefine each try. // // - In every min/hour of configuration that is set to the npc // // it will unhide/hide. // // - Set your own prize, rates, etc., its very easy to configure. // // - The script uses atcommand "refine" so that random chance // // can be setted manually, i did not use the // // "getequippercentrefinery" because its much easier on this. // // - Autodelete atcommand garbage of players! // ///////////////////////////////////////////////////////////////////////// The configurations: set .sname$,"[ Spooky Something? ]"; // You can change the name inside the bars. // Dont remove the comas and columns. (MUST BE CUSTOM ITEM BOUND FOR BEST RESULT!) setarray .s[0],2102, // Change this to what ever item the npc will refine. 501, // +1 Prize when the equip break. 502, // +2 Prize when the equip break. 503, // +3 Prize when the equip break. 504, // +4 Prize when the equip break. 505, // +5 Prize when the equip break. 506, // +6 Prize when the equip break. 507, // +7 Prize when the equip break. 508, // +8 Prize when the equip break. 509, // +9 Prize when the equip break. 510; // +10 Prize after successful refining of the equip. setarray .t[0], 1, // Amount of item that will refine by the NPC. 1, // +1 Prize amount when the equip break. 1, // +2 Prize amount when the equip break. 1, // +3 Prize amount when the equip break. 1, // +4 Prize amount when the equip break. 1, // +5 Prize amount when the equip break. 1, // +6 Prize amount when the equip break. 1, // +7 Prize amount when the equip break. 1, // +8 Prize amount when the equip break. 1, // +9 Prize amount when the equip break. 1; // +10 Prize amount after successful refining of the equip. setarray .c[0], 80, // +1 Chance to refine in %. 75, // +2 Chance to refine in %. 70, // +3 Chance to refine in %. 65, // +4 Chance to refine in %. 60, // +5 Chance to refine in %. 55, // +6 Chance to refine in %. 50, // +7 Chance to refine in %. 35, // +8 Chance to refine in %. 20, // +9 Chance to refine in %. 5; // +10 Chance to refine in %. setarray .d[0], 35, // +1 Fail minus refine %. 40, // +2 Fail minus refine %. 45, // +3 Fail minus refine %. 50, // +4 Fail minus refine %. 55, // +5 Fail minus refine %. 60, // +6 Fail minus refine %. 65, // +7 Fail minus refine %. 70, // +8 Fail minus refine %. 75, // +9 Fail minus refine %. 80; // +10 Fail minus refine %. set .p,3; // Slot of desired equip that will be to used, see below for detail. setarray .gmaid[0],2000000, // ADD GM ACCOUNT ID HERE. 2000002; // Auto delete @atcommand of players. [spoiler=Changelogs:]v.1: Initial Release v.1.1: Automatically Delete @command logs of non gm char. [spoiler=Todo:]Finding way how to specifically delete the @command function used in the script of the players. Feel free to suggest, also if you found bugs and error please do report it to me. Have fun using the script! V.1 Deleted V.1.1 spooky_npc.txt
  17. i'm using emistry refiner .. heres my problem how can i make the item(7227) gone when they success/fail to upgrade the item? //--- Bitmasks ---- // 1 - Top Headgear // 2 - Armor // 4 - Left Hand // 8 - Right Hand // 16 - Garment // 32 - Shoes // 64 - Left Accessory // 128 - Right Accessory // 256 - Middle Headgear // 512 - Lower Headgear // 1024 - Costume : Head Low // 2048 - Costume : Head Mid // 4096 - Costume : Head Top // Notes : You can Customize it according to whatever way you want. // Different NPCs / Items with Different Settings. // It will consume the items that you defined to Refine the Equipments according to your Settings. // ........callfunc( "RefineFunc",<arg1>,<arg2>,<arg3>,<arg4>,<arg5>,<arg6>,<arg7>,<arg8>{,<arg9>,<arg10>} ); // - arg1 = bitmask ( refer table above ) // - arg2 = Minimum refine rate // - arg3 = Maximum refine rate // - arg4 = Refine Count ( negative = derefine / positive = refine ) // - arg5 = Check if Item can be refine ( 1 = true , 0 = false ) // - arg6 = Refine Success Rate ( 0 = default / 1~100% = succes rate ) // - arg7 = Amount of refine count dropped when failure ( must be negative ) // - arg8 = Drop refine count success rate ( 0 ~ 100% ) // - arg9 = Gained Bonus Refine Rate ( 0 ~ 100% ) // - arg10 = Required Item for Bonus Rate if Any ( leave 0 if dont need item ) // ** Arg9 ~ Arg10 is Optional. //----------- If used this as Item Script ----------- // Example : Red Potion as Refine Ticket // 501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "RefineFunc",63,0,10,2,1,80,-3,50,20,501 ); },{},{} // * set Arg.10 to the item id of Red Potion. ( *must* ) // Item will gone if they cancel the process halfway.. //----------- If used this as NPC Script ------------ // Example : // 80% success refine between 0 ~ 20 // 50% minus 3 refine when failed // each refine increase refine count by 2 // if provide 1 apple...gain 20% success refine rate // prontera,155,181,5 script Refiner 757,{ // callfunc( "RefineFunc",63,0,20,2,1,80,-3,50,20,512 ); // } quiz_02,342,77,5 script Refiner 757,{ callfunc( "RefineFunc",63,0,7,7,1,0,-3,50,20,7227); } function script RefineFunc { .@arg_count = getargcount(); // show information .@display_info = 1; // this this value to your custom max refine if your server have different default max refine .@server_max_refine = (( checkre(0) )? 20:10 ); // argument count checking if( .@arg_count < 8 ){ message strcharinfo(0),"Insufficient Arg. Min. required 8 Args but received only "+.@arg_count; return; } // save arg into a temp array. while( .@i < .@arg_count ){ .@arg[.@i] = getarg( .@i ); .@i++; } // check max refine count ( remove this part if you have custom max refine ) if( .@arg[2] > .@server_max_refine ){ message strcharinfo(0),"[Arg:3] RefineFunc Max Refine must not exceed "+.@server_max_refine +" but received "+.@arg[2]+"."; return; } // Refine Count must not 0. if( !.@arg[3] ){ message strcharinfo(0),"[Arg:4] RefineFunc Count must not 0."; return; } // Refine rate must not negative. if( .@arg[5] < 0 ){ message strcharinfo(0),"[Arg:6] RefineFunc Refine Rate must not Negative. Received "+.@arg[5]; return; } // Refine decrement must not positive. ( so they can differentiate it ) if( .@arg[6] > 0 ){ message strcharinfo(0),"[Arg:7] RefineFunc Failure Decrement must not Positive. Received "+.@arg[6]; return; } // Bonus Refine rate must not negative. if( .@arg[8] < 0 ){ message strcharinfo(0),"[Arg:9] RefineFunc Bonus Rate must not Negative. Received "+.@arg[8]; return; } // check for required item for gaining bonus rate if any if( .@arg[9] ) if( getitemname( .@arg[9] ) == "null" ){ message strcharinfo(0),"[Arg:10] RefineFunc Invalid Bonus Rate Item ID "+.@arg[9]; return; } // generate selection menu .@i = 1; while( .@i < 14 ){ .@equip_id = getequipid( .@i ); if( .@equip_id > 0 ){ .@equip_enableref = (( .@arg[4] )? getequipisenableref( .@i ):1 ); if( .@arg[0] & ( 2 << .@i ) && .@equip_enableref ){ .@equip_refine = getequiprefinerycnt( .@i ); .@equip_slot = getitemslots( .@equip_id ); if( .@equip_refine >= .@arg[1] && .@equip_refine < .@arg[2] ){ set .@menu$,.@menu$ + ( ( .@equip_refine )?"+"+.@equip_refine+" ":"" ) + getitemname( .@equip_id ) + " ["+.@equip_slot+"]"; .@equipment_count++; } } } set .@menu$,.@menu$ + ":"; .@i++; } // check if any available equip to refine if( !.@equipment_count ){ message strcharinfo(0),"Sorry, but you didnt have equipment that refined between "+.@arg[1]+" ~ "+.@arg[2]+" for refine."; }else{ // get equipment data .@equip_part = select( .@menu$ ); .@equip_id = getequipid( .@equip_part ); .@equip_refine = getequiprefinerycnt( .@equip_part ); .@equip_slot = getitemslots( .@equip_id ); for( .@i = 0; .@i < 4; .@i++ ) .@equip_card[.@i] = getequipcardid( .@equip_part,.@i ); .@target_refine = .@equip_refine + .@arg[3]; // determine refine count if( .@target_refine > .@arg[2] ) .@target_refine = .@arg[2]; else if( .@target_refine < 0 ) .@target_refine = 0; if( .@equip_refine == .@target_refine ){ message strcharinfo(0),"That's your current refine rate."; close; } .@success_rate = (( .@arg[5] )? .@arg[5]:getequippercentrefinery( .@equip_part ) ); // display information if( .@display_info ){ mes "Target Refine : "; mes "^0055FF"+( ( .@target_refine )?"+"+.@target_refine:"" )+" "+getitemname( .@equip_id )+" ["+.@equip_slot+"]^000000"; mes "Success Rate : ^777777"+.@success_rate+" %^000000"; if( .@success_rate < 100 ){ if( .@arg[8] ) mes "Bonus Rate : ^777777"+.@arg[8]+" %^000000"; if( .@arg[9] ){ mes "Required Item : ^FF0000"+getitemname( .@arg[9] )+"^000000"; mes " "; mes "^777777**"+getitemname( .@arg[9] )+" is required for bonus rate^000000"; } } next; } if( select( "[^0055FF"+.@success_rate+"%^000000] "+( ( .@arg[3] < 0 )?"De-":"" )+"Refine to ^0055FF"+( ( .@target_refine )?"+"+.@target_refine:"" )+" "+getitemname( .@equip_id )+" ["+.@equip_slot+"]^000000","Cancel" ) == 1 ){ if( getequipisequiped( .@equip_part ) ){ // if it's not De-refine and below 100% success if( .@arg[3] > 0 && .@success_rate < 100 ){ // calculate refine rate + bonus rate if( .@arg[9] ){ if( countitem( .@arg[9] ) ) if( select( "Use ^0055FF"+getitemname( .@arg[9] )+"^000000 to increase Refine Rate","Continue" ) == 1 ){ .@success_rate += .@arg[8]; delitem .@arg[9],1; } }else{ .@success_rate += .@arg[8]; } } delequip .@equip_part; // success and increase refine count if( rand( 100 ) < .@success_rate ){ getitem2 .@equip_id,1,1,.@target_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; message strcharinfo(0),"Succesfully refined to +"+.@target_refine+" "+getitemname( .@equip_id ); specialeffect2 EF_REFINEOK; close; // failed and decrease refine count }else if( .@arg[6] && .@arg[3] && rand( 100 ) < .@arg[7] ){ .@target_refine = ( .@equip_refine + .@arg[6] ); if( .@target_refine < 0 ) .@target_refine = 0; getitem2 .@equip_id,1,1,.@target_refine,0,.@equip_card[0],.@equip_card[1],.@equip_card[2],.@equip_card[3]; message strcharinfo(0),"Failed and refine count dropped to +"+.@target_refine+" "+getitemname( .@equip_id ); // failed and destroy equip }else{ message strcharinfo(0),"Failed to refine and destroyed "+getitemname( .@equip_id ); } specialeffect2 EF_REFINEFAIL; } } } close; }
  18. See boxes for proofs of npc deployment. used @reloadscript and restarting of server but i haven't seen the expected npc. I'll include the script below. credits to rikimaru. // //=====// /==/ /==/ /==/ // // // /==/ /==/ /=/ /==/ // //=====// /==/ /=/ /==============/ /========/ /==//===/ /==/ /==/ // //=////// /==/ /==//=/ /==/ /==/==/==/==/==/ / / / /==/ /==/ /==/ // // == /==/ /==//=/ /==/ /==/ /==/ /==/ ======/ / /==/ /==/ /==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ / /===/ / /==/ /==/ /==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ / /===/ / /==/ /==/=====/==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ /========/ /==/ /==///////==/ // ================ rAthena Script ================================================== //= Refiner and Repairman made by Rikimaru on rathena.org==// //=========================================================// //======== Description ====================================// //== Easy made Refiner with Repairman for new rAthena =====// //== Users. Please do not remove theese Credits ===========// //== Refines the complete Equipment to +10 and repairs ====// //== All broken items in the Players inventory ============// //================= Version : =============================// //============= V. 1.0 Bug Fixes by Rikimaru ==============// //=========== Credits End =================================// //===================== Script of Smith/Repairman =========// payon,163,214,3 script Smith 63,{ mes "[smith]"; mes "Hi,I can Refine your"; mes "Equipment to +100"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +10,Thx for using my Service!"; next; for(set @part,1;@part<101;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 10) successrefitem @part; mes "[smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now. You need 10.000 Zeny for that."; next; setarray .@a[1],256,16,32,2,4,64,8,128,512,1; select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 10000 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refined."; close; } atcommand "@refine "+ .@a[@menu] +" -1"; set zeny,zeny - 10000; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } } mora,97,110,4 duplicate(Smith) Smith#1 441
  19. You could try my Refiner/Derefiner/Repairman : // //=====// /==/ /==/ /==/ // // // /==/ /==/ /=/ /==/ // //=====// /==/ /=/ /==============/ /========/ /==//===/ /==/ /==/ // //=////// /==/ /==//=/ /==/ /==/==/==/==/==/ / / / /==/ /==/ /==/ // // == /==/ /==//=/ /==/ /==/ /==/ /==/ ======/ / /==/ /==/ /==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ / /===/ / /==/ /==/ /==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ / /===/ / /==/ /==/=====/==/ // // == /==/ /==/ /=/ /==/ /==/ /==/ /==/ /========/ /==/ /==///////==/ // ================ rAthena Script ================================================== //= Refiner and Repairman made by Rikimaru on rathena.org==// //=========================================================// //======== Description ====================================// //== Easy made Refiner with Repairman for new rAthena =====// //== Users. Please do not remove theese Credits ===========// //== Refines the complete Equipment to +10 and repairs ====// //== All broken items in the Players inventory ============// //================= Version : =============================// //============= V. 1.0 Bug Fixes by Rikimaru ==============// //=========== Credits End =================================// //===================== Script of Smith/Repairman =========// payon,163,214,3 script Smith 63,{ mes "[smith]"; mes "Hi,I can Refine your"; mes "Equipment to +100"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +10,Thx for using my Service!"; next; for(set @part,1;@part<101;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 10) successrefitem @part; mes "[smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now. You need 10.000 Zeny for that."; next; setarray .@a[1],256,16,32,2,4,64,8,128,512,1; select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 10000 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refined."; close; } atcommand "@refine "+ .@a[@menu] +" -1"; set zeny,zeny - 10000; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } }
  20. Hello eAthena.net Board, yeah,it's me again,I was thinking about making a Refiner + Repairman , because many Servers just need a Refiner + Repairman for the Players to upgrade their items. This Refiner/Repairman ( I call it Smith) Refines the complete Equipment to +10 and repairs all broken items in the inventory of a Player. Do not do the following: - Claim my Work as yours - Download the Script and edit the Name to your name and release it again. - Use it without having the Credits at the top of the Script. - Editing the Script and removing my name from the Script. You are allowed to do this : - Edit the Script ,but you have to add my name at the top of the Script. - Download the Script and use it for your Server Thank you. Script V 1.1 : - http://pastebin.com/RQkvaSRq - Refiner_Repairman2.txt - Codebox //##################################################################### //# # //# ##### # ######## # # ##### ## # # # //# # ### ## # # # # # # ### # //# #### # # ## ###### #### # # # # # # //# # ####### ## # # # # # # ####### # //# ##### # # ## # # ##### # ## # # # //# # //##################################################################### // //=========== Script for eAthena Users ====================// //= Refiner and Repairman made by Rikimaru on eathena .net=// //=========================================================// //======== Description ====================================// //== Easy made Refiner with Repairman for new eAthena =====// //== Users. Please do not remove theese Credits ===========// //== Refines the complete Equipment to +10 and repairs ====// //== All broken items in the Players inventory ============// //================= Version : =============================// //============= V. 1.0 Bug Fixes by Rikimaru ==============// //=========== Credits End =================================// // // //===================== Script of Smith/Repairman =========// MAP_NAME,XXX,YYY,5 script Smith 63,{ mes "[smith]"; mes "Hi,I can Refine your"; mes "Equipment to +10"; mes "or Repair your"; mes "Equipment.Also I'm able"; mes "to Derefine your Equipment."; mes "What do you want from me?"; next; switch(select("I want a Repair:I want a Refine:I want a Derefine:Nothing")) { case 1: mes "[smith]"; mes "Okay I'm going to repair"; mes "your Equipment."; next; while (getbrokenid(1)) { repair(1); set .@i, .@i +1; } if (.@i) dispbottom .@i + " items repaired."; mes "[smith]"; mes "Congrats!Enjoy!"; close; end; case 2: mes "[smith]"; mes "Okay I'm going"; mes "to refine your Equipment"; mes "to +10,Thx for using my Service!"; next; for(set @part,1;@part<11;set @part,@part+1) if(getequipisequiped(@part)) while(getequiprefinerycnt(@part) < 10) successrefitem @part; mes "[smith]"; mes "Congrats Enjoy it!"; close; end; case 3: mes "[ Smith ]"; mes "Okay I'm going to Derifne your Equipment now. You need 10.000 Zeny for that."; next; setarray .@a[1],256,16,32,2,4,64,8,128,512,1; select(getequipname(1),getequipname(2),getequipname(3),getequipname(4),getequipname(5),getequipname(6),getequipname(7),getequipname(8),getequipname(9),getequipname(10)); if ( !getequipisequiped(@menu) ) { mes "[ Smith ]"; mes "There's nothing equipped there..."; close; } if ( zeny < 10000 ) { mes "[ Smith ]"; mes "You don't have enough zeny"; close; } if ( getequiprefinerycnt(@menu) > 10 || getequiprefinerycnt(@menu) == 0 ) { mes "[ Smith ]"; mes "This item cannot be de-refine."; close; } atcommand "@refine "+ .@a[@menu] +" -10"; set zeny,zeny - 10000; mes "[ Smith ]"; mes "Your item has de-refined successfully"; close; case 4: mes "[ Smith ]"; mes "Okay,come back when you need me."; close; } } [/codeBOX] Screenshot : Thank you,comments allowed and I hope that I help some players with this. Yours, ~ Rikimaru
×
×
  • Create New...