HELLDIVERS 2

Upload your cheat tables here (No requests)
fallout11
Noobzor
Noobzor
Posts: 12
Joined: Tue Apr 30, 2024 11:17 am
Reputation: 7

Re: HELLDIVERS 2

Post by fallout11 »

Exemplify1524 wrote:
Wed May 01, 2024 12:28 am
elamigopaisa wrote:
Wed May 01, 2024 12:26 am
had any luck finding the AMR ID?
try:
122 Antimaterial Rifle
Can confirm 122 is the ID for the AMR, I used it last evening.

Most all of the ID codes Exemplify posted in his google sheet tested out fine.

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

User avatar
ZoDDeL
Table Makers
Table Makers
Posts: 125
Joined: Mon May 08, 2017 9:37 am
Reputation: 277

Re: HELLDIVERS 2

Post by ZoDDeL »

UPDATE:
added inf energy shield (instead of setting cooldown to zero this one just writes on the shield value)
added a bunch of weapon ID's

Spoiler
super dmg >>
MP-98 Knight
MG-43 / EXO-45 Gatling / Gatling Turret
anti material rifle
FLAM-40
MG-206 HMG
GP-31 grenade pistol
LAS-98
RS-422 railgun
R-36 Eruptor
LAS-99 quasar
RL-77 airburst
GP-31 explosive crossbow
emancipator exo gun
EXO-45 rocket
SG-8P Punisher Plasma
PLAS-1 Scorcher
pelican weapon
SG-225NS Breaker Nailspitter


default dmg >>
G-123 Thermite
anti tank mines
anti personnel mines
incendiary mines
tesla tower
mortar turret
rocket sentry turret

hellpot damage

//eagle airstrike
//orbital 380MM HE barrage
//eagle 110mm rocket pods
//eagle clusterbomb
//orbital airburst
table and guide as usual in my signature.

halokitty185
What is cheating?
What is cheating?
Posts: 4
Joined: Wed Mar 13, 2024 11:18 pm
Reputation: 0

Re: HELLDIVERS 2

Post by halokitty185 »

ZoDDeL wrote:
Wed May 01, 2024 12:20 pm
UPDATE:
added inf energy shield (instead of setting cooldown to zero this one just writes on the shield value)
added a bunch of weapon ID's

Spoiler
super dmg >>
MP-98 Knight
MG-43 / EXO-45 Gatling / Gatling Turret
anti material rifle
FLAM-40
MG-206 HMG
GP-31 grenade pistol
LAS-98
RS-422 railgun
R-36 Eruptor
LAS-99 quasar
RL-77 airburst
GP-31 explosive crossbow
emancipator exo gun
EXO-45 rocket
SG-8P Punisher Plasma
PLAS-1 Scorcher
pelican weapon
SG-225NS Breaker Nailspitter


default dmg >>
G-123 Thermite
anti tank mines
anti personnel mines
incendiary mines
tesla tower
mortar turret
rocket sentry turret

hellpot damage

//eagle airstrike
//orbital 380MM HE barrage
//eagle 110mm rocket pods
//eagle clusterbomb
//orbital airburst
table and guide as usual in my signature.
you da mannn

sernameeee
What is cheating?
What is cheating?
Posts: 1
Joined: Sat Sep 24, 2022 11:13 pm
Reputation: 0

Re: HELLDIVERS 2

Post by sernameeee »

Hello,

I wanted to share one of my favorite script that is unfortunately outdated now.

Its the script i was using for more damage. It was perfect. Increased all damage, for all weapons, all stratagems, including turrets/big laser.But it wouldn't allow for weapons/stratagem to cut trough armored bug skins, and one shot them making it obvious. It was truly perfect, legit, simple, and encompassed everything, including future weapons.

Unfortunately, since the update yesterday, it doesn't work anymore. I hope it gets updated by someone one day. It was posted on this very thread two month ago, and i've been using since. Thanks to whoever made it.
Spoiler
[ENABLE]

aobscanmodule(ohk,game.dll,89 87 44 64 00 00)
registersymbol(ohk)
alloc(newmem,$1000,ohk)

alloc(number,4)

label(code)
label(enemy)
label(return)
label(Pcheck)

number:
dd 0

newmem:
cmp [rdi+B38],A
jne enemy

Pcheck:
movss [number],xmm0
cmp [number],42fa0000
ja enemy
jmp code

enemy:
mov [rdi+00006444],0
jmp return

code:
mov [rdi+00006444],eax
jmp return

ohk:
jmp newmem
nop
return:


[DISABLE]

ohk:
db 89 87 44 64 00 00

unregistersymbol(ohk)
dealloc(newmem)

Minazuki
What is cheating?
What is cheating?
Posts: 4
Joined: Fri Sep 17, 2021 5:56 am
Reputation: 0

Re: HELLDIVERS 2

Post by Minazuki »

icysnow wrote:
Wed May 01, 2024 9:58 am
Minazuki wrote:
Wed May 01, 2024 5:38 am
ZoDDeL wrote:
Sat Mar 16, 2024 3:26 am
alternative and simpler guide with slightly different approach with no address input and easier timing.

this guide doesnt make your CE undetected but let you activate scripts and close CE before gameguard notice what happened
so you can cheat without crash / hack detected!
but you cannot use CE to search for stuff or debug the game!!!


