thesuperhackers / generalsgamepatch Goto Github PK
View Code? Open in Web Editor NEWCommunity Patch to fix and improve original Generals Zero Hour 1.04
License: Other
Community Patch to fix and improve original Generals Zero Hour 1.04
License: Other
Set patch .big file name(s) to create meaningful load order. Ideally .big files are loaded right before original .big files, but after most major modifications such as Shockwave Mod.
Under certain conditions China Dragon Tank can shoot on bunker but does not clear its occupants. Reproducible on Defcon 6 map with white bunkers in front of main bases. Does not happen always.
Expand Game Options drop down lists to show all options at once. For example all factions can be shown in drop down without requiring the user to scroll down.
We need to make a solid plan for distribution goals and the actions required. It is of little importance at the begin of the project development. This planning is very relevant as soon as we have a final (or near final?) product.
Likely action items:
The current cameo for the Alpha Aurora Bomber (SAFulArAurora and SAFulArAurora_L) is the cameo that was intended for the Hypersonic Aurora bomber. It should be using (SAHypAurora_L and SAHypAurora) instead.
This was a change introduced in 1.03, and may have been accidentally flipped by EA. If this is determined to be the case, the model should be changed from AVAuroraSW to AVAuroraAG.
Relevant code can be reviewed in SuperWeaponGeneral.ini, starting from line 1420.
When USA Spectre spawns, all players select it. Check whether or not this can be fixed in INI files.
Increase list count from 100 to 1200 for map selection in menus.
When an Outpost is destroyed, the Rocket Men inside will walk a while without responding to attack commands.
Sometimes Aurora Alpha fuel bomb does not happen after initial bomb it dropped on target. Fixable?
Haubibban:
Put a unit behind the tall structure and order Alpha to attack it from opposite side
Units in GLA Battle Bus cannot be unloaded sometimes after it was damaged into bunkered mode.
Discuss whether or not any hotkey assignments of any game language should be changed.
When the enemy drops an Anthrax bomb, force fire the ground near with a Toxin Shell Scorpion or Nuke Battlemaster to delete it.
Stacked poison no longer disappears.
Stacked poison only disappears for ally attacks.
Anthrax bomb spawns multiple puddles and requires more shots at different locations to be cleared.
If exploit is removed entirely, then reduce Anthrax Bomb radius to mitigate impact on gameplay.
If exploit is removed entirely, then reduce Anthrax Bomb poison duration to mitigate impact on gameplay.
If exploit is removed entirely, then reduce Anthrax Bomb poison damage to mitigate impact on gameplay.
Allow China to remove toxins with fire if we keep this mechanic to keep it consistent across factions.
Anthrax Bomb puddle requires more damage to die. (Done)
Supply Drop Zone Cargo Planes are attackable. This is annoying in late game where many cargo planes fly to enemy base and trigger radar warnings and sound messages. NProject addresses this by making planes not attackable. This has implications on gameplay however, because plane can no longer be shot down and also units no longer become occupied with these practice targets which weakens USA.
A more sensible approach would be to simply disable attack warnings for these planes, if possible.
Implement simple patch loader in GenTool. It must be generic and possible to configure it externally, where mod names and associated .big files can be defined. Then in GenTool menu patch entries can be selected, and loaded by pressing ENTER button. Game will close, enable mod, and restart.
Original version option is always available, regardless of configuration, but may not work correctly, IF configuration does not specify other installed mods correctly.
Decide whether or not Patch104p will always take priority over Original Patch, as to where a user, if just using regular generals.exe and not any special boot launcher (such as GeneralsProxyLaucher), must select Original Patch in GenTool menu and auto-restart game once to run it.
There may need to be an option to set no Mod preference, if an external boot launcher needs to be supported.
In any case, Original version must always remain accessible for user when using GenTool natively.
When ordering one or more Sentry Drones to attack an enemy unit, they often just don't attack at all. Or move straight to the enemy unit without firing at the first possible chance.
Units behind defensive structures cannot attack units in front of structure. Should this be changed or not?
Investigate China mines issues, where units can drive or walk through or over mines without taking damage.
We removed the Haze Effect from the Microwave Tank and GPS Scrambler to avoid having users run into rendering issues. There is valid critique that this beautiful effect is force disabled. Maybe we can leave it in but help prevent issue in other ways.
New Demo_SuperweaponRebelAmbush setup appears to be incomplete. See comments added in INI code below.
Command = PURCHASE_SCIENCE
Science = SCIENCE_RebelAmbush1 ; Should this not be Demo_SCIENCE_RebelAmbush1 ???
ButtonImage = SSGLAAmbush
ButtonBorderType = UPGRADE
End
CommandButton Demo_Command_PurchaseScienceRebelAmbush2
Command = PURCHASE_SCIENCE
Science = SCIENCE_RebelAmbush2 ; Should this not be Demo_SCIENCE_RebelAmbush2 ???
ButtonImage = SSGLAAmbush2
ButtonBorderType = UPGRADE
End
CommandButton Demo_Command_PurchaseScienceRebelAmbush3
Command = PURCHASE_SCIENCE
Science = SCIENCE_RebelAmbush3 ; Should this not be Demo_SCIENCE_RebelAmbush3 ???
ButtonImage = SSGLAAmbush3
ButtonBorderType = UPGRADE
End
CommandButton Demo_Command_Ambush
Command = SPECIAL_POWER
SpecialPower = SuperweaponRebelAmbush ; Should this not be Demo_SuperweaponRebelAmbush ???
Options = NEED_SPECIAL_POWER_SCIENCE NEED_TARGET_POS CONTEXTMODE_COMMAND
Science = SCIENCE_RebelAmbush1 SCIENCE_RebelAmbush2 SCIENCE_RebelAmbush3 ; Should this not be Demo_SCIENCE_RebelAmbush1 Demo_SCIENCE_RebelAmbush2 Demo_SCIENCE_RebelAmbush3 ???
TextLabel = CONTROLBAR:Ambush
ButtonImage = SSGLAAmbush
ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:Chem_TooltipFireRebelAmbush
RadiusCursorType = AMBUSH
InvalidCursorName = GenericInvalid
End
CommandButton Demo_Command_AmbushFromShortcut
Command = SPECIAL_POWER_FROM_SHORTCUT
SpecialPower = SuperweaponRebelAmbush ; Should this not be Demo_SuperweaponRebelAmbush ???
Options = NEED_SPECIAL_POWER_SCIENCE NEED_TARGET_POS CONTEXTMODE_COMMAND
Science = SCIENCE_RebelAmbush1 SCIENCE_RebelAmbush2 SCIENCE_RebelAmbush3 ; Should this not be Demo_SCIENCE_RebelAmbush1 Demo_SCIENCE_RebelAmbush2 Demo_SCIENCE_RebelAmbush3 ???
TextLabel = GUI:SuperweaponRebelAmbush
ButtonImage = SSGLAAmbush
;ButtonBorderType = ACTION
DescriptLabel = CONTROLBAR:Chem_TooltipFireRebelAmbush
RadiusCursorType = AMBUSH
InvalidCursorName = GenericInvalid
End```
The game crashes when a certain 3D Shadow limit (4096) is exceeded.
It is W3DBufferManager
that has 4096 buffer size.
Thyme has DX8VertexBufferClass
and DX8IndexBufferClass
reversed, which use the W3DBufferManager
.
Can be tested in test map:
shadow_limit_test_513_scorpions.zip
The Civilian Repair Pad looks like a Supply Drop Zone. It would be great if it had a new model so it could be used in custom maps.
Using CTRL+ALT+SHIFT+T shortcut in game while selecting a single unit, will lock camera onto this unit and follow it. It will keep following it regardless of the Shroud/Fog. This is not good, because it can be abused to see where Air planes return and land. This should be a simple fix by simply stopping the unit follow as soon as its visibility state changes.
When applying damage to a Laser Patriot, then it can incorrectly shoot units very far away. This behavior is exploitable by dealing self-damage with another unit.
Sometimes GLA Terrorist does not attack after given instructions. Happens regularly when targeting terrain close to buildings. Terrorist will walk in place and does not suicide.
Issue can be reproduced by force firing Command Center at this position:
Related Terrorist issues:
Investigate team surrender mismatch.
If you surrender while owning a palace / bunker that is now empty but in the past contained units, the player who surrenders will see the building being transferred to the neutral player while all other players will see the building transfer to the correct teammate
That's when it mismatches.
USA (and China Infantry) can scan enemy base at game start. After scan, scaffolds can be placed in enemy base to prevent player from building his base. Investigate if anything can be done about it.
Supply stashes should not have damage effects.
We need to get an overview of what we can and want to change in the game menus. There is a lot of room for improvements, because the original game menus are not well polished.
Potential action items:
I suggest to take a look at all menu windows and note down all high level action items that become apparent.
We can also look at various other Mods to get inspiration for potential improvements.
We can also check if there is a Mod with menu changes that is suitable to use as a starting point.
Consider adding more supply stash model variants for values greater than 30.000 $.
This will improve readability of several maps who have Supply Stashes with cash up to 50.000 $.
Decide whether or not German version should keep the original GLA Barrel Terrorist model + sounds.
German players may have gotten used to it and may prefer to keep it?
It is located in W3DGermanZH.big file.
Currently players in Network room cannot see whether or not other players are match compatible. If not all clients are compatible, then runtime mismatch can occur.
We need a feature to block game from starting when at least one peer client is not compatible with host client. Perhaps incompatible peers should be unable to join game room. On the other hand perhaps it is ok if all players can join any game room, and just show incompatible Icon/Hash/Version next to player name. This way players can still chat and communicate organizational matters at their own discretion. Originally, incompatible players are blocked from match entry in GameSpy Lobby, but not in Network lobby.
Technically, game needs to generate game hash from all relevant files - Code and Data. Game hash is expected to be identical across all clients using the same kind of game version install. (Caution: Different executable for different Operating System). Using a different Mod or critically modified INI, W3D will change hash. Hash can then be compared with peers.
Hash itself is not easily human readable. Generally, single hash can only be associated with local game version. To recognize peer hashes as game version names, we need database of hash to names relations. This perhaps needs Patch Loader support. Patch Loader can provide list of known mods to game process (Thyme). And game client can then recognize different remote hashes with that list. Or remote clients send sufficient metadata alongside client hash, then Patch Loader integration is not required.
GenTool: Implement game hash in Network Player Table to allow players to see whether or not other players are compatible for a given match session. If players's game hashes are not matching, then match session eventually will mismatch after match start sooner or later.
We need GenTool player table for network room and encode information about game hash. Then in turn we can read the game hash of other GenTool players and present it to user. For that we need to copy the String class implementation and everything related to that from Thyme to GenTool, because it would be a definite requirement to be able to allocate Game Strings.
The result should be ok enough to at least be able to see whether or not all players are compatible before pressing the START GAME button - IF these players use GenTool. So Game Host could kick all non compatible players which is very suitable for a Network like Hamachi or Radmin. In case of GameRanger, players would need to quit the game and wait for new players to join, which would be a bit more hassle, but there is nothing else we can do. Other mods would benefit from this implementation too in turn if kept generic.
Discuss whether or not China Tank Emperor Subliminal Messaging bug should be fixed.
Fix USA Spectre to be selectable by Q (Select All Units)
Add IGNORES_SELECT_ALL
to KindOf
China ECM tank behaves differently between China factions. Figure out what to do about it.
GLA Worker may still walk to supplies or supply center after given an order to build a structure.
When you put a rally point in a GLA supply center and produce a worker in it, then try to build a building with this worker, then it just puts the scaffold and runs to the nearest resources (if there are no resources, he runs to the supply center). And this scaffold is considered "occupied" and can not be completed by other workers.
Check if Network lobby greys out room with mismatching game hashes. If not we need to start thinking.
Since poisoned and burning infantry belong to the same team as the unit that spawned them, are classed as INFANTRY, and have ActiveBody, they can be targeted by idle enemy units.
Add new meaningful headers to HeaderTemplate.ini for all languages.
New Header(s) for SCROLLLISTBOX elements should be created, because these elements break if font is scaled too large for resolutions higher than 1920x1080.
See ControlBarPro addon for reference.
When Rocket Buggies are ordered to attack an enemy unit, they sometimes drive very close instead of attacking at the first possible chance.
USA Spy Drone is selectable by Q (Select All Units)
Add IGNORES_SELECT_ALL
to KindOf
GenTool needs to detect new patch as such and print appropriate analyze message after game boot. Patch name also needs to be reflected in uploaded TXT files.
Units loaded in Battle Bus can take damage from Flame Tank and Battlemaster Radiation.
Check whether or not this is as designed.
New patch is the only opportunity ever to touch any of the official Multiplayer maps. Replays of this patch will not be compatible with Replays from original version 1.04, regardless of what happens to Official Maps.
What could be fixed and improved in Maps?
NProject also touches maps and fixes multiple bugs in them. For example in Twilight Flame it fixes the AI path issue that lagged the game significantly. We need to figure out what we want to do. Some very popular maps like Defcon 6 will need to be handled with extra care, because any changes will have significant impact. On the other side there are also maps which are almost never played. Such maps could be treated more generously. In any case, we would need to come up with change rules, so that maps are processed consistently. Also all changes would need to be documented (changes can be compounded).
I would assume that over the years many creators have touched the original maps for fixes and improvements, so there might already be versions ready for us to pick up.
Multiplayer Map changes would need to become a core requirement of the game patch. It is not possible to distribute this as optional content. However, Singleplayer maps can be optional, because they are not relevant for Multiplayer compatibility. The patch size would increase as following (measured ZIP compression):
All Multiplayer maps ~13.5 MB
All Campaign maps ~8.5 MB
All Challenge maps ~2.5 MB
Map task list:
https://github.com/xezon/GeneralsGamePatch/blob/main/Patch104pZH/Design/Tasks/map_tasks.txt
Consider tweaking all game menus to fix ui element positions and improve usability.
Menu designs need to be based on original 800x600 resolution as is.
We may use the tweaks from an established mod as a base to build upon.
Task for FAS & xezon & Co.
Fix tox bomb to not be clearable by one toxin shell shot.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.