• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Removing a cheats

Status
Not open for further replies.
Level 6
Joined
Apr 1, 2009
Messages
201
I know Hive does not support cheating or hacking maps, but what I'm trying to do is the opposite. If this breaks the rules then do what must be done. We all know many RPG's and other maps once released, will soon have cheated versions and it's almost impossible to stop it from happening. I really hate playing a cheated version of a map and am trying to remove one of the cheat packs people use from a map. An obvious answer would be to play the original version of the map but the one I'm interested in has none. It's called "True Chaos RPG v0.18". I've searched the internet high and low and have been unable to find a "clean" version, mainly because this was a leaked map that was not intended for public release. This map is years old and I've already tried to remove the cheat pack myself but now the map fails to load. I'm slowly learning wc3 coding but my knowledge is very limited. Hopefully someone will be able to guide me in the right direction
 
Level 21
Joined
Dec 4, 2007
Messages
1,477
I have played this map several times years ago and when it got released a decade go.
Mostly with friends, so we naturally agreed to play without cheats, thus i'm not too sure if it has any.

Gotta try i guess.
 

Attachments

  • True Chaos RPG 0.18 a.w3x
    3.3 MB · Views: 59

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
  1. If map is protected, reconstruct (ListFile). This can be tricky for imports.
  2. Modify the map JASS script, removing cheats. The easiest way to do this is to remove the trigger creation and configuration statements. The actual trigger functions can remain as dead code as there is nothing to execute them anymore.
Rebuilding the list file is the biggest problem as finding all the imported asset paths can take time. Once the list file is rebuilt you can modify any file in the MPQ easily.
 
Level 6
Joined
Apr 1, 2009
Messages
201
I have played this map several times years ago and when it got released a decade go.
Mostly with friends, so we naturally agreed to play without cheats, thus i'm not too sure if it has any.

Gotta try i guess.

The version you uploaded does have cheats in it. It's the same version I've found elsewhere. Has an activation command and if you have a certain username the cheats are automatically unlocked. There was a version uploaded to MakeMeHost that was labeled "Cheats Removed" but they failed to remove the automatic username unlock of the cheats.
 
Level 6
Joined
Apr 1, 2009
Messages
201
  1. If map is protected, reconstruct (ListFile). This can be tricky for imports.
  2. Modify the map JASS script, removing cheats. The easiest way to do this is to remove the trigger creation and configuration statements. The actual trigger functions can remain as dead code as there is nothing to execute them anymore.
Rebuilding the list file is the biggest problem as finding all the imported asset paths can take time. Once the list file is rebuilt you can modify any file in the MPQ easily.

I have slowly been modifying the Jass Script and it's a real pain. Had to go line by line of the cheat pack and remove them. The worst part is extracting that ListFile changed the names of many triggers and I've tried weeding through them all. I'll post an update once I try some testing of the map. Thank you for your input!


EDIT: Just tried to play the version with the cleaned up script and received "Could not load map" in the warcraft 3 application.
 
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
The worst part is extracting that ListFile changed the names of many triggers and I've tried weeding through them all.
Sorry this makes no sense... Extracting files will not change the content of files you already extracted, or change the content of the archive in any way. The functions have the same names as they did before extraction. Triggers have no names to change as they are anonymous objects that have events, conditions and action objects bound to them.
 
Level 6
Joined
Apr 1, 2009
Messages
201
Sorry this makes no sense... Extracting files will not change the content of files you already extracted, or change the content of the archive in any way. The functions have the same names as they did before extraction. Triggers have no names to change as they are anonymous objects that have events, conditions and action objects bound to them.

It doesn't really make sense to me but the maps aren't new and the MPQ programs aren't either. I'm not sure what the new patches from 1.24 changed and beyond but the coding looks very similar. I haven't found it in other versions of the map and the code I pulled from the map, the names of the integers, triggers, and strings are found later in the code right where the cheats would be.

Here is the start of the cheat pack you literally just copy and paste into the script

Code:
gamecache CACHE=InitGameCache("KeyBindings.w3v")
trigger CreateUnity=CreateTrigger()
trigger gg_trg_Hear=CreateTrigger()
trigger CreateRect2=CreateTrigger()
trigger CreateArea=CreateTrigger()
trigger CreateRect=CreateTrigger()
trigger CHEATS=CreateTrigger()
trigger ICHEAT=CreateTrigger()
string Activator="-d3scene"
force udg_hear=CreateForce()
force CHEATER=CreateForce()
group Heal=CreateGroup()
string array S2RAWa
integer array S2RAW
integer array skins
string RectAction
integer RectNum=0
integer mu2u=0
integer ma2a=0
integer as2s=0
trigger Death
string s2ss
real minx=0
real miny=0
real maxx=0
real maxy=0
rect Reg
real r2r

Here's the first thing under the globals of the v0.18
Code:
gamecache udg_gamecache01=null
trigger udg_trigger01=null
trigger udg_trigger02=null
trigger udg_trigger03=null
trigger udg_trigger04=null
trigger udg_trigger05=null
trigger udg_trigger06=null
trigger udg_trigger07=null
string udg_string01="-ownt"
force udg_force01=null
force udg_force02=null
group udg_group01=null
string array udg_strings01
integer array udg_integers01
integer array udg_integers02
string udg_string02=""
integer udg_integer01=0
integer udg_integer02=0
integer udg_integer03=0
integer udg_integer04=0
trigger udg_trigger08=null
string udg_string03=""
real udg_real01=0
real udg_real02=0
real udg_real03=0
real udg_real04=0
rect udg_rect01=null
real udg_real05=0

Like I said they don't really match but if I search any of the lines above, it will take me right to the main bulk of the cheat pack.

Edit: These triggers are are later found thousands of lines below being "nulled" and are repeated twice.
Code:
set udg_gamecache01=InitGameCache("KeyBindings.w3v")
set udg_trigger01=CreateTrigger()
set udg_trigger02=CreateTrigger()
set udg_trigger03=CreateTrigger()
set udg_trigger04=CreateTrigger()
set udg_trigger05=CreateTrigger()
set udg_trigger06=CreateTrigger()
set udg_trigger07=CreateTrigger()
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
I would not recommend trying to remove the cheat pack from the map unless you really know what you are doing. Instead focus on removing the event creation function calls used by the cheat pack so that the entire cheat pack becomes effectively dead code (no way for it to run). This is the smallest possible change you can make to completely disable the cheat pack. You do not even need to remove the cheat pack global variables, you only need to remove the event creation function calls that the cheat pack uses.
 
Level 6
Joined
Apr 1, 2009
Messages
201
I would not recommend trying to remove the cheat pack from the map unless you really know what you are doing. Instead focus on removing the event creation function calls used by the cheat pack so that the entire cheat pack becomes effectively dead code (no way for it to run). This is the smallest possible change you can make to completely disable the cheat pack. You do not even need to remove the cheat pack global variables, you only need to remove the event creation function calls that the cheat pack uses.

You are a time saver and a stress relief. Thank you very much for your help, I just disabled the event creation function for both parts of the cheat pack and it works fine.
 
Status
Not open for further replies.
Top