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

Xtreme Marksmen 1.1d

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
There has been many improvements since the first release of this map.

In this map you basically snipe your enemies.
There is currently FFA mode and Team Deathmatch mode where you have to reach a certain amout of kills to win.The game should be balanced and there shouldn't be any bugs.

There will be more items in the later versions.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\CREDITS: \\\\
\\Sniper model : qassamzed \\\\
\\Bullet model : Talon the Mage\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Keywords:
Xtreme Marksmen
Contents

Xtreme Marksmen 1.1d (Map)

Reviews
11:21, 10th Oct 2009 ap0calypse: Rejected (until updated) Not fit for approval for a while, work on it some more and I'll test the next version. Don't be hasty, only when you are sure the map can get approved, you can update this.

Moderator

M

Moderator

11:21, 10th Oct 2009
ap0calypse: Rejected (until updated)

Not fit for approval for a while, work on it some more and I'll test the next version.
Don't be hasty, only when you are sure the map can get approved, you can update this.
 
Level 3
Joined
Jul 28, 2008
Messages
37
I give it a try..I think you should rather call it "Marksmen" though, without the "s".
 
Yeah, Marksmen, without the "S"... And, try to make lives, if a sniper dies, he looses 1 life, and the last sniper alive wins, i really don't know how to make a simple GUI for the last alive in 1 trigger, i can make it in 12 triggers but it's too long... And make an ending cinematic with the winner so all can know the winner, instead of instant defeat...
And i like the "They killed kanny" cinematic, (Southpark)
 
Last edited:
Level 16
Joined
Jan 31, 2009
Messages
1,792
Yeah, Marksmen, without the "S"... And, try to make lives, if a sniper dies, he looses 1 life, and the last sniper alive wins, i really don't know how to make a simple GUI for the last alive in 1 trigger, i can make it in 12 triggers but it's too long... And make an ending cinematic with the winner so all can know the winner, instead of instant defeat...
And i like the "They killed kanny" cinematic, (Southpark)


I'm still a noob GUI guy so when i learn how to do the lives and stuff i'll add it in
Hey can you send me the 12 trigger version of yours, i might be able to make it smaller

I am leaving the 'S' in Marksmen lol
 
Level 1
Joined
Oct 9, 2009
Messages
2
Mad ?

Dude This Game is awesome and mad, u should try make a winning condition? lol :thumbs_up: GJ MAN :D
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
The terrain is really bad, it only has 1 real tileset (grass cliff and shop bricks not counted).
I suppose the triggers aren't good either, since apparantly you don't know how to add lives, meaning you don't know how to use variables (properly).


You can add the life-trigger and victory/defeat trigger and multiboard update trigger into 1 trigger, by the way... (yeah, that's a bit more efficient than Bugbuster96's 12 triggers + lives trigger).
Anyhow, it's supposed to be something like this:

Add this action in the trigger with "Map Init":

  • Set Players = (All players matching ((((Matching player) controller) Equal to User) and (((Matching player) slot status) Equal to Is playing)))

