• 🏆 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!

My New RPG, Need Help

Status
Not open for further replies.
Level 2
Joined
Dec 10, 2010
Messages
16
Well, I'm currently making an RPG map based loosely on the world of Harry Potter (no infringement intended), though mashed with WOW style, meaning you are an individual witch/wizard. I've got no problem with the terrain, but I find trouble with the spells.

Regarding them, I plan on making them Elune's Arrow (in DotA) like, so every offensive spell would be just like that (with jets of light though, not arrows), except that they bounce off solid doodads and also when they collide. Unfortunately, I don't know the triggers for that kind of ability, much less know the trigger to make it rebound. Perhaps some help?

I am also planning the Save/Load function, so that players may continue their journey.
 
Level 1
Joined
Nov 29, 2008
Messages
7
I have something similiar in my DotA; RPG map, if i get the time later ill post the trigger for you, although it is JASS. Hope you know how to use that.
 
Level 19
Joined
Apr 10, 2010
Messages
2,789
!! UPDATED !!
Here i've got it for you: If you want to download the Priestess of the Moon Spellpack click here.

  • Elune Arrow
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Elune Arrow
    • Actions
      • Set EluneArrow_Counts = (EluneArrow_Counts + 1)
      • Set EluneArrow_Caster[EluneArrow_Counts] = (Casting unit)
      • Set EluneArrow_CasterLoc = (Position of EluneArrow_Caster[EluneArrow_Counts])
      • Set EluneArrow_TargetPoint = (Target point of ability being cast)
      • Set EluneArrow_Angle = (Angle from EluneArrow_CasterLoc to EluneArrow_TargetPoint)
      • Unit - Create 1 Elune Arrow for (Owner of EluneArrow_Caster[EluneArrow_Counts]) at EluneArrow_CasterLoc facing EluneArrow_Angle degrees
      • Unit - Set the custom value of (Last created unit) to EluneArrow_Counts
      • Unit Group - Add (Last created unit) to EluneArrow_StartGroup
      • Set EluneArrow_Distance[EluneArrow_Counts] = 2300.00
      • Set EluneArrow_DistanceTravel[EluneArrow_Counts] = 0.00
      • Set EluneArrow_StunDuration[EluneArrow_Counts] = 1
      • Set EluneArrow_DistanceCount[EluneArrow_Counts] = 0.00
      • Trigger - Turn on Elune Arrow Move <gen>
      • Custom script: call RemoveLocation (udg_EluneArrow_CasterLoc)
      • Custom script: call RemoveLocation (udg_EluneArrow_TargetPoint)
  • Elune Arrow Move
    • Events
      • Time - Every 0.02 seconds of game time
    • Conditions
    • Actions
      • Unit Group - Pick every unit in EluneArrow_StartGroup and do (Actions)
        • Loop - Actions
          • Set EluneArrow_CustomValue = (Custom value of (Picked unit))
          • Set EluneArrow_DummyLoc = (Position of (Picked unit))
          • Set EluneArrow_Movement = (EluneArrow_DummyLoc offset by 20.00 towards (Facing of (Picked unit)) degrees)
          • Unit - Move (Picked unit) instantly to EluneArrow_Movement
          • Set EluneArrow_DistanceTravel[EluneArrow_CustomValue] = (EluneArrow_DistanceTravel[EluneArrow_CustomValue] + 18.00)
          • Set EluneArrow_DistanceCount[EluneArrow_CustomValue] = (EluneArrow_DistanceCount[EluneArrow_CustomValue] + 18.00)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • EluneArrow_DistanceCount[EluneArrow_CustomValue] Greater than or equal to 225.00
            • Then - Actions
              • Set EluneArrow_StunDuration[EluneArrow_CustomValue] = (EluneArrow_StunDuration[EluneArrow_CustomValue] + 1)
              • Set EluneArrow_DistanceCount[EluneArrow_CustomValue] = 0.00
            • Else - Actions
          • Set EluneArrow_UnitGroup = (Units within 150.00 of EluneArrow_Movement matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of EluneArrow_Caster[EluneArrow_CustomValue])) Equal
          • Set EluneArrow_RandomUnit = (Random 1 units from EluneArrow_UnitGroup)
          • Unit Group - Pick every unit in EluneArrow_RandomUnit and do (Actions)
            • Loop - Actions
              • Unit - Cause EluneArrow_Caster[EluneArrow_CustomValue] to damage (Picked unit), dealing (90.00 x (Real((Level of Elune Arrow for EluneArrow_Caster[EluneArrow_CustomValue])))) damage of attack type Spells and damage type Normal
              • Unit - Create 1 Dummy for (Owner of EluneArrow_Caster[EluneArrow_CustomValue]) at EluneArrow_Movement facing Default building facing degrees
              • Unit - Add Elune Arrow Stun to (Last created unit)
              • Unit - Set level of Elune Arrow Stun for (Last created unit) to EluneArrow_StunDuration[EluneArrow_CustomValue]
              • Unit - Order (Last created unit) to Human Mountain King - Storm Bolt (Picked unit)
              • Unit - Add a 1.50 second Generic expiration timer to (Last created unit)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • EluneArrow_DistanceTravel[EluneArrow_CustomValue] Greater than or equal to EluneArrow_Distance[EluneArrow_CustomValue]
                  • (Number of units in EluneArrow_UnitGroup) Greater than 0
            • Then - Actions
              • Unit - Kill (Picked unit)
              • Unit Group - Remove (Picked unit) from EluneArrow_StartGroup
            • Else - Actions
          • Custom script: call RemoveLocation (udg_EluneArrow_DummyLoc)
          • Custom script: call RemoveLocation (udg_EluneArrow_Movement)
          • Custom script: call DestroyGroup (udg_EluneArrow_UnitGroup)
          • Custom script: call DestroyGroup (udg_EluneArrow_RandomUnit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in EluneArrow_StartGroup) Equal to 0
        • Then - Actions
          • Trigger - Turn off (This trigger)
        • Else - Actions
 
Last edited:
Status
Not open for further replies.
Top