Recently, I want to read some official campaign maps source code (especially for built-in library source code, eg: Campaign (Swarm) ).
I found there are a lot of Debug Triggers/Functions in this library, eg: Campaign (Swarm) / Story Debug / Footage Recoding / ZS_FootageRecording, so I want to use them to help me understand code.
But these triggers usually have a Condition : "Development cheats are enabled"
This means if GameCheatsEnabled return false, the trigger is useless.
My question is when GameCheatsEnabled(c_gameCheatCategoryDevelopment) return true? or How to switch to Develop Cheat Mode? I have called GameCheatAllow(c_gameCheatAny, true), but GameCheatsEnabled(c_gameCheatCategoryDevelopment) still return false. It seems to need some develop cheatCode or launch parameters. Very thanks
Could you tell me the development cheat list or where to find all development cheat list ? Very thanks.
Probably there are no such cheats for users such as ourselves. They might only be enabled in internal testing builds over at Blizzard, and potentially even only for Heroes of the Storm which shares a common engine.
develop cheat flag is for sc2 internal debugging build but they made some sort of mistake so include that at normal build i belive :P
It is not really included for us, rather it is part of the core game so when developer mode is turned on it has a meaning. Otherwise it would mean a lot of content that would have to be tied to a single build which is bad for maintenance.
I am not 100% sure if the additional ~12ish development mode cheats are suppose to be able to be utilized by a regular person, and not some special person with special cmdline flags via battlenet via the agent and possibly via blizzardbrowser (unlikely on the browser, but not so much the agent) or special dev builds (??? Base00000 anyone ???)?
Anyways... You can make GameCheatsEnabled(c_gameCheatCategoryDevelopment) return a true value (or in other words a non-zero value - namely not 1 nor true), but you can exploit a bug in the map editor to get all ~24-25 available cheats (which can be viewed via issuing trigdebug in game, and then on the first tab type in (upper right corner) the word "cheat" and it will filter the variable list. At the end of this list is a an array of boolean values that indicate whether or not that particular cheat is possible to utilize. Normally - the first ~12-14ish of them you can get set to true/one value and the remaining ~12 are always zero. The trick is to add a trigger to the map that contains already defined particular constant debug variables such as DEBUG (set equal to 1) or if I recall maybe DEBUG_GAME... There are a few of these constant all caps variables that will stand out if you type in debug in the filter box in the upper right. The trick is to re-register/make-a-new-variable globally in your trigger script. If you do it correctly the map editor will not complain, and will parse your trigger into your map. Once this is done, go into a test mode game and type trigdebug and you will notice that anything and everything having to do with cheats and debug states and value of GameCheatsEnabled(c_gameCheatCategoryDevelopment) is no longer 0 nor 1. It is equal to -1! All ~24 cheats in that array will all indicate a value of -1, yet in your game you can still issue cheat codes such as debug cheats/actor-cheats/normal-cheats etc... and they all work fine. Now - how do you invoke these other "anonymous" development cheats? Well - the person who started this post has the answer in his very question. You go and look at how the swarm campaign was utilizing them, and excellent! You can now issue those same cheats in test mode game. I am not going to get into issuing cheats in other kinds of games because you are not suppose to be able to do that.
If you can't figure it out, reply to this post and I will dig up my old notes and simply copy and paste the trigger I utilized to make all this work.
Also, did you know that right next to the cheat "charges" is another very good looking cheat code that is never talked about online or anywhere outside of the SC2_x64 binary :) Take a look easily by running Linux application strings or the Windows equivalent and search for cheat codes such as uncommandable or unselectable or as I said search for "charges" (all of these cheats will be clustered close to each other in a string dump). You will then see what cheat code I am talking about right after "charges" gets registered. You cannot invoke it easily, but it is there waiting for something to find it. Just like the string "UNPROTECTED_BINARY" can be found in every build of SC2_x64 for years. No one (as far as I know outside of Blizzard/now-Microsoft knows what it means/does/indicates/usefulness/etc.., but it is there. Although in the hidden cheat code next to "charges" there is actual code that registers it unlike an obscure strange string in the middle of nowhere in memory with zero xrefs such as "UNPROTECTED_BINARY".
Anyways, if you can't figure out how to "enable" GameCheatsEnabled(c_gameCheatCategoryDevelopment) let me know, and I will dig up my old notes.
-skinnyM
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Recently, I want to read some official campaign maps source code (especially for built-in library source code, eg: Campaign (Swarm) ).
I found there are a lot of Debug Triggers/Functions in this library, eg: Campaign (Swarm) / Story Debug / Footage Recoding / ZS_FootageRecording, so I want to use them to help me understand code.
But these triggers usually have a Condition : "Development cheats are enabled"
Galaxy Code is :
This means if GameCheatsEnabled return false, the trigger is useless.
My question is when GameCheatsEnabled(c_gameCheatCategoryDevelopment) return true? or How to switch to Develop Cheat Mode?
I have called GameCheatAllow(c_gameCheatAny, true), but GameCheatsEnabled(c_gameCheatCategoryDevelopment) still return false.
It seems to need some develop cheatCode or launch parameters.
Very thanks
Have you tried using a cheat? It might only return true if an appropriate cheat has been used.
In reply to Forge_User_04585675:
TriggerAddEventChatMessage(c_playerAny, "a", true)
Local Variables
Conditions
Actions
UIDisplayMessage((PlayerGroupAll()), c_messageAreaSubtitle, (ConvertBooleanToText((GameCheatsEnabled(c_gameCheatCategoryPublic)))))
UIDisplayMessage((PlayerGroupAll()), c_messageAreaSubtitle, (ConvertBooleanToText((GameCheatsEnabled(c_gameCheatCategoryDevelopment)))))
Development cheats must be a separate set of cheat codes.
The developer cheats are the cheats u uses at map Test mode.
ex) makeunit
You cant enable them at online.
In reply to Forge_User_04585675:
In reply to Quntum:
In reply to chansey97:
In reply to Forge_User_04585675:
In reply to Quntum:
In reply to Forge_User_04585675:
dude as ImperialGood already said about it that function is for sc2 devs not sc2 users.
I am not 100% sure if the additional ~12ish development mode cheats are suppose to be able to be utilized by a regular person, and not some special person with special cmdline flags via battlenet via the agent and possibly via blizzardbrowser (unlikely on the browser, but not so much the agent) or special dev builds (??? Base00000 anyone ???)?
Anyways... You can make GameCheatsEnabled(c_gameCheatCategoryDevelopment) return a true value (or in other words a non-zero value - namely not 1 nor true), but you can exploit a bug in the map editor to get all ~24-25 available cheats (which can be viewed via issuing trigdebug in game, and then on the first tab type in (upper right corner) the word "cheat" and it will filter the variable list. At the end of this list is a an array of boolean values that indicate whether or not that particular cheat is possible to utilize. Normally - the first ~12-14ish of them you can get set to true/one value and the remaining ~12 are always zero. The trick is to add a trigger to the map that contains already defined particular constant debug variables such as DEBUG (set equal to 1) or if I recall maybe DEBUG_GAME... There are a few of these constant all caps variables that will stand out if you type in debug in the filter box in the upper right. The trick is to re-register/make-a-new-variable globally in your trigger script. If you do it correctly the map editor will not complain, and will parse your trigger into your map. Once this is done, go into a test mode game and type trigdebug and you will notice that anything and everything having to do with cheats and debug states and value of GameCheatsEnabled(c_gameCheatCategoryDevelopment) is no longer 0 nor 1. It is equal to -1! All ~24 cheats in that array will all indicate a value of -1, yet in your game you can still issue cheat codes such as debug cheats/actor-cheats/normal-cheats etc... and they all work fine. Now - how do you invoke these other "anonymous" development cheats? Well - the person who started this post has the answer in his very question. You go and look at how the swarm campaign was utilizing them, and excellent! You can now issue those same cheats in test mode game. I am not going to get into issuing cheats in other kinds of games because you are not suppose to be able to do that.
If you can't figure it out, reply to this post and I will dig up my old notes and simply copy and paste the trigger I utilized to make all this work.
Also, did you know that right next to the cheat "charges" is another very good looking cheat code that is never talked about online or anywhere outside of the SC2_x64 binary :) Take a look easily by running Linux application strings or the Windows equivalent and search for cheat codes such as uncommandable or unselectable or as I said search for "charges" (all of these cheats will be clustered close to each other in a string dump). You will then see what cheat code I am talking about right after "charges" gets registered. You cannot invoke it easily, but it is there waiting for something to find it. Just like the string "UNPROTECTED_BINARY" can be found in every build of SC2_x64 for years. No one (as far as I know outside of Blizzard/now-Microsoft knows what it means/does/indicates/usefulness/etc.., but it is there. Although in the hidden cheat code next to "charges" there is actual code that registers it unlike an obscure strange string in the middle of nowhere in memory with zero xrefs such as "UNPROTECTED_BINARY".
Anyways, if you can't figure out how to "enable" GameCheatsEnabled(c_gameCheatCategoryDevelopment) let me know, and I will dig up my old notes.
-skinnyM