Bug NonDemiPlayer ??

rans

New member
Messages
358
Points
0
Location
Somewhere down the road
Emulator
Hi,
I tried the combo of Elite archer suit and it turns out that the normal players is still included in the 3x atk damage.
it should be only for all non demi-human monster.

here
e9e04h.png


(We both don't have items)

When no equipment i receive 248 damage.

when i equip the set. i receive 864. 

 
Open item_combo_db.txt and change: 

2381:2436:2539,{ bonus2 bSubRace,RC_NonDemiPlayer,-300; bonus bDex,3; bonus bMaxHPrate,12; bonus bLongAtkDef,10; bonus bDelayrate,-25; }
to:

Code:
2381:2436:2539,{ bonus2 bSubRace,RC_NonDemiHuman,-300; bonus bDex,3; bonus bMaxHPrate,12; bonus bLongAtkDef,10; bonus bDelayrate,-25; }
 
@@Ranz

you need to put those lines in const.txt

RC_DemiPlayerRC_NonDemiPlayeruse this const.txtPath : trunk/db/const.txt
Isn't it already there in const.txt
 
Last edited by a moderator:
Did you change it in the right one? pre-renewal and renewal folder have this file with this item.

 
Yes, 
I tried changing it from pre-renewal.

i have even tried using this script
bonus2 bSubRace,RC_All,-300; bonus2 bSubRace,RC_DemiHuman,300;

but the damage is still increasing so it is better to not equip the set at all.

 
@@Ranz

you need to put those lines in const.txt

RC_DemiPlayerRC_NonDemiPlayeruse this const.txtPath : trunk/db/const.txt
Isn't it already there in const.txt
maybe he was using the old hercules not the latest one, THE APRIL SVN ( Don't know what is the exact version ), i notice that, there is not RC_DemiPlayer RC_NonDemiPlayer in my const.txt

i got the same problem but now i already fixed it just putting those line in my const.txt

 
Last edited by a moderator:
the earlier screenshot was using a version of hercules from june.

now i am using the latest one.
and still the same bug.

12 damage when no equip
but when i equip the set it increase to 38-53

(attacker has no stats and equipment.)
2zhi13m.png


 
@@Ranz

open PC.C
Path : trunk/src/map/pc.c

Find This :

case SP_SUBRACE: if (type2 == RC_MAX || (type2 > RC_NONDEMIPLAYER && type2 != RC_ALL) || type2 < RC_FORMLESS ){ ShowWarning("pc_bonus2: SP_SUBRACE: Invalid Race(%d)n",type2); break; } if(sd->state.lr_flag != 2) { if (type2 >= RC_MAX ) { for ( i = RC_FORMLESS; i < RC_MAX; i++ ){ if ( (type2 == RC_NONPLAYER && i == RC_PLAYER) || (type2 == RC_NONDEMIHUMAN && i == RC_DEMIHUMAN) || (type2 == RC_DEMIPLAYER && (i != RC_PLAYER && i != RC_DEMIHUMAN)) || (type2 == RC_NONDEMIPLAYER && (i == RC_PLAYER || i == RC_DEMIHUMAN)) ) continue; sd->subrace += val; } } else { sd->subrace[type2]+=val; } } break;
Change To This :

case SP_SUBRACE: if (type2 == RC_MAX || (type2 > RC_NONDEMIPLAYER && type2 != RC_ALL) || type2 < RC_FORMLESS ){ ShowWarning("pc_bonus2: SP_SUBRACE: Invalid Race(%d)n",type2); break; } if(sd->state.lr_flag != 2) sd->subrace[type2]+=val; break;
after changing it, recompile your server, i figured out that this is a bug, kindly move this topic to bug section

 
Last edited by a moderator:
@@Ranz

open PC.C

Path : trunk/src/map/pc.c

Find This :

case SP_SUBRACE: if (type2 == RC_MAX || (type2 > RC_NONDEMIPLAYER && type2 != RC_ALL) || type2 < RC_FORMLESS ){ ShowWarning("pc_bonus2: SP_SUBRACE: Invalid Race(%d)n",type2); break; } if(sd->state.lr_flag != 2) { if (type2 >= RC_MAX ) { for ( i = RC_FORMLESS; i < RC_MAX; i++ ){ if ( (type2 == RC_NONPLAYER && i == RC_PLAYER) || (type2 == RC_NONDEMIHUMAN && i == RC_DEMIHUMAN) || (type2 == RC_DEMIPLAYER && (i != RC_PLAYER && i != RC_DEMIHUMAN)) || (type2 == RC_NONDEMIPLAYER && (i == RC_PLAYER || i == RC_DEMIHUMAN)) ) continue; sd->subrace += val; } } else { sd->subrace[type2]+=val; } } break;
Change To This :

case SP_SUBRACE: if (type2 == RC_MAX || (type2 > RC_NONDEMIPLAYER && type2 != RC_ALL) || type2 < RC_FORMLESS ){ ShowWarning("pc_bonus2: SP_SUBRACE: Invalid Race(%d)n",type2); break; } if(sd->state.lr_flag != 2) sd->subrace[type2]+=val; break;
after changing it, recompile your server, i figured out that this is a bug, kindly move this topic to bug section


Thank you for your detailed answer
default_smile.png


i'll try this later. thanks very much

 
@@Ranz comment the result afterwards, so that everyone can find and fix their problems
@@Ranz

open PC.C

Path : trunk/src/map/pc.c

Find This :

case SP_SUBRACE: if (type2 == RC_MAX || (type2 > RC_NONDEMIPLAYER && type2 != RC_ALL) || type2 < RC_FORMLESS ){ ShowWarning("pc_bonus2: SP_SUBRACE: Invalid Race(%d)n",type2); break; } if(sd->state.lr_flag != 2) { if (type2 >= RC_MAX ) { for ( i = RC_FORMLESS; i < RC_MAX; i++ ){ if ( (type2 == RC_NONPLAYER && i == RC_PLAYER) || (type2 == RC_NONDEMIHUMAN && i == RC_DEMIHUMAN) || (type2 == RC_DEMIPLAYER && (i != RC_PLAYER && i != RC_DEMIHUMAN)) || (type2 == RC_NONDEMIPLAYER && (i == RC_PLAYER || i == RC_DEMIHUMAN)) ) continue; sd->subrace += val; } } else { sd->subrace[type2]+=val; } } break;
Change To This :
Code:
		case SP_SUBRACE:			if (type2 == RC_MAX || (type2 > RC_NONDEMIPLAYER && type2 != RC_ALL) || type2 < RC_FORMLESS ){				ShowWarning("pc_bonus2: SP_SUBRACE: Invalid Race(%d)n",type2);				break;			}			if(sd->state.lr_flag != 2)				sd->subrace[type2]+=val;			break;
after changing it, recompile your server, i figured out that this is a bug, kindly move this topic to bug section
This modification is not correct,here surbrace array range was limited to RC_MAX

 
Last edited by a moderator:
@@Ranz, can you try on new item, or are you sure you recompiled after updating?

I tested in game and the damage does not increase (I input that script on new item, so to be sure there isn't other factor that increase damage)

Or maybe that combo is increasing atk ?

 
I can confirm this issue 
default_ohmy.png
 Tested on fresh Hercules pre-renewal

 
Last edited by a moderator:
Hmmm... Seems i need to test again...

 
Btw, the RC_DemiPlayer or RC_NonDemiPlayer is working fine in item_db.conf but I think this script is not working properly in item_combo_db.txt (tested in pre-renewal)

 
Last edited by a moderator:
Back
Top