• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!
btdonald
Reaction score
6

Profile posts Latest activity Postings Experience Albums Resources About

  • Hello, I would like to ask you for your project Element Crush. Is it going to be released any day? Thanks anyway
    do you have facebook or hotmail or skype or raidcall or curse voice?
    or any kind of chat that we can discuss about the project in real time?
    maybe garena messenger would be better so we can test the map together!! (this is the best option download it if you dont have)
    HashTables store boatloads of data if needed. I've had a hashtable store tens of thousands of values for my Retro library. No one has ever hit any limit other than the number of hashtables you can create (and Table obviously eliminates that weakness).
    k I found the problem. .periodic needs to be above any method which references it, otherwise it screws up the return value of GetTriggeringTrigger. Basically, make sure you sort top->bottom in your precedence to avoid compile-time trigger evaluations.
    please link me the full script which uses the tb variable as I don't have WC3 installed to open your map right now. What you shared with me was written the way it should be - but I'm wondering if another function is messing with tb to make it work improperly.
    Ohh no I thought you were going to rewrite your spawn system to include a a feature that makes it so that the waves dont spawn until the previous wave is dead ?
    Ohh its 1:15 AM where you are ? I was just wondering how much you got done on the system :p
    You clearly have not.
    I am glad that you do use my models, but it is really up to you to do those icons.
    it's your work not mine. YOu have to be pleased by your work, not me.
    I really did not want to sound like a jerk in chat, but you have to understand that I really do not care for other people's business. Especially people that I don't know that well.
    Spawn System 1
    Events
    Time - Elapsed game time is 1.00 seconds
    Conditions
    Actions
    Set SpawnSystem_Owner = Player 1 (Red)
    Set SpawnSystem_UnitType = Pig
    Set SpawnSystem_UnitTypeLimit = 6
    Set SpawnSystem_SpawnInterval = 1.00
    Set SpawnSystem_Amount = 1
    Set SpawnSystem_Location = (Center of Spawn 1 <gen>)
    Set SpawnSystem_SFX = <Empty String>
    Trigger - Run Spawn System Filter <gen> (checking conditions)
    Spawn System Filter
    Events
    Conditions
    Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_Counter Equal to 0
    Then - Actions
    Trigger - Turn on Spawn System Loop <gen>
    Else - Actions
    Set SpawnSystem_Counter = (SpawnSystem_Counter + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_Counter Greater than SpawnSystem_IndexMax
    Then - Actions
    Set SpawnSystem_Index[SpawnSystem_Counter] = SpawnSystem_Counter
    Set SpawnSystem_IndexMax = SpawnSystem_Counter
    Else - Actions
    Set SpawnSystem_LoopInt = SpawnSystem_Index[SpawnSystem_Counter]
    Set SpawnSystem_TempOwner[SpawnSystem_LoopInt] = SpawnSystem_Owner
    Set SpawnSystem_TempUT[SpawnSystem_LoopInt] = SpawnSystem_UnitType
    Set SpawnSystem_TempUTL[SpawnSystem_LoopInt] = SpawnSystem_UnitTypeLimit
    Set SpawnSystem_TempSI[SpawnSystem_LoopInt] = SpawnSystem_SpawnInterval
    Set SpawnSystem_TempAmount[SpawnSystem_LoopInt] = SpawnSystem_Amount
    Set SpawnSystem_TempLocation[SpawnSystem_LoopInt] = SpawnSystem_Location
    Set SpawnSystem_TempSFX[SpawnSystem_LoopInt] = SpawnSystem_SFX
    Spawn System Loop
    Events
    Time - Every 0.03 seconds of game time
    Conditions
    Actions
    For each (Integer SpawnSystemLoop[1]) from 1 to SpawnSystem_Counter, do (Actions)
    Loop - Actions
    Set SpawnSystem_LoopInt = SpawnSystem_Index[SpawnSystemLoop[1]]
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_TimeLoop[SpawnSystem_LoopInt] Greater than or equal to SpawnSystem_TempSI[SpawnSystem_LoopInt]
    Then - Actions
    Set SpawnSystem_TimeLoop[SpawnSystem_LoopInt] = 0.00
    For each (Integer SpawnSystemLoop[2]) from 1 to SpawnSystem_TempAmount[SpawnSystem_LoopInt], do (Actions)
    Loop - Actions
    Set SpawnSystem_Group[SpawnSystem_LoopInt] = (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Equal to SpawnSystem_TempUT[SpawnSystem_LoopInt]) and (((Owner of (Matching unit)) Equal to SpawnSystem_TempOwner[SpawnSystem_LoopInt]) and (((Matching unit) is alive) Equal to True))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    (Number of units in SpawnSystem_Group[SpawnSystem_LoopInt]) Less than SpawnSystem_TempUTL[SpawnSystem_LoopInt]
    Then - Actions
    Unit - Create 1 SpawnSystem_TempUT[SpawnSystem_LoopInt] for SpawnSystem_TempOwner[SpawnSystem_LoopInt] at SpawnSystem_TempLocation[SpawnSystem_LoopInt] facing Default building facing degrees
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_TempSFX[SpawnSystem_LoopInt] Not equal to <Empty String>
    Then - Actions
    Special Effect - Create a special effect at SpawnSystem_TempLocation[SpawnSystem_LoopInt] using SpawnSystem_TempSFX[SpawnSystem_LoopInt]
    Special Effect - Destroy (Last created special effect)
    Else - Actions
    Else - Actions
    Else - Actions
    Set SpawnSystem_TimeLoop[SpawnSystem_LoopInt] = (SpawnSystem_TimeLoop[SpawnSystem_LoopInt] + 0.03)


    Sorry :/ I had to remove the comments because the post was too long.
    I added wait times in between the unit types so that the index doesn't +1 until the wait time is over. However, I think when combined with the "units don't start spawning again until the wave is dead" feature, it bugged out. I have been trying to recreate it all day, and this is all I got. Let me know what you think
    All right! I'll make sure to send you a map :p its a 2 player game. My friend and I are making it because we want to make the perfect survival map for us :D
    I guess more of a hero survival. The map is basically a "defend the chokepoint" kind of mod. I spawn units at X and then they attack at Y. Unfortunately, the traditional "attack-move" trigger makes the units act REALLY derpy when they cant reach their attacking target.

    EX: If I build walls at the chokepoint, and then place towers behind it, the wave will try to attack the tower that they obviously can't reach. They look really derpy and just walts around until the game's code finally makes them attack my wall :p
    Yes I did x) I changed up your trigger a bit to my liking. No worry! I will still credit you :p it's like 98% your system still. Thanks ! Now I just need to find a move system ;_;


    Spawn Sytem Check
    Events
    Unit - A unit Dies
    Conditions
    ((Triggering unit) is in SpawnSystem_Group) Equal to True
    Actions
    Unit Group - Remove (Triggering unit) from SpawnSystem_Group
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    (SpawnSystem_Group is empty) Equal to True
    Then - Actions
    Trigger - Turn on Spawn Sytem Loop <gen>
    Else - Actions

    Spawn Sytem Loop
    Events
    Time - Every 0.03 seconds of game time
    Conditions
    Actions
    For each (Integer SpawnSystem_Loop[1]) from 1 to SpawnSystem_Index, do (Actions)
    Loop - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_SpawnOn[SpawnSystem_Loop[1]] Equal to True
    Then - Actions
    Set SpawnSystem_Counter = (SpawnSystem_Counter + 1.00)
    Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_LoopTime[SpawnSystem_Loop[1]] Greater than or equal to SpawnSystem_SpawnInterval[SpawnSystem_Loop[1]]
    Then - Actions
    Set SpawnSystem_LoopTime[SpawnSystem_Loop[1]] = 0.00
    For each (Integer SpawnSystem_Loop[2]) from 1 to SpawnSystem_UnitPerSpawn[SpawnSystem_Loop[1]], do (Actions)
    Loop - Actions
    Set SpawnSystem_SpawnLocation = (Center of SpawnSystem_Location[SpawnSystem_Loop[1]])
    Unit - Create 1 SpawnSystem_UnitType[SpawnSystem_Loop[1]] for SpawnSystem_Owner at SpawnSystem_SpawnLocation facing Default building facing degrees
    Set SpawnSystem_Group = (Units in (Playable map area) matching (((Unit-type of (Matching unit)) Equal to SpawnSystem_UnitType[SpawnSystem_Loop[1]]) and (((Owner of (Matching unit)) Equal to SpawnSystem_Owner) and (((Matching unit) is alive) Equal to True))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_SFX[SpawnSystem_Loop[1]] Not equal to <Empty String>
    Then - Actions
    Special Effect - Create a special effect at SpawnSystem_SpawnLocation using SpawnSystem_SFX[SpawnSystem_Loop[1]]
    Special Effect - Destroy (Last created special effect)
    Else - Actions
    Custom script: call RemoveLocation (udg_SpawnSystem_SpawnLocation)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    (Number of units in SpawnSystem_Group) Equal to SpawnSystem_UnitLimit[SpawnSystem_Index]
    Then - Actions
    Trigger - Turn off (This trigger)
    Else - Actions
    Else - Actions
    Set SpawnSystem_LoopTime[SpawnSystem_Loop[1]] = (SpawnSystem_LoopTime[SpawnSystem_Loop[1]] + 0.03)

    Spawn System Init
    Events
    Time - Elapsed game time is 1.00 seconds
    Conditions
    Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    If - Conditions
    SpawnSystem_Index Equal to 0
    Then - Actions
    Trigger - Turn on Spawn Sytem Loop <gen>
    Else - Actions
    -------- ---------- --------
    -------- Owner --------
    Set SpawnSystem_Owner = Player 1 (Red)
    -------- --------- --------
    -------- Tier 1 --------
    Set SpawnSystem_Index = (SpawnSystem_Index + 1)
    Set SpawnSystem_SpawnOn[SpawnSystem_Index] = True
    Set SpawnSystem_UnitType[SpawnSystem_Index] = Pig
    Set SpawnSystem_UnitLimit[SpawnSystem_Index] = 5
    Set SpawnSystem_Location[SpawnSystem_Index] = Spawn <gen>
    Set SpawnSystem_SpawnInterval[SpawnSystem_Index] = 0.50
    Set SpawnSystem_UnitPerSpawn[SpawnSystem_Index] = 1
    Set SpawnSystem_SFX[SpawnSystem_Index] = <Empty String>
    -------- ----------- --------
    Hey btdonald! Your spawn system is perfect for my map under the condition that the waves don't begin to spawn until after the previous wave is dead. Any idea how to do this? I've spent hours trying to figure out, but I just can't get it to work ;_;

    EDIT: I got it! :D
    ----------
    I think you should make an extension version of this system ^^!
    ----------
    Extension version? What do you mean?
    Sweet, I was thinking about making a trigger so the AI knows when the enemy powers are available and how much damage they can deal, I was actually making it so when the hero is choosen and leves up a skills and uses it a timer is run, if the timer is 0 the ability is "available" as a mark for the AI, not only to know when to force an order but also for the AI to evaluate the damage and go for targets that have wasted their damage potential so that the pc can elminate them, also for the AI to calculate total combo damage versus resistances, so that the AI can one-shot an enemy hero as a priority.
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
  • Loading…
Top