This is the "Sniper Dies"-trigger:

  • Sniper Dies
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Footman
    • Actions
      • Set lives[(Player number of (Owner of (Dying unit)))] = (lives[(Player number of (Owner of (Dying unit)))] - 1)
      • Set kills[(Player number of (Owner of (Killing unit)))] = (kills[(Player number of (Owner of (Killing unit)))] + 1)
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row (1 + (Player number of (Owner of (Killing unit)))) to (String(kills[(Player number of (Owner of (Killing unit)))]))
      • Multiboard - Set the text for (Last created multiboard) item in column 3, row (1 + (Player number of (Owner of (Dying unit)))) to (String(lives[(Player number of (Owner of (Dying unit)))]))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • lives[(Player number of (Owner of (Dying unit)))] Equal to 0
        • Then - Actions
          • Player Group - Remove (Owner of (Dying unit)) from Players
          • Player Group - Add (Owner of (Dying unit)) to Defeated
          • Visibility - Create an initially Enabled visibility modifier for (Owner of (Dying unit)) emitting Visibility across (Playable map area)
          • Multiboard - Set the icon for (Last created multiboard) item in column 1, row (1 + (Player number of (Owner of (Dying unit)))) to ReplaceableTextures\CommandButtons\BTNCancel.blp
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row (1 + (Player number of (Owner of (Dying unit)))) to (|c00666666 + ((Name of (Owner of (Dying unit))) + |r))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of players in Players) Equal to 1
            • Then - Actions
              • Game - Display to (All players) for 10.00 seconds the text: ((Name of (Owner of (Killing unit))) + has won, the game will end in 5 seconds)
              • Wait 5.00 seconds
              • Player Group - Pick every player in Players and do (Actions)
                • Loop - Actions
                  • Game - Victory (Picked player) (Show dialogs, Show scores)
              • Player Group - Pick every player in Defeated and do (Actions)
                • Loop - Actions
                  • Game - Defeat (Picked player) with the message: Defeat!
            • Else - Actions
        • Else - Actions
          • For each (Integer i) from 1 to 20, do (Actions)
            • Loop - Actions
              • Set loc[1] = (Random point in (Playable map area))
              • Set Group = (Units within 600.00 of loc[1])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • i Less than 20
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in Group) Greater than 0
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Dying unit) is alive) Equal to False
                        • Then - Actions
                          • Hero - Instantly revive (Dying unit) at loc[1], Show revival graphics
                          • Camera - Pan camera for (Owner of (Dying unit)) to loc[1] over 0.00 seconds
                          • Selection - Select (Dying unit) for (Owner of (Dying unit))
                        • Else - Actions
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Dying unit) is alive) Equal to False
                    • Then - Actions
                      • Hero - Instantly revive (Dying unit) at loc[1], Show revival graphics
                      • Camera - Pan camera for (Owner of (Dying unit)) to loc[1] over 0.00 seconds
                      • Selection - Select (Dying unit) for (Owner of (Dying unit))
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_loc[1])
              • Custom script: call DestroyGroup(udg_Group)