follow the text+ picture guide or just watch one of the videos down below
i show the usage at the beginning of each video.

step 1

open CE table and open memory viewer
[Link]


step 2
open the game (my table should hook the game itself if you allow the lua execution and you should allow it!!!)
[Link]


step 3
wait a bit if everything was right you should see the last 2 entries in my table populate with adresses/values (green boxes)
like in this screenshot:
[Link]


now you can hit the checkbox on "all together" to activate it (or individual options above).
then close CE table quick with a click on the X on top right of the CE main window.

THE TABLE
Image
the table is split into 3 sections.
basic scripts and advanced scripts and all in one scripts.
while basic script just search for array of byte pattern and overwrite it (nop or change bytes to jump etc.)
the advanced script do memory allocations, full code with jumps and compares and change values.
the all in one scripts are like presets for alle the scripts in the table.

each section has an "all together" script that bound all features into one (so you dont have to click multiple scripts)
all basic scripts with one star / asterisk * (blue box in screenshot) are put into the alltogether for this section.
all advanced script with two star / asterisk ** (red box in screenshot) are put into the alltogether for this section.
if you activate any single script that is also part of alltogether you cannot activate alltogether anymore!!!

easiest way to just choose one of the AIO scripts (yellow box in screenshot) activate it and close the table.
but better take i look into the scripts before and maybe change values to your needs.



currently whitelisted (damage / armor damage / pentration increased) weapons:
AR-23 Liberator / AR-22C Patriot / AR-48 Truth Whisperer / M-105 Stalwart
P-2 Peacemaker / P-19 Redeemer
SG-225SP Breaker Spray&Pray (16)
P-4 Senator
JAR-5 Dominator
LAS-7 Dagger
LAS-5 Scythe
SMG-37 Defender
LAS-16 Sickle
GL-21
autocannon
R-63CS Diligence Counter SNiper
EAT-17
recoil-less rifle


default weapons(these weapons keep their default values):
G-6 Frag
G-12 High Explosive / G-16 Impact
G-10 Incendiary

//500kg bomb
//orbital laser
//orbital precision strike
//orbital railcannon strike
//orbital 120MM HE barrage

everything else get set down to 0 (enemy attacks, airstrikes, orbital strikes, mines, flame tornados)


showcase instant mission complete + instant extraction timer:




showcase fast rescue mission + instant extraction timer:



older showcase videos



p.s. credits to sunbeam who ignited the idea to check the game.dll
p.p.s basic scripts on my table are manually taken from "version.dll" visual studio builds.
but the script codes (byte arrays etc.) originate from posts here in the forum and on the UC forum.
users like cfemen, gir489 and others.
the most advanced scripts are totally written by me or in parts adapted/improved.
i cut down all scripts to keep the table small and clean.
that including comments, orignal code, credits, registersymbols
The new script make the Game crash everytime I start the mission...
It only crashes if you use it on planets with newly issued MOs and instant complete all missions. It works on other planets
I see. Thanks for the info!

rdg1995
What is cheating?
What is cheating?
Posts: 3
Joined: Wed May 01, 2024 1:19 am
Reputation: 0

Re: HELLDIVERS 2

Post by rdg1995 »

ZoDDeL wrote:
Wed May 01, 2024 12:20 pm
UPDATE:
added inf energy shield (instead of setting cooldown to zero this one just writes on the shield value)
added a bunch of weapon ID's

Spoiler
super dmg >>
MP-98 Knight
MG-43 / EXO-45 Gatling / Gatling Turret
anti material rifle
FLAM-40
MG-206 HMG
GP-31 grenade pistol
LAS-98
RS-422 railgun
R-36 Eruptor
LAS-99 quasar
RL-77 airburst
GP-31 explosive crossbow
emancipator exo gun
EXO-45 rocket
SG-8P Punisher Plasma
PLAS-1 Scorcher
pelican weapon
SG-225NS Breaker Nailspitter


default dmg >>
G-123 Thermite
anti tank mines
anti personnel mines
incendiary mines
tesla tower
mortar turret
rocket sentry turret

hellpot damage

//eagle airstrike
//orbital 380MM HE barrage
//eagle 110mm rocket pods
//eagle clusterbomb
//orbital airburst
table and guide as usual in my signature.

how to make this work man> the infinite shield can you teach me?

Chenchen
Noobzor
Noobzor
Posts: 11
Joined: Wed Mar 06, 2024 12:37 pm
Reputation: 1

Re: HELLDIVERS 2

Post by Chenchen »

So no infinite time cheat?

naisu
Noobzor
Noobzor
Posts: 8
Joined: Thu Jul 27, 2023 5:32 am
Reputation: 7

Re: HELLDIVERS 2

Post by naisu »

Exemplify1524 wrote:
Wed May 01, 2024 10:29 am
latest and full version of modified ZoDDels damage script rewritten in ccode to more usability and changebility. good to use with table [Link]

main part is
// default damage multiplier for all damages.
damage_ratio = 0.2f;

and the weapons table
{51, 100.0f, -1, -1, 100, 100, 100, 100, "AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},

51 is ID
100.0f is damage and armor damage multiplier (damage * multiplier)
-1 is damage (-1 for not change, for example to only multiply default value)
-1 is armor damage
100 is penetration1 at no angle is set to 100 (you can use -1 to not change)
100 is penetration2 with angle is set to 100 (you can use -1 to not change)
100 is penetration3 unknown is set to 100 (you can use -1 to not change)
100 is penetration4 unknown is set to 100 (you can use -1 to not change)

also damage monitoring with miscosoft DebugView tool is working.

Code: Select all

[ENABLE]
aobscanmodule(damage_inject,game.dll,66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB)
alloc(damage_newmem,$10000)
label(damage_return)

//label(damage_change)
//label(damage_and_penetration_change)
//label(damage_no_change)
//label(damage_multiplier)


alloc(damage_ratio,4)
registersymbol(damage_ratio)


damage_newmem:
// push rbx //save rbx as it's going to be changed

{$ccode base_address=rcx jmpaddress=rbx}
extern __cdecl int sprintf(char *, char *, ...);
extern __cdecl void OutputDebugStringA(const char* lpOutputString);

extern float damage_ratio;

//extern void damage_change();
//extern void damage_and_penetration_change();
//extern void damage_no_change();

char debug_string[400];
char* weapon_name;
//float unknown_damage_mult = 0.2f;
//bool damage_is_unknown;
// char* damage_type_name;

typedef struct {
   int id;
   float damage_mult;
   int damage_value;
   int armor_damage_value;
   int penetration1_no_angle_value;
   int penetration2_angle_value;
   int penetration3_unknown_value;
   int penetration4_unknown_value;
   char* weapon_name;
} Weapon;

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);

