pajodex Posted January 13, 2018 Group: Members Topic Count: 79 Topics Per Day: 0.03 Content Count: 439 Reputation: 173 Joined: 12/12/17 Last Seen: April 14 Share Posted January 13, 2018 Hi, How can I lower the chances of breaking the item when using Weapon Refine by whitesmith. void skill_weaponrefine(struct map_session_data *sd, int idx) { nullpo_retv(sd); if (idx >= 0 && idx < MAX_INVENTORY) { struct item *item; struct item_data *ditem = sd->inventory_data[idx]; item = &sd->inventory.u.items_inventory[idx]; if(item->nameid > 0 && ditem->type == IT_WEAPON) { int i = 0, per; unsigned short material[5] = { 0, ITEMID_PHRACON, ITEMID_EMVERETARCON, ITEMID_ORIDECON, ITEMID_ORIDECON }; if( ditem->flag.no_refine ) { // if the item isn't refinable clif_skill_fail(sd,sd->menuskill_id,USESKILL_FAIL_LEVEL,0); return; } if( item->refine >= sd->menuskill_val || item->refine >= 10 ) { clif_upgrademessage(sd->fd, 2, item->nameid); return; } if( (i = pc_search_inventory(sd, material [ditem->wlv])) < 0 ) { clif_upgrademessage(sd->fd, 3, material[ditem->wlv]); return; } per = status_get_refine_chance(static_cast<refine_type>(ditem->wlv), (int)item->refine, false); if( sd->class_&JOBL_THIRD ) per += 15; else per += (((signed int)sd->status.job_level)-50)/2; //Updated per the new kro descriptions. [Skotlex] pc_delitem(sd, i, 1, 0, 0, LOG_TYPE_OTHER); if (per > rnd() % 100) { int ep=0; log_pick_pc(sd, LOG_TYPE_OTHER, -1, item); item->refine++; log_pick_pc(sd, LOG_TYPE_OTHER, 1, item); if(item->equip) { ep = item->equip; pc_unequipitem(sd,idx,3); } clif_delitem(sd,idx,1,3); clif_upgrademessage(sd->fd, 0, item->nameid); clif_inventorylist(sd); clif_refine(sd->fd,0,idx,item->refine); achievement_update_objective(sd, AG_REFINE_SUCCESS, 2, ditem->wlv, item->refine); if (ep) pc_equipitem(sd,idx,ep); clif_misceffect(&sd->bl,3); if(item->refine == 10 && item->card[0] == CARD0_FORGE && (int)MakeDWord(item->card[2],item->card[3]) == sd->status.char_id) { // Fame point system [DracoRPG] switch(ditem->wlv){ case 1: pc_addfame(sd, battle_config.fame_refine_lv1); // Success to refine to +10 a lv1 weapon you forged = +1 fame point break; case 2: pc_addfame(sd, battle_config.fame_refine_lv2); // Success to refine to +10 a lv2 weapon you forged = +25 fame point break; case 3: pc_addfame(sd, battle_config.fame_refine_lv3); // Success to refine to +10 a lv3 weapon you forged = +1000 fame point break; } } } else { item->refine = 0; if(item->equip) pc_unequipitem(sd,idx,3); clif_upgrademessage(sd->fd, 1, item->nameid); clif_refine(sd->fd,1,idx,item->refine); achievement_update_objective(sd, AG_REFINE_FAIL, 1, 1); pc_delitem(sd,idx,1,0,2, LOG_TYPE_OTHER); clif_misceffect(&sd->bl,2); clif_emotion(&sd->bl, ET_HUK); } } } } Thanks Quote Link to comment Share on other sites More sharing options...
0 Haziel Posted January 13, 2018 Group: Content Moderator Topic Count: 22 Topics Per Day: 0.00 Content Count: 639 Reputation: 609 Joined: 11/25/11 Last Seen: March 7 Share Posted January 13, 2018 As far as I could dig into it, all refine chances on source are read directly from the refine_db. This fragment: if( sd->class_&JOBL_THIRD ) per += 15; else per += (((signed int)sd->status.job_level)-50)/2; //Updated per the new kro descriptions. [Skotlex] Adds a modifier on top of it depending on the class, +15% in absolute for Third Classes (which probably just means Mechanic) and (Joblevel - 50)/2 for the Black/Whitesmith. Blackmisths can't go over Level 50, so, it wouldn't add anything, but Whitesmiths can get, it seems, up to 10% extra. ((70 - 50)/2) Quote Link to comment Share on other sites More sharing options...
0 pajodex Posted January 13, 2018 Group: Members Topic Count: 79 Topics Per Day: 0.03 Content Count: 439 Reputation: 173 Joined: 12/12/17 Last Seen: April 14 Author Share Posted January 13, 2018 Thanks @Haziel that's good to know. I guess to lower the break chance is almost impossible to set. Quote Link to comment Share on other sites More sharing options...
0 Haziel Posted January 13, 2018 Group: Content Moderator Topic Count: 22 Topics Per Day: 0.00 Content Count: 639 Reputation: 609 Joined: 11/25/11 Last Seen: March 7 Share Posted January 13, 2018 1 hour ago, pajodex said: Thanks @Haziel that's good to know. I guess to lower the break chance is almost impossible to set. You just add a new condition or alter the formula here: per += (((signed int)sd->status.job_level)-50)/2; //Updated per the new kro descriptions. [Skotlex] That's specifically where it sets the modifier for the Whitesmith. Quote Link to comment Share on other sites More sharing options...
0 pajodex Posted January 14, 2018 Group: Members Topic Count: 79 Topics Per Day: 0.03 Content Count: 439 Reputation: 173 Joined: 12/12/17 Last Seen: April 14 Author Share Posted January 14, 2018 2 hours ago, Haziel said: You just add a new condition or alter the formula here: per += (((signed int)sd->status.job_level)-50)/2; //Updated per the new kro descriptions. [Skotlex] That's specifically where it sets the modifier for the Whitesmith. Yeah but basing on that code, it only adjusts the "success rate". I wanted to alter the "break rate" and make the success rate as is. As I read the code: 16 hours ago, pajodex said: item->refine = 0; if(item->equip) pc_unequipitem(sd,idx,3); clif_upgrademessage(sd->fd, 1, item->nameid); I guess it breaks when it won't refine but nothing says about the breaking rate chances Quote Link to comment Share on other sites More sharing options...
0 Haziel Posted January 14, 2018 Group: Content Moderator Topic Count: 22 Topics Per Day: 0.00 Content Count: 639 Reputation: 609 Joined: 11/25/11 Last Seen: March 7 Share Posted January 14, 2018 Success and break rates are connected, if it fails, it will breaks. So, incresing success is decreasing breaking chance. Quote Link to comment Share on other sites More sharing options...
0 pajodex Posted January 14, 2018 Group: Members Topic Count: 79 Topics Per Day: 0.03 Content Count: 439 Reputation: 173 Joined: 12/12/17 Last Seen: April 14 Author Share Posted January 14, 2018 21 hours ago, Haziel said: Success and break rates are connected, if it fails, it will breaks. So, incresing success is decreasing breaking chance. I understand that. But if that is the case, then it is nearly impossible to adjust the breaking chance alone. If I increase the success rate, ppl might not use the refiner ever again Quote Link to comment Share on other sites More sharing options...
Question
pajodex
Hi,
How can I lower the chances of breaking the item when using Weapon Refine by whitesmith.
Thanks
Link to comment
Share on other sites
6 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.