|
|
#1 | ||
|
Evil Emoticon
Respected User
Project Leader: PoC |
NOTE: You have been redirected in order for our attachments to be made available to you. This will only last two minutes; these measures where taken to avoid hotlinking and bandwidth theft. To avoid these restrictions Log in or Register Hi:
This is a spell made for the Zephyr Challenge #1 spell contest at the hive workshop. This spell complies with JESP. Description:
EDIT: Screenshot added. Last edited by moyack : 02-11-2007 at 05:17 PM. |
||
|
|
|
| Sponsored Links - Login to hide this ad! |
|
|
|
|
#2 |
|
Free Software Terrorist
Technical Director
|
I don't understand the part in which you add a single unit to a unit group, then ForGroup that group to do something with ExecuteFunc, wouldn't it be easier to just process the unit directly without the unit group intervention?
__________________ |
|
|
|
|
|
#4 |
|
Free Software Terrorist
Technical Director
|
but for that you could just use a global variable?
__________________ |
|
|
|
|
|
#5 |
|
User
Join Date: Feb 2007
Posts: 6
|
is it just me or if you have more than one soul and when both souls intend to kill a target but one reaches first and kills it, the second disappears? or is it meant to be that way?
EDIT: oh and they cost food too! Last edited by EidolonFlame : 02-10-2007 at 11:17 PM. |
|
|
|
|
|
#6 | ||
|
Evil Emoticon
Respected User
Project Leader: PoC |
Quote:
Yes, that's true. the souls have as a purpose to damage/control an enemy temporally. So, as an example, the caster has 3 souls, and the target enemy die with less souls, then the remaining souls won't have any purpose and they will die. I did in that way in order to give limitations to the spell. About the food.... Hmm... I have to see if there's a way to fix it. Thanks for your comments. Quote:
Last edited by moyack : 02-11-2007 at 03:34 PM. |
||
|
|
|
|
|
#7 |
|
Obscurity, the Art
|
Nooo Moyack.
__________________Global variables make things non-MUI in some cases, but temp globals for use in ForGroup() and ExecuteFunc() callbacks are perfectly okay. Temp globals are the ones declared in the blizzard.j file. That is more than likely what Blu told you. It's just you probably misunderstood. Last edited by Rising_Dusk : 02-11-2007 at 05:39 PM. |
|
|
|
|
|
#8 |
|
Nonchalant
Respected User
|
Cursed_Soul_GetRandomEnemy has unnecessary usage of boolean variables.
As Vex mentioned, ForGroup for no reason. You could use a temp BJ global to pass the unit, which is acceptable for JESP. Trigger sleep action loops? (Edit: I loaded this thread ages ago and did other stuff before replying, so this is essentially a cross-post with Dusk) Last edited by blu_da_noob : 02-11-2007 at 05:54 PM. |
|
|
|
|
|
#9 | |||
|
Evil Emoticon
Respected User
Project Leader: PoC |
Quote:
Quote:
JASS:function Cursed_Soul_GetRandomEnemy takes unit c, group g, real range returns unit local unit u local boolean b1 local boolean b2 local boolean b3 local boolean b4 local boolean b5 loop set u = FirstOfGroup(g) set b1 = GetWidgetLife( u ) > 0.405 set b2 = IsUnitType(u, UNIT_TYPE_STRUCTURE) == false set b3 = IsUnitType(u, UNIT_TYPE_FLYING) == false set b4 = IsUnitEnemy(u, GetOwningPlayer(c)) set b5 = IsUnitInRangeXY(u, GetUnitX(c), GetUnitY(c), range) exitwhen u == null or (b1 and b2 and b3 and b4 and b5) call GroupRemoveUnit(g, u) endloop call DestroyGroup(g) return u endfunction I do in this way so the code can be more readable for me (I just hate to read a LOOONG line with booleans). Because booleans doesn't leak, I think there's no problem. Unless you know some issue in particular. Quote:
Are there TriggerSleepActions unnecessarily?? I checked and I consider all of them are importants in the spell behavior. |
|||
|
|
|
|
|
#10 |
|
Kelani Mage
|
I don't know what Blu was refering when he mentioned the TriggerSleepActions, but the function is faulty as if someone lags in a multiplayer game, it may cause desyncs. PolledWait() fixes this problem, though it leaks, so Vex made an improved version.
__________________~Daelin |
|
|
|
|
|
#11 |
|
Obscurity, the Art
|
He was referring to TSA inside of loops.
__________________They are innaccurate and do not function as desired. The use of a TSA inside of a loop *should* always be replaced by a periodic timer. Always. |
|
|
|
|
|
#12 | |
|
Lackadaisically Absent.
Respected User
|
Quote:
...or is that just another way to refer to "a variable declared in the variable editor"? To comply with the JESP standard, what does one have to state (regarding globals) in the spell code? Last edited by Pyrogasm : 02-27-2007 at 05:09 AM. |
|
|
|
|
|
|
#13 |
|
Evil Emoticon
Respected User
Project Leader: PoC |
@Rising: I think the TSA usage in this spell is acceptable since I don't require precision in the loop, it's used just to give smoothness to the soul movement. (Check that I used call TriggerSleepAction(0.0))
@Pyrogasm: The Temp BJ globals are variables defined in the global section of the Blizzard.j file. They are used by the BJ functions to transfer data from one function to other. Last edited by moyack : 02-27-2007 at 12:14 PM. |
|
|
|
|
|
#14 |
|
Kelani Mage
|
TriggerSleepAction(0.0) is aproximately equivalent with TriggerSleepAction(0.30). Usually this is the value, though sometimes it may be slightly lower 0.27. Therefore, TriggerSleepAction(0.0) will always make the movement look "choppy" or "lagged". Moreover, TriggerSleepAction can cause desyncs in multiplayer. You should definitely focus on timers, though ti depends as I saw the spell, you probably used this to make the units follow the caster, and so, super accuracy is not required. Therefore, I'd go with PolledWait.
__________________~Daelin |
|
|
|
|
|
#15 |
|
Obscurity, the Art
|
TSA is also heavily delayed on Bnet based upon synchronization with the host.
__________________This can cause a spell to be utterly unusable. I remember an AotZ ability that had a 0.0 TSA loop that in SP was perfect, but in most MP games was delayed up to 2 seconds between iterations. This spell should most definitely be in a timer callback for a good half of the stuff. Also, your current loop has the potential to bust execution limit if the caster never dies or vanishes. Not that this case is likely, but it's worth noting. |
|
|
|
![]() |
| Thread Tools | Search this Thread |
|
|
|
Donate |