Sallycantdance Posted January 20, 2021 Posted January 20, 2021 (edited) hello everyone i would like to ask how to put announce if the item reach level 7 it will be announce in the whole server thanks in advance Edited January 21, 2021 by chadness Quote
0 cook1e Posted January 20, 2021 Posted January 20, 2021 Go to npc/merchants/refine.txt search for successrefitem .@part; below add if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; it would be like this successrefitem .@part; if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; Quote
1 cook1e Posted January 20, 2021 Posted January 20, 2021 4 hours ago, Slammer said: refine.txt use this. maybe can help If this one doesnt help you. Try this. refine.txt 2 Quote
0 sader1992 Posted January 20, 2021 Posted January 20, 2021 (edited) the answer is above ^ just replace >= with == for only +7 Edited January 20, 2021 by sader1992 Quote
0 Haruka Mayumi Posted January 20, 2021 Posted January 20, 2021 I would recommend to use find on all files the successrefitem and add the code after it.. a little note is that if the player use WEAPON REFINE of whitesmith. the announce won't show up since that would be source side Quote
0 sader1992 Posted January 20, 2021 Posted January 20, 2021 you can try src edit the command it self , would be easier then searching for every place it used in Quote
0 Sallycantdance Posted January 20, 2021 Author Posted January 20, 2021 On 1/20/2021 at 1:21 PM, cook1e said: Go to npc/merchants/refine.txt search for successrefitem .@part; below add if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; it would be like this successrefitem .@part; if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; thanks to this ill try it now On 1/20/2021 at 3:27 PM, sader1992 said: you can try src edit the command it self , would be easier then searching for every place it used in where exactly sir in src? Quote
0 Sallycantdance Posted January 20, 2021 Author Posted January 20, 2021 On 1/20/2021 at 2:10 PM, Haruka Mayumi said: I would recommend to use find on all files the successrefitem and add the code after it.. a little note is that if the player use WEAPON REFINE of whitesmith. the announce won't show up since that would be source side the code above? On 1/20/2021 at 2:07 PM, sader1992 said: the answer is above ^ just replace >= with == for only +7 double == sign sir? On 1/20/2021 at 1:21 PM, cook1e said: Go to npc/merchants/refine.txt search for successrefitem .@part; below add if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; it would be like this successrefitem .@part; if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; no error but no announced Quote
0 Slammer Posted January 20, 2021 Posted January 20, 2021 2 hours ago, chadness said: no error but no announced refine.txt use this. maybe can help Quote
0 WhiteEagle Posted January 20, 2021 Posted January 20, 2021 Just as an idea, how about adding a filter? Lv.1 and 2 weapons would also trigger the announce and Lv.1 is safe till +7. Just change this: if (getequiprefinerycnt(.@part) >= 7) announce strcharinfo(0)+" has refined "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0; To this: if (getequiprefinerycnt(.@part) >= 7) { if (.@part == EQI_GARMENT || .@part == EQI_HEAD_TOP || .@part == EQI_SHOES || .@part == EQI_ARMOR) { announce strcharinfo(0)+" has refined ["+getequipname(.@part)+"] to +"+getequiprefinerycnt(.@part)+"!",0; } if (getequipweaponlv(.@part) >= 3 ) { announce strcharinfo(0)+" has refined the weapon ["+getequipname(.@part)+"] to +"+getequiprefinerycnt(.@part)+"!",0; } } Quote
0 Sallycantdance Posted January 21, 2021 Author Posted January 21, 2021 its working but i wish theres no selection of refining just the announcement On 1/21/2021 at 4:33 AM, cook1e said: If this one doesnt help you. Try this. refine.txt 38.88 kB · 3 downloads can you make the +8 +9 +10 also ? Quote
0 WhiteEagle Posted January 21, 2021 Posted January 21, 2021 2 hours ago, chadness said: can you make the +8 +9 +10 also ? The Announce comes every time something is refined to +7 or higher. That means also +8, +9,+10. Quote
0 Slammer Posted February 19, 2021 Posted February 19, 2021 On 1/21/2021 at 1:56 PM, chadness said: can you make the +8 +9 +10 also ? here you go weapon lv 1 +8 or high weapon lv 2 +7 or high weapon lv 3 +6 or high weapon lv 4 +5 or high and armor/acc/headgear +5 they will annouce refine_announce.txt 1 Quote
0 Sallycantdance Posted February 20, 2021 Author Posted February 20, 2021 On 2/19/2021 at 8:35 AM, Slammer said: here you go weapon lv 1 +8 or high weapon lv 2 +7 or high weapon lv 3 +6 or high weapon lv 4 +5 or high and armor/acc/headgear +5 they will annouce refine_announce.txt 40.97 kB · 4 downloads thankyou sir how about if the weapon or armors or headgear failed is there also an announcer? Quote
0 Slammer Posted February 20, 2021 Posted February 20, 2021 3 hours ago, chadness said: thankyou sir how about if the weapon or armors or headgear failed is there also an announcer? here you go... Quote function script refinemain { disable_items; .@npc_name$ = getarg(0); .@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 .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW; for(.@i = 1; .@i<getarraysize(.@indices); ++.@i) { if(getequipisequiped(.@indices[.@i])) { .@menu$ = .@menu$ + F_getpositionname(.@indices[.@i]) + "-[" + getequipname(.@indices[.@i]) + "]"; .@equipped = 1; } .@menu$ = .@menu$ + ":"; } if (.@equipped == 0) { mes "["+ .@npc_name$ +"]"; mes "I don't think I can refine any items you have..."; close; } .@part = .@indices[select(.@menu$)]; if(!getequipisequiped(.@part)) { //custom check mes "["+ .@npc_name$ +"]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion ET_FRET; 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; } .@refineitemid = getequipid(.@part); // save id of the item .@refinerycnt = getequiprefinerycnt(.@part); //save refinery count setarray .@card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3); .@price = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_ZENY_COST); .@material = getequiprefinecost(.@part, REFINE_COST_NORMAL, REFINE_MATERIAL_ID); switch (getequipweaponlv(.@part)) { case 1: .@safe = 7; break; case 2: .@safe = 6; break; case 3: .@safe = 5; break; case 4: default: .@safe = 4; break; } // If the VIP system is enabled, the prices for non-VIP players are considerably higher. if (VIP_SCRIPT && !vip_status(VIP_STATUS_ACTIVE)) { switch(getequipweaponlv(.@part)) { case 0: .@price = .@price * 10; break; case 1: .@price = .@price * 40; break; case 2: .@price = .@price * 50; break; case 3: .@price = .@price * 2; break; case 4: .@price = .@price * 2; break; case 5: .@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; } Zeny = Zeny-.@price; delitem .@material,1; // anti-hack if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3]) || callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt)) { mes "["+ .@npc_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(getequippercentrefinery(.@part) <= rand(100)) { announce strcharinfo(0)+" has failed refined a "+getequipname(.@part)+"+"+getequiprefinerycnt(.@part)+" to "+getequipname(.@part)+"+"+(getequiprefinerycnt(.@part)+1)+"!",0; failedrefitem .@part; mes "["+ .@npc_name$ +"]"; emotion (!rand(5))?ET_MONEY:ET_HUK; .@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; if (getequiprefinerycnt(.@part) >= 8 && getequipweaponlv(.@part) == 1){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 7 && getequipweaponlv(.@part) == 2){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 6 && getequipweaponlv(.@part) == 3){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 5 && getequipweaponlv(.@part) == 4){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 5) && (.@part == EQI_GARMENT || .@part == EQI_HEAD_TOP || .@part == EQI_SHOES || .@part == EQI_ARMOR){ announce strcharinfo(0)+" has refined armor "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} emotion ET_SMILE; .@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 (.@refinerycnt < .@safe) { mes "["+ .@npc_name$ +"]"; 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 - .@refinerycnt; break; case 2: next; mes "["+ .@npc_name$ +"]"; mes "How many times would you like me to refine your item?"; next; input .@refinecnt; .@refinecheck = .@refinecnt + .@refinerycnt; if (.@refinecnt < 1 || .@refinecheck > 10) { mes "["+ .@npc_name$ +"]"; mes "I can't refine this item that many times."; close; } if(.@refinecheck > .@safe) { .@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; } .@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; } 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; } // anti-hack if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3]) || callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || (.@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; announce strcharinfo(0)+" has failed refined a "+getequipname(.@part)+"+"+getequiprefinerycnt(.@part)+" to "+getequipname(.@part)+"+"+(getequiprefinerycnt(.@part)+1)+"!",0; emotion ET_HUK; mes "["+ .@npc_name$ +"]"; mes "WAHHHH!!! I'm so sorry... I warned you this could happen..."; .@refinecnt = .@refinecnt - 1; if(.@refinecnt == 0) close; mes "Here's the unused Zeny and materials back..."; getitem .@material,.@refinecnt; .@fullprice = .@refinecnt * .@price; Zeny = Zeny + .@fullprice; close; } successrefitem .@part; if (getequiprefinerycnt(.@part) >= 8 && getequipweaponlv(.@part) == 1){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 7 && getequipweaponlv(.@part) == 2){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 6 && getequipweaponlv(.@part) == 3){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 5 && getequipweaponlv(.@part) == 4){ announce strcharinfo(0)+" has refined weapon "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} else if (getequiprefinerycnt(.@part) >= 5) && (.@part == EQI_GARMENT || .@part == EQI_HEAD_TOP || .@part == EQI_SHOES || .@part == EQI_ARMOR){ announce strcharinfo(0)+" has refined armor "+getequipname(.@part)+" to +"+getequiprefinerycnt(.@part)+"!",0;} emotion ET_BEST; .@refinecnt = .@refinecnt - 1; .@refinerycnt = getequiprefinerycnt(.@part); next; } mes "["+ .@npc_name$ +"]"; mes "All finished... Come again soon."; close; } 1 Quote
0 Sallycantdance Posted February 20, 2021 Author Posted February 20, 2021 4 hours ago, Slammer said: here you go... thanks alot sir i will try this later Quote
0 Slammer Posted February 26, 2022 Posted February 26, 2022 @rmon i share a new scriptnew refine announce.txt Quote
0 rmon Posted February 27, 2022 Posted February 27, 2022 5 hours ago, Slammer said: @rmon i share a new scriptnew refine announce.txt Thank you so much i will try this does it include also for blacksmith skill ? Quote
Question
Sallycantdance
hello everyone i would like to ask how to put announce if the item reach level 7 it will be announce in the whole server thanks in advance
Edited by chadness17 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.