Weapon weapons[76] = {
{326,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Helldiver melee"},
{50,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23C Liberator Concussive"},
{48,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23P Liberator Penetrator"},
{51,	100.0f,	-1,	-1,	100,	100,	100,	100,	"AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},
{73,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63 Diligence"},
{74,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63CS Diligence Counter Sniper"},
{65,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-20L Justice / BR-14 Adjudicator / Machine Gun / Gatling/Machine Gun Sentry"},
{26,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"MP-98 Knight"},
{34,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S / SMG-37 Defender"},
{117,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC-12 Blitzer"},
{93,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Break action shotgun"},
{102,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225 Breaker"},
{103,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225BB Breaker Bugbiter"},
{104,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225NS Breaker Nailspitter"},
{101,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225SP Breaker Spray&Pray"},
{105,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-255IE Breaker Incendiary"},
{88,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8 Punisher"},
{99,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S Slugger"},
{124,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"CB-9 Exploding Crossbow"},
{84,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"JAR-5 Dominator"},
{80,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-36 Eruptor"},
{19,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-16 Sickle"},
{297,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-5 Scythe"},
{20,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"PLAS-1 Scorcher / SG-8P Punisher Plasma"},
{134,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GP-31 Grenade Pistol"},
{296,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-7 Dagger"},
{44,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-4 Senator"},
{25,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-19 Redeemer / P-2 Peacemaker"},
{203,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-10 Incendiary"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{111,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 2"},
{213,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-12 High Explosive / G-16 Impact"},
{204,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-123 Thermite"},
{122,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Antimaterial Rifle"},
{115,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC3 Thrower"},
{127,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 1/2)"},
{216,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 2/2)"},
{145,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Commando"},
{135,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 1"},
{189,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 2"},
{226,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 3"},
{129,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 1"},
{217,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 2"},
{147,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 1"},
{234,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 2"},
{9,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"FLAM-40 Flamethrower part 1"},
{220,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 2 explosion"},
{121,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Heavy Machinegun"},
{149,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 1"},
{236,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 2"},
{302,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-98 Laser Cannon"},
{227,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 1"},
{228,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 2"},
{280,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 3 (???)"},
{136,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 1 shell"},
{225,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 2 explosion"},
{22,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"RS-422 Railgun"},
{10,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 1 / Mortar Sentry shell"},
{11,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Grenade Launcher / EMS Mortar Sentry / Mortar Sentry 1"},
{223,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Mortar Sentry 2"},
{126,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Tesla Tower"},
{241,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AntiPersonal MineField / Eagle 110mm rocket pods part 2"},
{154,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb1 shell"},
{273,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb2 explosion"},
{152,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle 110mm rocket pods part 1"},
{142,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 1"},
{254,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 2"},
{229,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle cluster bomb"},
{159,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage1"},
{268,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage2"},
{305,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital laser"},
{160,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike1"},
{267,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike2"},
{161,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike1"},
{266,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike2"}
};


// damage_type_name = "unknown type";

// strcpy(weapon_name_list, "");

// default damage multiplier for all damages.
damage_ratio = 0.2f;

if (*weapon_id != 0) {
  // set default values. May change during analyzing table later.
  weapon_name = "unknown damage";
  //damage_is_unknown = true;

  // analyzing if we have damage_id  in table
  for (int i = 0; i < sizeof(weapons) / sizeof(weapons[0]); ++i) {
    if (weapons[i].id == 0) {
      continue;
    }

    if (*weapon_id == weapons[i].id) {
       // damage_is_unknown = false; // we have this damage_id in table. So set flag 'damage_is_unknown' to false, with this we will not apply unknown_damage debuffer to this damage latter

       weapon_name = weapons[i].weapon_name;  // is only for debugging. Used only in sprintf and OutputDebugString latter

       // damage_type_name = weapons[i].damage_type_name;

       if (weapons[i].damage_value != -1) {
         *weapon_dmg = weapons[i].damage_value;
       }
       if (weapons[i].armor_damage_value != -1) {
         *weapon_admg = weapons[i].armor_damage_value;
       }
       if (weapons[i].penetration1_no_angle_value != -1) {
         *weapon_pen1 = weapons[i].penetration1_no_angle_value;
       }
       if (weapons[i].penetration2_angle_value != -1) {
         *weapon_pen2 = weapons[i].penetration2_angle_value;
       }
       if (weapons[i].penetration3_unknown_value != -1) {
         *weapon_pen3 = weapons[i].penetration3_unknown_value;
       }
       if (weapons[i].penetration4_unknown_value != -1) {
         *weapon_pen4 = weapons[i].penetration4_unknown_value;
       }

       // apply damage multiplier
       damage_ratio = weapons[i].damage_mult;

       //strcat(weapon_name_list, " / ");
       //strcat(weapon_name_list, weapons[i].name);
       //sprintf(debug_string, "HD2. ID %d is for %s", *weapon_id, weapon_name);
       //OutputDebugStringA(debug_string);
       break;
    }
  }

  // If damage_id was not found in table. Then assume it is some enemy or environmental damage.  Apply 'unknown_damage_mult' to it (reduce)
  /*
  if (damage_is_unknown) {
     *weapon_dmg = (int)((float)*weapon_dmg * unknown_damage_mult);
     *weapon_admg = (int)((float)*weapon_admg * unknown_damage_mult);
     *weapon_pen1 = (int)((float)*weapon_pen1 * unknown_damage_mult);
     *weapon_pen2 = (int)((float)*weapon_pen2 * unknown_damage_mult);
     *weapon_pen3 = (int)((float)*weapon_pen3 * unknown_damage_mult);
     *weapon_pen4 = (int)((float)*weapon_pen4 * unknown_damage_mult);
  }*/

  sprintf(debug_string, "HD2 %3d | DMG %3d %3d | PEN %3d %3d %3d %3d | %s", *weapon_id, *weapon_dmg, *weapon_admg, *weapon_pen1, *weapon_pen2, *weapon_pen3, *weapon_pen4, weapon_name);
  OutputDebugStringA(debug_string);
} // weapon_id != 0



{$asm}
  // standart code start
  movd xmm3,[rcx+04]
  movd xmm1,[rcx+08]
  cvtdq2ps xmm1,xmm1
  cvtdq2ps xmm3,xmm3
  // standart code end
  // damage_ratio part
  mulss xmm3, dword ptr [damage_ratio]
  mulss xmm1, dword ptr [damage_ratio]
  jmp damage_return

damage_inject:
  jmp far damage_newmem
  nop 2

damage_return:

// ------------------------------------------------------

[DISABLE]
nice script and explanation, glad to see more developers in here.

drehcaruso
Noobzor
Noobzor
Posts: 10
Joined: Mon Aug 28, 2023 4:58 am
Reputation: 0

Re: HELLDIVERS 2

Post by drehcaruso »

rdg1995 wrote:
Wed May 01, 2024 2:16 pm
ZoDDeL wrote:
Wed May 01, 2024 12:20 pm
UPDATE:
added inf energy shield (instead of setting cooldown to zero this one just writes on the shield value)
added a bunch of weapon ID's

Spoiler
super dmg >>
MP-98 Knight
MG-43 / EXO-45 Gatling / Gatling Turret
anti material rifle
FLAM-40
MG-206 HMG
GP-31 grenade pistol
LAS-98
RS-422 railgun
R-36 Eruptor
LAS-99 quasar
RL-77 airburst
GP-31 explosive crossbow
emancipator exo gun
EXO-45 rocket
SG-8P Punisher Plasma
PLAS-1 Scorcher
pelican weapon
SG-225NS Breaker Nailspitter


default dmg >>
G-123 Thermite
anti tank mines
anti personnel mines
incendiary mines
tesla tower
mortar turret
rocket sentry turret

hellpot damage

//eagle airstrike
//orbital 380MM HE barrage
//eagle 110mm rocket pods
//eagle clusterbomb
//orbital airburst
table and guide as usual in my signature.

how to make this work man> the infinite shield can you teach me?
it's in his table, buddy. just read. the table it's in his signature, as his post says. click the link and you'll be taken to the message with both the download for the table and the instructions.

JPITABREAD
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Jul 21, 2022 5:28 pm
Reputation: 3

Re: HELLDIVERS 2

Post by JPITABREAD »

ZoDDeL wrote:
Sat Mar 16, 2024 3:26 am
alternative and simpler guide with slightly different approach with no address input and easier timing.

this guide doesnt make your CE undetected but let you activate scripts and close CE before gameguard notice what happened
so you can cheat without crash / hack detected!
but you cannot use CE to search for stuff or debug the game!!!


follow the text+ picture guide or just watch one of the videos down below
i show the usage at the beginning of each video.

......
You are the best ZoDDel! Donated to you for the great work. Hopefully others will reciprocate. ZoDDel's signature has their paypal for those who are feeling generous.

For prosperity!

2610mason
Noobzor
Noobzor
Posts: 5
Joined: Mon Mar 18, 2024 5:57 pm
Reputation: 0

Re: HELLDIVERS 2

Post by 2610mason »

did anyone knows how to make raser heat cool down works?

User avatar
gunbalde60
Expert Cheater
Expert Cheater
Posts: 374
Joined: Tue Jan 09, 2018 3:53 am
Reputation: 32

Re: HELLDIVERS 2

Post by gunbalde60 »

Exemplify1524 wrote:
Wed May 01, 2024 10:29 am
latest and full version of modified ZoDDels damage script rewritten in ccode to more usability and changebility. good to use with table [Link]

main part is
// default damage multiplier for all damages.
damage_ratio = 0.2f;

and the weapons table
{51, 100.0f, -1, -1, 100, 100, 100, 100, "AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},

51 is ID
100.0f is damage and armor damage multiplier (damage * multiplier)
-1 is damage (-1 for not change, for example to only multiply default value)
-1 is armor damage
100 is penetration1 at no angle is set to 100 (you can use -1 to not change)
100 is penetration2 with angle is set to 100 (you can use -1 to not change)
100 is penetration3 unknown is set to 100 (you can use -1 to not change)
100 is penetration4 unknown is set to 100 (you can use -1 to not change)

also damage monitoring with miscosoft DebugView tool is working.

Code: Select all

[ENABLE]
aobscanmodule(damage_inject,game.dll,66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB)
alloc(damage_newmem,$10000)
label(damage_return)

//label(damage_change)
//label(damage_and_penetration_change)
//label(damage_no_change)
//label(damage_multiplier)


alloc(damage_ratio,4)
registersymbol(damage_ratio)


damage_newmem:
// push rbx //save rbx as it's going to be changed

{$ccode base_address=rcx jmpaddress=rbx}
extern __cdecl int sprintf(char *, char *, ...);
extern __cdecl void OutputDebugStringA(const char* lpOutputString);

extern float damage_ratio;

//extern void damage_change();
//extern void damage_and_penetration_change();
//extern void damage_no_change();

char debug_string[400];
char* weapon_name;
//float unknown_damage_mult = 0.2f;
//bool damage_is_unknown;
// char* damage_type_name;

typedef struct {
   int id;
   float damage_mult;
   int damage_value;
   int armor_damage_value;
   int penetration1_no_angle_value;
   int penetration2_angle_value;
   int penetration3_unknown_value;
   int penetration4_unknown_value;
   char* weapon_name;
} Weapon;

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);

Weapon weapons[76] = {
{326,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Helldiver melee"},
{50,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23C Liberator Concussive"},
{48,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23P Liberator Penetrator"},
{51,	100.0f,	-1,	-1,	100,	100,	100,	100,	"AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},
{73,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63 Diligence"},
{74,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63CS Diligence Counter Sniper"},
{65,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-20L Justice / BR-14 Adjudicator / Machine Gun / Gatling/Machine Gun Sentry"},
{26,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"MP-98 Knight"},
{34,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S / SMG-37 Defender"},
{117,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC-12 Blitzer"},
{93,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Break action shotgun"},
{102,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225 Breaker"},
{103,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225BB Breaker Bugbiter"},
{104,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225NS Breaker Nailspitter"},
{101,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225SP Breaker Spray&Pray"},
{105,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-255IE Breaker Incendiary"},
{88,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8 Punisher"},
{99,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S Slugger"},
{124,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"CB-9 Exploding Crossbow"},
{84,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"JAR-5 Dominator"},
{80,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-36 Eruptor"},
{19,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-16 Sickle"},
{297,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-5 Scythe"},
{20,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"PLAS-1 Scorcher / SG-8P Punisher Plasma"},
{134,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GP-31 Grenade Pistol"},
{296,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-7 Dagger"},
{44,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-4 Senator"},
{25,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-19 Redeemer / P-2 Peacemaker"},
{203,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-10 Incendiary"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{111,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 2"},
{213,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-12 High Explosive / G-16 Impact"},
{204,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-123 Thermite"},
{122,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Antimaterial Rifle"},
{115,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC3 Thrower"},
{127,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 1/2)"},
{216,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 2/2)"},
{145,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Commando"},
{135,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 1"},
{189,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 2"},
{226,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 3"},
{129,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 1"},
{217,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 2"},
{147,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 1"},
{234,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 2"},
{9,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"FLAM-40 Flamethrower part 1"},
{220,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 2 explosion"},
{121,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Heavy Machinegun"},
{149,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 1"},
{236,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 2"},
{302,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-98 Laser Cannon"},
{227,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 1"},
{228,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 2"},
{280,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 3 (???)"},
{136,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 1 shell"},
{225,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 2 explosion"},
{22,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"RS-422 Railgun"},
{10,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 1 / Mortar Sentry shell"},
{11,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Grenade Launcher / EMS Mortar Sentry / Mortar Sentry 1"},
{223,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Mortar Sentry 2"},
{126,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Tesla Tower"},
{241,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AntiPersonal MineField / Eagle 110mm rocket pods part 2"},
{154,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb1 shell"},
{273,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb2 explosion"},
{152,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle 110mm rocket pods part 1"},
{142,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 1"},
{254,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 2"},
{229,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle cluster bomb"},
{159,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage1"},
{268,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage2"},
{305,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital laser"},
{160,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike1"},
{267,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike2"},
{161,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike1"},
{266,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike2"}
};


// damage_type_name = "unknown type";

// strcpy(weapon_name_list, "");

// default damage multiplier for all damages.
damage_ratio = 0.2f;

if (*weapon_id != 0) {
  // set default values. May change during analyzing table later.
  weapon_name = "unknown damage";
  //damage_is_unknown = true;

  // analyzing if we have damage_id  in table
  for (int i = 0; i < sizeof(weapons) / sizeof(weapons[0]); ++i) {
    if (weapons[i].id == 0) {
      continue;
    }

    if (*weapon_id == weapons[i].id) {
       // damage_is_unknown = false; // we have this damage_id in table. So set flag 'damage_is_unknown' to false, with this we will not apply unknown_damage debuffer to this damage latter

       weapon_name = weapons[i].weapon_name;  // is only for debugging. Used only in sprintf and OutputDebugString latter

       // damage_type_name = weapons[i].damage_type_name;

       if (weapons[i].damage_value != -1) {
         *weapon_dmg = weapons[i].damage_value;
       }
       if (weapons[i].armor_damage_value != -1) {
         *weapon_admg = weapons[i].armor_damage_value;
       }
       if (weapons[i].penetration1_no_angle_value != -1) {
         *weapon_pen1 = weapons[i].penetration1_no_angle_value;
       }
       if (weapons[i].penetration2_angle_value != -1) {
         *weapon_pen2 = weapons[i].penetration2_angle_value;
       }
       if (weapons[i].penetration3_unknown_value != -1) {
         *weapon_pen3 = weapons[i].penetration3_unknown_value;
       }
       if (weapons[i].penetration4_unknown_value != -1) {
         *weapon_pen4 = weapons[i].penetration4_unknown_value;
       }

       // apply damage multiplier
       damage_ratio = weapons[i].damage_mult;

       //strcat(weapon_name_list, " / ");
       //strcat(weapon_name_list, weapons[i].name);
       //sprintf(debug_string, "HD2. ID %d is for %s", *weapon_id, weapon_name);
       //OutputDebugStringA(debug_string);
       break;
    }
  }

  // If damage_id was not found in table. Then assume it is some enemy or environmental damage.  Apply 'unknown_damage_mult' to it (reduce)
  /*
  if (damage_is_unknown) {
     *weapon_dmg = (int)((float)*weapon_dmg * unknown_damage_mult);
     *weapon_admg = (int)((float)*weapon_admg * unknown_damage_mult);
     *weapon_pen1 = (int)((float)*weapon_pen1 * unknown_damage_mult);
     *weapon_pen2 = (int)((float)*weapon_pen2 * unknown_damage_mult);
     *weapon_pen3 = (int)((float)*weapon_pen3 * unknown_damage_mult);
     *weapon_pen4 = (int)((float)*weapon_pen4 * unknown_damage_mult);
  }*/

  sprintf(debug_string, "HD2 %3d | DMG %3d %3d | PEN %3d %3d %3d %3d | %s", *weapon_id, *weapon_dmg, *weapon_admg, *weapon_pen1, *weapon_pen2, *weapon_pen3, *weapon_pen4, weapon_name);
  OutputDebugStringA(debug_string);
} // weapon_id != 0



{$asm}
  // standart code start
  movd xmm3,[rcx+04]
  movd xmm1,[rcx+08]
  cvtdq2ps xmm1,xmm1
  cvtdq2ps xmm3,xmm3
  // standart code end
  // damage_ratio part
  mulss xmm3, dword ptr [damage_ratio]
  mulss xmm1, dword ptr [damage_ratio]
  jmp damage_return

damage_inject:
  jmp far damage_newmem
  nop 2

damage_return:

// ------------------------------------------------------

[DISABLE]
If I understand this correctly would I be able to change a single weapon, by changing this values?

{50, 1.0f, -1, -1, -1, -1, -1, -1, "AR-23C Liberator Concussive"},

EX:
{150, 1.0f, 5, 5, 5, 5, 5, 5, "AR-23C Liberator Concussive"},

Would this work? Or am I not understanding this correctly?

rdg1995
What is cheating?
What is cheating?
Posts: 3
Joined: Wed May 01, 2024 1:19 am
Reputation: 0

Re: HELLDIVERS 2

Post by rdg1995 »

Yo bro zoddel do you have gcash or bank acc so i can donate kudos to you man i love the dmg multiplier its so messy 🤣

Cogitationis
Noobzor
Noobzor
Posts: 10
Joined: Mon Sep 03, 2018 6:45 pm
Reputation: 3

Re: HELLDIVERS 2

Post by Cogitationis »

rdg1995 wrote:
Thu May 02, 2024 2:14 am
Yo bro zoddel do you have gcash or bank acc so i can donate kudos to you man i love the dmg multiplier its so messy 🤣
it's right in his signature

OMGChrist
Noobzor
Noobzor
Posts: 6
Joined: Wed Sep 20, 2023 10:35 pm
Reputation: 0

Re: HELLDIVERS 2

Post by OMGChrist »

gunbalde60 wrote:
Thu May 02, 2024 12:36 am
Exemplify1524 wrote:
Wed May 01, 2024 10:29 am
latest and full version of modified ZoDDels damage script rewritten in ccode to more usability and changebility. good to use with table [Link]

main part is
// default damage multiplier for all damages.
damage_ratio = 0.2f;

and the weapons table
{51, 100.0f, -1, -1, 100, 100, 100, 100, "AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},

51 is ID
100.0f is damage and armor damage multiplier (damage * multiplier)
-1 is damage (-1 for not change, for example to only multiply default value)
-1 is armor damage
100 is penetration1 at no angle is set to 100 (you can use -1 to not change)
100 is penetration2 with angle is set to 100 (you can use -1 to not change)
100 is penetration3 unknown is set to 100 (you can use -1 to not change)
100 is penetration4 unknown is set to 100 (you can use -1 to not change)

also damage monitoring with miscosoft DebugView tool is working.

Code: Select all

[ENABLE]
aobscanmodule(damage_inject,game.dll,66 0F 6E 59 04 66 0F 6E 49 08 0F 5B C9 0F 5B DB)
alloc(damage_newmem,$10000)
label(damage_return)

//label(damage_change)
//label(damage_and_penetration_change)
//label(damage_no_change)
//label(damage_multiplier)


alloc(damage_ratio,4)
registersymbol(damage_ratio)


damage_newmem:
// push rbx //save rbx as it's going to be changed

{$ccode base_address=rcx jmpaddress=rbx}
extern __cdecl int sprintf(char *, char *, ...);
extern __cdecl void OutputDebugStringA(const char* lpOutputString);

extern float damage_ratio;

//extern void damage_change();
//extern void damage_and_penetration_change();
//extern void damage_no_change();

char debug_string[400];
char* weapon_name;
//float unknown_damage_mult = 0.2f;
//bool damage_is_unknown;
// char* damage_type_name;

typedef struct {
   int id;
   float damage_mult;
   int damage_value;
   int armor_damage_value;
   int penetration1_no_angle_value;
   int penetration2_angle_value;
   int penetration3_unknown_value;
   int penetration4_unknown_value;
   char* weapon_name;
} Weapon;

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);

Weapon weapons[76] = {
{326,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Helldiver melee"},
{50,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23C Liberator Concussive"},
{48,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-23P Liberator Penetrator"},
{51,	100.0f,	-1,	-1,	100,	100,	100,	100,	"AR-22C Patriot / AR-23 Liberator / AR-48 Truth Whisperer / Guard Dog / Stalwart"},
{73,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63 Diligence"},
{74,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-63CS Diligence Counter Sniper"},
{65,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AR-20L Justice / BR-14 Adjudicator / Machine Gun / Gatling/Machine Gun Sentry"},
{26,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"MP-98 Knight"},
{34,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S / SMG-37 Defender"},
{117,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC-12 Blitzer"},
{93,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Break action shotgun"},
{102,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225 Breaker"},
{103,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225BB Breaker Bugbiter"},
{104,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225NS Breaker Nailspitter"},
{101,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-225SP Breaker Spray&Pray"},
{105,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-255IE Breaker Incendiary"},
{88,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8 Punisher"},
{99,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"SG-8S Slugger"},
{124,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"CB-9 Exploding Crossbow"},
{84,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"JAR-5 Dominator"},
{80,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"R-36 Eruptor"},
{19,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-16 Sickle"},
{297,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-5 Scythe"},
{20,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"PLAS-1 Scorcher / SG-8P Punisher Plasma"},
{134,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GP-31 Grenade Pistol"},
{296,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-7 Dagger"},
{44,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-4 Senator"},
{25,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"P-19 Redeemer / P-2 Peacemaker"},
{203,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-10 Incendiary"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{201,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 1"},
{111,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-6 Frag part 2"},
{213,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-12 High Explosive / G-16 Impact"},
{204,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"G-123 Thermite"},
{122,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Antimaterial Rifle"},
{115,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"ARC3 Thrower"},
{127,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 1/2)"},
{216,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Autocannon (part 2/2)"},
{145,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Commando"},
{135,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 1"},
{189,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 2"},
{226,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EAT-17 Expendable Anti-Tank part 3"},
{129,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 1"},
{217,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator gun part 2"},
{147,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 1"},
{234,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"EXO-45 Emancipator rocket part 2"},
{9,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"FLAM-40 Flamethrower part 1"},
{220,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 2 explosion"},
{121,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Heavy Machinegun"},
{149,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 1"},
{236,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Javelin rocket part 2"},
{302,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"LAS-98 Laser Cannon"},
{227,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 1"},
{228,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 2"},
{280,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Quasar Cannon part 3 (???)"},
{136,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 1 shell"},
{225,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Recoiless Rifle part 2 explosion"},
{22,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"RS-422 Railgun"},
{10,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"GL-21 Grenade launcher part 1 / Mortar Sentry shell"},
{11,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Grenade Launcher / EMS Mortar Sentry / Mortar Sentry 1"},
{223,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Mortar Sentry 2"},
{126,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Tesla Tower"},
{241,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"AntiPersonal MineField / Eagle 110mm rocket pods part 2"},
{154,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb1 shell"},
{273,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"500kg bomb2 explosion"},
{152,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle 110mm rocket pods part 1"},
{142,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 1"},
{254,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle airstrike part 2"},
{229,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Eagle cluster bomb"},
{159,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage1"},
{268,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital 120MM HE barrage2"},
{305,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital laser"},
{160,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike1"},
{267,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital precision strike2"},
{161,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike1"},
{266,	1.0f,	-1,	-1,	-1,	-1,	-1,	-1,	"Orbital railcannon strike2"}
};


// damage_type_name = "unknown type";

// strcpy(weapon_name_list, "");

// default damage multiplier for all damages.
damage_ratio = 0.2f;

if (*weapon_id != 0) {
  // set default values. May change during analyzing table later.
  weapon_name = "unknown damage";
  //damage_is_unknown = true;

  // analyzing if we have damage_id  in table
  for (int i = 0; i < sizeof(weapons) / sizeof(weapons[0]); ++i) {
    if (weapons[i].id == 0) {
      continue;
    }

    if (*weapon_id == weapons[i].id) {
       // damage_is_unknown = false; // we have this damage_id in table. So set flag 'damage_is_unknown' to false, with this we will not apply unknown_damage debuffer to this damage latter

       weapon_name = weapons[i].weapon_name;  // is only for debugging. Used only in sprintf and OutputDebugString latter

       // damage_type_name = weapons[i].damage_type_name;

       if (weapons[i].damage_value != -1) {
         *weapon_dmg = weapons[i].damage_value;
       }
       if (weapons[i].armor_damage_value != -1) {
         *weapon_admg = weapons[i].armor_damage_value;
       }
       if (weapons[i].penetration1_no_angle_value != -1) {
         *weapon_pen1 = weapons[i].penetration1_no_angle_value;
       }
       if (weapons[i].penetration2_angle_value != -1) {
         *weapon_pen2 = weapons[i].penetration2_angle_value;
       }
       if (weapons[i].penetration3_unknown_value != -1) {
         *weapon_pen3 = weapons[i].penetration3_unknown_value;
       }
       if (weapons[i].penetration4_unknown_value != -1) {
         *weapon_pen4 = weapons[i].penetration4_unknown_value;
       }

       // apply damage multiplier
       damage_ratio = weapons[i].damage_mult;

       //strcat(weapon_name_list, " / ");
       //strcat(weapon_name_list, weapons[i].name);
       //sprintf(debug_string, "HD2. ID %d is for %s", *weapon_id, weapon_name);
       //OutputDebugStringA(debug_string);
       break;
    }
  }

  // If damage_id was not found in table. Then assume it is some enemy or environmental damage.  Apply 'unknown_damage_mult' to it (reduce)
  /*
  if (damage_is_unknown) {
     *weapon_dmg = (int)((float)*weapon_dmg * unknown_damage_mult);
     *weapon_admg = (int)((float)*weapon_admg * unknown_damage_mult);
     *weapon_pen1 = (int)((float)*weapon_pen1 * unknown_damage_mult);
     *weapon_pen2 = (int)((float)*weapon_pen2 * unknown_damage_mult);
     *weapon_pen3 = (int)((float)*weapon_pen3 * unknown_damage_mult);
     *weapon_pen4 = (int)((float)*weapon_pen4 * unknown_damage_mult);
  }*/

  sprintf(debug_string, "HD2 %3d | DMG %3d %3d | PEN %3d %3d %3d %3d | %s", *weapon_id, *weapon_dmg, *weapon_admg, *weapon_pen1, *weapon_pen2, *weapon_pen3, *weapon_pen4, weapon_name);
  OutputDebugStringA(debug_string);
} // weapon_id != 0



{$asm}
  // standart code start
  movd xmm3,[rcx+04]
  movd xmm1,[rcx+08]
  cvtdq2ps xmm1,xmm1
  cvtdq2ps xmm3,xmm3
  // standart code end
  // damage_ratio part
  mulss xmm3, dword ptr [damage_ratio]
  mulss xmm1, dword ptr [damage_ratio]
  jmp damage_return

damage_inject:
  jmp far damage_newmem
  nop 2

damage_return:

// ------------------------------------------------------

[DISABLE]
If I understand this correctly would I be able to change a single weapon, by changing this values?

{50, 1.0f, -1, -1, -1, -1, -1, -1, "AR-23C Liberator Concussive"},

EX:
{150, 1.0f, 5, 5, 5, 5, 5, 5, "AR-23C Liberator Concussive"},

Would this work? Or am I not understanding this correctly?
I believe so, but in the example you provided, you would need to keep the Weapon ID "50" instead of changing it to "150" to only affect the Liberator Concussive.

So it would be:
"{50, 1.0f, 5, 5, 5, 5, 5, 5, "AR-23C Liberator Concussive"}"

Post Reply

Who is online

Users browsing this forum: AhrefsBot, AraMacaw, Coffetti, Darkano, Google [Bot], kharn, Leunsel, nillmand2, OMGChrist, pacifista, semmycoolz, trohed