I didn't test it, but I believe it does this when a sniper dies:
  • Increases the kills of the killer by 1 (and update it in the multiboard)
  • Decrease the lives of the dying sniper by 1 (and update it in the multiboard - you'll need to add a column for it).
  • When there is only 1 sniper left, the game will end in 5 seconds
  • It will instantly revive the sniper, it also checks whether there are nearby snipers nearby (so you won't spawn near another sniper, unless you're out of luck).
  • When a player runs out of lives, he will be added to another group (as a spectator), his name on the multiboard will be gray and his icon will be the cancel-button.

Also, the camera-trigger isn't really good, I prefer this trigger:

  • CamZ
    • Events
      • Player - Player 1 (Red) types a chat message containing -distance as A substring
    • Conditions
    • Actions
      • -------- Maximum Value (Camera can't zoom out further) --------
      • Set Values[1] = 3000.00
      • -------- Minimum Value (Camera can't zoom in further) --------
      • Set Values[2] = 500.00
      • -------- Do not change below this line --------
      • For each (Integer A) from 1 to (Length of (Entered chat string)), do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Substring((Entered chat string), (Integer A), (Integer A))) Equal to
            • Then - Actions
              • Set Camera_Distance = (Real((Substring((Entered chat string), ((Integer A) + 1), (Length of (Entered chat string))))))
            • Else - Actions
      • Camera - Set (Triggering player)'s camera Distance to target to Camera_Distance over 0.20 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Camera_Distance Greater than or equal to Values[1]
        • Then - Actions
          • Camera - Set (Triggering player)'s camera Distance to target to Values[1] over 0.20 seconds
          • Set Camera_Distance = Values[1]
          • Game - Display to (All players matching ((Triggering player) Equal to (Matching player))) for 6.00 seconds the text: |c00ff0000Zoomed ou...
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Camera_Distance Less than or equal to Values[2]
            • Then - Actions
              • Camera - Set (Triggering player)'s camera Distance to target to Values[2] over 0.20 seconds
              • Set Camera_Distance = Values[2]
              • Game - Display to (All players matching ((Triggering player) Equal to (Matching player))) for 6.00 seconds the text: |c00ff0000Zoomed in...
            • Else - Actions
- You can change the command to absolutely anything (spaces/no spaces/any symbols/...), the trigger will change itself to the length of the command, so you don't need to do anything else ^^
If you type -distance 2600 (for example), your camera zoom will be set to 2600 (standard minimum of 500 and maximum of 3000).
Note: you need to copy/paste the event for all players (not the trigger, only the event...).
If anyone could tell me how to make the ability to shoot like CS assualt
Could you explain how you shoot in CS Assault? Is it just something like "click on the button" -> a bullet will fly in the direction you are facing?


Things that need to be changed before approval:

  • The terrain (definitely).
  • More abilities.
  • A better description (read my tutorial, in my signature for it).
  • Perhaps some game-modes.

Rejected (until updated)
Note: I like sniper-maps, that's the reason for the (until updated), I expect the next version to be completely different ^^
 
Level 16
Joined
Jan 31, 2009
Messages
1,792
The terrain is really bad, it only has 1 real tileset (grass cliff and shop bricks not counted).
I suppose the triggers aren't good either, since apparantly you don't know how to add lives, meaning you don't know how to use variables (properly).


You can add the life-trigger and victory/defeat trigger and multiboard update trigger into 1 trigger, by the way... (yeah, that's a bit more efficient than Bugbuster96's 12 triggers + lives trigger).
Anyhow, it's supposed to be something like this:

Add this action in the trigger with "Map Init":

  • Set Players = (All players matching ((((Matching player) controller) Equal to User) and (((Matching player) slot status) Equal to Is playing)))

This is the "Sniper Dies"-trigger:

  • Sniper Dies
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Footman
    • Actions
      • Set lives[(Player number of (Owner of (Dying unit)))] = (lives[(Player number of (Owner of (Dying unit)))] - 1)
      • Set kills[(Player number of (Owner of (Killing unit)))] = (kills[(Player number of (Owner of (Killing unit)))] + 1)
      • Multiboard - Set the text for (Last created multiboard) item in column 2, row (1 + (Player number of (Owner of (Killing unit)))) to (String(kills[(Player number of (Owner of (Killing unit)))]))
      • Multiboard - Set the text for (Last created multiboard) item in column 3, row (1 + (Player number of (Owner of (Dying unit)))) to (String(lives[(Player number of (Owner of (Dying unit)))]))
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • lives[(Player number of (Owner of (Dying unit)))] Equal to 0
        • Then - Actions
          • Player Group - Remove (Owner of (Dying unit)) from Players
          • Player Group - Add (Owner of (Dying unit)) to Defeated
          • Visibility - Create an initially Enabled visibility modifier for (Owner of (Dying unit)) emitting Visibility across (Playable map area)
          • Multiboard - Set the icon for (Last created multiboard) item in column 1, row (1 + (Player number of (Owner of (Dying unit)))) to ReplaceableTextures\CommandButtons\BTNCancel.blp
          • Multiboard - Set the text for (Last created multiboard) item in column 1, row (1 + (Player number of (Owner of (Dying unit)))) to (|c00666666 + ((Name of (Owner of (Dying unit))) + |r))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Number of players in Players) Equal to 1
            • Then - Actions
              • Game - Display to (All players) for 10.00 seconds the text: ((Name of (Owner of (Killing unit))) + has won, the game will end in 5 seconds)
              • Wait 5.00 seconds
              • Player Group - Pick every player in Players and do (Actions)
                • Loop - Actions
                  • Game - Victory (Picked player) (Show dialogs, Show scores)
              • Player Group - Pick every player in Defeated and do (Actions)
                • Loop - Actions
                  • Game - Defeat (Picked player) with the message: Defeat!
            • Else - Actions
        • Else - Actions
          • For each (Integer i) from 1 to 20, do (Actions)
            • Loop - Actions
              • Set loc[1] = (Random point in (Playable map area))
              • Set Group = (Units within 600.00 of loc[1])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • i Less than 20
                • Then - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • (Number of units in Group) Greater than 0
                    • Then - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Dying unit) is alive) Equal to False
                        • Then - Actions
                          • Hero - Instantly revive (Dying unit) at loc[1], Show revival graphics
                          • Camera - Pan camera for (Owner of (Dying unit)) to loc[1] over 0.00 seconds
                          • Selection - Select (Dying unit) for (Owner of (Dying unit))
                        • Else - Actions
                    • Else - Actions
                • Else - Actions
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • ((Dying unit) is alive) Equal to False
                    • Then - Actions
                      • Hero - Instantly revive (Dying unit) at loc[1], Show revival graphics
                      • Camera - Pan camera for (Owner of (Dying unit)) to loc[1] over 0.00 seconds
                      • Selection - Select (Dying unit) for (Owner of (Dying unit))
                    • Else - Actions
              • Custom script: call RemoveLocation(udg_loc[1])
              • Custom script: call DestroyGroup(udg_Group)
I didn't test it, but I believe it does this when a sniper dies:
  • Increases the kills of the killer by 1 (and update it in the multiboard)
  • Decrease the lives of the dying sniper by 1 (and update it in the multiboard - you'll need to add a column for it).
  • When there is only 1 sniper left, the game will end in 5 seconds
  • It will instantly revive the sniper, it also checks whether there are nearby snipers nearby (so you won't spawn near another sniper, unless you're out of luck).
  • When a player runs out of lives, he will be added to another group (as a spectator), his name on the multiboard will be gray and his icon will be the cancel-button.

Also, the camera-trigger isn't really good, I prefer this trigger:

  • CamZ
    • Events
      • Player - Player 1 (Red) types a chat message containing -distance as A substring
    • Conditions
    • Actions
      • -------- Maximum Value (Camera can't zoom out further) --------
      • Set Values[1] = 3000.00
      • -------- Minimum Value (Camera can't zoom in further) --------
      • Set Values[2] = 500.00
      • -------- Do not change below this line --------
      • For each (Integer A) from 1 to (Length of (Entered chat string)), do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Substring((Entered chat string), (Integer A), (Integer A))) Equal to
            • Then - Actions
              • Set Camera_Distance = (Real((Substring((Entered chat string), ((Integer A) + 1), (Length of (Entered chat string))))))
            • Else - Actions
      • Camera - Set (Triggering player)'s camera Distance to target to Camera_Distance over 0.20 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Camera_Distance Greater than or equal to Values[1]
        • Then - Actions
          • Camera - Set (Triggering player)'s camera Distance to target to Values[1] over 0.20 seconds
          • Set Camera_Distance = Values[1]
          • Game - Display to (All players matching ((Triggering player) Equal to (Matching player))) for 6.00 seconds the text: |c00ff0000Zoomed ou...
        • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Camera_Distance Less than or equal to Values[2]
            • Then - Actions
              • Camera - Set (Triggering player)'s camera Distance to target to Values[2] over 0.20 seconds
              • Set Camera_Distance = Values[2]
              • Game - Display to (All players matching ((Triggering player) Equal to (Matching player))) for 6.00 seconds the text: |c00ff0000Zoomed in...
            • Else - Actions
- You can change the command to absolutely anything (spaces/no spaces/any symbols/...), the trigger will change itself to the length of the command, so you don't need to do anything else ^^
If you type -distance 2600 (for example), your camera zoom will be set to 2600 (standard minimum of 500 and maximum of 3000).
Note: you need to copy/paste the event for all players (not the trigger, only the event...).

Could you explain how you shoot in CS Assault? Is it just something like "click on the button" -> a bullet will fly in the direction you are facing?


Things that need to be changed before approval:

  • The terrain (definitely).
  • More abilities.
  • A better description (read my tutorial, in my signature for it).
  • Perhaps some game-modes.

Rejected (until updated)
Note: I like sniper-maps, that's the reason for the (until updated), I expect the next version to be completely different ^^

I will look into it, the next version will be more better when i finish updating it
 
Top