Ptarth Ptarth

UberFix v1.02

UberFix v1.02

UberFix


The UberFix is a compilation of bugfixes for Demigods version 1.2. The patches incorporated into the mod
are listed below along with the creator of the patch.


Download:

v1.02

Installer format: www.box.net (Recommended Download)

filesize: 334,609 bytes

MD5 Checksum: 5322667e9be4dbd0fc9cb44823a6dc81

Source Code: www.box.net


Old Versions


 

v1.01

Installer format: www.box.net

filesize: 322,544 bytes (Downloaded 223 times)

Source Code: www.box.net

 

v1.00

Downloaded 178 times 

zip format:  16.5 KB  v1.00 Mediafire  v1.00 Box.net  

exe format: 301.2KB v1.00 Box.net  

 


Currently Included Patches

Uberfix 1.02 

  1. Lord Erebus Poisoned Blood Potion Fix by Ptarth
    • Poisoned Blood Potions can no longer be used by Lord Erebus to farm himself. He and his teammates treat his Poisoned Blood Potions as regular potions now.
  2. Oculus Electrocution Fix by Ptarth
    • Health and Mana regeneration are now correctly stopped.
  3. Torch Bearer Projectile slowdown Fix by Ptarth
    • Toch Bearer's fireballs and fireblasts now correctly accelerate to maximum speed when their target moves a great distance. This includes his Fireball Ability.
  4. Unclean Beast Ooze Suicide Fix by Ptarth
    • Ooze now correctly ends when the Unclean Beast is low on Health.
  5. Oculus Sacrifice Fix by Ptarth
    • Sacrifice now will heal allied units.
  6. Unclean Beast Post Mortem Plague Conflict Fix by Exxcentric
    • Plague I and II no longer remove the Post Mortem death effect.
  7. Rook Move Attack Fix by Ptarth
    • Rook now attacks while moving correctly.

UberFix 1.01

  1. Lord Erebus Mist Form Fix by Ptarth
    • updated to end when mana drops below 125.
  2. ZikFix (Zikurat Tower Fix) by mrappard
    • The Dark side towers on Zikurat while playing Conquest now spawn correctly, instead of at warscore 6.
  3. Orb of Veiled Storms Fix by Ptarth (bug reported by awuffleablehedgie)
    • The Orb of Veiled Storms now deals ArmorImmune damage like every other demigod ability and weapon ability (except for the Doomspite Grips and Girdle of Giants, which have a cleave attack).

UberFix 1.00

  1. Minion +hp Fix by Ptarth
    • Minions summoned by Demigods Generals [Sedna, Lord Erebus, Oak, Queen of Thorns, Oculus] with +minion hp items now have the correct health
  2. Oculus Brain Storm Fix by Ptarth
    • Brain Storm now has a visual effect at all levels, instead of only when Oculus has Mental Agility
    • Brain Storm now removes debuffs on targeted unit as specified by the rollover tooltip text
  3. Queen of Thorns Attack Animation Glitch Fix by Ptarth
    • Reduced the lifetime of the QoT's root attack animation to make the animation look better.
    • This is only a cosmetic change.
  4. Oculus Lightning Ball Summons Fix by Ptarth
    • Lightning Balls will no longer summon in map void space.
  5. Oculus Lightning Blast Fix by Ptarth
    • Lightning Blast now occurs at the origin of the target instead of the origin of the unit that procs the effect.
  6. Missing Oculus Shield Effect Fix by Ptarth
    • Oculus now has a visible Shield effect.
  7. Heart of Life and Wings of the Seraphim Healing ends effect Fix by Ptarth (awuffleablehedgie provided starter code)
    • The Heart of Life and Wings of Seraphim no longer stop their regeneration effects when the user is healed.
  8. Parasite Egg and Sludge Slinger Partial Fix by Ptarth
    • Changed the Parasite Egg and Sludge Slinger so they can be used, although it isn't perfect.

 

Current Buglist (Todo list: Verified and replicatable)

  1. Rook Shoulder weapons having target locking issues
    • I thought I had something to fix it. However, I'm having problems replicating the effect to test it.
  2. Fix the skill queue.
    •  Eg, if you tell a UB to grasp he tries to get into melee range and execute the grasp. If you tell him to spit, then it gets thrown to the back of the skill queue and he doesn't spit, he continues to follow like an r'tard. To fix it you have to issue a move command, then spit.
    • AbilityTask.lua has the functions related to this. There are many interesting things in it.
    • After finishing a command the demigod reverts to an attack/move order if previously moving towards a target
  3. AA targeting issues
    • Like how Oak frequently swings with his Axe and does no damage or how Sedna will stand by a target without attacking
    • This may be linked to the Rook Shoulder weapon problem or the command queue
    • (http://forums.demigodthegame.com/356419)
    • Demon Assassin stops auto-attack after warp strike. It should continue to attack the locked target... this would be natural.
  4. Rollover Data Error on flag tooltip while being captured behind fog of war.
  5. Demigods do not resume auto-attack immediately or change targets after using an ability.
  6. UB Post Mortem damage does not count as UB damage for the purpose of awarding gold.
  7. Move order is canceled when using effects (http://forums.demigodthegame.com/356694). The move order is turned into an auto-attack order.
  8. Inaccurate health bar on zoom in (http://forums.demigodthegame.com/356347)
  9. Language for engine messages (xxx has left, xxx has joined...) in game lobby uses the hosts language setting (this should be the users language setting): my russian is a bit rusty!
  10. Torchbearer respawns in Ice mode by default. This should be the last used mode (Fire/Ice)! Same for QoT.
  11. Queuing to grab a potion and then being Foul Grasped while picking up the potion and then UB getting Shadow Swaps allows you to pick up the potion instantly as long as you have contiguous line of sight. I've been able to do this roughly 25 in-game yards away.
  12. When a demigod switches primary weapon the window information doesn't update properly (mainly a QoT issue)
    1. This is a visual glitch, the weapon does change, but the window does not update correctly.
  13. Oculus cannot autoattack directly beneath him

Bugs Requiring Research List (requires verification and a reliable replication method)

  1. Light/Dark capping all flags creates "Invalid Game State" error (http://forums.demigodthegame.com/362132)
    1. This happens enough to know that there is an issue, but without a way to replicate it reliably it is beyond me to fix
  2. Torch Bearer's stat progression for PermaFrost Movement Debuff is 3%/10%/15%. It should probably be 5%/10%/15%
  3. "War Score" display at each teams' citadel is incorrect.
    • It shows the average of the two teams' warscore, it really should show just yours.
    • The citadels look to upgrade correctly.
  4. Minions still get stuck in citadels
    • Need a map person to look into hedgie's proposed fix idea
  5. Oculus's Ball Lightnings attack animation sometimes sticks with permanent bolt from minion to target.
  6. Oculus's Chain Lightning effect sticks until his or target's death if target teleports during cast.
  7. Oculus sometimes becomes unresponsive after using Blast Off.
  8. Sedna's Silence debuff never expires under certain circumstances.
  9. Oculus moves very slowly when selected with Ball Lightnings.
  10. Pathing issues on Prison
  11. Selling Monk idols sometimes destroy summoning button
    • To replicate: Summon Monks, Sell Monks (while idol is recharging), Buy a different type of idol (siege archer or warrior, possibly any other item too), Buy new Monk Idol. I can't replicate this any more for some reason.

Current Unfixable Errors (Can't do list)

  1. Sedna's low quality Silence effect causes speakers to silence
    1. Unfixable since we can't access and change the sound files
    2. Setting sound quality to medium fixes this for most people.
  2. Ping times periodically spike in-game (despite sufficient upload bandwidth).
    1. This is not handleable within lua
  3. Multi-game achievements fail to record progress properly.
    1. This is controlled by Impulse
  4. Overlay friend chat buttons constantly reappear.
    1. Controlled by Impulse
  5. Game result stats include players who joined and left lobby before match start.
    1. Controlled by Impulse?
  6. demigods.exe is looking for version 1.20.211 but is version 1.20.214 with the last patch
    1. GPG compiles the exe
  7. warning: 00:03:04: Granny: FileReading (c:\Work\forge\main\code\src\libs\granny\granny_file_info.cpp(152): File has run-time type tag of 0x8000002d, which doesn't match this version of Granny (0x80000026).  Automatic conversion will be attempted.)
    info: 00:03:04: Total Material Count: 24 Total Mesh Count: 24
    info: 00:03:05: Can't find texture "/env/common/layers/none_normal.dds" -- trying fallback.
    1. Internal and Granny related, all GPG accessible only
  8. Oculus Stun Animation does not loop fluidly
    1. The animations are scripted in Granny which we don't have access to.
  9. Demon Assassin's movie on the character select screen was filmed using the wrong skin.
    1. The movie was made using Granny and Bink, we don't have access to Granny
  10. Assorted replay playback issues
  11. Game result stats include players who joined and left lobby before match start.

Current Nonbugs (Feature List)

  1. Mana/Health loss on item drop (http://forums.demigodthegame.com/360939)
    • Working as intended I believe
  2. Oak's Shield can be interrupted
    • This is most likely a lag effect
  3. Scroll of Restoration doesn't cure stuns
    • The scroll only affects debuffs, not stuns

 Bugs Fixed by Previous Official Patches (SD & GPG fixed it list)(not complete, just ones that come up)

  1. Match ending while dead results in "wind" effect persisting until game is closed.
  2. Sound looping issue (http://forums.demigodthegame.com/356935).

Current Potential Additions to the BugFix (Addition list)
    1. SkillInfoMod
    2. AIMod by Peppe


Current Semi-Active Project Members

Ptarth - guy who does stuff

awuffleablehedgie - guy who finds bugs

UhelligGudn - new guy with lots of energy


Plea to Community

If we want Stardock and Gas Powered Games to increase their support of Demigods, we need to demonstrate our commitment and our willingness to support it. If we want to accomplish anything worthwhile to demonstrate our commitment, we need to work together. If you have time, please consider helping out. Every little bit helps.

1,096,047 views 519 replies +12 Loading…
Reply #426 Top

In the interests of reducing the amount of vigorous debate displayed in this thread, I've created another thread to discuss the Poison Blood Potion and Ooze issues. If everyone could take the discussion there, I think it would be for the best. This way we would also get more publicity for things as many people don't visit the modding forum.

Reply #427 Top

Current Progress: Monks stuck in citadels

So, I've been toying around with the monks getting stuck in citadels glitch. I think I have some things that may reduce or prevent it from occuring. The problem is that it does change how monks move. If I post a test patch is there someone out there with extensive monk observation skills who can tell me how much differently they behavior. I'm trying to keep this from being a balance change instead of a bugfix.

I saw the post that found that giants could get stuck in citadels. Is there any evidence that other units can get stuck?

Re: Current GPG bugfixing effort

I sent off a communication to GPG who told me that Stardock is the one that controls communications. I then forwarded my request to Stardock last Friday. I haven't heard anything back yet. After the announcement of the 1.3 patch yesterday, an unspecified number of bugs have been patched and are into QA at Stardock. I'm going to slack off on working on anything until they release it to the public or I get a hold of any prerelease information. I'm hopeful that they will put all of the UberFix patches into the mainline install.

 

 

Reply #428 Top

Still no work from Stardock it seems? Feels a tad silly continuing work on uberfix until we know what will be resolved for us.

Reply #429 Top

I sent off a communication to GPG who told me that Stardock is the one that controls communications. I then forwarded my request to Stardock last Friday. I haven't heard anything back yet. After the announcement of the 1.3 patch yesterday, an unspecified number of bugs have been patched and are into QA at Stardock. I'm going to slack off on working on anything until they release it to the public or I get a hold of any prerelease information. I'm hopeful that they will put all of the UberFix patches into the mainline install.
End of quote

Indeed - slacking off appears to be the logical decision until we have any idea what they've done. 

Reply #430 Top

re: 1.3 Patch

Frogboy posted the patch notes for the 1.3 patch. It has some good stuff in it. Given how long it took, I'm guessing that things are really busy at Stardock. They seem to be doing all the QA in house and without public awareness. It is too bad they won't let us help out, but given how the community has attacked them in the past for things, not too surprising.

I've been trying to understand how the bugs to be fixed were selected, but I'm not coming up with very much insight. The best idea I have is that they all correspond to the buglist Frogboy posted.

Where does that leave us?

Well, once we get a copy of the patch, we can remove the redundant patches from the UberFix. If we want to get more patches in, we may have to create more detail bug reports for them to add to the official ones. Otherwise, back to the buglist we have.

I also posted the following in the 1.3 thread. I'd like to get more active contributors to the project.


New patches are always so exciting. I can't wait to see the changes to the lua. I'm really curious how some of these were implemented, either in the lua or in the engine. I also add my vote to be happy about the patches. 

However, given my interest in the lua, I'm going to make some comments and observations about them. Again, I'm really excited about this patch so please don't use me as an excuse to start flaming. I'm also hoping I can increase modding interest in Demigod since it is so straightforward to work with.

  • Abilities while moving fix: Demigod movement has been re-architected to resume attacking previous targets after using abilities. This fixes multiple problems with triggering Demigod abilities while moving.The following exceptions and modifications are by design:
    • Ooh, this one is interesting. This is one of the changes I'm curious about taking place in the engine or in the lua. If it is in the lua it is mainly focused on resetting the navigator in each of the abilities. That's a lot of abilities to change, I don't envy Sorian in making and keeping track of them.
  • Direct targeted abilities, where it makes sense, will cause the Demigod to switch targets (like Warp Strike and Pounce). This will also set the old target variable so if they use a further ability they will go back to attacking their new target.
    • Again, a very straightforward application of setting the navigator in the lua, I'm not sure what they would do if the engine was modified.
  • Escape abilities (like Warp Scroll and Bat Swarm) will not re-engage the old target and will actually clear the old target so using another ability will not cause you to re-engage.
    • I hope they caught Oculus's Blast Off
  • Giving a move order will clear your old target. So, giving a move order and then casting Warp Area will cause DA to attack whatever he ends up closest to.
    • Hmm, not sure what is going on here. As far as I recall move orders already cleared targets. I wonder what behaviors will change with this.
  • Fix for ranged units stopping short when ordered to attack structures.
    • Hmm. I thought the shamblers were the only ones that had this issue and that they were already fixed. I wonder if this adds a default attack range in RangedWeapon.lua. Something like "If NOT ClosingRadius then ClosingRadius = MaxRadius - 4" should work.
  • Fix for summoned minions not starting at max health when the player has +minion health items.
    • An UberFix fixed issue. I hope the UberFix code was helpful in making the solution.
    • I wonder if it was fixed in the engine, or in each of the respective summon files as I did with the UberFix.
  • Fix for Oculus' Ball Lightning spawning in invalid locations.
    • An UberFix fixed issue. I hope the UberFix code was helpful in making the solution.
  • Unclean Beast's Plague ability will no longer overwrite Post Mortem.
    • An UberFix fixed issue. I hope the UberFix code was helpful in making the solution.
    • I wonder if the knock back code was fixed to give xp and gold correctly.
  • Wings of the Seraphim will no longer be removed when healed.
  • Heart of Life effects will no longer be removed when healed.
    • An UberFix fixed issue. I hope the UberFix code was helpful in making the solution.
    • I wonder if it was fixed in the engine, or in each of the respective summon files as I did with the UberFix.
  • Fix for obscure Russian-translated map domination crash. Thank you, Ptarth, for helping to point the way on that. 
    • I hear that Ptarth guy is really handsome, witty, funny, and popular with the ladies. I wish I could be like him.
    • I hope that you guys were able to use a lot of the code I've provided to speed things up. I really want to help Demigod become a better game.
  • Achievement and Single Player tournament screen Demigod lists now have scrollbars. 
    • I never looked into modding the menus, given that mods can't effect pre-game start events.
    • A good thing to have, now we will have less threads about how the Rook has been removed from single player
  •  Oculus’ Ball Lightning will now benefit from standard minion HitPoint Buffs.
    • I've frequently be conflicted between saying Oculus' and Oculus's

 

All in all a very interesting start for the new patches. I'm looking forward to removing all of the new fixes from the UberFix with the next release. Also, if the UberFixers can be of any service to GPG and SD in making these patches happen, please contact us.


Reply #431 Top

I now have a dedicated 24 hour server machine. Me and my roommate are sharing it, and it will be mostly used for torrenting, however I have convinced him to let me deploy JiRA on it and use it for this project. It's way faster than my PS3 which suffered from overly long page loads and took 30 minutes to start Tomcat... 

Reply #432 Top

Seems odd that they wouldn't at least include all of the Uberfix's I mean the work is essentially done already. I guess they had reason not to or they would have.

Reply #433 Top

There are a bunch of feasible reasons.

  1. Legal protection. They may be worried about using code they didn't write.
  2. IP protect, they may They may be worried about losing control of their game.
  3. Limited Time. As far as I can tell Sorian only worked on it for a short time.
  4. SD and GPG communication is limited. If GPG only got the buglist that SD showed us, many of the bugs aren't on it.
  5. Mini-update Plan. GPG has an long term updating strategy in place and wants to make lots of little patches.
  6. Hostile Community Reaction. The community was really hard on GPG and SD, it wouldn't be surprising if they don't particular trust us. I'm a little sad that Frogboy went over his deadline (by only a few hours though) for giving us an update. Its understandable given how busy they are, but I can still be sad about it. I want the patch code.
  7. Bugs =/= Bugs. The bugs that are "fixed" in the UberFix may not be considered bugs by SD/GPG.
  8. Better Solutions. The ways that the bugs were fixed may not be inline with the way that GPG thinks they should be fixed. They have to code everything from scratch.
  9. Unknown Reason. They are a company, we are some guys. Things are different for each of us.

re: hedgie

So, what's the plan?


Reply #434 Top

I'll transfer over bugs onto my Jira and expose the port (8080) once it's all setup. For the most part, my roommate has to set everything up since he is the sudoer. I'm going to investigate if we can link up Jira with SVN like how I have it at work with CVS, so we can tell exactly what lines of code fixed a given bug. 

 

I still think that distributing Uberfix as a mod in the mod folder would get past a lot of legal. They don't have to worry about it being legal or protected, you can distribute it "as is", especially if it is given the proper license (allow commercial). Then they don't have to spend time Q&A'ing it either. Either it works, or it doesn't, but at least the entire playerbase has the code. 

Reply #435 Top

Quoting OMG_BlackHatHedgehog, reply 434


I still think that distributing Uberfix as a mod in the mod folder would get past a lot of legal. They don't have to worry about it being legal or protected, you can distribute it "as is", especially if it is given the proper license (allow commercial). Then they don't have to spend time Q&A'ing it either. Either it works, or it doesn't, but at least the entire playerbase has the code. 
End of OMG_BlackHatHedgehog's quote

omg I like this idea

Reply #436 Top

2 quick questions

1. I assume I'd only have to download the 1.2 version to get all the fixes listed in the older versions or do I need to download all 3?

2. I assume I can activate and deactivate this in the 'Mod Manager' so can still play with the majority of players not using this?

Reply #437 Top

1. Yep. The 1.2 contains all of the fixes from the previous versions.

2. Yep. The mod manager completely controls it.

Reply #438 Top

So I've been working on the QoT Balance mod while the 1.3 goes through QA and I started examining Compost. It is... probably not working correctly.

Compost has three ranks. The tooltip is not very precise, although does provide the basis of understanding what Compost does.

As nearby enemies die, their bodies nourish Queen of Thorns. For every 3 enemies killed, Uproot increases in damage. Her Shamblers gain Weapon Damage and Health. The effects cap at 9 enemies killed, and the effects diminish over time.

Direct examination of the code provides better description.

There are 6 levels of the Compost Buff. It takes 3 kills to advance a rank, and your kill count maxes at 9. Every 7 seconds you lose one kill. To get your buff level, you add your kills plus 1, divide by three and add your compost rank. In addition the icons for the buff weren't fully filled out, so all buff levels above 2 get the same buff icon.

What you might expect then is with three levels into compost and 9 kills you would get the rank 6 buff. This is not what happens.

The following data is from Demigod and characterizes the behaviors of Compost.

Compost Buff Level is the effective buff that the QoT and Shamblers Receive. It ranges from 0 (absent) to 6 (max).

CompostLevel is the Number of levels received from kills. It is effectively (Kills + 1) / 3 (rounded down)

CompostRank is the Rank the number of Ranks in Compost the QoT has. It ranges from 0 (Rank 1 Compost) to 2 (Rank 3 Compost)

Kills is the number of enemies that have died within rank of the QoT (some weirdness exists with how this is done, but I'm ignore that for now). It ranges from 0 to 9.

First the log for what happens with Rank 1 Compost.

info: 00:03:29: Compost Buff Level: 3 CompostLevel :3 CompostRank: 0 Kills: 9
info: 00:03:36: Compost Buff Level: 3 CompostLevel :3 CompostRank: 0 Kills: 8
info: 00:03:44: Compost Buff Level: 2 CompostLevel :2 CompostRank: 0 Kills: 7
info: 00:03:51: Compost Buff Level: 2 CompostLevel :2 CompostRank: 0 Kills: 6
info: 00:03:58: Compost Buff Level: 2 CompostLevel :2 CompostRank: 0 Kills: 5
info: 00:04:06: Compost Buff Level: 1 CompostLevel :1 CompostRank: 0 Kills: 4
info: 00:04:13: Compost Buff Level: 1 CompostLevel :1 CompostRank: 0 Kills: 3
info: 00:04:20: Compost Buff Level: 1 CompostLevel :1 CompostRank: 0 Kills: 2
info: 00:04:27: Compost Buff Level: 0 CompostLevel :0 CompostRank: 0 Kills: 1
info: 00:04:34: Compost Buff Level: 0 CompostLevel :0 CompostRank: 0 Kills: 0

The way the calculations were made might be odd, but the end result is more/less as expected. With 0 kills the QoT receives no bonus. With 9 kills the QoT receives the Level 3 Buff. Arguments can be made about the number of kills required, but that's another discussion.

Now the log for Rank 3 Compost.

info: 00:06:28: Compost Buff Level: 5 CompostLevel :3 CompostRank: 2 Kills: 9
info: 00:06:28: Compost Buff Level: 5 CompostLevel :3 CompostRank: 2 Kills: 8
info: 00:06:34: Compost Buff Level: 4 CompostLevel :2 CompostRank: 2 Kills: 7
info: 00:06:42: Compost Buff Level: 4 CompostLevel :2 CompostRank: 2 Kills: 6
info: 00:06:49: Compost Buff Level: 4 CompostLevel :2 CompostRank: 2 Kills: 5
info: 00:06:57: Compost Buff Level: 3 CompostLevel :1 CompostRank: 2 Kills: 4
info: 00:07:04: Compost Buff Level: 3 CompostLevel :1 CompostRank: 2 Kills: 3
info: 00:07:12: Compost Buff Level: 3 CompostLevel :1 CompostRank: 2 Kills: 2
info: 00:07:19: Compost Buff Level: 2 CompostLevel :0 CompostRank: 2 Kills: 1
info: 00:07:27: Compost Buff Level: 2 CompostLevel :0 CompostRank: 2 Kills: 0

The important part is that Rank 6 is never achieved.

So, I believe this is flawed and should be fixed. However, I've heard rumors that I'm making crazy balance changes so I thought I'd get some audience participation. (Also please ignore the argument that Compost is a useless skill and whatever ends up happening won't matter anyway.)

Should rank 6 of compost ever happen? Is it just a leftover piece of code?

If it should be fixed, how?

  • Should the max number of kills be increased to 12? 
    • Rank 1 Compost would have buffs 1,2,3,4
    • Rank 2 Compost would have buffs 2,3,4,5
    • Rank 3 Compost would have buffs 3,4,5,6
  • Should the Compost Ranks be adjusted so that Rank 1 = Compost Rank 1
    • The ranks would remain the same as the previous option
    • The difference would be  that the kill counter remains at 9 and when the kill counter is zero, the QoT would still have her base rank in Compost
  • Other?

Also, I made some icons to show the current correct rank of the Compost buff and I'm including those.

Another issue:

I find the UB Ooze On/Off buttons to be too similar. Would changing them to be more obvious be within the range of a Bugfix or not?

Reply #439 Top

Quoting Ptarth, reply 438
Should the Compost Ranks be adjusted so that Rank 1 = Compost Rank 1

The ranks would remain the same as the previous option
The difference would be  that the kill counter remains at 9 and when the kill counter is zero, the QoT would still have her base rank in Compost
End of Ptarth's quote

I don't play QoT (does anyone really, right now?), but this option makes more sense and seems more in-line with the (apparent) original intent.  Not that it's exceedingly difficult to maintain 12 kills by the time you can get rank 3 Compost, but whatever.


Quoting Ptarth, reply 438
I find the UB Ooze On/Off buttons to be too similar. Would changing them to be more obvious be within the range of a Bugfix or not?
End of Ptarth's quote

Might be a slight red/green colorblindness issue, in which case simply making the 'on' icon more green and the 'off' icon more brown probably wouldn't be enough.  And if you change them structurally (say, by adding a nice big stop or crossed-out symbol to the off icon), you're bound to find someone who will complain. v0v

Reply #440 Top

So I'm not completely crazy. I'm also pretty sure I don't have colorblindness (not dichromat nor trichromat am I). I do have a relatively small screen and play at a fair distance from the screen.

Here is the original graphics with context.

 

Here are some enhancements.

Reply #441 Top

Something like a slightly less neon version of the top-right would be an improvement.  A bit more green than the original, but not quite that much.

 

As an aside, is there a post somewhere with good debug mode / cheat info specific to Demigod?  I have no idea how to do things like set demigod levels, add abilities, etc from the console.  Or, ah, even how to get a console.  Is there one?  I'm rather used to SCFA, so I know my way around the lua, but the in-game debug capabilities seem to be quite different.

Reply #442 Top

To my knowledge they removed the console in one of the post release versions. I read some discussions about it when I first started looking into demigods, but I can't find it again. It might be in Sorian's posts on another forum (I don't recall). I keep running across various references, but nothing that I can trace back to actually getting it to work, so I think it might be the case.

My way of doing these sorts of things is unfortunately very crude. I've directly access the blueprints and functions and then hit Ctrl-F10 to reload the game. I know, I'm a savage.

 

I don't have an organized list of information, but here is my roughly organized reminder notepad.


Command line toggles that are useful:

/skipintro /debugger /windowed 1024 768


Code - Demigod debug mode cheat (doesn't work anymore)

To Enable Cheats Open the Game.prefs file with Notepad. This file is located in My DocumentsMy GamesGas Powered GamesDemigod. Add the following lines to the beginning of the file (above the 'profile = {'): debug = { enable_debug_facilities = true } (do it without space from the profile) Save the file, right click and choose properties. Tick READ ONLY box You may now use any of the following cheat commands while playing skirmish or tournament mode. The Enemy may or may not have the cheat effect when enabled

Code:    Effect:
CTRL+ALT+B    999.999 Gold (1Million)
CTRL+SHIFT+C    Copy Unit / Structure
Minus    Decrease game speed
ALT+N    God Mode
Plus    Increase game speed
ALT+F    Instant level up to 20
CTRL+K    Kill selected unit
CTRL+SHIFT+V    Paste Unit / Structure
CTRL+ALT+Z    Reveal Map
ALT+F2    Spawn any unit
ALT+T    Teleport selected unit
ALT+A    Toggle Opponent AI (untested)
ALT+V    Wireframe mode



    ['F9']                  = 'debug_toggle_log_window',
debugKeyMap = {
    ['Ctrl-L']              = 'debug_output_logs',
    ['Ctrl-A']              = 'debug_achievements',
    ['Ctrl-Alt-P']          = 'debug_navpath',
    ['Alt-F2']              = 'debug_create_unit',
    ['Alt-T']               = 'debug_teleport',
    ['Alt-A']               = 'debug_run_opponent_AI',
    ['Ctrl-Alt-B']          = 'debug_blingbling',
    ['Alt-Delete']          = 'debug_destroy_units',

    ['Ctrl-Alt-Comma']      = 'debug_graphics_fidelity_0',
    ['Ctrl-Alt-Period']     = 'debug_graphics_fidelity_1',
    ['Ctrl-Alt-Slash']      = 'debug_graphics_fidelity_2',
    ['Ctrl-Alt-M']          = 'debug_toggle_ren_environment',

    ['Alt-F3']              = 'debug_scenario_method_f3',
    ['Shift-F3']            = 'debug_scenario_method_shift_f3',
    ['Ctrl-F3']             = 'debug_scenario_method_ctrl_f3',
    ['Shift-F4']            = 'debug_scenario_method_shift_f4',
    ['Ctrl-F4']             = 'debug_scenario_method_ctrl_f4',
    ['Ctrl-Alt-F4']         = 'debug_scenario_method_ctrl_alt_f3',
    ['Ctrl-Shift-F4']       = 'debug_scenario_method_f4',
    ['Ctrl-Shift-F5']       = 'debug_scenario_method_f5',
    ['Shift-F5']            = 'debug_scenario_method_shift_f5',
    ['Ctrl-F5']             = 'debug_scenario_method_ctrl_f5',
    ['Ctrl-Alt-F5']         = 'debug_scenario_method_ctrl_alt_f5',

    ['Shift-F6']            = 'debug_create_entity',
    ['Shift-F7']            = 'debug_show_stats',
    ['Shift-F8']            = 'debug_show_army_stats',
    ['Shift-F9']            = 'debug_show_cvp_stats',
    ['Alt-F9']              = 'debug_open_lua_debugger',
    ['Alt-F11']             = 'debug_show_frame_stats',
    ['Ctrl-Alt-W']          = 'debug_render_wireframe',
    ['Ctrl-Shift-W']        = 'debug_weapons',
    ['Ctrl-Alt-O']          = 'debug_grid',
    ['Alt-Q']               = 'debug_show_focus_ui_control',
    ['Alt-W']               = 'debug_dump_focus_ui_control',
    ['Alt-D']               = 'debug_dump_ui_controls',
    ['Alt-V']               = 'debug_skeletons',
    ['Alt-B']               = 'debug_bones',

    ['Ctrl-Shift-X']        = 'debug_redo_console_command',
    ['Ctrl-Shift-C']        = 'debug_copy_units',
    ['Ctrl-Shift-V']        = 'debug_paste_units',
    ['Alt-C']               = 'debug_cam_zoom_near',

    ['Alt-N']               = 'debug_nodamage',
    ['Ctrl-Alt-E']          = 'debug_show_emitter_window',
    ['Ctrl-Alt-R']          = 'debug_reload_effect_templates',
    ['Ctrl-Alt-Shift-R']    = 'debug_reload_effect_utilities',
    ['Ctrl-Alt-Z']          = 'debug_sally_shears',
    ['Ctrl-Shift-Alt-C']    = 'debug_collision',
    ['Ctrl-Slash']          = 'debug_pause_single_step',
    ['Ctrl-F10']            = 'debug_restart_session',

    ['Alt-F']               = 'set_level_25',
    ['Alt-G']               = 'give_all_skills',

    ['Ctrl-U']              = 'debug_ui',
    ['Ctrl-Shift-Alt-D']    = 'debug_damage',
    ['Ctrl-Shift-U']        = 'debug_dump_frames',

    ['Ctrl-Shift-E']        = 'debug_erics_ring',

    ['Ctrl-NumMinus']       = 'debug_corpse_delay_decrease',
    ['Ctrl-NumPlus']        = 'debug_corpse_delay_increase',

    ['Ctrl-K']              = 'suicide',

    ['NumMinus']            = 'decrease_game_speed',
    ['NumPlus']             = 'increase_game_speed',
    ['NumStar']             = 'reset_game_speed',
    ['Ctrl-Alt-Shift-P']    = 'pause',





    * AddBeam Add a test beam into the world
    * AddImpulse AddImpulse (x,y,z)
    * AddLightParticle Add a light to the world under the cursor
    * AI_CollisionAvoidance Toggle on/off collision avoidance
    * AI_DebugArmyIndex Set up a army index for debugging purposes
    * ai_FreeBuild Unit build costs are 0
    * ai_InitialEnergyCurrency Initial currency of energy economy.
    * ai_InitialEnergyCurrencyMax Initial currency of energy economy.
    * ai_InitialMassCurrency Initial currency of mass economy.
    * ai_InitialMassCurrencyMax Initial currency of mass economy.
    * ai_InstaBuild Units build instantly.
    * ai_IntelLazy Intel grid is updated when unit moves Radius * var
    * AI_RenderBombDropZone Toggle on/off rendering of bomb drop zone
    * AI_RenderDebugAttackVectors Toggle on/off rendering of debug base attack vectors
    * AI_RenderDebugPlayableRect Toggle on/off rendering of debug playable rect
    * AI_RunOpponentAI Turns on or off Opponent AI
    * ai_SteeringAirTolerance Tolerance used to detect whether an aircraft has reached its destination.
    * AirLookAheadMult Alter the air units look ahead distance
    * ANI_DumpSkeleton Dump the skeleton for the selected entity
    * BeginLoggingStats Begin logging stats
    * BlingBling Cash money yo
    * cam_DefaultHeading Default heading invert radians
    * cam_DefaultLOD default value for camera level-of-detail scaling factor
    * cam_DefaultMiniLOD Default LOD for mini-map
    * cam_DefaultTrackingYOffset How much vertical offset to use when tracking a character with the camera
    * cam_EntityBoxExpand How much to expand the entity box when targeting entity
    * cam_FarFOV FOV to use for perspective camera at farthest zoom, in degrees
    * cam_FarPitch Pitch of camera at farthest zoom, in degrees
    * cam_FarPlaneOffset
    * cam_ForceNoseCam Force camera into NoseCam mode
    * cam_ForceNoseCamOffet Force camera into NoseCam mode
    * cam_ForceNoseCamPitch Force camera into NoseCam mode
    * cam_ForceNoseCamZoom Force camera into NoseCam mode
    * cam_FPSFOV FOV to use for FPS camera mode, in degrees
    * cam_FPSMode Force camera into FPS mode
    * cam_HighLOD
    * cam_LowLOD
    * cam_MediumLOD
    * cam_MinSpinPitch The min pitch resulting from a spin
    * cam_NearFOV FOV to use for perspective camera at nearest zoom, in degrees
    * cam_NearPitch Pitch of camera at nearest zoom, in degrees
    * cam_NearZoom Closest mouse can zoom in to terrain
    * cam_PanSpeed How fast the camera pans.
    * cam_SetLOD Set the lod scale factor for a camera
    * cam_ShakeMult How much camera shake to allow.
    * cam_SpinSpeed How fast mouse spins camera, in degrees across screen size
    * cam_SurfacePlane Height of plane used for camera intersections
    * cam_TrackProjectileTimeout Delay after tracking a projectile.
    * cam_ZoomAmount How far to zoom in response to the mouse wheel.
    * cam_ZoomSpeedLarge How fast the camera actually moves in response to a large zoom.
    * cam_ZoomSpeedSmall How fast the camera actually moves in response to a small zoom.
    * captured
    * ClearStats Clear stats starting with given parent
    * cloth_TickSkip
    * CON_Echo Echo out input to function.
    * CON_ExecuteLastCommand Repeat the last command.
    * CON_ListCommands List all console commands and variables.
    * con_TestVar Test variable - not used.
    * con_TestVarBool Test variable - not used.
    * con_TestVarFloat Test variable - not used.
    * con_TestVarStr Test variable - not used.
    * con_TestVarUByte Test variable - not used.
    * CopySelectedUnitsToClipboard Copy all the selected units to the clipboard.
    * CreateProp Spawn a prop underneath the mouse cursor
    * CreateUnit spawn a unit by id at the mouse cursor or specified location, case sensitive
    * cull_DepthSubPatches
    * cull_SubPatches
    * cull_TerrainPatch
    * d3d_AntiAliasingSamples
    * d3d_ForceDirect3DDebugEnabled Disable shader optimization and allow D3D debugging.
    * d3d_ForceSoftwareVP Force D3d to do vertex processing in software.
    * d3d_NoPureDevice Use a non-pure D3D hardware device.
    * d3d_UseRefRast Force D3d to do rasterization in software.
    * d3d_WindowsCursor
    * dbg Enable/Disable debug overlay
    * dbg_Ballistics Draw ballistic debug stuff.
    * dbg_Beam Draw beam debug stuff.
    * dbg_CollisionBeam Draw collision beam debug stuff.
    * dbg_Emitter Show emitter positions.
    * dbg_ForceSingleShader Force all meshes to use the same shader
    * dbg_Lightmap
    * dbg_Metronome Tick a metronome every tick.
    * dbg_Projectile Draw projectile debug stuff.
    * dbg_ShadeLOD Force all meshes to color based upon lod
    * dbg_Shadow
    * dbg_ShowAiPathSpline Draw AI Path Spline debug information.
    * dbg_Trail Draw trail debug stuff.
    * Debug_Assert Fail an assertion (for debugging purposes)
    * Debug_Crash Cause a crash (for debugging purposes)
    * Debug_Error Log an error string (for debugging purposes)
    * Debug_Throw Throw a std::exception.
    * Debug_Warn Log a warning string (for debugging purposes)
    * DebugAIStatesOff debug function to show some AI states
    * DebugAIStatesOn debug function to show some AI states
    * DebugClearBuildTemplates debug clear and disable the build templates.
    * DebugDumpArmyStats Dump current stats for army index.
    * DebugGenerateBuildTemplateFromSelection debug generate and enable build templates from the current selection.
    * DebugMoveCamera Debug function for moving the camera in sim script.
    * DebugSetArmyHandicap DebugSetArmyHandicap(army,handicap)
    * DebugSetConsumptionActive debug function to turn selected units consumption of resources into active state
    * DebugSetConsumptionInActive debug function to turn selected units consumption of resources into inactive state
    * DebugSetProductionActive debug function to turn selected units production of resources into active state
    * DebugSetProductionInActive debug function to turn selected units production of resources into inactive state
    * DestroyAll Destroy all units. If any optional army indices are supplied, destroy those army's units.
    * DestroySelectedUnits destroy selected units.
    * disk_DebugLevel How much disk activity to log, 0=none, 1=opens, 2=all
    * DoSimCommand do a sim command.
    * dump_Frame Dump a single video frame. A directory can be specified, otherwise it will prompt for one.
    * dump_Frames Toggle dumping of video frames.
    * dump_outputFrameNumber Starting frame to dump on
    * dump_Rate Frame rate to use for movie dumps
    * DumpCamera Dump out camera position data for the editor
    * DumpParticleInfo Dump information about all the currently active particles.
    * DumpPreloadedTextures Dump debug texture info
    * DumpUnits Print out units in play
    * ed_EnableHook
    * efx_AttachEmitter Attach an emitter to selected unit, must specify bone name and blueprint
    * EFX_CreateEmitterWindow Create emitter control window
    * efx_EmitterVisibilityUpdatePeriod How many ticks between emitter visibility updates.
    * efx_NewEmitter Create an emitter, must specify blueprint
    * EndLoggingStats End logging stats
    * ExecutePasteBuffer Execute paste buffer in clipboard.
    * exit Exit the application.
    * FindUnit Find a unit by a (case insensitive) string contained in its description.
    * fog_DistanceFog Distance fog enabled?
    * fog_OffsetMultiplier amount to fudge offset by to make fog go away as we zoom out
    * ForceDebugDesync force a desync for debugging purposes.
    * GetBranch Get game branch
    * GetVersion Get game version
    * GlobalRipple
    * graphics_Fidelity current graphics fidelity setting
    * graphics_FidelitySupported maximum graphics fidelity supported
    * imap_debug Toggle influence map debug info.
    * imap_debug_grid Toggle influence map debug grid info.
    * imap_debug_grid_alliance Set influence map debug grid for which alliance type.
    * imap_debug_grid_type Set influence map debug grid threat type.
    * imap_debug_path_graph Toggle map hints path graph.
    * IN_BindKey Specify a key combo and a console command, binds console command to key
    * IN_DumpKeyBindings Shows all the key bindings
    * IN_DumpKeyNames Shows all the key names
    * IN_SetKeyName Set a key name to map to a key code
    * IssueCommand Issue the stop command to the selected units.
    * KillAll Kill all units
    * KillSelectedUnits kill selected units.
    * lob_IgnoreNames Comma separated list of names of people to ignore. For debugging purposes.
    * lobby_cap
    * Log Log a string (for debugging purposes)
    * LotsOfProps spawn 100 props all over the map 2nd Arg = name of prop
    * LUA Run a bit of lua code.
    * LUADOC Dump out documentation for Lua functions
    * MAP_ImportEffectMesh Temp hack to import an effect mesh into the current map because there is no editor UI to do so
    * MAP_ImportLava Temp hack to import lava into the current map because there is no editor UI to do so
    * MAP_ImportLightShaft Temp hack to import a light shaft into the current map because there is no editor UI to do so
    * MAP_ImportTerrainMesh Temp hack to import a terrain mesh into the current map because there is no editor UI to do so
    * MAP_ImportWater Temp hack to import water into the current map because there is no editor UI to do so
    * MAP_RemoveGroundPlane Temp hack to remove the current map's ground plane because there is no editor UI for doing so yet.
    * MAP_SetBloomParams Temp hack to set the bloom params for the current map because there is no editor UI to do so.
    * MAP_SetCameraMaxZoomMultiplier Temp hack to set the bloom params for the current map because there is no editor UI to do so.
    * mesh_CoeffLOD
    * mesh_Rebatch Override mesh batch settings
    * NeedRefuelThresholdRatio Start looking for refueling platform when fuel ratio drops below this point
    * NeedRepairThresholdRatio Start looking for refueling platform when health ratio drops below this point
    * net_AckDelay Number of milliseconds to delay before sending ACKs
    * net_CompressionMethod Compression method, 0=none, 1=deflate. Only takes effect when connections are first established.
    * net_DebugCrash If true, crash.
    * net_DebugLevel Amount of network debug spew
    * net_Lag Lag, in milliseconds.
    * net_LogPackets Log all incoming/outgoing packets.
    * net_MaxBacklog Maximum number of bytes to backlog to any one client.
    * net_MaxResendDelay Maximum number of milliseconds to delay before resending a packet.
    * net_MaxSendRate Maximum number of bytes to send per second to any one client.
    * net_MinResendDelay Minimum number of milliseconds to delay before resending a packet.
    * net_ResendDelayBias The resend delay is ping*new_ResendPingMultiplier+net_ResendDelayBias.
    * net_ResendPingMultiplier The resend delay is ping*new_ResendPingMultiplier+net_ResendDelayBias.
    * net_SendDelay Number of milliseconds to delay before sending Data
    * net_Suppress Suppress traffic to/from the given ipaddr:port.
    * newfog old fog method
    * NoDamage Disables all damage to units when set.
    * p4_Edit Check out file(s) from perfoce
    * p4_IsOpenedForEdit Is the specified file opened for edit?
    * path_ArmyBudget Budget for each army to do pathfinding each tick
    * path_BackgroundBudget Maximum number of steps to run pathfinder in background
    * path_BackgroundUpdate Update pathfinding tables in background
    * path_GeneratePreview Do a pathfind for the UI preview
    * path_MaxInstantWorkUnits Budget for instant pathfinds by the AI
    * path_TimeoutPreview Maximum number of ticks to allow pathfinder preview to take
    * path_UnreachableTimeoutSearchSteps Maximum number of ticks to allow a single pathfind to take for an unreachable path
    * PathDebug Debug the path finder
    * PopupCreateUnitMenu Popup the create unit menu.
    * PrintStats Test the stat system
    * ProcessInfoPair set the assist mode flag for the selected units.
    * Purge Purge all entities of a specified type <shield|projectile|unit|all>. If any optional army indices are supplied, destroy those army's entities.
    * quit Quit the session.
    * RandomElevationOffset Alter random non-combat elevation offset so plane don't all stick on the same plane
    * ren_AllowedLODErrorFadeFactor Allowed error fade value
    * ren_AnimLOD Set to true to enable Animation LOD. Set to false to disable LOD and sample all bones in every animation.
    * ren_AnimLODMetric Multiplier to allowed error value in skeletal LOD
    * ren_AnimStates
    * ren_BandwidthDisplayKernel Width of bandwidth filter (in seconds).
    * ren_BandwidthDisplaySeconds Number of seconds of bandwidth data to display.
    * ren_Beams Render the beam fx.
    * ren_BgLowerBound
    * ren_Bloom Render Blooms?
    * ren_BoneCounts
    * ren_ChromaKey
    * ren_Cloth Render cloth
    * ren_ClutterRadius
    * ren_combinepatches If true try to combine patches that are easily combinable
    * ren_CycleLifeBarsMode Cycle Life Bar Mode from 0 through 3
    * ren_DepthAsOneCall Render the depth by blasting out the entire vertex buffer instead of individual patches
    * ren_EnableCompoundPatches
    * ren_ErrorCache use error threshold cache?
    * ren_ForceDropShadow
    * ren_FrameTimeSeconds Number of seconds to display.
    * ren_FreezeCull Freeze the culling process for debugging
    * ren_FreezeLOD Freeze the lod metric for debugging
    * ren_Fx Render FX?
    * ren_Greyscale
    * ren_GroundPlane
    * ren_HeightField
    * ren_HideSecondary Hide secondary views
    * ren_LightMesh Render the terrain's lightmap
    * ren_LightShaft
    * ren_LightShaftBlurCount
    * ren_maxViewError Max View Error
    * ren_MeshColor Toggle mesh color masking (mainly a team color thing)
    * ren_MeshDissolve Fade mesh alpha from 1.0 to 0.0
    * ren_MeshDissolveCutoff
    * ren_MeshEffects Render mesh effects
    * ren_MeshSkinned toggle rendering of meshes which have and use skeletons
    * ren_MeshStatic toggle rendering of meshes which do not have or ignore skeletons
    * ren_MipSkipLevels
    * ren_NewPipeline
    * ren_Oblivion
    * ren_OnlyFirstView Render only the first view in the list
    * ren_Ranges
    * ren_RenderNothing Render nothing?
    * ren_RevealCoeff
    * ren_SampleAnim Toggle animation sampling
    * ren_Select Render select meshes?
    * ren_SelectBoxes Show debug selection boxes
    * ren_SelectBracketMinPixelSize Minimum selection bracket thickness in pixels.
    * ren_SelectBracketSize Default selection bracket thickness
    * ren_SelectColor What color do we want the selection box?
    * ren_SelectionHeightFudge How far off the ground selection boxes are fudged
    * ren_SelectionSizeFudge How much selection box extents are fudged (multiplier)
    * ren_Sepia
    * ren_ShadowBuffer
    * ren_Shadows
    * ren_ShoreErrorCoeff
    * ren_ShowBandwidthUsage Show the amount of network bandwidth we are using.
    * ren_ShowBoneNames Show bone names
    * ren_ShowFrameTime Show the last frame time
    * ren_ShowFrameTimes Graphically show the frame times.
    * ren_ShowNetworkStats Show various network stats.
    * ren_ShowSkeletons Show mesh skeletons
    * ren_ShowWireframe Variable to track show/hide wireframe rendering.
    * ren_Shroud FOW
    * ren_SkeletalLOD Set to true to enable Skeletal LOD. Set to false to disable LOD and sample all bones.
    * ren_SkeletalLODMetric Multiplier to allowed error value in skeletal LOD
    * ren_SkyDome Render sky
    * ren_SyncTerrainLOD Distance at which to start display terrain sync changes
    * ren_TeamColorLookupCount Number of 'channels' in team color lookup texture.
    * ren_TerrainMesh Render the terrain mesh
    * ren_Ui Render UI?
    * ren_UnitRoots
    * ren_UnitSelectionScale How much unit selection box extents are scaled (multiplier)
    * ren_UnitSilhouette
    * ren_UseSparseBoneArray Toggle sparse bone array usage
    * ren_Water Render water
    * RenameUnit Give selected unit a custom name, or with no parameters print name
    * res_AfterPrefetchDelay Number of milliseconds to nap after prefetching something. So the prefetcher thread doesn't bog us down too much.
    * res_EnablePrefetching If true, enable prefetching.
    * res_PrefetcherActivityDelay Number of seconds to delay prefetching after there is foreground disk activity.
    * res_SpewLoadSpam If true, spew spam with each resource load.
    * rule_BlueprintReloadDelay seconds to delay before reloading a blueprint once we notice that it has changed.
    * rule_Paranoid Paranoid mode for RULE system, print all error messages.
    * SallyShears Reveal entire map.
    * SC_AntiAliasingSamples
    * SC_CameraScaleLOD
    * SC_CreateEntityDialog Create object editing box for the primary selected unit
    * sc_FrameTimeClamp Minimum time between frames, in milliseconds
    * SC_LuaDebugger Open Lua debugger window
    * SC_PrimaryAdapter
    * sc_SkipIntro Skip intro movies
    * SC_ToggleCursorClip Set the cursor clip to either the pre-launch clip or the current clip
    * SC_VerticalSync
    * ScenarioMethod Run a scenario-specific command
    * scr_SlowThreshhold Log warnings when script tasks exceed this threshold
    * SetArmyColor SetArmyColor(army,r,g,b)
    * SetFocusArmy Pass in army index or -1
    * SetFog Override fog params
    * shadow_Fidelity current shadow fidelity setting
    * shadow_FidelitySupported maximum shadow fidelity supported
    * ShowArmyStats Show engine statistics
    * ShowRaisedPlatforms Turns on or off rendering of raised platform for tweaking and setting up purposes
    * ShowStats Show engine statistics
    * sim_CaptureDistance How far a unit must be to begin capture
    * sim_ChecksumPeriod How many beats between checksums.
    * sim_DebugCheats Log a backtrace when we detect a cheat.
    * sim_DebugCrash Crash the sim.
    * sim_DebugDelay Milliseconds to delay each sim tick to simulate a slow sim.
    * sim_FormationMinSpace Minimum spacer in formation
    * sim_FormationSpeed Move speed percent for formations.
    * sim_Gravity Show or change the current gravity. Units are ogrids/(second^2)
    * sim_Interlocked If true, force the sim and UI threads to run interlocked.
    * sim_IssueThreadDebugLevel How much debug spam to spew from the issue thread.
    * sim_KeepAllLogFiles If true, keep all long files instead of just the ones for beats that appear out-of-sync.
    * sim_LogSize How many ticks to log before flushing files.
    * sim_ReportCheats Report cheating when cheats are enabled.
    * sim_TestFunc Test function - not used.
    * sim_TestVar Test variable - not used.
    * sim_TestVarBool Test variable - not used.
    * sim_TestVarFloat Test variable - not used.
    * sim_TestVarStr Test variable - not used.
    * sim_TestVarUByte Test variable - not used.
    * SimAssert Fail an assertion (for debugging purposes)
    * SimCrash Cause a crash (for debugging purposes)
    * SimError Log an error string (for debugging purposes)
    * SimLog Log a string (for debugging purposes)
    * SimLua Run some lua code in the sim's Lua.
    * SimWarn Log a warning string (for debugging purposes)
    * SkipUIChecks Don't perform any command validation in UI
    * snap
    * snap_Cols
    * snap_Rows
    * snd_LogEvents Log each FMOD event request as it occurs
    * snd_LogOverride Log each VO event that cancels a previously playing one
    * snd_SetReverb Activate an ambient reverb by name
    * StartCommandMode Set the UI context for some commands.
    * TeleportSelectedUnits teleport selected units.
    * timestamp Dump out EXE timestamp
    * tree_AccelFactor How quickly falling trees accelerate
    * tree_DampFactor Damping on swaying trees (0 to 1)
    * tree_SpringFactor How quickly swaying trees spring back
    * tree_UprootFactor How far to raise falling trees up out of the ground
    * ui_AlwaysRenderStrategicIcons When true, strategic icons always render, even when zoomed in
    * UI_ApplySelectionSet Takes a selection set name and applies the selection
    * ui_ArrowKeysScrollView Toggle if the arrow keys scroll the main view
    * ui_bAggressiveMoveClick Is a single left click an Aggressive move or regular move?
    * ui_CommandClickScale Scale applied to the click distance size of command waypoints
    * ui_CommandGraphMaxNodeUnits Limits the size of the waypoints
    * ui_ContinuousClickTimer Time for double click effect to remain active.
    * ui_CurveSegments How many segments to subdivide curves into
    * ui_CurveSmoothness How big to make curves when drawing command previews
    * ui_CustomNameColor Color of the custom name display
    * ui_CustomNameFontSize Point size of the custom name display
    * ui_CutsomNameFont Font family name of the custom name display
    * ui_DebugAltClick Enable ALT+Click debug command to switch armies
    * ui_DisableCursorFixing Allows you to toggle the cursor fixing functionality that is used for the mouse-controlled camera spinning/scrolling
    * ui_DragSelect2D Use a 2D (screen-space) drag-selection box
    * ui_DrawPathPreview Turns on/off the arrow line
    * UI_DumpControls Dumps information about all controls to current log target.
    * UI_DumpControlsUnderCursor Dumps all controls under the cursor to the debug log
    * ui_EnableDirectMotion Toggle if we want to enable direct motion control
    * UI_ExpandCurrentSelection Expand selection to all units in view that is found in our current selection group
    * ui_ExtractSnapTolerance Sets the extraction unit 'snap-to' tolerance (in meters) for building. Increase this to make it easier to auto-snap to extraction sites.
    * ui_FootprintMinThickness Mimimum render size for the footprint outline.
    * ui_ForceLifbarsOnEnemy force lifebars on for enemy units
    * UI_forceWeaponsToYellow Force all minimap weapon fire to yellow
    * ui_KeyboardPanAccelerateMultiplier How much faster the camera pans when accelerated
    * ui_KeyboardPanSpeed How fast arrow keys pans camera
    * ui_KeyboardRotateAccelerateMultiplier How much faster the camera rotates when accelerated
    * ui_KeyboardRotateSpeed How fast ins/del rotate camera
    * ui_LifeBarBadColor The color of the lifebar when there is poor health
    * ui_LifeBarBadCutoff The percent of health where the life bar changes from bad to medium
    * ui_LifeBarGoodColor The color of the lifebar when there is good health
    * ui_LifeBarGoodCutoff The percent of health where the life bar changes from medium to good
    * ui_lifebarHeight height of health bar in ogrids
    * ui_LifebarLOD LOD Cutoff for health bars
    * ui_LifeBarMedColor The color of the lifebar when there is medium health
    * ui_LifebarMode Modes for rendering life bars, 0-Player Owned, 1-Allies, 2-Enemy, 3- All
    * ui_LifebarOffset Y Offset in ogrids of all lifebars
    * ui_LifebarWidth width of health bar in ogrids
    * UI_Lua Run lua code in the appropriate UI lua state.
    * UI_MakeSelectionSet Takes a name, and makes a named selection set from the current selection
    * ui_MaxExtractSnapPixels Allows us to put a pixel cap on the snap tolerance (in case we are zoomed in close.
    * ui_MaxTextLOD LOD level that timer text dissapears
    * ui_MaxWaypointSize Set the maximum pixel size of a waypoint
    * ui_MinExtractSnapPixels Allows us to put a pixel cap on the snap tolerance (in case we are zoomed out relatively far.
    * ui_MinWaypointSize Set the minimum pixel size of a waypoint
    * UI_MouseAutoFocus Allows dualhead windows to have mouse focus set properly
    * ui_PathSmoothness How big to make curves when drawing path preview
    * ui_ProgressBarColor The color of the secondary Construction Progress bar
    * UI_Quit Drives quit behavior of the game depending on the state of the UI
    * ui_RenderCustomNames toggle custom name display
    * ui_RenderIcons toggle strategic icons on/off
    * ui_RenderSelectionSetNames toggle selection set names on/off
    * ui_RenderUnitBars render unit life bars?
    * UI_RenProjectileGlow Toggle projectile icon glow
    * UI_RenProjectileGlowMax Maximum glow alpha on projecile icon
    * UI_RenProjectileGlowMin Minimum glow alpha on projectile icon
    * UI_RenProjectileGlowPeriod The period in which the projectile icon glow will pulse from min to max to min
    * UI_RenProjectileIcons toggle projectile icons on/off
    * UI_ResetView Reset a named camera to the default view
    * UI_RotateLayout Cycles through all available layouts
    * UI_RotateSkin Cycles through all available skins
    * UI_SelectAnything Debug to allow UI to select anything
    * UI_SelectByCategory Select a set of units by category
    * ui_SelectionSetNamesColor Color of the selection set names
    * ui_SelectTolerance Sets the unit click tolerance (in pixels) for selection. Increase this to make units have a larger selection box.
    * UI_SetSkin Sets a new skin
    * ui_ShieldBarColor The color of the secondary Shield bar
    * UI_ShowCommandGraph should we render the command graph?
    * UI_ShowControlUnderMouse Highlights the control currently under the mouse
    * UI_ShowRenameDialog Display the rename unit dialog during a game
    * ui_StrategicIconBlinkDuration How long to blink icon when unit is damage
    * ui_StrategicIconBlinkRate Blink timer scale for strategic icons on damage
    * UI_StrategicProjectileLOD At what LODMetric do we draw projectile pixels on strategic view
    * UI_ToggleGamePanels Hide/show the UI panels in game, and expands the world view to fill the screen when panels are hidden.
    * UI_TrackUnit track selected units.
    * ui_WaypointLineScale Scale applied to the calculated waypoint line size
    * ui_WindowedAlwaysShowsCursor Always show cursor in windowed mode, regardless of show/hide
    * viz_Disturb
    * viz_Update
    * WeaponTerrainBlockageTest Toggle on/off weapon collision tests against terrain blockages
    * WIN_ShowLogDialog Explicit show/hide log dialog box
    * WIN_ToggleLogDialog Show/hide log dialog box
    * WLD_AdvanceBeat Advance the sim one beat.
    * wld_ClientDebugDump Dump out debug info about the network connections
    * WLD_DecreaseSimRate Decrease the game speed.
    * WLD_GameSpeed Set a new game speed
    * WLD_IncreaseSimRate Increase the game speed.
    * WLD_ResetSimRate Increase the game speed.
    * WLD_RestartBeat Restart rendering the current beat.
    * wld_RunWithTheWind If true, run beats as fast as we can.
    * WLD_SingleStep Single-step the sim one tick.
    * wld_SkewRateAdjustBase How much to adjust the sim rate based on one beat of skew.
    * wld_SkewRateAdjustMax Max amount to adjust the sim rate due to skew.
    * wnd_DefaultCreateHeight Minimum initial window height
    * wnd_DefaultCreateWidth Minimum initial window width
    * wnd_MinCmdLineHeight Minimum command line height
    * wnd_MinCmdLineWidth Minimum command line width
    * wnd_MinDragHeight Minimum drag-resize height
    * wnd_MinDragWidth Minimum drag-resize width
    * WxInputBox Text the WWxInputBox dialog.
    * ZeroExtraStorage Set energy and mass extra storage to 0

Reply #443 Top

I guess they annihilated the console in both DG and SC2.  That's harsh.

Reply #444 Top
  • UberFix 1.02 should work more or less correctly with Demigod 1.3.
  • I'm going to try to convert everything in the mod to be more mod friendly and stop overwriting quite as much. It won't really affect that much, but it will take some time.
  • I'm currently working on a QoT Balance mod (auto-mulching is in!), but I'll get back to this soon.
  • I need to update the buglist to include the Knock-back problems, Sedna's Yeti 4 not working, Hedgie's secret bug, and any others that I've missed.
  • The bug list on the google code UberFix site is much more up to date.
  • I need to get feedback on how the 1.02 worked for the 2v2 tournament. From what I've read there wasn't much of a difference.
Reply #445 Top

I'd be happy to help you convert the Uberfix to use hooking wherever possible.  My free time is hit-or-miss, but I can do a chunk at a time here and there.  Might just want to post on the Google Code wiki which section of the mod you're currently converting / planning to convert, and I'll work around that, and upload my results somewhere.

Reply #446 Top

I've been meaning to setup the cvs and whatnot on it. Hedgie was getting somewhere with his own setup, but I'm not sure where he has gotten. If you want to do that, you are welcome to start it ;).

Also, do you need/want more access to the google code site? If so send me or hedgie your account name and we can set you up.

I've not updated any of the files for compatible hooking. I've been working on the qot mod and trying to reorganize the bugs. So if you want to start, do so and just give me a heads up on how far you get.

Reply #447 Top

I just attached a fix for issue 10 on the google code site - that's my account name.

The only visible difference it makes in 1.2 is QoT's attack time and DPS display, but it can support changing other aspects of QoT/TB's weapons separately in a balance mod.

I'm not sure that the method I used to remove the callback for SCREEN_hero.lua:CreateMini.mini.Update is actually successfully removing it.  I forgot to repr the OnBeat callbacks to see if it was still in there.  It correctly changes the display of the mini-stats window, but that may just be because my new/hooked version is being called after the original, which would mean that there may be a bit of useless work being done every sync beat.

Edit: Speaking of useless work every beat, I threw a log message into both Update()s, and the mini.Update() was running every beat whether or not the shop display was open or not.  Maybe there's a reason for this, but the main inventory Update() uses an OnFrame callback, and only runs when the screen is actually open.  I don't know enough about moho UI to understand why there's a difference here, or if anything can be done about it (or if it would even make an appreciable difference in performance - probably not).

 

I hate the way they did a lot of moho engine UI code - functions defining other functions that are then added to callbacks, preventing the callback versions from being directly modified.  They can be hooked, but you have to hook the function that's creating them and cross your fingers that it returns the table containing the function that you want to change.  And then you have to remove the old callback (again, if you can - I didn't confirm that) and add a new one.  Agghhh.

Reply #448 Top

Just a quick update-- we're still picking away at a few of the leftover issues that DG 1.3 didn't solve, and there should be a 1.3-compatible Uberfix update eventually.

Modders who want their mod to remain compatible with future versions of Demigod patches and the Uberfix should start looking into non-destructive methods for altering blueprints, functions, etc.  It's not hard at all - I posted a few methods for doing this in Exxentric's how-to-add-items thread, but if you have further questions, feel free to post them here, in that thread, or in a new thread.

Reply #449 Top

Symbol of Purity can be used to cure Silence. This is a bug, since you can use it while Misted as well and that's just silly :# 

Ptarth and I have already discussed this privately. 

Reply #450 Top

You're saying it removes the Mist silencing?  That doesn't really make sense - the Mist silence has Debuff = false, and should not be getting canceled by the HSoP ability-- which, like Mist, uses RemoveBuffsByDebuff(self, true), which only removes buffs that have Debuff set to true.

There's even a second check in RemoveBuffsByDebuff that looks for CanBeDispelled == true, which should also prevent Mist silence from being canceled by the HSoP.