External URLs
Hive Discord in modding: https://discord.com/channels/178569180625240064/311662737015046144/1174875053385584731
Game Versions
1.36.0 (1.36.0.20144, 1.36.0.20171, 1.36.0.20200, 1.36.0.20210)
Summary
If showing more than 8 lightning effects, it causes them to not render (at all) even those before the limit of 8.
Description
Original issue troubleshooting, courtesy of P4RI4H:
Anyone familiar with lightning effects?
I am looping through a group and creating an anchor point dummy unit and have a target unit, i'm adding a lightning effect connecting this points. If I have >8 units in the group/table it only makes like 1 - 2 effects, the effects print, they're not null, and they are no where else to be seen on the map, but when the unit group is <=8 then all lightning effects seem to spawn and work as intended, I don't see anything wrong with my implementation, but maybe someone has experience with lightning effects?
This is how i'm getting my table of targets made.
// See "code 1"
For Loop Attempt
// See "code 2"
I even tried using ipairs to see if maybe my loop logic was flawed, but both seem to yield identical results.
// basically same as code 2 but ipairs
I need this to be able to work when the unit group is <= 10, and not <= 8
Response by me:
The code looks fine to me. For SD there are lighting (not lightning) bugs in the render engine when you have too many sources a game chunk turns darker. Thats too on the order of 8.
Try in SD rather than HD
Try to create a special effect for visualization instead
Try with a different lightning
Try hiding only the first 5 out of 10 lightnings and see if the latter show up
Author's response:
it's the 8 lightning limit on HD that was the problem.
sd it works perfectly
Additional Information
No response
Expected
Unlimited amount of lightning effects to render correctly
Actual
Inconsistent, broken rendering beyond 8
Reproduction steps
Code 1:
local x, y = GetUnitX(caster), GetUnitY(caster)
local group = CreateGroup()
-- Get all units in the radius
GroupEnumUnitsInRange(group, x, y, RADIUS, nil)
targetUnits = {}
for index = 0, BlzGroupGetSize(group) - 1 do
local unit = BlzGroupUnitAt(group, index)
if IsUnitEnemy(unit, GetOwningPlayer(caster)) then
table.insert(targetUnits, unit)
end
end
DestroyGroup(group)
Code 2:
for i = 1, #targetUnits do
local target = targetUnits[i]
local ax, ay = GetUnitX(target) + GetRandomReal(-200, 200), GetUnitY(target) + GetRandomReal(-200, 200)
local tx, ty = GetUnitX(target), GetUnitY(target)
-- Create anchor point
local anchor = CreateUnit(Player(PLAYER_NEUTRAL_PASSIVE), FourCC('h000'), ax, ay, 0)
table.insert(anchorPoints, {anchor = anchor, target = target, distanceThreshold = 300})
-- Create lightning effect
local lightning = AddLightningEx("LEAS", true, ax, ay, GetUnitFlyHeight(anchor) + 50, tx, ty, GetUnitFlyHeight(target) + 50)
print("Lightning Effect Made")
table.insert(lightningEffects, {effect = lightning, target = target})
end
Workaround
Play in SD mode. HD mode: none?
Screenshots, test maps, other material
Cannot attach directly in this field, wait a sec
External URLs
Hive Discord in modding: https://discord.com/channels/178569180625240064/311662737015046144/1174875053385584731
Game Versions
1.36.0 (1.36.0.20144, 1.36.0.20171, 1.36.0.20200, 1.36.0.20210)
Summary
If showing more than 8 lightning effects, it causes them to not render (at all) even those before the limit of 8.
Description
Original issue troubleshooting, courtesy of P4RI4H:
Anyone familiar with lightning effects?
I am looping through a group and creating an anchor point dummy unit and have a target unit, i'm adding a lightning effect connecting this points. If I have >8 units in the group/table it only makes like 1 - 2 effects, the effects print, they're not null, and they are no where else to be seen on the map, but when the unit group is <=8 then all lightning effects seem to spawn and work as intended, I don't see anything wrong with my implementation, but maybe someone has experience with lightning effects?
This is how i'm getting my table of targets made.
// See "code 1"
For Loop Attempt
// See "code 2"
I even tried using ipairs to see if maybe my loop logic was flawed, but both seem to yield identical results.
// basically same as code 2 but ipairs
I need this to be able to work when the unit group is <= 10, and not <= 8
Response by me:
Author's response:
Additional Information
No response
Expected
Unlimited amount of lightning effects to render correctly
Actual
Inconsistent, broken rendering beyond 8
Reproduction steps
Code 1:
Code 2:
Workaround
Play in SD mode. HD mode: none?
Screenshots, test maps, other material
Cannot attach directly in this field, wait a sec