I modified your script so it output debug information to DebugView program. It is working.
Code: Select all
{ Game : helldivers2.exe
Version:
Date : 2024-04-07
Author : ZoDDeL
This script does blah blah blah
}
[ENABLE]
aobscanmodule(damageMulti,game.dll,66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB) // should be unique
alloc(dmg_newmem,$2000)
label(dmg_code)
label(dmg_return)
dmg_newmem:
cmp [rcx+04],#0 // any 0 dmg weapons like smoke or unknown shit
je dmg_code
{$ccode base_address=rcx}
char debug_string[200];
extern __cdecl int sprintf(char *, char *, ...);
extern __cdecl void OutputDebugStringA(const char* lpOutputString);
int *weapon_id=(int*)(base_address);
int *weapon_dmg=(int*)(base_address+0x04);
int *weapon_admg=(int*)(base_address+0x08);
int *weapon_pen1=(int*)(base_address+0x0C);
int *weapon_pen2=(int*)(base_address+0x10);
int *weapon_pen3=(int*)(base_address+0x14);
int *weapon_pen4=(int*)(base_address+0x18);
sprintf(debug_string, "HD2 %3d | DMG %3d %3d | PEN %3d %3d %3d %3d", *weapon_id, *weapon_dmg, *weapon_admg, *weapon_pen1, *weapon_pen2, *weapon_pen3, *weapon_pen4);
OutputDebugStringA(debug_string);
{$asm}
// whitelisted weapons that get super damage
cmp [rcx+00],#51 //#48 //#46 // AR-23 Liberator / AR-22C Patriot / AR-48 Truth Whisperer / M-105 Stalwart
je dmg_Super
cmp [rcx+00],#25 //#24 //#22 // P-2 Peacemaker / P-19 Redeemer
je dmg_Super
cmp [rcx+00],#101 //#97 //#95 // SG-225SP Breaker Spray&Pray (16)
je dmg_Super
cmp [rcx+00],#44 //#41 //#39 // P-4 Senator
je dmg_Super
cmp [rcx+00],#84 //#80 // JAR-5 Dominator
je dmg_Super
cmp [rcx+00],#296 //#291 //#287 // LAS-7 Dagger
je dmg_Super
cmp [rcx+00],#297 //#292 //#288 // LAS-5 Scythe
je dmg_Super
cmp [rcx+00],#34 //#33 //#31 // SMG-37 Defender
je dmg_Super
cmp [rcx+00],#19 //#17 // LAS-16 Sickle
je dmg_Super
cmp [rcx+00],#10 //#9 // GL-21 part 1 projectile / mortar shell (turret)
je dmg_Super
cmp [rcx+00],#220 //#215 //#212 // GL-21 part 2 explosion
je dmg_Super
cmp [rcx+00],#127 //#123 // autocannon part 1 // projectile
je dmg_Super
cmp [rcx+00],#216 //#211 // autocannon part 2 // explosion
je dmg_Super
cmp [rcx+00],#74 //#70 // R-63CS Diligence Counter SNiper
je dmg_Super
cmp [rcx+00],#135 // #131 //#129 // EAT-17 part 1
je dmg_Super
//cmp [rcx+00],#184 //#182 // EAT-17 part 2
//je dmg_Super
cmp [rcx+00],#226 //#221 //#217 // EAT-17 part 3
je dmg_Super
cmp [rcx+00],#136 //#132 // recoil-less rifle part 1 shell
je dmg_Super
cmp [rcx+00],#225 //#220 // recoil-less rifle part 2 explosion
je dmg_Super
// these weapons stay default
cmp [rcx+00],#201 //#196 //#194 // G-6 Frag part 1
je dmg_code
cmp [rcx+00],#111 //#107 // G-6 Frag part 2
je dmg_code
cmp [rcx+00],#213 //#208 //#205 // G-12 High Explosive / G-16 Impact
je dmg_code
cmp [rcx+00],#203 //#198 //#195 // G-10 Incendiary
je dmg_code
//500kg bomb
cmp [rcx+00],#154 //#150 // shell
je dmg_code
cmp [rcx+00],#273 //#268 // explosion
je dmg_code
//orbital laser
cmp [rcx+00],#305 //#299
je dmg_code
//309 //303 fire ground dmg
//orbital precision strike
cmp [rcx+00],#160 //#156
je dmg_code
cmp [rcx+00],#267 //#262
je dmg_code
//orbital railcannon strike
cmp [rcx+00],#161 //#157
je dmg_code
cmp [rcx+00],#266 //#261
je dmg_code
//orbital 120MM HE barrage
cmp [rcx+00],#159 //#155
je dmg_code
cmp [rcx+00],#268 //#263
je dmg_code
{ // start exclude
// whitelisted weapons that get super damage
cmp [rcx+00],#25 //#23 // MP-98 Knight
je dmg_Super
cmp [rcx+00],#98 //#96 // SG-225 Breaker (11)
je dmg_Super
cmp [rcx+00],#62 //#60 // MG-43 / EXO-45 Gatling / Gatling Turret
je dmg_Super
cmp [rcx+00],#111 //#109 // ARC-03
je dmg_Super
cmp [rcx+00],#9 //#8 // FLAM-40 part 1
je dmg_Super
//cmp [rcx+00],#303 // FLAM-40 part 2 // ground fire shares ID with flame tornados
//je dmg_Super
cmp [rcx+00],#296 //#292 // LAS-98
je dmg_Super
cmp [rcx+00],#222 //#218 // LAS-99 quasar part 1
je dmg_Super
cmp [rcx+00],#223 // LAS-99 quasar part 2
je dmg_Super
cmp [rcx+00],#21 //#19 // RS-422 railgun
je dmg_Super
cmp [rcx+00],#117 //#115 // MG-206 HMG
je dmg_Super
cmp [rcx+00],#143 //#141 // EXO-45 rocket part 1
je dmg_Super
cmp [rcx+00],#229 //#225 // EXO-45 rocket part 2
je dmg_Super
cmp [rcx+00],#89 // break action shotgun
je dmg_Super
cmp [rcx+00],#118 // anti material rifle
je dmg_Super
cmp [rcx+00],#145 // javelin rocket part 1
je dmg_Super
cmp [rcx+00],#231 // javelin rocket part 2
je dmg_Super
cmp [rcx+00],#125 // emancipator exo gun part 1
je dmg_Super
cmp [rcx+00],#212 // emancipator exo gun part 2
je dmg_Super
cmp [rcx+00],#126 // pelican weapon part 1
je dmg_Super
cmp [rcx+00],#214 // pelican weapon part 2
je dmg_Super
cmp [rcx+00],#76 // R-36 Eruptor 1
je dmg_Super
cmp [rcx+00],#108 // R-36 Eruptor 2
je dmg_Super
cmp [rcx+00],#130 // GP-31 grenade pistol
je dmg_Super
cmp [rcx+00],#219 // RL-77 airburst (rocket)
je dmg_Super
cmp [rcx+00],#196 // RL-77 airburst (cluster)
je dmg_Super
cmp [rcx+00],#197 // RL-77 airburst (ground???)
je dmg_Super
cmp [rcx+00],#120 // GP-31 explosive crossbow 1
je dmg_Super
cmp [rcx+00],#121 // GP-31 explosive crossbow 2
je dmg_Super
cmp [rcx+00],#20 //#18 // SG-8P Punisher Plasma (1) / PLAS-1 Scorcher
je dmg_Super
cmp [rcx+00],#180 // PLAS-1 Scorcher explosion
je dmg_Super
cmp [rcx+00],#182 // SG-8P Punisher Plasma explosion
je dmg_Super
cmp [rcx+00],#113 //#111 // ARC-12 Blitzer (5)
je dmg_Super
cmp [rcx+00],#101 //#99 // SG-255IE Breaker Incendiary (12)
je dmg_Super
// fix me
//cmp [rcx+00],#43 // AR-23P Liberator Penetrator
//je dmg_Super
//cmp [rcx+00],#45 // AR-23C Liberator Concussive
//je dmg_Super
//cmp [rcx+00],#82 // SG-8 Punisher (9)
//je dmg_Super
//cmp [rcx+00],#93 // SG-8S Slugger (1)
//je dmg_Super
//cmp [rcx+00],#97 // SG-225BB Breaker Bugbiter (7)
//je dmg_Super
//cmp [rcx+00],#98 // SG-225NS Breaker Nailspitter (11)
//je dmg_Super
// these weapons stay default
//cmp [rcx+00],#163 // G-23 Stun
//je dmg_code
cmp [rcx+00],#199 //#196 // G-123 Thermite (explosion)
je dmg_code
cmp [rcx+00],#304 // G-123 Thermite (burn)
je dmg_code
//orbital 380MM HE barrage identical ID's as precision strike
//cmp [rcx+00],#156
//je dmg_code
//cmp [rcx+00],#262
//je dmg_code
//eagle 110mm rocket pods
cmp [rcx+00],#148
je dmg_code
cmp [rcx+00],#236
je dmg_code
//mortar turret
// 10 identical to GL21 bullet
cmp [rcx+00],#218
je dmg_code
//eagle airstrike
cmp [rcx+00],#138
je dmg_code
cmp [rcx+00],#249
je dmg_code
//eagle clusterbomb
cmp [rcx+00],#224
je dmg_code
// 10 shell
//helldiver pot damage
cmp [rcx+00],#253
je dmg_code
//impact fall damage???
cmp [rcx+00],#282
je dmg_code
} // end exclude
jmp dmg_Enemy
dmg_Super:
mov [rcx+0C],#10 // penetration 1
mov [rcx+10],#10 // penetration 2
mov [rcx+14],#10 // penetration 3
mov [rcx+18],#10 // penetration 4
movd xmm3,[rcx+04]
movd xmm1,[rcx+08]
cvtdq2ps xmm1,xmm1
cvtdq2ps xmm3,xmm3
mulss xmm3, dword ptr [dmg_multiplier]
mulss xmm1, dword ptr [admg_multiplier]
jmp dmg_return
dmg_Enemy:
movd xmm3,[rcx+04]
movd xmm1,[rcx+08]
cvtdq2ps xmm1,xmm1
cvtdq2ps xmm3,xmm3
mulss xmm3, dword ptr [enemydmg_multiplier]
mulss xmm1, dword ptr [enemydmg_multiplier]
jmp dmg_return
dmg_code:
movd xmm3,[rcx+04]
movd xmm1,[rcx+08]
cvtdq2ps xmm1,xmm1
cvtdq2ps xmm3,xmm3
jmp dmg_return
dmg_multiplier:
dd (float)1
admg_multiplier:
dd (float)1
enemydmg_multiplier:
dd (float)0.2
damageMulti:
jmp far dmg_newmem
nop 2
dmg_return:
[DISABLE]
I found other damage ids with this DebugView tool and put it into table, so you can add it to your script.
also for you on second list I add new column (for ZoDDel) it take data from table and generate for you text: