UberFix v1.02

By on January 23, 2010 11:15:45 PM from Demigod Forums Demigod Forums

Ptarth

Join Date 02/2007
+90

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.

Locked Post 519 Replies +12
Search this post
Subscription Options


Reason for Karma (Optional)
Successfully updated karma reason!
January 25, 2010 8:34:42 PM from Demigod Forums Demigod Forums

http://forums.demigodthegame.com/374396

This occured to Janook on Leviathan as Queen, except it started at the beginning of the game. I'm not sure how to reproduce it but it sounds like a new issue as of 1.2

Reason for Karma (Optional)
Successfully updated karma reason!
January 25, 2010 8:52:25 PM from Demigod Forums Demigod Forums

re: Sedna Permanent Silence

  • I looked at the code, but didn't see anything obvious. Without something more concrete and preferably a way to replicate, I don't think I can do anything about this.

re: http://www.box.net

  • I added it as download location.
Reason for Karma (Optional)
Successfully updated karma reason!
January 26, 2010 12:04:27 AM from Demigod Forums Demigod Forums

I have a replay of the Pot-Glitch. It happens towards the end, it's when we port on Sedna on our right portal. Notice that DA swaps her and she picks it up even though she is a good distance away.

This could be Skill Queue bug and may also be related to the bug with porting being canceled by Swap sometimes.

http://www.box.net/shared/l1gtqaa5fo

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 1:45:55 AM from Demigod Forums Demigod Forums

 

Had a look into oak shield interupt,


Both DA and Sedna use a loop affect and it might be the looping that cancels out a teleport:

ie Da has

Affects = {

Interrupt = {Bool = true},

},

and sedna uses:

 Affects = {
 Silence = {Bool = true},

 },

