- Joined
- Apr 23, 2011
- Messages
- 527
I am making a triggered line of sight system for front-only vision by using lines of dummy units in a cone (is this the best way to go about it? it stutters when going up to 24 players)
What is the issue with how I have coded this? I am testing this on a blank map (attached below).
edit: I think I forgot to remove an unintended action in the testmap (Kill last created unit).
-
losinit
-
Events
- Time - Elapsed game time is 0.03 seconds
- Conditions
-
Actions
-
For each (Integer loop) from 1 to 2, do (Actions)
-
Loop - Actions
- Set playerunits = (Units owned by (Player(loop)) of type Peasant)
-
Unit Group - Pick every unit in playerunits and do (Actions)
-
Loop - Actions
- Set unit[loop] = (Picked unit)
- Set p[0] = (Position of unit[loop])
- Set facing = ((Facing of unit[loop]) - 150.00)
-
For each (Integer loop2) from 1 to 7, do (Actions)
-
Loop - Actions
-
For each (Integer loop3) from 1 to 10, do (Actions)
-
Loop - Actions
- Set p[1] = (p[0] offset by (100.00 x (Real(loop3))) towards facing degrees)
- Unit - Create 1 Sight for (Player(loop)) at p[1] facing Default building facing degrees
- Set sight[sightindex[loop]] = (Last created unit)
- Set sightindex[loop] = (sightindex[loop] + 1)
- Custom script: call RemoveLocation(udg_p[1])
-
Loop - Actions
- Set facing = (facing + 30.00)
-
For each (Integer loop3) from 1 to 10, do (Actions)
-
Loop - Actions
- Custom script: call RemoveLocation(udg_p[0])
-
Loop - Actions
- Custom script: call DestroyGroup(udg_playerunits)
-
Loop - Actions
-
For each (Integer loop) from 1 to 2, do (Actions)
-
Events
-
losloop
-
Events
- Time - Every 0.50 seconds of game time
- Conditions
-
Actions
-
For each (Integer loop) from 1 to 2, do (Actions)
-
Loop - Actions
- Set p[0] = (Position of unit[loop])
- Set facing = ((Facing of unit[loop]) - 150.00)
- Set sightindex[loop] = 0
-
For each (Integer loop2) from 1 to 7, do (Actions)
-
Loop - Actions
-
For each (Integer loop3) from 1 to 10, do (Actions)
-
Loop - Actions
- Set p[1] = (p[0] offset by (100.00 x (Real(loop3))) towards facing degrees)
- Unit - Move sight[sightindex[loop]] instantly to p[1]
- Set sightindex[loop] = (sightindex[loop] + 1)
- Custom script: call RemoveLocation(udg_p[1])
-
Loop - Actions
- Set facing = (facing + 30.00)
-
For each (Integer loop3) from 1 to 10, do (Actions)
-
Loop - Actions
- Custom script: call RemoveLocation(udg_p[0])
-
Loop - Actions
-
For each (Integer loop) from 1 to 2, do (Actions)
-
Events
What is the issue with how I have coded this? I am testing this on a blank map (attached below).
edit: I think I forgot to remove an unintended action in the testmap (Kill last created unit).
Attachments
Last edited: