Jump to content

Sindit

Members
  • Posts

    22
  • Joined

  • Last visited

Profile Information

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Sindit's Achievements

Poring

Poring (1/15)

11

Reputation

3

Community Answers

  1. If possible, create a new translation on Translate Client patch to translate that to english (2018-01-24bRagexeRE): 25 64 20 BD C3 B0 A3 C0 CC 20 B0 E6 B0 FA C7 DF BD C0 B4 CF B4 D9 2E 00 B0 FA B5 B5 C7 D1 20 B0 D4 C0 D3 C0 CC BF EB C0 BA 20 C1 A4 BB F3 C0 FB C0 CE 20 C0 CF BB F3 BB FD C8 B0 BF A1 20 C1 F6 C0 E5 C0 BB 20 C1 D9 20 BC F6 20 C0 D6 BD C0 B4 CF B4 D9 ANSI: %d ½Ã°£ÀÌ °æ°úÇß½À´Ï´Ù..°úµµÇÑ °ÔÀÓÀÌ¿ëÀº Á¤»óÀûÀÎ ÀÏ»ó»ýÈ°¿¡ ÁöÀåÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù. UTF-8: %d 시간이 경과했습니다..과도한 게임이용은 정상적인 일상생활에 지장을 줄 수 있습니다. Offsets: 008FD990 - 008FD9E0 Another suggestion: If possible, create a new patch to use "/AI/" folder instead of "/AI_sakray/". Thanks for the NEMO update. I appreciated. <3
  2. I didn't understand you very well... Do you want to use that script to change the job anytime? If yes, try this: prontera,150,150,4 script Starter NPC 501,{ /* if (#server_start) { mes "[Starter NPC]"; mes "You can only use my services"; mes "once per account, sorry."; close; } */ setarray .@jobs, Job_Rune_Knight_T,Job_Warlock_T,Job_Ranger_T,Job_Arch_Bishop_T,Job_Mechanic_T,Job_Guillotine_Cross_T, Job_Royal_Guard_T,Job_Sorcerer_T,((Sex)?Job_Minstrel_T:Job_Wanderer_T),Job_Sura_T,Job_Genetic_T,Job_Shadow_Chaser_T, Job_Gunslinger,Job_Taekwon,Job_Star_Gladiator,Job_Soul_Linker,Job_Super_Novice_E,((Sex)?Job_Kagerou:Job_Oboro); set .@size, getarraysize(.@jobs); for(set .@i,0; .@i<.@size; set .@i,.@i+1) set .@menu$,.@menu$+jobname(.@jobs[.@i])+":"; mes "[Starter NPC]"; mes "Welcome to Ragnarok!"; mes "Please select a job."; next; set .@i, select(.@menu$)-1; mes "[Starter NPC]"; mes "Are you sure you want to switch to the "+jobname(.@jobs[.@i])+" class?"; next; if(select("Yes, I'm sure.:No, let me pick again.") == 2) { mes "[Starter NPC]"; mes "Okay, take your time."; close; } mes "[Starter NPC]"; mes "Job changed!"; mes "Please take some apples, too."; mes "They'll come in handy."; emotion e_lv2; //set #server_start,1; jobchange .@jobs[.@i]; getitem 512,100; close; }
  3. The actual percentage of refinement is on refine_db.yml right inside your database folder (.../db/re/refine_db.yml for example). To do this (in database) without excluding other materials or replace it by another, you'll have to create a new "Type" of refinement (I did this to add this materials to my Refine UI without excluing anothers). Try this code made by me: function script omnirefine { .@name$ = getarg(0); /// Custom chances 1 to 20. setarray .@refine_chances[1], 100, 100, 100, 100, 95, 80, 80, 50, 50, 35, 20, 20, 16, 16, 15, 15, 14, 14, 10, 10; /// Equipment position names (Don't edit that order). setarray .@equip_name$[1],"Head","Middle","Lower","Armor","Weapon","Shield","Garment","Shoes","Accessory 1","Accessory 2"; /// Weapon material .@weapon_material = 6438; // Omni-Oridecon /// Armor material .@armor_material = 6439; // Mega-Elunium disable_items; mes "["+ .@name$ +"]"; mes "I am the best Armsmith ever!"; mes "I don't refine with normal, boring materials."; mes "I only refine items using ^003366" + getitemname(.@weapon_material) + "^000000 and ^003366" + getitemname(.@armor_material) + "^000000."; next; mes "["+ .@name$ +"]"; mes "Anyway, you may use my services if you have any of that materials."; mes "What do you want me to refine?"; next; setarray .@equip_pos[1],EQI_HEAD_TOP,EQI_HEAD_MID,EQI_HEAD_LOW,EQI_ARMOR,EQI_HAND_R,EQI_HAND_L,EQI_GARMENT,EQI_SHOES,EQI_ACC_R,EQI_ACC_L; for (.@i = 1; .@i <= getarraysize(.@equip_pos); ++.@i) { if (getequipisequiped(.@equip_pos[.@i])) .@menu$ += getequipname(.@equip_pos[.@i]); else .@menu$ += "^777777" + .@equip_name$[.@i] + " - " + "[Unavailable]" + "^000000"; .@menu$ += ":"; } .@part = .@equip_pos[select(.@menu$)]; .@equip_id = getequipid(.@part); .@refinerycnt = getequiprefinerycnt(.@part); if (!getequipisequiped(.@part)) { //custom check mes "["+ .@name$ +"]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion ET_FRET; close; } if (!getequipisenableref(.@part)) { mes "["+ .@name$ +"]"; mes "I don't think I can"; mes "refine this item at all..."; close; } if (.@refinerycnt >= 20) { //custom check mes "["+ .@name$ +"]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } if (getiteminfo(.@equip_id,2) == 5) .@material = .@weapon_material; else if (getiteminfo(.@equip_id,2) == 4) .@material = .@armor_material; if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) { .@article$ = "a"; .@type$ = "weapon"; } else { .@article$ = "an"; .@type$ = "armor"; } mes "["+ .@name$ +"]"; mes "Hmm " + .@article$ + " " + .@type$ + ", is that ok?"; mes "If you want to refine this " + .@type$ + ","; mes "I will need 1 ^003366" + getitemname(.@material) + "^000000."; mes "Are you sure you want to continue?"; next; if(select("Yes:No") == 2){ mes "["+ .@npc_name$ +"]"; mes "Hm... if you mind... never mind..."; close; } while (1) { .@refinerycnt = getequiprefinerycnt(.@part); if (countitem(.@material) < 1) { mes "["+ .@name$ +"]"; mes "Hm. You don't seem to have enough "+getitemname(.@material)+"."; mes "Please come back when you have them."; close; } delitem .@material,1; // anti-hack if (callfunc("F_IsEquipIDHack", .@part, .@equip_id) || callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) { mes "["+ .@name$ +"]"; emotion ET_FRET; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } if (.@refine_chances[.@refinerycnt+1] > rand(100)) { mes "["+ .@name$ +"]"; mes "Clang! Clang! Clang! Clang!"; successrefitem .@part; next; emotion ET_BEST; mes "["+ .@name$ +"]"; mes "Good! Succes!!!"; mes "I am the best Armsmith."; next; } else { if (rand(100) < 80) { mes "["+ .@name$ +"]"; mes "Clang! Clang! Clang! Clang!"; downrefitem .@part,0; // Only for the fail refinement animation next; emotion (!rand(5))?ET_MONEY:ET_HUK; mes "["+ .@name$ +"]"; mes "Ahhh!!!"; next; mes "["+ .@name$ +"]"; mes "Oh my god!"; mes "The upgrade level has dropped..."; } else { mes "["+ .@name$ +"]"; mes "Clang! Clang! Clang!"; downrefitem .@part,0; // Only for the fail refinement animation next; emotion (!rand(5))?ET_MONEY:ET_HUK; mes "["+ .@name$ +"]"; mes "Hmmm!"; next; mes "["+ .@name$ +"]"; mes "Oh my! I've failed to refine stuff..."; mes "I didn't mean it!"; } mes "I could have made a mistake even though I am the best Armsmith ever."; mes "It just wasn't meant to be."; next; mes "["+ .@name$ +"]"; mes "I will do a better job next time! Don't worry!"; next; } mes "["+ .@name$ +"]"; mes "Do you want to refine again?"; next; if(select("Yes:No") == 2){ mes "["+ .@npc_name$ +"]"; mes "Hm... if you mind... never mind..."; close; } } return; } prt_in,56,54,3 script Refiner#1 826,{ callfunc "omnirefine","^0000FFBlessed Refiner^000000"; end; }
  4. No, it's nothing wrong with your src. Btw, here's your code fixed and tested: // Weapon/Armor Refiners //============================================================ prt_in,63,60,0 script Hollgrehenn 85,{ callfunc "refinemain","Hollgrehenn",0; end; } morocc_in,73,38,6 script Aragham 99,{ callfunc "refinemain","Aragham",0; end; } payon,144,173,5 script Antonio 88,{ callfunc "refinemain","Antonio",0; end; } alberta_in,28,58,0 script Fredrik 85,{ callfunc "refinemain","Fredrik",0; end; } yuno_in01,171,21,4 script Lambert 88,{ callfunc "refinemain","Lambert",0; end; } ein_in01,24,87,5 script Manthasman 826,{ callfunc "refinemain","Manthasman Pruhag",0; end; } lhz_in02,282,20,7 script Fulerr 869,{ callfunc "refinemain","Fulerr",0; end; } //============================================================ //= Main Refiner Function //============================================================ //= To allow auto safe refining/multiple refining set the //= second argument to '1' in the function call. //= If you enable this function, be sure to edit the value of //= .@safe to the max safe refine in refine_db.txt as well. //============================================================ function script refinemain { disable_items; .@npc_name$ = getarg(0); set .@features,getarg(1); mes "["+ .@npc_name$ +"]"; mes "I'm the Armsmith."; mes "I can refine all kinds of weapons, armor and equipment, so let me"; mes "know what you want me to refine."; next; setarray .@equip_pos[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_R, EQI_ACC_L, EQI_HEAD_MID, EQI_HEAD_LOW; setarray .@position$[1], "Head", "Body", "Left hand", "Right hand", "Robe", "Shoes", "Accessory 1", "Accessory 2", "Head 2", "Head 3"; for(.@i = 1; .@i <= getarraysize(.@position$); .@i++) { if(getequipisequiped(.@equip_pos[.@i])) { .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@equip_pos[.@i]) + "]"; .@equipped = 1; } set .@menu$, .@menu$ + ":"; } .@select = select(.@menu$); .@part = .@equip_pos[.@select]; if (.@equipped == 0) { mes "["+ .@npc_name$ +"]"; mes "I don't think I can refine any items you have..."; close; } if(!getequipisequiped(.@part)) { //custom check mes "["+ .@npc_name$ +"]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion e_an; close; } //Check if the item is refinable... if(!getequipisenableref(.@part)) { mes "["+ .@npc_name$ +"]"; mes "I don't think I can"; mes "refine this item at all..."; close; } //Check to see if the items is already +10 if(getequiprefinerycnt(.@part) >= 10) { mes "["+ .@npc_name$ +"]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } set .@refineitemid, getequipid(.@part); // save id of the item set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count switch(getequipweaponlv(.@part)){ case 0: //Refine Armor set .@price,2000; set .@material,985; //Elunium set .@safe,4; break; case 1: //Refine Level 1 Weapon set .@price,50; set .@material,1010; //Phracon set .@safe,7; break; case 2: //Refine Level 2 Weapon set .@price,200; set .@material,1011; //Emveretarcon set .@safe,6; break; case 3: //Refine Level 3 Weapon set .@price,5000; set .@material,984; //Oridecon set .@safe,5; break; case 4: //Refine Level 4 Weapon set .@price,20000; set .@material,984; //Oridecon set .@safe,4; break; case 5: //Refine other stuff? set .@price,2000; set .@material,985; //Elunium set .@safe,4; break; } // If the VIP system is enabled, the prices for non-VIP players are considerably higher. if (VIP_SCRIPT && !vip_status(1)) { switch(getequipweaponlv(.@part)) { case 0: set .@price, .@price * 10; break; case 1: set .@price, .@price * 40; break; case 2: set .@price, .@price * 50; break; case 3: set .@price, .@price * 2; break; case 4: set .@price, .@price * 2; break; case 5: set .@price, .@price * 10; break; } } if(.@features != 1) { mes "["+ .@npc_name$ +"]"; mes "To refine this I need"; mes "one ^003366"+getitemname(.@material)+"^000000 and"; mes "a service fee of " + .@price + " Zeny."; mes "Do you really wish to continue?"; next; if(select("Yes:No") == 2){ mes "["+ .@npc_name$ +"]"; mes "Yeah..."; mes "There's no need to"; mes "rush. Take your time."; close; } if(getequippercentrefinery(.@part) < 100) { mes "["+ .@npc_name$ +"]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch(.@material) { case 985: mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000."; break; default: mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,"; mes "or any added special properties."; break; } next; mes "["+getarg(0)+"]"; mes "I can't make it any clearer."; mes "Once a weapon is destroyed,"; mes "there's no getting it back."; mes "You really have a chance to"; mes "^FF0000lose this weapon^000000 forever."; mes "Do you still want to refine?"; next; if(select("Yes:No") == 2){ mes "["+ .@npc_name$ +"]"; mes "I completely agree..."; mes "I might be a great refiner, but sometimes even I make mistakes."; close; } } if((countitem(.@material) < 1) || (Zeny < .@price)) { mes "["+ .@npc_name$ +"]"; mes "You don't seem to have"; mes "enough Zeny or "+getitemname(.@material)+"..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } set Zeny, Zeny-.@price; delitem .@material,1; // anti-hack if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) { mes "["+ .@npc_name$ +"]"; emotion e_an; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } if(getequippercentrefinery(.@part) <= rand(100)) { failedrefitem .@part; mes "["+ .@npc_name$ +"]"; emotion (!rand(5))?e_cash:e_omg; set .@lose,rand(1,3); if (.@lose == 1) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if(.@lose == 2) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } close; } mes "["+getarg(0)+"]"; successrefitem .@part; emotion e_heh; set .@win,rand(1,3); if (.@win == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if(.@win == 2) { mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } close; } // New Refining Functions ======================== if(getequiprefinerycnt(.@part) < .@safe) { mes "["+ .@npc_name$ +"]"; mes "I can refine this to the safe limit or a desired number of times. It's your choice."; next; set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind..."); } else set .@menu2,2; switch(.@menu2){ case 1: set .@refinecnt,.@safe - getequiprefinerycnt(.@part); break; case 2: next; mes "["+ .@npc_name$ +"]"; mes "How many times would you like me to refine your item?"; next; input .@refinecnt; set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part); if (.@refinecnt < 1 || .@refinecheck > 10) { mes "["+ .@npc_name$ +"]"; mes "I can't refine this item that many times."; close; } if(.@refinecheck > .@safe) { set .@refinecheck,.@refinecheck - .@safe; mes "["+ .@npc_name$ +"]"; mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?"; next; if(select("Yes...","No...") == 2){ mes "["+ .@npc_name$ +"]"; mes "You said so... So be it."; close; } } break; case 3: next; mes "["+ .@npc_name$ +"]"; mes "You said so... So be it."; close; } set .@fullprice,.@price * .@refinecnt; mes "["+ .@npc_name$ +"]"; mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?"; next; if(select("Yes","No...") == 2){ mes "["+ .@npc_name$ +"]"; mes "You said so... So be it."; close; } if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) { mes "["+ .@npc_name$ +"]"; mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes."; close; } set Zeny, Zeny - .@fullprice; delitem .@material,.@refinecnt; while(.@refinecnt){ if (getequipisequiped(.@part) == 0) { mes "["+ .@npc_name$ +"]"; mes "Look here... you don't have any items on..."; close; } if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) { mes "["+ .@npc_name$ +"]"; mes "Clang... No, but did you imagine I could be so stupid?!"; mes "You changed it..."; mes "Get out before I stun you with my Hammer!!"; close; } mes "Clang, clang!!!"; if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) { failedrefitem .@part; emotion e_omg; mes "["+ .@npc_name$ +"]"; mes "WAHHHH!!! I'm so sorry... I warned you this could happen..."; set .@refinecnt,.@refinecnt - 1; if(.@refinecnt == 0) close; mes "Here's the unused Zeny and materials back..."; getitem .@material,.@refinecnt; set .@fullprice,.@refinecnt * .@price; set Zeny, Zeny + .@fullprice; close; } successrefitem .@part; emotion e_no1; set .@refinecnt,.@refinecnt - 1; next; } mes "["+ .@npc_name$ +"]"; mes "All finished... Come again soon."; close; } Remember: This code is testing if the equipment already has an equal or higher refine than 10. And if that condition are true, the refiner will stop dialog (lines 81-87).
  5. You are having troubles because the order of how the for loop checks the equipments isn't equal to your personal order. Try this: // Weapon/Armor Refiners //============================================================ prt_in,63,60,0 script Hollgrehenn 85,{ callfunc "refinemain","Hollgrehenn",0; end; } morocc_in,73,38,6 script Aragham 99,{ callfunc "refinemain","Aragham",0; end; } payon,144,173,5 script Antonio 88,{ callfunc "refinemain","Antonio",0; end; } alberta_in,28,58,0 script Fredrik 85,{ callfunc "refinemain","Fredrik",0; end; } yuno_in01,171,21,4 script Lambert 88,{ callfunc "refinemain","Lambert",0; end; } ein_in01,24,87,5 script Manthasman 826,{ callfunc "refinemain","Manthasman Pruhag",0; end; } lhz_in02,282,20,7 script Fulerr 869,{ callfunc "refinemain","Fulerr",0; end; } //============================================================ //= Main Refiner Function //============================================================ //= To allow auto safe refining/multiple refining set the //= second argument to '1' in the function call. //= If you enable this function, be sure to edit the value of //= .@safe to the max safe refine in refine_db.txt as well. //============================================================ function script refinemain { disable_items; .@npc_name$ = getarg(0); set .@features,getarg(1); mes "["+ .@npc_name$ +"]"; mes "I'm the Armsmith."; mes "I can refine all kinds of weapons, armor and equipment, so let me"; mes "know what you want me to refine."; next; setarray .@equip_pos[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, ,EQI_GARMENT, EQI_SHOES, EQI_ACC_R, EQI_ACC_L, EQI_HEAD_MID, EQI_HEAD_LOW; setarray .@position$[1], "Head", "Body", "Left hand", "Right hand", "Robe", "Shoes", "Accessory 1", "Accessory 2", "Head 2", "Head 3"; for(.@i = 1; .@i <= getarraysize(.@position$); .@i++) { if(getequipisequiped(.@equip_pos[.@i])) { .@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]"; .@equipped = 1; } set .@menu$, .@menu$ + ":"; } if (.@equipped == 0) { mes "["+ .@npc_name$ +"]"; mes "I don't think I can refine any items you have..."; close; } .@select = select(.@menu$); .@part = .@equip_pos[.@select]; if(!getequipisequiped(.@part)) { //custom check mes "["+ .@npc_name$ +"]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion e_an; close; } //Check if the item is refinable... if(!getequipisenableref(.@part)) { mes "["+ .@npc_name$ +"]"; mes "I don't think I can"; mes "refine this item at all..."; close; } //Check to see if the items is already +10 if(getequiprefinerycnt(.@part) >= 10) { mes "["+ .@npc_name$ +"]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } set .@refineitemid, getequipid(.@part); // save id of the item set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count switch(getequipweaponlv(.@part)){ case 0: //Refine Armor set .@price,2000; set .@material,985; //Elunium set .@safe,4; break; case 1: //Refine Level 1 Weapon set .@price,50; set .@material,1010; //Phracon set .@safe,7; break; case 2: //Refine Level 2 Weapon set .@price,200; set .@material,1011; //Emveretarcon set .@safe,6; break; case 3: //Refine Level 3 Weapon set .@price,5000; set .@material,984; //Oridecon set .@safe,5; break; case 4: //Refine Level 4 Weapon set .@price,20000; set .@material,984; //Oridecon set .@safe,4; break; case 5: //Refine other stuff? set .@price,2000; set .@material,985; //Elunium set .@safe,4; break; } // If the VIP system is enabled, the prices for non-VIP players are considerably higher. if (VIP_SCRIPT && !vip_status(1)) { switch(getequipweaponlv(.@part)) { case 0: set .@price, .@price * 10; break; case 1: set .@price, .@price * 40; break; case 2: set .@price, .@price * 50; break; case 3: set .@price, .@price * 2; break; case 4: set .@price, .@price * 2; break; case 5: set .@price, .@price * 10; break; } } if(.@features != 1) { mes "["+ .@npc_name$ +"]"; mes "To refine this I need"; mes "one ^003366"+getitemname(.@material)+"^000000 and"; mes "a service fee of " + .@price + " Zeny."; mes "Do you really wish to continue?"; next; if(select("Yes:No") == 2){ mes "["+ .@npc_name$ +"]"; mes "Yeah..."; mes "There's no need to"; mes "rush. Take your time."; close; } if(getequippercentrefinery(.@part) < 100) { mes "["+ .@npc_name$ +"]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch(.@material) { case 985: mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000."; break; default: mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,"; mes "or any added special properties."; break; } next; mes "["+getarg(0)+"]"; mes "I can't make it any clearer."; mes "Once a weapon is destroyed,"; mes "there's no getting it back."; mes "You really have a chance to"; mes "^FF0000lose this weapon^000000 forever."; mes "Do you still want to refine?"; next; if(select("Yes:No") == 2){ mes "["+ .@npc_name$ +"]"; mes "I completely agree..."; mes "I might be a great refiner, but sometimes even I make mistakes."; close; } } if((countitem(.@material) < 1) || (Zeny < .@price)) { mes "["+ .@npc_name$ +"]"; mes "You don't seem to have"; mes "enough Zeny or "+getitemname(.@material)+"..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } set Zeny, Zeny-.@price; delitem .@material,1; // anti-hack if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) { mes "["+ .@npc_name$ +"]"; emotion e_an; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } if(getequippercentrefinery(.@part) <= rand(100)) { failedrefitem .@part; mes "["+ .@npc_name$ +"]"; emotion (!rand(5))?e_cash:e_omg; set .@lose,rand(1,3); if (.@lose == 1) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if(.@lose == 2) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } close; } mes "["+getarg(0)+"]"; successrefitem .@part; emotion e_heh; set .@win,rand(1,3); if (.@win == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if(.@win == 2) { mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } close; } // New Refining Functions ======================== if(getequiprefinerycnt(.@part) < .@safe) { mes "["+ .@npc_name$ +"]"; mes "I can refine this to the safe limit or a desired number of times. It's your choice."; next; set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind..."); } else set .@menu2,2; switch(.@menu2){ case 1: set .@refinecnt,.@safe - getequiprefinerycnt(.@part); break; case 2: next; mes "["+ .@npc_name$ +"]"; mes "How many times would you like me to refine your item?"; next; input .@refinecnt; set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part); if (.@refinecnt < 1 || .@refinecheck > 10) { mes "["+ .@npc_name$ +"]"; mes "I can't refine this item that many times."; close; } if(.@refinecheck > .@safe) { set .@refinecheck,.@refinecheck - .@safe; mes "["+ .@npc_name$ +"]"; mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?"; next; if(select("Yes...","No...") == 2){ mes "["+ .@npc_name$ +"]"; mes "You said so... So be it."; close; } } break; case 3: next; mes "["+ .@npc_name$ +"]"; mes "You said so... So be it."; close; } set .@fullprice,.@price * .@refinecnt; mes "["+ .@npc_name$ +"]"; mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?"; next; if(select("Yes","No...") == 2){ mes "["+ .@npc_name$ +"]"; mes "You said so... So be it."; close; } if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) { mes "["+ .@npc_name$ +"]"; mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes."; close; } set Zeny, Zeny - .@fullprice; delitem .@material,.@refinecnt; while(.@refinecnt){ if (getequipisequiped(.@part) == 0) { mes "["+ .@npc_name$ +"]"; mes "Look here... you don't have any items on..."; close; } if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) { mes "["+ .@npc_name$ +"]"; mes "Clang... No, but did you imagine I could be so stupid?!"; mes "You changed it..."; mes "Get out before I stun you with my Hammer!!"; close; } mes "Clang, clang!!!"; if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) { failedrefitem .@part; emotion e_omg; mes "["+ .@npc_name$ +"]"; mes "WAHHHH!!! I'm so sorry... I warned you this could happen..."; set .@refinecnt,.@refinecnt - 1; if(.@refinecnt == 0) close; mes "Here's the unused Zeny and materials back..."; getitem .@material,.@refinecnt; set .@fullprice,.@refinecnt * .@price; set Zeny, Zeny + .@fullprice; close; } successrefitem .@part; emotion e_no1; set .@refinecnt,.@refinecnt - 1; next; } mes "["+ .@npc_name$ +"]"; mes "All finished... Come again soon."; close;
  6. Instead of use getcharid(0, $kill$), you just need to use $kill$ ($kill$ is actually saving the character id (char_id) and not the character name (name), so you don't need to use getcharid). Try this: OnClock0000: set .prize, 7227; set .amount, 5; query_sql "SELECT `char_id` FROM `char_reg_num` ORDER BY `key` = 'kills' DESC LIMIT 1", $kill$; query_sql "SELECT `name` FROM `char` WHERE `char_id`="+$kill$+"", .@name$; if (!isloggedin(getcharid(3, .@name$)) query_sql "INSERT INTO `inventory` (`char_id`, `nameid`, `amount`, `equip`, `identify` ) VALUES ('"+$kill$+"', '"+.prize+"', '" +.amount+ "', 0, 1)"; else getitem .prize, .amount, getcharid(3, .@name$); end;
  7. Então, cara, o erro está aqui: "+.@qpname$[.@i]+" Quando você seleciona das tabelas dando apenas um argumento, ele não cria uma array. Tenta assim: query_sql "SELECT `account_id`,`MaxQPoints` FROM `login` WHERE `MaxQPoints` > '0' ORDER BY `MaxQPoints` DESC LIMIT 10",.@acid,.@maxqp; for(set .@i,0; .@i<getarraysize(.@acid); set .@i,.@i+1) { query_sql "SELECT `name` FROM `char` WHERE `account_id`='"+.@acid[.@i]+"' AND `QP_CharPref`='1'",.@qpname$; mes " [ "+(.@i+1)+"º ] "+.@qpname$+" ~ "+.@maxqp[.@i]+""; } close;
  8. Solved! I solved this by diffing my client in a VM using W7 x86 as a OS. Probably the NEMO don't work well in W10 x64.
  9. 2017-05-17aRagexeRE and 2017-06-14aRagexeRE are brokens for me, I can't use any of them. 2016-02-03aRagexeRE is the current client that I'm using. 2017-01-25aRagexeRE.rar
  10. Nope, same here. I unpacked the 2017-01-25aRagexeRE for me (because the one in rA have only 13mb and this is quite strange) and I'm having the same problem when I diff using the latest version of NEMO. Probably 2017-01-25 uses an old UI for rodex. My texture folders:
  11. Anyway, I don't have enabled IncreaseAtkDisplay. This is my diffs that I have enabled: 3 Chat Flood Remove Limit 6 Force Send Client Hash Packet 8 Custom Window Title 9 Disable 1rag1 type parameters (Recommended) 13 Disable Ragexe Filename Check (Recommended) 16 Disable Swear Filter 23 Enable /who command (Recommended) 24 Fix Camera Angles (Recommended) 32 Increase Zoom Out Max 33 Always Call SelectKoreaClientInfo() (Recommended) 34 Enable /showname (Recommended) 36 Read msgstringtable.txt (Recommended) 37 Read questid2display.txt (Recommended) 38 Remove Gravity Ads (Recommended) 39 Remove Gravity Logo (Recommended) 40 Restore Login Window (Recommended) 41 Disable Nagle Algorithm (Recommended) 44 Translate Client (Recommended) 46 Use Normal Guild Brackets (Recommended) 48 Use Plain Text Descriptions (Recommended) 49 Enable Multiple GRFs (Recommended) 50 Skip License Screen 53 Use Ascii on All LangTypes (Recommended) 61 Disable Packet Encryption 64 @ Bug Fix (Recommended) 65 Load Custom lua file instead of iteminfo*.lub (Recommended) 71 Ignore Resource Errors 73 Remove Hourly Announce (Recommended) 74 Increase Screenshot Quality 84 Remove Serial Display (Recommended) 88 Allow space in guild name 90 Enable DNS Support (Recommended) 91 Disconnect to Login Window 97 Cancel to Login Window (Recommended) 208 Restore Cash Shop Icon 213 Disable Help Message on Login (Recommended) @edit: I don't know why I am having this error... I'm 80% sure that I'm the only one with this error. Can you check this in your PC, if you have free time please? Thanks in advance. :v
  12. Maybe be my OS? Win 10 x64? I'll test in a VM with Windows 7 32 bits. Thanks for the answer
  13. I'm having an error with damage output when I diff my client using secretdataz NEMO fork (the actually best differ for hexeds 2017+). Anyone having this problem too? Know the way of how to fix this? @edit: The client diffed in the secretdataz NEMO is alread pre-diffed with the NEO NEMO. But if I diff only with the secretdataz, the error will be the same (with any diff).
  14. How this client unpacked is soo small? My client has 18mb unpacked. o_O
×
×
  • Create New...