Gerz - Sep 9, 2014 23:23
[code=:0]
Stacktrace:
#0 0x00931E9A in status_change_start+0x660A (src=(struct block_list*)0x1EDEB7A0 <bytes:0000000034885E0F35A71E00B7027A006400000001000000>, bl=(struct block_list*)0x1AC4E710 <bytes:000000008CC3F20035961E00B7027B006A00000001000000>, type=(enum sc_type)0x1A3, rate=(int)10000, val1=(int)5, val2=(int)2004533, val3=(int)7, val4=(int)<no data>, tick=(int)240000, flag=(int)<no data>) at c:\documents and settings\gerz\my documents\hercules\src\map\status.c:8923
8923 val4 = ( 200/status_get_int(src2) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
sc = (struct status_change*)0x1AC4EAAC
val_flag = (int)<no data>
tick_time = (int)<no data>
st = (struct status_data*)0x1AC4EA4C
vd = (struct view_data*)0x1AC4E9D0
opt_flag = (int)-858993460
calc_flag = (int)589826
sd = (struct map_session_data*)0x1AC4E710
undead_flag = (int)<no data>
sce = (struct status_change_entry*)<no data>
#1 0x008C67E4 in skill_castend_nodamage_id+0x16614 (src=(struct block_list*)0x1EDEB7A0 bl=(struct block_list*)0x1AC4E710skill_id=(unsigned short)2347, skill_lv=(unsigned short)5, tick=(long long)221918685, flag=(int)<no data>) at c:\documents and settings\gerz\my documents\hercules\src\map\skill.c:8862
8862 sc_start2(src,bl,type,100,skill_lv,bl->id,skill->get_time(skill_id,skill_lv)));
sstatus = (struct status_data*)0x1EDEBADC
hd = (struct homun_data*)<no data>
dstmd = (struct mob_data*)<no data>
mer = (struct mercenary_data*)<no data>
md = (struct mob_data*)<no data>
dstsd = (struct map_session_data*)0x1AC4E710
tstatus = (struct status_data*)0x1AC4EA4C
type = (enum sc_type)0x1A3
sd = (struct map_session_data*)0x1EDEB7A0
tsc = (struct status_change*)0x1AC4EAAC
element = (int)<no data>
tsce = (struct status_change_entry*)<no data>
#2 0x008AF452 in skill_castend_id+0x13E2 (tid=(int)9847, tick=(long long)221918685, id=(int)2008885, data=(int)<no data>) at c:\documents and settings\gerz\my documents\hercules\src\map\skill.c:5028
5028 skill->castend_nodamage_id(src,target,ud->skill_id,ud->skill_lv,tick,flag);
sc = (struct status_change*)<no data>
src = (struct block_list*)0x1EDEB7A0 <bytes:0000000034885E0F35A71E00B7027A006400000001000000>
flag = (int)<no data>
ud = (struct unit_data*)0x1EDEB7B8
target = (struct block_list*)0x1AC4E710 <bytes:000000008CC3F20035961E00B7027B006A00000001000000>
inf = (int)<no data>
inf2 = (int)<no data>
md = (struct mob_data*)<no data>
sd = (struct map_session_data*)0x1EDEB7A0
#3 0x0062CF8A in do_timer+0x53A (tick=(long long)221918691) at c:\documents and settings\gerz\my documents\hercules\src\common\timer.c:397
397 timer_data[tid].func(tid, timer_data[tid].tick, timer_data[tid].id, timer_data[tid].data);
tid = (int)9847
diff = (long long)-6
#4 0x006035F8 in main+0x208 (argc=(int)1, argv=(char**)0x02F31C68) at c:\documents and settings\gerz\my documents\hercules\src\common\core.c:255
255 next = timer->perform(timer->gettick_nocache());
next = (int)50
retval = (int)<no data>
#5 0x00972B89 in __tmainCRTStartup+0x129 () at f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:278
mainret = (int)<no data>
managedapp = (int)<no data>
initret = (int)<no data>
#6 0x00972A4F in mainCRTStartup+0xF () at f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:189
#7 0x769F338A in BaseThreadInitThunk+0x12 (<failed enumerating symbols>)
!!failed enumerating symbols!!#8 0x77979F72 in RtlInitializeExceptionChain+0x63 (<failed enumerating symbols>)
!!failed enumerating symbols!!#9 0x77979F45 in RtlInitializeExceptionChain+0x36 (<failed enumerating symbols>)
!!failed enumerating symbols!!
[/code]
Michi - Sep 10, 2014 1:02
Could you please give us the revision and the line you have on your src please?
Gerz - Sep 10, 2014 4:18
lastest revision:
status.c line 8923[code=:0]
case SC_GENTLETOUCH_CHANGE:
{// take note there is no def increase as skill desc says. [malufett]
struct block_list * src2;
val3 = st->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] %
if( (src2 = map->id2bl(val2)) ){
val4 = ( 200/status_get_int(src2) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
val2 = ( status_get_dex(src2)/4 + status_get_str(src2)/2 ) * val1 / 5; // ATK increase: ATK [{(Caster DEX / 4) + (Caster STR / 2)} x Skill Level / 5]
}
}
break;
[/code]
skill.c: line 8862 | Flash Combo
[code=:0]
case SR_FLASHCOMBO:
{
const int combo[] = {
SR_DRAGONCOMBO, SR_FALLENEMPIRE, SR_TIGERCANNON, SR_SKYNETBLOW
};
int i;
clif->skill_nodamage(src,bl,skill_id,skill_lv,
sc_start2(src,bl,type,100,skill_lv,bl->id,skill->get_time(skill_id,skill_lv)));
for( i = 0; i < ARRAYLENGTH(combo); i++ )
skill->addtimerskill(src, tick + 400 * i, bl->id, 0, 0, combo[i], skill_lv, BF_WEAPON, flag|SD_LEVEL);
}
break;
[/code]
Litro - Sep 10, 2014 5:31
[font='lucida sans unicode', 'lucida grande', sans-serif]are you in pre renewal mode and have high level ?[/font]
Gerz - Sep 10, 2014 6:14
renewal mode and max 175, default server
csnv - Sep 10, 2014 16:29
What OS and compiler/version?
Gerz - Sep 10, 2014 19:39
complier VS2010, 0S Windows Server 2008 R2
Michi - Sep 10, 2014 21:17
ok i think I found the problem.
Could you replace this:[code=auto:0]
case SC_GENTLETOUCH_CHANGE:
{// take note there is no def increase as skill desc says. [malufett]
struct block_list * src2;
val3 = st->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] %
if( (src2 = map->id2bl(val2)) ){
val4 = ( 200/status_get_int(src2) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
val2 = ( status_get_dex(src2)/4 + status_get_str(src2)/2 ) * val1 / 5; // ATK increase: ATK [{(Caster DEX / 4) + (Caster STR / 2)} x Skill Level / 5]
}
}
[/code]
by this:[code=auto:0]
case SC_GENTLETOUCH_CHANGE:
{// take note there is no def increase as skill desc says. [malufett]
struct block_list * src2;
val3 = st->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] %
if( (src2 = map->id2bl(val2)) ){
val4 = ( 200/status_get_int(src2)?status_get_int(src2):1 ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level]
val2 = ( status_get_dex(src2)/4 + status_get_str(src2)/2 ) * val1 / 5; // ATK increase: ATK [{(Caster DEX / 4) + (Caster STR / 2)} x Skill Level / 5]
}
}
[/code]
it should apear when it's a mob or a clone casting the skill thanks for testing and tell me if it's always crash, if not I will upload the fix
This post has been edited by
Michi
on Sep 10, 2014 21:25
Gerz - Sep 11, 2014 2:29
thank for replied but michi, i dont have / and never use clone commands or anyscript using this one, and monster using gentle touch skills too?
Michi - Sep 11, 2014 8:08
not by default. That was just a question.
Michi - Sep 13, 2014 9:28
Fixed in: [url="https://github.com/HerculesWS/Hercules/commit/45d77eed7a16245b38fe46eb9d71074d33106946"]https://github.com/HerculesWS/Hercules/commit/45d77eed7a16245b38fe46eb9d71074d33106946[/url]