• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Link 2 units together in a chain!

Level 10
Joined
Jun 20, 2017
Messages
337
I have an ability that can regenerate a selected target's hit points by 6 per second (You can only regenerate a specific structure within 500 range) if the caster or selected target is destroyed, it breaks the bond.

An upgrade that can increase regeneration rate by 1 per upgrade (4 level) each upgrade changes the model or color of the lightning/special effect.
A dummy unit that can increase regeneration rate by 5 per training (The limit should be 10) when it reaches the maximum, the model or color of the lightning/special effect will change.
A bonus that can increase regeneration rate by 10/9/8 (For example if you build the first unit in the game you will get 10 regeneration rate).
A command where you can see the current regeneration amount.
  • Setup Link
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Set VariableSet Real_HPRegCurrent = 6.00
      • -------- --------
      • Set VariableSet Integer_TotalUpgrade = 4
      • Set VariableSet Real_HPRegUpgrade[1] = 1.00
      • Set VariableSet Real_HPRegUpgrade[2] = 1.00
      • Set VariableSet Real_HPRegUpgrade[3] = 1.00
      • Set VariableSet Real_HPRegUpgrade[4] = 1.00
      • -------- --------
      • Set VariableSet Integer_TotalUpgradeDummy = 10
      • Set VariableSet Real_HPRegUpgradeDummy[1] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[2] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[3] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[4] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[5] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[6] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[7] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[8] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[9] = 5.00
      • Set VariableSet Real_HPRegUpgradeDummy[10] = 5.00
      • -------- --------
      • Set VariableSet Real_HPRegBonus[1] = 10.00
      • Set VariableSet Real_HPRegBonus[2] = 9.00
      • Set VariableSet Real_HPRegBonus[3] = 8.00
      • -------- --------
      • Player Group - Pick every player in (All players) and do (Actions)
        • Loop - Actions
          • Set VariableSet PickedPlayer = (Picked player)
          • -------- --------
          • Player - Limit training of [Dummy] Regeneration to 10 for PickedPlayer
  • Link
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Regeneration [Channel]
    • Actions
      • Lightning - Destroy LastCreatedLightningEffect
      • -------- --------
      • Set VariableSet CastingUnit = (Casting unit)
      • Set VariableSet TargetUnitOfAbilityBeingCast = (Target unit of ability being cast)
      • -------- --------
      • Set VariableSet CustomValueOfUnit = (Custom value of CastingUnit)
      • Set VariableSet Units_LinkCaster[CustomValueOfUnit] = CastingUnit
      • Set VariableSet Units_LinkTarget[CustomValueOfUnit] = TargetUnitOfAbilityBeingCast
      • -------- --------
      • Set VariableSet CustomValueOfUnit = (Custom value of TargetUnitOfAbilityBeingCast)
      • Set VariableSet Units_LinkCaster[CustomValueOfUnit] = CastingUnit
      • Set VariableSet Units_LinkTarget[CustomValueOfUnit] = TargetUnitOfAbilityBeingCast
      • -------- --------
      • Unit Group - Add CastingUnit to UnitGroup_Link
      • Unit Group - Add TargetUnitOfAbilityBeingCast to UnitGroup_Link
      • -------- --------
      • Set VariableSet PositionOfUnit = (Position of CastingUnit)
      • Set VariableSet TargetPointOfAbilityBeingCast = (Target point of ability being cast)
      • Set VariableSet SetX = (X of TargetPointOfAbilityBeingCast)
      • Set VariableSet SetY = (Y of TargetPointOfAbilityBeingCast)
      • Lightning - Create a Chain Lightning - Secondary lightning effect from source PositionOfUnit to target TargetPointOfAbilityBeingCast
      • Set VariableSet LastCreatedLightningEffect = (Last created lightning effect)
      • Custom script: call RemoveLocation(udg_TargetPointOfAbilityBeingCast)
      • Custom script: call RemoveLocation(udg_PositionOfUnit)
      • -------- --------
      • Trigger - Turn on Link Regeneration <gen>
  • Link Regeneration
    • Events
      • Time - Every 1.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in UnitGroup_Link) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
          • Custom script: set bj_wantDestroyGroup = true
          • Unit Group - Pick every unit in UnitGroup_Link and do (Actions)
            • Loop - Actions
              • Set VariableSet PickedUnit = (Picked unit)
              • Set VariableSet CustomValueOfUnit = (Custom value of PickedUnit)
              • -------- --------
              • Unit - Set Unit: PickedUnit's Real Field: Hit Points Regeneration Rate ('uhpr') to Value: Value
              • -------- --------
              • Unit Group - Remove PickedUnit from UnitGroup_Link.
  • Link Upgrades
    • Events
      • Unit - A unit Finishes research
    • Conditions
    • Actions
      • Set VariableSet ResearchingUnit = (Researching unit)
      • Set VariableSet PositionOfUnit = (Position of ResearchingUnit)
      • -------- --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units owned by (Owner of ResearchingUnit) of type Fountain) and do (Actions)
        • Loop - Actions
          • Set VariableSet PickedUnit = (Picked unit)
          • Set VariableSet CustomValueOfUnit = (Custom value of PickedUnit)
          • Set VariableSet PositionOfUnit2 = (Position of PickedUnit)
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Researched tech-type) Equal to Fountain's Technology [Level 1]
            • Then - Actions
              • Lightning - Destroy LastCreatedLightningEffect
              • Lightning - Create a Lightning Attack lightning effect from source PositionOfUnit to target PositionOfUnit2
              • Set VariableSet LastCreatedLightningEffect = (Last created lightning effect)
            • Else - Actions
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Researched tech-type) Equal to Fountain's Technology [Level 2]
            • Then - Actions
              • Lightning - Destroy LastCreatedLightningEffect
              • Lightning - Create a Drain Life lightning effect from source PositionOfUnit to target PositionOfUnit2
              • Set VariableSet LastCreatedLightningEffect = (Last created lightning effect)
            • Else - Actions
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Researched tech-type) Equal to Fountain's Technology [Level 3]
            • Then - Actions
              • Lightning - Destroy LastCreatedLightningEffect
              • Lightning - Create a Drain Mana lightning effect from source PositionOfUnit to target PositionOfUnit2
              • Set VariableSet LastCreatedLightningEffect = (Last created lightning effect)
            • Else - Actions
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Researched tech-type) Equal to Fountain's Technology [Level 4]
            • Then - Actions
              • Lightning - Destroy LastCreatedLightningEffect
              • Lightning - Create a Finger of Death lightning effect from source PositionOfUnit to target PositionOfUnit2
              • Set VariableSet LastCreatedLightningEffect = (Last created lightning effect)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_PositionOfUnit2)
      • -------- --------
      • Custom script: call RemoveLocation(udg_PositionOfUnit)
  • Link Upgrades Dummy
    • Events
      • Unit - A unit Finishes training a unit
    • Conditions
      • (Unit-type of (Trained unit)) Equal to [Dummy] Regeneration
    • Actions
      • Set VariableSet TrainedUnit = (Trained unit)
      • Set VariableSet PositionOfUnit = (Position of TrainedUnit)
      • -------- --------
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units owned by (Owner of TrainedUnit) of type Fountain) and do (Actions)
        • Loop - Actions
          • Set VariableSet PickedUnit = (Picked unit)
          • Set VariableSet CustomValueOfUnit = (Custom value of PickedUnit)
          • Set VariableSet PositionOfUnit2 = (Position of PickedUnit)
          • -------- --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Integer_TotalUpgradeDummy Equal to 10
            • Then - Actions
              • Player - Make [Dummy] Regeneration Unavailable for training/construction by (Owner of PickedUnit)
              • -------- --------
              • Lightning - Destroy LastCreatedLightningEffect
              • Lightning - Create a Mana Flare lightning effect from source PositionOfUnit to target PositionOfUnit2
              • Set VariableSet LastCreatedLightningEffect = (Last created lightning effect)
            • Else - Actions
          • Custom script: call RemoveLocation(udg_PositionOfUnit2)
      • -------- --------
      • Custom script: call RemoveLocation(udg_PositionOfUnit)
  • Link Bonus Level
    • Events
      • Unit - A unit Finishes construction
    • Conditions
      • (Unit-type of (Constructed structure)) Equal to Fountain
    • Actions
      • Set VariableSet ConstructedStructure = (Constructed structure)
      • Set VariableSet CustomValueOfUnit = (Custom value of ConstructedStructure)
      • -------- --------
      • -------- Remove rally --------
      • Unit - Remove Rally from ConstructedStructure
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
        • Then - Actions
          • Sound - Play gg_snd_Hint
          • Set VariableSet LastPlayedSound = (Last played sound)
          • Sound - Set volume of LastPlayedSound to 100.00%
          • Sound - Destroy LastPlayedSound
          • -------- --------
          • Game - Display to (All players) the text: ((Strings_PlayersColor[(Player number of (Owner of ConstructedStructure))] + ((Name of (Owner of ConstructedStructure)) + |r)) + ( has created the first Fountain at + (((String(Integers_Hours[1])) + ((String(Integers_Hours[0])) + :)) + (((String(Integers_Min
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
            • Then - Actions
              • Sound - Play gg_snd_Hint
              • Set VariableSet LastPlayedSound = (Last played sound)
              • Sound - Set volume of LastPlayedSound to 100.00%
              • Sound - Destroy LastPlayedSound
              • -------- --------
              • Game - Display to (All players) the text: ((Strings_PlayersColor[(Player number of (Owner of ConstructedStructure))] + ((Name of (Owner of ConstructedStructure)) + |r)) + ( has created the second Fountain at + (((String(Integers_Hours[1])) + ((String(Integers_Hours[0])) + :)) + (((String(Integers_Mi
            • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                • Then - Actions
                  • Sound - Play gg_snd_Hint
                  • Set VariableSet LastPlayedSound = (Last played sound)
                  • Sound - Set volume of LastPlayedSound to 100.00%
                  • Sound - Destroy LastPlayedSound
                  • -------- --------
                  • Game - Display to (All players) the text: ((Strings_PlayersColor[(Player number of (Owner of ConstructedStructure))] + ((Name of (Owner of ConstructedStructure)) + |r)) + ( has created the third Fountain at + (((String(Integers_Hours[1])) + ((String(Integers_Hours[0])) + :)) + (((String(Integers_Min
                • Else - Actions
  • Link Disconnect
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Dying unit)) Equal to Fountain
          • (Unit-type of (Dying unit)) Equal to Wall (9)
    • Actions
      • Lightning - Destroy LastCreatedLightningEffect
  • Link CMD
    • Events
      • Player - Player 1 (Red) types a chat message containing -b as An exact match
      • Player - Player 1 (Red) types a chat message containing -bonus as An exact match
    • Conditions
    • Actions
      • Set VariableSet TriggeringPlayer = (Triggering player)
      • -------- --------
      • Set VariableSet PlayerGroup_Message = (Player group(TriggeringPlayer))
      • Game - Display to (All players) the text: ((Strings_PlayersColor[(Player number of TriggeringPlayer)] + ((Name of TriggeringPlayer) + |r)) + (current regeneration rate is + (String(Real_HPRegCurrent))))
      • Custom script: call DestroyForce(udg_PlayerGroup_Message)
 

Attachments

  • Fountain.w3m
    39.8 KB · Views: 0
Last edited:
Top