- 0
Sign in to follow this
Followers
0
Refined equipment rolled back to zero refine? Bug or Normal?
Asked by
Zirius
-
Recently Browsing 0 members
No registered users viewing this page.

Hello! A player in my server reported that he refined a Manteau [1] and Boots [1] up to +9 and that he is sure of. And then he said it suddenly disappeared...
Upon checking his picklog table I found the Unique ID of those Manteau and Boots, interestingly... his story seems to be true.. Don't know if there's really a logical explanation for here
please check the screen shot
There are some players who reached even up to +10 without even bumping to his issue
I am using pre-RE
I am using the normal refine script just changed the safety limit and created a duplicate at the center of pront
prontera,117,260,3 script Hollgrehenn#prt_mid 4_M_03,{callfunc "refinemain","Hollgrehenn",1;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;.@features = getarg(1);mes "[" + getarg(0) + "]";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 .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";.@menu$ = "";for(.@i = 1; .@i <= 10; ++.@i) {if(getequipisequiped(.@i)) {.@menu$ += .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";.@equipped = 1;}.@menu$ += ":";}if (.@equipped == 0) {mes "[" + getarg(0) + "]";mes "I don't think I can refine any items you have...";close;}.@part = select(.@menu$);if(!getequipisequiped(.@part)) { //custom checkmes "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";mes "I don't think I can";mes "refine this item at all...";close;}//Check to see if the items is already +10if(getequiprefinerycnt(.@part) >= 10) {mes "[" + getarg(0) + "]";mes "I can't refine this";mes "any more. This is as";mes "refined as it gets!";close;}.@refineitemid = getequipid(.@part); // save id of the item.@refinerycnt = getequiprefinerycnt(.@part); //save refinery countswitch(getequipweaponlv(.@part)){case 0: //Refine Armor.@price = 20000;.@material = 985;.@safe = 5;break;case 1: //Refine Level 1 Weapon.@price = 500;.@material = 1010;.@safe = 8;break;case 2: //Refine Level 2 Weapon.@price = 2000;.@material = 1011;.@safe = 7;break;case 3: //Refine Level 3 Weapon.@price = 50000;.@material = 984;.@safe = 6;break;case 4: //Refine Level 4 Weapon.@price = 200000;.@material = 984;.@safe = 5;break;case 5: //Refine other stuff?.@price = 20000;.@material = 985;.@safe = 4;break;}if(.@features != 1) {mes "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";mes "Yeah...";mes "There's no need to";mes "rush. Take your time.";close;}if(getequippercentrefinery(.@part) < 100) {mes "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";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;}Zeny -= .@price;delitem .@material,1;//custom checksif(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)mes "[" + getarg(0) + "]";mes "Look here... you don't have any Items on...";close;}if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the itemmes "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";emotion (!rand(5))?e_cash:e_omg;.@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;.@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 "[" + getarg(0) + "]";mes "I can refine this to the safe limit or a desired number of times. It's your choice.";next;.@menu2 = select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");} else.@menu2 = 2;switch(.@menu2){case 1:.@refinecnt = .@safe - getequiprefinerycnt(.@part);break;case 2:next;mes "[" + getarg(0) + "]";mes "How many times would you like me to refine your item?";next;input .@refinecnt;.@refinecheck = .@refinecnt + getequiprefinerycnt(.@part);if (.@refinecnt < 1 || .@refinecheck > 10) {mes "[" + getarg(0) + "]";mes "I can't refine this item that many times.";close;}if(.@refinecheck > .@safe) {.@refinecheck -= .@safe;mes "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";mes "You said so... So be it.";close;}}break;case 3:next;mes "[" + getarg(0) + "]";mes "You said so... So be it.";close;}.@fullprice = .@price * .@refinecnt;mes "[" + getarg(0) + "]";mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";next;if(select("Yes","No...") == 2){mes "[" + getarg(0) + "]";mes "You said so... So be it.";close;}if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {mes "[" + getarg(0) + "]";mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";close;}Zeny -= .@fullprice;delitem .@material,.@refinecnt;while(.@refinecnt){if (getequipisequiped(.@part) == 0) {mes "[" + getarg(0) + "]";mes "Look here... you don't have any items on...";close;}if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {mes "[" + getarg(0) + "]";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 "[" + getarg(0) + "]";mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";--.@refinecnt;if(.@refinecnt == 0) close;mes "Here's the unused Zeny and materials back...";getitem .@material,.@refinecnt;.@fullprice = .@refinecnt * .@price;Zeny += .@fullprice;close;}successrefitem .@part;emotion e_no1;--.@refinecnt;next;}mes "[" + getarg(0) + "]";mes "All finished... Come again soon.";close;}Here is my refine DB
Hope somebody can explain
Thanks!
Edited by ZiriusShare this post
Link to post
Share on other sites