Da may be able to be fixed by changing interupt to an add affect (ie

 Affects = {
 Interrupt = {Add = 0},

 }

This should not cause the interrupt to not work as this is how pentinence is coded. However, I am not sure whether DA was given a loop to allow him to teleport sheilded oak, and the interrupt during shield is a side effect. Been trying to test this change on Ai but it is difficult.

Code would be (HDemon_abilitites.lua)

#################################################################################################################
# Buff: Shadow Swap
#################################################################################################################

BuffBlueprint {
    Name = 'HDemonShadowSwap01',
    Debuff = true,
    BuffType = 'HDEMONSHADOWSWAP',
    EntityCategory = 'HERO',
    Stacks = 'REPLACE',
    Duration = 0.1,
    Affects = {

#Change

        Interrupt = {Add = 0},


#End of Change   

},

}

_____________________________________________

 

For silence a different approach is required i think. This should work, and seems to cause no negative effects ingame on or the debugger. However, once again testing is difficult.

Code would be (BuffAffects.lua)

#################################################################################################################
# Silence
#################################################################################################################

function Silence( unit, buffName, buffDef, buffAffects, instigator, instigatorArmy, bAfterRemove )

#Added Code

  if Buff.HasBuff(unit, 'HOAKShield03') then
                    continue
                elseif Buff.HasBuff(unit, 'HOAKShield04') then
                    continue
                elseif Buff.HasBuff(unit, 'HOakPurity') then
                    continue
                end,
#End of Added Code


    local val, bool = BuffCalculate(unit, buffName, 'Silence', 0, false)
    unit.Sync.Silenced = bool
    unit.Silenced = bool

    if (instigator and not instigator:IsDead() and unit != instigator ) then
        FloatTextAt(unit:GetFloatTextPositionOffset(0, 1, 0), '<LOC floattext_0015>SILENCED', 'Stunned', unit:GetArmy())
    end
end

________________

Also one other note, has anyone considered this might be shield running out at the end of the teleport, 6 seconds is barely long enough to do caplock and tele, considering that there is always minimum response time of 0.3 seconds, fastest possible combination would take 5.6 seconds (ie 2*response time of 0.3 + 3 second cast teleport and +2 second cap lock) and would be a feasible cause of canceling teleport on the swoosh (ie shield ends at just before teleport ends casting)?

 

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 2:23:32 AM from Demigod Forums Demigod Forums

I'm not sure what you mean by looping affect. What you displayed is a table in lua. More specifically, given this code snippet:

Code: c++
  1. Affects = {
  2. Interrupt = {Bool = true},
  3.  Silence = {Bool = true},
  4. },

Affects is a data structure (called a table). It contains the fields Silence and Interrupt (it could contain more). In both cases the fields are Booleans and are both equal to true.


For:

Interrupt = {Add = 0},

I'm not sure what is going on. All of the other abilities with an interupt use: Interrupt = {Bool = true},


Your silence code may work out. However, I'm still not convinced there is a bug. As you suggested in your post (and as discussed on the previous page (this thread moves fairly quickly which is annoying sometimes)), it may just be due to lag. Without more evidence I'm going with the position that it is a lag effect.

Thanks for helping looking into things.

 

 

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 2:42:55 AM from Demigod Forums Demigod Forums

UB Plague debuff prevents Post Mortem effect

Could not replicate could you be more specific?

Unclean Beast can suicide using Ooze

1. There have been some arguments if this is a bugfix or a feature.
2. Please discuss and come up with a consensus

 I think it needs a fix, i dont think that it is working as intended

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 2:48:50 AM from Demigod Forums Demigod Forums

Affects is a data structure (called a table). It contains the fields Silence and Interrupt (it could contain more). In both cases the fields are Booleans and are both equal to true.

Yes this is correct, however, as a comparision to an add function, the boolean is set to true for the duration of the interupt. Comparitively, the add function initiates the interruption ability but has no duration (and as warp is an instant interrupt following completion of casting this wouldnt matter). If your worried about the time of the interrupt change it to a stun

Ie

Duration = 0.5,

Affects = {

Stun = {Add = 0},

},

 

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 2:48:59 AM from Demigod Forums Demigod Forums

UB Plague debuff prevents Post Mortem effect
Could not replicate could you be more specific?

When the UB inflicts a unit with Plague and it dies from the damage from Plague, the unit does not explode with a Post Mortem explosion. Also, kills due to Post Mortem (and possibly Plague) do not give the UB gold.

Unclean Beast can suicide using Ooze
I think it needs a fix, i dont think that it is working as intended

I think so too, but I wanted to make sure that sufficient people agreed before I went ahead and did something about it. It should be simple enough.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 3:06:00 AM from Demigod Forums Demigod Forums

When the UB inflicts a unit with Plague and it dies from the damage from Plague, the unit does not explode with a Post Mortem explosion.

This is hard to test as you need something with alot of health to test it. On minotaurs and archers it was looking normal.

Note to get post mortem effect you need to hit the unit at least once. you sure the units are not exploding cause you havent hit them, and instead have taken alot of damage from your creeps/ plague?

Also, kills due to Post Mortem (and possibly Plague) do not give the UB gold.

Does mines have this same effect? If not then i might have a fix

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 3:16:08 AM from Demigod Forums Demigod Forums

Bug:

Orb of Defiance deals 500 weapon damage, not 500 skill damge. (read: it is affected by armor)

With Queen you do over 1000 damage to creeps/giants after Ground Spikes, but it sucks against other demigods.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 3:16:59 AM from Demigod Forums Demigod Forums

Bug:

Orb of Defiance deals 500 weapon damage, not 500 skill damge. (read: it is affected by armor)

With Queen you do over 1000 damage to creeps/giants after Ground Spikes, but it sucks against other demigods.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 3:19:03 AM from Demigod Forums Demigod Forums

re: creeps

The easy way to test it is to set creep strength to high, waves to frequent, and start at level 10. Then stand in the center of the creeps. Take Post Mortem and not plague. Watch how often enemies explode. Now put a point into Plague. You'll notice that the damage spike explosion occurs very infrequently.

re: mines

No, the Regulus's mines don't give kill credit, nor do Rook's towers. The demigod wiki has a reasonable description of of the kill mechanics and what gives credit and what doesn't. I'm not certain if Regulus mines and Rook Towers should give credit, however the AOE damage due to post mortem seems to be a reasonable extension. Otherwise the UB is penalized for picking up the ability and creeping.

re: Orb of Defiance

I'm not sure which item you are talking about hedgie. The orb of defiance gives armor & health. It doesn't have a damage effect.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 3:45:19 AM from Demigod Forums Demigod Forums

I'm not sure which item you are talking about hedgie. The orb of defiance gives armor & health. It doesn't have a damage effect.

 

Sorry. Orb of Veiled Storms. 8000 gold Artifact.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 4:22:12 AM from Demigod Forums Demigod Forums

re: http://www.box.net

* I added it as download location.
There is also dropbox . Same principle, different pricing, more free stuff.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 4:31:32 AM from Demigod Forums Demigod Forums

zomg fixes released that whoever controls Demigod couldn't manage to somehow create on their own!

 

If GPG is too lazy to do them, couldn't they grant Stardock the ability to create updates to the game?  Oh yeah, it's all about Elemental whatever now.  Gotcha.

 

It's depressing that some modding work has to go to bug fixes rather than interesting new modifications to the game.  I still try to play a game or so every now and then, but I keep logging on to find no games available (i.e. riiight now it's been over 30 min and my lobby is still 1/6 me).  It's srsly rather depressing

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 4:44:24 AM from Demigod Forums Demigod Forums

oh.  reading a few posts up:

 

I did extensive testing on UB post mortem.  It does NOT provide XP, which is unlike every other aoe in the game (tested surge of faith, slam, heaven's wrath, reg mines, angelic fury, qot spikes and spikewave, orb of veiled storms, etc) which all give aoe.  Obviously no Stardock / GPG response when posted on the forums several months back.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 4:58:25 AM from Demigod Forums Demigod Forums

Quoting awuffleablehedgie,
...Sorry. Orb of Veiled Storms. 8000 gold Artifact.

Ah, I understand now. You are correct in your report.

I checked the other items and all the demigod abilties for good measure. Only the Doomspite Grips and the Girdle of Giants are affected by armor, and both of those are cleave type attacks. I believe that the Orb of Veiled Storms was meant to be armor immune damage. I'll change it and add it.

I also looked into the tag: CanBackfire. For all abilities and items, except for the Orb of Veiled Storms and Oak's Surge of Faith, this value is set for false. The only other mention I can find of CanBackfire = true is in Giants melee attack. It also shows up in BuffAffects.lua and Weapon.lua (but nothing useful). I wonder if I should set them all equal to false just to make things consistent or just ignore it. I also couldn't find any reference to it in the supreme commander lua docs I have found.

I dunno?

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 5:13:38 AM from Demigod Forums Demigod Forums

Quoting RAWRRRR,
zomg fixes released that whoever controls Demigod couldn't manage to somehow create on their own!

I know that everyone has a lot of frustration about the status of Demigods. GPG is having problems with 3rd party netcode that failed them, coding hours, and budget problems. Stardock is having problems because they aren't the only distributor, which means they have to deal with Atari to get some things done, they have to deal with the tremendous amount of negative output by the community, and they've been pouring in money to save Demigods, when they had no responsibility to do so in the first place. The community has to deal with what they perceive as a lack of faith and support by GPG & Stardock.

This however, isn't the place for complaints. This thread and this mod is all about working with everyone, the community, with Stardock, and with GPG to make Demigods a better game.

  • The community is responding by providing buglists, replication methods, and making bug fixes.
  • Stardock is responding by trying to get this patch into the base install of Demigods.
  • Gas Powered Games hasn't made a direct response yet, but Supreme Commander 2 is due out soon, so I'm sure they are crunched for time. However, in the past Sorian has done a lot for Demigods, and I'm sure he will end again.

re: Games at this time of day

  • It's 2:00 AM. You silly people on the wrong side of the Earth need to fix your sleep schedules.
Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 7:34:42 AM from Demigod Forums Demigod Forums

Ok as mines and towers do not affect gold/xp income either i suggest that ub not getting gold from post mortem kills is due to the way this buff works. For post mortem to activate requires the creep/unit to become the instigator of the effect (and not ub/your demigod of choice as standard aoes Rawwwr used to test with) and as such ub will not be awarded the xp/gold. Prbly not easy to fix.

As for CanBackfire command.

I am pretty sure that this is used for activation of damage reflection (ie Goddess of Thorns) and so prbly shouldnt be changed.

Orb of veiled storms is a one line fix

ArmorImmune = false,

to

ArmorImmune = true,

Still looking at plague/post mortem conflict.

 

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 8:33:50 AM from Demigod Forums Demigod Forums

K found a the problem for Ub Post mortem/plague

#################################################################################################################
# Buff - Plague II
#################################################################################################################
BuffBlueprint {
    Name = 'HEPA01Plague02',
    DisplayName = '<LOC ABILITY_HEPA01_0062>Plague',
    Description = '<LOC ABILITY_HEPA01_0042>Taking poison damage. Spreads to allies.',
    BuffType = 'HEPA01PLAGUE',
    Debuff = true,
    CanBeDispelled = true,
    EntityCategory = 'MOBILE - UNTARGETABLE',
    Stacks = 'IGNORE',
    Duration = 30,
    DurationPulse = 30,
    Affects = {
       Health = {Add = -15},
    },
    Effects = 'Plague01',
    EffectsBone = -2,
    DamageSelf = true,
    CanBeEvaded = false,
    CanBackfire = false,
    CanDamageReturn = false,
    DamageFriendly = true,
    ArmorImmune = true,
    CanCrit = false,
    CanMagicResist = true,
    #NoFloatText = true,
    AffectRadius = 10,
    AffectChance = 100,
    NumIgnoreSpreadPulses = 1,                      # Number of pulses to wait before spreading plague
    Icon = '/DGUncleanBeast/NewUncleanPlague01',
    OnApplyBuff = function( self, unit, instigator )
        unit.Callbacks.OnKilled:Add(self.UnitOnKilledCallback, self)
    end,
    OnBuffAffect = function(self, unit, instigator)
        #LOG("*DEBUG: OnBuffAffect unit: "..unit:GetUnitId().. " inst:"..instigator:GetUnitId())
        if unit:IsDead() or instigator:IsDead() or not instigator.Plague then
            return
        end

        # Allows for ignoring OnBuffAffect pulses, so this doesn't trigger immediately on the first
        # application of plague.
        if unit.PlagueInstance.IgnoreAffectPulses then
            unit.PlagueInstance.NumIgnoredPulses = unit.PlagueInstance.NumIgnoredPulses + 1
            if unit.PlagueInstance.NumIgnoredPulses >= self.NumIgnoreSpreadPulses then
                unit.PlagueInstance.IgnoreAffectPulses = false
            end
            return
        end

        local targets = unit:GetAIBrain():GetUnitsAroundPoint((categories.MOBILE - categories.UNTARGETABLE), unit:GetPosition(), self.AffectRadius, 'Ally')
        PlagueSpread02( instigator, targets, self.AffectChance )
    end,

    OnBuffRemove = function(self, unit)
        #self:DecrementPlagueCounter(unit)
        Buff.ApplyBuff(unit, 'HEPA01PlagueImmune', unit)
    end,
    UnitOnKilledCallback = function( self, unit )

    unit.Callbacks.OnKilled:Remove(self.UnitOnKilledCallback)
        #self:DecrementPlagueCounter(unit)
    end,

    DecrementPlagueCounter = function(self, unit)
        local instigator = unit.PlagueInstance.Instigator
        if not instigator then
            LOG( 'No Instigator' )
        end
        if not instigator:IsDead() then
            instigator.Plague.NumPlaguedUnits = instigator.Plague.NumPlaguedUnits - 1
            unit.PlagueInstance = nil
        end
    end,
}

Problem code bolded.


This function removes the callback used by post mortem and so it doesnt activate. Removing it allows post mortem to work as usual. Seems to me tho that this is a development descision and not a coding accident.

Two work arounds that i can see to be fairly easy and effective:

1. delete these line of code but i am not sure what add on effect this will have.

2. Add post mortem effect to all units which die of plague. I cannot see this as a problem as i figure plague is caused by ub anyway.

Code for 2.:

 

    OnApplyBuff = function( self, unit, instigator )
        unit.Callbacks.OnKilled:Add(self.UnitOnKilledCallback, self)
    end,
    OnBuffAffect = function(self, unit, instigator)
        #LOG("*DEBUG: OnBuffAffect unit: "..unit:GetUnitId().. " inst:"..instigator:GetUnitId())
        if unit:IsDead() or instigator:IsDead() or not instigator.Plague then
            return
        end

        # Allows for ignoring OnBuffAffect pulses, so this doesn't trigger immediately on the first
        # application of plague.
        if unit.PlagueInstance.IgnoreAffectPulses then
            unit.PlagueInstance.NumIgnoredPulses = unit.PlagueInstance.NumIgnoredPulses + 1
            if unit.PlagueInstance.NumIgnoredPulses >= self.NumIgnoreSpreadPulses then
                unit.PlagueInstance.IgnoreAffectPulses = false
            end
            return
        end

        local targets = unit:GetAIBrain():GetUnitsAroundPoint((categories.MOBILE - categories.UNTARGETABLE), unit:GetPosition(), self.AffectRadius, 'Ally')
        PlagueSpread02( instigator, targets, self.AffectChance )
    end,

    OnBuffRemove = function(self, unit)
        #self:DecrementPlagueCounter(unit)
        Buff.ApplyBuff(unit, 'HEPA01PlagueImmune', unit)
    end,
    UnitOnKilledCallback = function( self, unit )

############Added Code
    unit.Callbacks.OnKilled:Add(PMExplode, self)

############ End Added Code

    unit.Callbacks.OnKilled:Remove(self.UnitOnKilledCallback)
        #self:DecrementPlagueCounter(unit)
    end,
    DecrementPlagueCounter = function(self, unit)
        local instigator = unit.PlagueInstance.Instigator
        if not instigator then
            LOG( 'No Instigator' )
        end
        if not instigator:IsDead() then
            instigator.Plague.NumPlaguedUnits = instigator.Plague.NumPlaguedUnits - 1
            unit.PlagueInstance = nil
        end
    end,
}

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 2:02:44 PM from Demigod Forums Demigod Forums

