Sallycantdance Posted January 20, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Saturday at 06:41 AM Share 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 Link to comment Share on other sites More sharing options...
0 cook1e Posted January 20, 2021 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 171 Reputation: 68 Joined: 10/25/20 Last Seen: 1 hour ago Share 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 Link to comment Share on other sites More sharing options...
1 cook1e Posted January 20, 2021 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 171 Reputation: 68 Joined: 10/25/20 Last Seen: 1 hour ago Share 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 Link to comment Share on other sites More sharing options...
0 sader1992 Posted January 20, 2021 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Share Posted January 20, 2021 (edited) the answer is above ^ just replace >= with == for only +7 Edited January 20, 2021 by sader1992 Quote Link to comment Share on other sites More sharing options...
0 Haruka Mayumi Posted January 20, 2021 Group: Members Topic Count: 9 Topics Per Day: 0.00 Content Count: 485 Reputation: 271 Joined: 06/13/17 Last Seen: April 14 Share 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 Link to comment Share on other sites More sharing options...
0 sader1992 Posted January 20, 2021 Group: Content Moderator Topic Count: 55 Topics Per Day: 0.01 Content Count: 1691 Reputation: 716 Joined: 12/21/14 Last Seen: 5 hours ago Share Posted January 20, 2021 you can try src edit the command it self , would be easier then searching for every place it used in Quote Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 20, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Saturday at 06:41 AM Author Share 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 Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 20, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Saturday at 06:41 AM Author Share 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 Link to comment Share on other sites More sharing options...
0 Slammer Posted January 20, 2021 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 218 Reputation: 155 Joined: 11/28/11 Last Seen: 2 hours ago Share Posted January 20, 2021 2 hours ago, chadness said: no error but no announced refine.txt use this. maybe can help Quote Link to comment Share on other sites More sharing options...
0 WhiteEagle Posted January 20, 2021 Group: Members Topic Count: 79 Topics Per Day: 0.02 Content Count: 480 Reputation: 67 Joined: 08/28/12 Last Seen: 6 hours ago Share 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 Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted January 21, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Saturday at 06:41 AM Author Share 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 Link to comment Share on other sites More sharing options...
0 WhiteEagle Posted January 21, 2021 Group: Members Topic Count: 79 Topics Per Day: 0.02 Content Count: 480 Reputation: 67 Joined: 08/28/12 Last Seen: 6 hours ago Share 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 Link to comment Share on other sites More sharing options...
0 Slammer Posted February 19, 2021 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 218 Reputation: 155 Joined: 11/28/11 Last Seen: 2 hours ago Share 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 Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted February 20, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Saturday at 06:41 AM Author Share 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 Link to comment Share on other sites More sharing options...
0 Slammer Posted February 20, 2021 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 218 Reputation: 155 Joined: 11/28/11 Last Seen: 2 hours ago Share 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 Link to comment Share on other sites More sharing options...
0 Sallycantdance Posted February 20, 2021 Group: Members Topic Count: 225 Topics Per Day: 0.14 Content Count: 798 Reputation: 12 Joined: 12/04/20 Last Seen: Saturday at 06:41 AM Author Share Posted February 20, 2021 4 hours ago, Slammer said: here you go... thanks alot sir i will try this later Quote Link to comment Share on other sites More sharing options...
0 Slammer Posted February 26, 2022 Group: Members Topic Count: 10 Topics Per Day: 0.00 Content Count: 218 Reputation: 155 Joined: 11/28/11 Last Seen: 2 hours ago Share Posted February 26, 2022 @rmon i share a new scriptnew refine announce.txt Quote Link to comment Share on other sites More sharing options...
0 rmon Posted February 27, 2022 Group: Members Topic Count: 13 Topics Per Day: 0.00 Content Count: 97 Reputation: 2 Joined: 04/27/16 Last Seen: 9 hours ago Share 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 Link to comment Share on other sites More sharing options...
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 chadnessLink to comment
Share on other sites
17 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.