Yoh Asakura 9 Posted April 1, 2015 Hi, After I started using this new emulator from Hercules, the players from my server (pre-renewal) can hit (physical hit) more than 32k in pvp maps. The server is a high rate, but before the hit was not above 32k... Anyone knows why? This is a bug? I already report as a bug but nobody has answered. Quote Share this post Link to post Share on other sites
0 Angelmelody 221 Posted April 1, 2015 becoz you choose increase damage option when you diff your client Quote Share this post Link to post Share on other sites
0 Yoh Asakura 9 Posted April 2, 2015 becoz you choose increase damage option when you diff your client There's no such option, and if it has I didin't choose. Quote Share this post Link to post Share on other sites
0 Angelmelody 221 Posted April 2, 2015 (edited) becoz you choose increase damage option when you diff your client There's no such option, and if it has I didin't choose. sryy, I wrote the wrong word. the option is Increase attack display, if you choose that option ,your attck damage number can show above 32K Edited April 2, 2015 by Angelmelody Quote Share this post Link to post Share on other sites
0 Dastgir 1246 Posted April 2, 2015 I think he meant, the damage should not reach that much... Quote Share this post Link to post Share on other sites
0 Yoh Asakura 9 Posted April 3, 2015 becoz you choose increase damage option when you diff your client There's no such option, and if it has I didin't choose. sryy, I wrote the wrong word. the option is Increase attack display, if you choose that option ,your attck damage number can show above 32K It's not about this and I didin't select this option. I think he meant, the damage should not reach that much... That's right. The damage is above 32k, which is not normal. The mercenaries are really strong, they can kill very easy because they are hiting 100k+ How to fix this? Quote Share this post Link to post Share on other sites
0 evilpuncker 504 Posted April 3, 2015 change atk damage calculation Quote Share this post Link to post Share on other sites
0 Yoh Asakura 9 Posted April 4, 2015 change atk damage calculation And how can I change that? After you tell me I'll check in my old emulator how it was. Quote Share this post Link to post Share on other sites
0 evilpuncker 504 Posted April 4, 2015 https://github.com/HerculesWS/Hercules/blob/master/src/map/battle.c#L496 Quote Share this post Link to post Share on other sites
0 Yoh Asakura 9 Posted April 4, 2015 https://github.com/HerculesWS/Hercules/blob/master/src/map/battle.c#L496 I'm pretty sure that the hit is above 32k because of the renewal. My server is not renewal, but the renewal still makes effect on it. Quote Share this post Link to post Share on other sites
0 Ricauter 1 Posted April 4, 2015 (edited) or even easier, just go to trunk/conf/battle/battle.conf and look this up: enable_baseatk I think you have it set on 31 (players, monsters, pets, homunculus and mercenary) all you have to do is set it to 15 so that mercenaries don't do it, or set it to 1 for only players to be affected. Edited April 4, 2015 by Ricauter Quote Share this post Link to post Share on other sites
0 Yoh Asakura 9 Posted April 4, 2015 (edited) https://github.com/HerculesWS/Hercules/blob/master/src/map/battle.c#L496 My old emulator is like this static int battle_calc_base_damage(struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, struct map_session_data *sd, int flag) { unsigned short atkmin=0, atkmax=0; short type = 0; int damage = 0; if (!sd) { //Mobs/Pets if(flag&4) { atkmin = status->matk_min; atkmax = status->matk_max; } else { atkmin = wa->atk; atkmax = wa->atk2; } if (atkmin > atkmax) atkmin = atkmax; } else { //PCs atkmax = wa->atk; type = (wa == &status->lhw)?EQI_HAND_L:EQI_HAND_R; if (!(flag&1) || (flag&2)) { //Normal attacks atkmin = status->dex; if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]]) atkmin = atkmin*(80 + sd->inventory_data[sd->equip_index[type]]->wlv*20)/100; if (atkmin > atkmax) atkmin = atkmax; if(flag&2 && !(flag&16)) { //Bows atkmin = atkmin*atkmax/100; if (atkmin > atkmax) atkmax = atkmin; } } } if (sc && sc->data[sC_MAXIMIZEPOWER]) atkmin = atkmax; //Weapon Damage calculation if (!(flag&1)) damage = (atkmax>atkmin? rand()%(atkmax-atkmin):0)+atkmin; else damage = atkmax; if (sd) { //rodatazone says the range is 0~arrow_atk-1 for non crit if (flag&2 && sd->arrow_atk) damage += ((flag&1)?sd->arrow_atk:rand()%sd->arrow_atk); //SizeFix only for players if (!(sd->special_state.no_sizefix || (flag&8))) damage = damage*(type==EQI_HAND_L? sd->left_weapon.atkmods[t_size]: sd->right_weapon.atkmods[t_size])/100; } //Finally, add baseatk if(flag&4) damage += status->matk_min; else damage += status->batk; //rodatazone says that Overrefine bonuses are part of baseatk //Here we also apply the weapon_atk_rate bonus so it is correctly applied on left/right hands. if(sd) { if (type == EQI_HAND_L) { if(sd->left_weapon.overrefine) damage += rand()%sd->left_weapon.overrefine+1; if (sd->weapon_atk_rate[sd->weapontype2]) damage += damage*sd->weapon_atk_rate[sd->weapontype2]/100;; } else { //Right hand if(sd->right_weapon.overrefine) damage += rand()%sd->right_weapon.overrefine+1; if (sd->weapon_atk_rate[sd->weapontype1]) damage += damage*sd->weapon_atk_rate[sd->weapontype1]/100;; } } return damage; } With the old emulator the physical hit could not be above 32k...After the renewal, this new emulator can be more than 32k hit. or even easier, just go to trunk/conf/battle/battle.conf and look this up: enable_baseatk I think you have it set on 31 (players, monsters, pets, homunculus and mercenary) all you have to do is set it to 15 so that mercenaries don't do it, or set it to 1 for only players to be affected. // Who should have a baseatk value (makes str affect damage)? (Note 3)enable_baseatk: 9 Edited April 4, 2015 by Yoh Asakura Quote Share this post Link to post Share on other sites
Hi,
After I started using this new emulator from Hercules, the players from my server (pre-renewal) can hit (physical hit) more than 32k in pvp maps.
The server is a high rate, but before the hit was not above 32k...
Anyone knows why? This is a bug? I already report as a bug but nobody has answered.
Share this post
Link to post
Share on other sites