Checking for destructable

NetherHawk

New Member
Reaction score
26
Ok i have this set of coding. what im trying to do is if there is a destructible in the rect, i have a set of coding to carry out. there will be another set of coding if there isnt. so how do i check if there is or isnt a destructible.

JASS:

local unit ux = GetTriggerUnit()
local rect rt
local destrutable dt

set rt = Rect(GetUnitX(ux)-400.,GetUnitY(ux)-400.,GetUnitX(ux)+400.,GetUnitY(ux)+400.)
    set dt = RandomDestructableInRectBJ(rt,null)


how do i check that dt has actually been set to a destructable
if there are no destrucatbles in the region, what value does dt have

i tried creating a special effect for

JASS:
 if dt != null then
call AddSpecialEffect("",GetDestrutableX(dt),GetDestrutabley(dt))
endif


it doesnt work. however, if i put this line below the 'set dt' it works. so how do i check whether dt has a value ? since 'dt != null' does not work. (assuming there is always at least 1 destructable in rt)
 

Baltazhar

Active Member
Reaction score
55
I'm afraid that I don't know any Jass - Perhaps you should try asking in the Jass part of the forum? =)

- Balt
 

Wynd

New Member
Reaction score
1
There may be a more straightforward way to do what you want (and I suspect there is), but a quick solution until someone better at Jass can help you would be to count the number of destructibles in the area prior to your attempt to select one. If there are none there, obviously dt isn't going to be set to anything and you can skip that portion of the code.
 

NetherHawk

New Member
Reaction score
26
@@ Wynd : there is no count destrutibles or destructible group native. nxt i want to add some coding for the trigger to do other actions if there are no destrutibles in the area. so i cant skip that portion of the code.
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
there is no count destrutibles or destructible group native.

Make your own function for that! ^^

JASS:
function MainFunction takes something returns something 
    set udg_destrucinteger = 0
    call EnumDestructablesInRect(YourRect, null, function CountEnumDestructables) //null can be replaced with w/e condition you might want
    if udg_destrucinteger > 0 then
        YourFunctionsHere
        set udg_destrucinteger = 0
    endif
endfunction


then
JASS:
function CountEnumDestructables takes nothing returns nothing //for each destructable enumerated in the Enum function, this function is ran once, so each time its ran, udg_destrucinteger's value will increase by 1
    set udg_destrucinteger = udg_destrucinteger + 1
endfunction


Btw, does anyone know if functions called through Enum's can use the locals from where it was called? I mean, the inability of taking any parameters is pretty annoying (I know i can use attachments, but thats useless trouble...)
 

Wynd

New Member
Reaction score
1
Trigger:
  • Actions
    • Set destCount = 0
    • Destructible - Pick every destructible in (yourArea) and do (Set destCount = (destCount + 1))


Would that work? Should give a count of the destructibles in a given region. If you need to check for a specific destructible, use Pick ever dest and do multiple actions. That'll allow you to set conditions.
 

bOb666777

Stand against the ugly world domination face!
Reaction score
117
@Wynd
That's exactly what I did, except mine's in jass

Depends if he absolutely want it in jass, or if gui's fine :p
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top