re:Canbackfire

Canbackfire only shows up in those five files I listed, it doesn't show up anywhere else (at least with = true). My first thought was the same, that it was damage reflection tag. However, CanDamageReturn  is the damage reflection tag. So that isn't what it does. Also, ONLY giants, Orb of Veiled Storms, and Surge of Faith have it set to True. I searched through every file in the dgdata.zip. I think it is leftover code that isn't being used anymore.

 

re:Post Mortem

The problem code you have bolded is just the plague counter which is also part of an error checking feature. It allows the you to keep track of how many units are infected with the plague, so you don't infect more than the max number allowed (30).  It doesn't actually do anything. I'm not sure how you associated it with Post Mortem.

Your fix may work. I can't tell just looking at the code. If you tested it, then well it does work. However, I'm not sure we should do this until we figure out what went wrong. Looking at the code, the Post Mortem Debuff should still be on the unit when it dies. However, the explosion Callbacks.OnKilled never runs.

I want to know why not before I start adding in more code. It might be the case that only one on death call back is actually performed. It might have something todo with overkill. It might have something todo with knocking units into the air. It might be something else. I don't know.

re:Post Mortem UB gets XP

I believe that it was intended that the UB get the gold for kills by Post Mortem, something happened to break the code, somewhere though. If you look in HEPA01_Abilities.lua and lookup the fuction PMExplode and the buff HEPA01PostMortemEnemy01, you can see that Post Mortem assigns a Post Mortem caster which is the UB. This is then carried through and when damage is applied it should correctly reference the Post Mortem Caster as the instigator (and thus the UB should get gold). However, it doesn't work out that way.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 5:34:12 PM from Demigod Forums Demigod Forums

another thought:  perhaps a name change is in order?  Maybe something more generic to perhaps increase appeal or maybe get more people to use it if it gets bundled with demigod?  Maybe just Bug Fix 1.0. 

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 6:01:55 PM from Demigod Forums Demigod Forums

In Supreme Commander we call it CBFP - Community Bug Fix Patch

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 6:39:27 PM from Demigod Forums Demigod Forums

Quoting Spooky__,
In Supreme Commander we call it CBFP - Community Bug Fix Patch

I'm all for whatever.  So long as its easily identified to most peeps.

Reason for Karma (Optional)
Successfully updated karma reason!
January 27, 2010 6:56:58 PM from Demigod Forums Demigod Forums

The problem code you have bolded is just the plague counter which is also part of an error checking feature. It allows the you to keep track of how many units are infected with the plague, so you don't infect more than the max number allowed (30).  It doesn't actually do anything. I'm not sure how you associated it with Post Mortem.

Your fix may work. I can't tell just looking at the code. If you tested it, then well it does work. However, I'm not sure we should do this until we figure out what went wrong. Looking at the code, the Post Mortem Debuff should still be on the unit when it dies. However, the explosion Callbacks.OnKilled never runs.

I want to know why not before I start adding in more code. It might be the case that only one on death call back is actually performed. It might have something todo with overkill. It might have something todo with knocking units into the air. It might be something else. I don't know.

 

Yes i tested it, thats how i know these are the lines that are causing trouble. I understand that they were for error checking, however, post mortem uses the same callback that plague removes (I will put the code side by side for you). Also notice that all this function does at the current point in time is disable post mortem ( as the plague counter has been disabled by GPG -         #self:DecrementPlagueCounter(unit)

).

