Warcraft 3 documentation
vJASS & Zinc Documentation
For the latest documentation about how it works vJASS and Zinc language layers for Warcraft III, please follow these links:
Jasshelper documentation - Zinc documentation - WC3 Optimizer documentation

[snippet] Get Units in Line No New Posts Codes & Snippets

Started by
moyack

0 Members and 1 Guest are viewing this topic.

[snippet] Get Units in Line
on: January 02, 2013, 11:27:45 PM
Category: Geometry, Units
Language: vJASS

Related Topics or Resources



Description

This small library allows users to get the units in a line. This line can be defined by 2 points or 2 widgets.

Requirements:

 - GeometryLibBase
 - Select Cohadar's jasshelper in JNGP 5e and up

Actual Code
Code: jass
  1. /******************************************************************
  2. *                     GROUP UNITS IN LINE v1.0                    *
  3. *                           By moyack                             *
  4. *                              2012                               *
  5. *              ===================================                *
  6. *              Exclusive resource from wc3jass.com                *
  7. *              ===================================                *
  8. ******************************************************************/
  9. library GetUnitsInLine requires GeometryLibBase
  10. /* This library catch all the units in a line. This line however,
  11. can be defined in several ways, each one will offer a function for
  12. that purpose:
  13.  * Between 2 points:  GetUnitsInLine_byPoints()
  14.  * Between 2 widgets: GetUnitsInLine_byWidgets()
  15.  
  16.  The first function takes as arguments a group variable and 4 reals
  17.  which are the X/Y coordinates of the first and second point.
  18.  
  19.  The second function takes as arguments a group variable and 2 widgets,
  20.  these widgets can be any combination of units, items and destructables.
  21.  
  22.  The group variable for both functions will store the units catched in
  23.  the line defined by points or widgets, so it's advisable that this group
  24.  should be empty.
  25. */
  26. globals
  27.     private constant real SPREAD = 30. // this value defines how wide is the line of units selected
  28.     private group G = CreateGroup()
  29. endglobals
  30.  
  31. public function byPoints takes group g, real x1, real y1, real x2, real y2 returns nothing
  32.     local unit u
  33.     local real a
  34.     local real b
  35.     local real x = 0.5 * (x1 + x2)
  36.     local real y = 0.5 * (y1 + y2)
  37.     if g == null then
  38.         return
  39.     endif
  40.     call GroupEnumUnitsInRange(G, x, y, GetDistance(x, y, x1, y1) + SPREAD, null)
  41.     for u in G
  42.         if x2 - x1 == 0. then // manages vertical lines
  43.             set x = x1
  44.             set y = GetUnitY(u)
  45.         else
  46.             set x = GetUnitX(u)
  47.             set a = (y2 - y1) / (x2 - x1)
  48.             set b = -a * x1 + y1
  49.             set y = a * x + b
  50.         endif
  51.         if IsUnitInRangeXY(u, x, y, SPREAD) then
  52.             call GroupAddUnit(g, u)
  53.         endif
  54.     endfor
  55. endfunction
  56.  
  57. public function byWidgets takes group g, widget A, widget B returns nothing
  58.     call byPoints(g, GetWidgetX(A), GetWidgetY(A), GetWidgetX(B), GetWidgetY(B))
  59. endfunction
  60.  
  61. endlibrary

Changelog:
1.0: Initial release.

Feel free to comment.
« Last Edit: December 19, 2017, 07:46:24 PM by moyack »



[snippet] Get Units in Line
Reply #1 on: January 03, 2013, 03:23:30 AM

Hmm tested the map and its a hell of fun! (Just talking about the test system on the test map) actually you should make a mini-game map with those codes. XD

Anyway, where is the rating system? O.o

Chronicles of Darkness
by: SonofJay

A BlizzMod Hosted Project

They can hate, let them hate, make them hate.


[snippet] Get Units in Line
Reply #2 on: January 03, 2013, 08:26:05 AM

Hmm tested the map and its a hell of fun! (Just talking about the test system on the test map) actually you should make a mini-game map with those codes. XD
Sure!!! why not??

Quote
Anyway, where is the rating system? O.o
When it gets approved you can rate it :)


[snippet] Get Units in Line
Reply #3 on: January 06, 2013, 09:04:52 AM

Nice.
This requires cohadar's JassHelper I see :o

Not a lot of people are using that, so I guess it should be mentioned at least :p



[snippet] Get Units in Line
Reply #4 on: January 06, 2013, 10:36:37 AM

Hoho, nice to see you back Mag since your last visit was December 12..

Chronicles of Darkness
by: SonofJay

A BlizzMod Hosted Project

They can hate, let them hate, make them hate.


[snippet] Get Units in Line
Reply #5 on: January 06, 2013, 01:35:03 PM

Yeah, I apologize for that.
JASS Class on Hive is taking up a lot of time :v
I don't even have time to take shits now.



[snippet] Get Units in Line
Reply #6 on: January 07, 2013, 09:04:50 AM

Nice.
This requires cohadar's JassHelper I see :o

Not a lot of people are using that, so I guess it should be mentioned at least :p
Added the requirement. And it's good to see you here around :)


[snippet] Get Units in Line
Reply #7 on: March 13, 2013, 12:45:00 PM

Approved!



 

Started by PitzerMike

Replies: 0
Views: 1638
Codes & Snippets

Started by Purgeandfire

Replies: 0
Views: 1714
Codes & Snippets

Started by Bribe

Replies: 0
Views: 1969
Codes & Snippets

Started by moyack

Replies: 0
Views: 9880
Codes & Snippets

Started by Magtheridon96

Replies: 1
Views: 8663
Codes & Snippets
Vivir aprendiendo.co - A place for learning stuff, in Spanish   Chaos Realm - The world of Game modders and wc3 addicts   Diplo, a gaming community   Power of Corruption, an altered melee featuring Naga and Demon. Play it now!!!   WC3JASS.com - The JASS Vault + vJASS and Zinc   Jetcraft - A Starcraft II mod   WormTastic Clan (wTc)   Warcraft RESOURCES Reforged: Modelos, mapas, proyectos y mas...