Issue information

Issue ID
#8326
Status
Fixed
Severity
None
Started
Gerz
Sep 9, 2014 23:23
Last Post
Ind
Sep 20, 2014 18:49
Confirmation
N/A

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]