Post Mortem

 OnBuffAffect = function(self, unit, instigator)
        if instigator then
            unit.AbilityData.PostMortem = {}
            unit.AbilityData.PostMortem.Caster = instigator
            unit.AbilityData.PostMortem.CasterArmy = instigator:GetArmy()
            unit.AbilityData.PostMortem.CasterBp = instigator:GetBlueprint()
            unit.AbilityData.PostMortem.DamageRating = instigator.Sync.DamageRating
        end
        unit.Callbacks.OnKilled:Add(PMExplode, self)
        if unit.PostMortemRemoveThread then
            KillThread(unit.PostMortemRemoveThread)
        end
        unit.PostMortemRemoveThread = ForkThread(
            function()
                WaitSeconds(self.CallbackDuration)
                if not unit:IsDead() then
                    unit.Callbacks.OnKilled:Remove(PMExplode)
                end
            end
        )
    end,
    OnBuffRemove = function(self, unit)
        unit.Callbacks.OnKilled:Remove(PMExplode)
    end,
    Icon = '/DGUncleanBeast/NewUncleanPostMortem01',
}

__________________________________________________________

Plague

    OnApplyBuff = function( self, unit, instigator )
        unit.Callbacks.OnKilled:Add(self.UnitOnKilledCallback, self)
    end,
    OnBuffAffect = function(self, unit, instigator)
        #LOG("*DEBUG: OnBuffAffect unit: "..unit:GetUnitId().. " inst:"..instigator:GetUnitId())
        if unit:IsDead() or instigator:IsDead() or not instigator.Plague then
            return
        end

        # Allows for ignoring OnBuffAffect pulses, so this doesn't trigger immediately on the first
        # application of plague.
        if unit.PlagueInstance.IgnoreAffectPulses then
            unit.PlagueInstance.NumIgnoredPulses = unit.PlagueInstance.NumIgnoredPulses + 1
            if unit.PlagueInstance.NumIgnoredPulses >= self.NumIgnoreSpreadPulses then
                unit.PlagueInstance.IgnoreAffectPulses = false
            end
            return
        end

        local targets = unit:GetAIBrain():GetUnitsAroundPoint((categories.MOBILE - categories.UNTARGETABLE), unit:GetPosition(), self.AffectRadius, 'Ally')
        PlagueSpread02( instigator, targets, self.AffectChance )
    end,

    OnBuffRemove = function(self, unit)
        #self:DecrementPlagueCounter(unit)
        Buff.ApplyBuff(unit, 'HEPA01PlagueImmune', unit)
    end,
    UnitOnKilledCallback = function( self, unit )

    unit.Callbacks.OnKilled:Remove(self.UnitOnKilledCallback)
        #self:DecrementPlagueCounter(unit)
    end,

    DecrementPlagueCounter = function(self, unit)
        local instigator = unit.PlagueInstance.Instigator
        if not instigator then
            LOG( 'No Instigator' )
        end
        if not instigator:IsDead() then
            instigator.Plague.NumPlaguedUnits = instigator.Plague.NumPlaguedUnits - 1
            unit.PlagueInstance = nil
        end
    end,
}

See how post mortem uses unit onkilledcallback function to activate the explosion? now if you look closely, as you said before plague used to use this function as an error checking unit to count the number of infected units, however on the death of the unit plague is removing the unitonkilledcallback before post mortem is activated.

As for gold with these skills:

No Ub is referenced as the instigator of the ability but not the activator of the buff.

Once again i think that it is this code:

unit.Callbacks.OnKilled:Add(PMExplode, self)

As you can see, the unit is not UB (as it would be for most abilities) but is instead the unit which has the debuff. On most items, unit refers to the instigator, and target are the units which recieve the buffs. The only exceptions to this rule that i have found are summoned units (mines and towers) and post mortem (although there may be more).

Reason for Karma (Optional)
Successfully updated karma reason!
Stardock Forums v1.0.0.0    #108432  walnut2   Server Load Time: 00:00:00.0003985   Page Render Time:

Stardock Magazine | Register | Online Privacy Policy | Terms of Use

Copyright © 2016 Stardock Entertainment and Gas Powered Games. Demigod is a trademark of Gas Powered Games. All rights reserved. All other trademarks and copyrights are the properties of their respective owners. Windows, the Windows Vista Start button and Xbox 360 are trademarks of the Microsoft group of companies, and 'Games for Windows' and the Windows Vista Start button logo are used under license from Microsoft. © 2012 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc.