- Joined
- Jan 18, 2007
- Messages
- 59
Simple Filter Sytem v1.01
**************************************************************************************
*************************Simple Filter System v1.01***********************************
**********************************************************************************
******************************By: Matrix****************************************
Pros:
1) Allow to create filters
2) Consists of 68 lines
3) Can be confugured up to 4 options
Cons:
1) Mb smb find it not very user friendly
====================================================================================
PURPOUSE OF SFS:
====================================================================================
* Simply create filters
* Currently supported alliance, visibility, unittype and aliveness
* These are the only 4 handle types I found that are in need
If you have the need for some other handle types please let me know
====================================================================================
Changelog v1.01
====================================================================================
1) Less size
2) Changed the way of setting filter
3) More Cleaner&Leakless code
====================================================================================
How to implant:
====================================================================================
The system is very easy. The only things you'll have to do to implement the system is to
copy the trigger "SFS" into your map
====================================================================================
Quick function index:
====================================================================================
__________________________________________________________________________________________|
Set Functions - these functions makes ur boolexpr
----------------------------------------------------------------------
function SetSFS takes player p, integer Enemy, integer Visibility, unittype u, integer OnlyThatUnit, integer Alive returns nothing
player p - the player (owner of caster); use null if not needed
integer Enemy - if you want group filter enemies of the player use True; Ally - use False;
if You don't want use this option use Null
integer Visibilty - If you wants group filter only visible units for player p use True; Only Non-Visible use False;
All - use Null
unittype u - the unittype u only (not) allowed to be in group
integer OnlyThatUnit - if You want filter group with only that unit-type use True; Except that unittype use False;
if You don't want use this option use Null
integer Alive - if You want to filter only alive units use True; only dead use False;
All - use Null
__________________________________________________________________________________|
Clear Function
----------------------------------------------------------------------
ClearFilter() // Use only after using filter
__________________________________________________________________________________________|
====================================================================================
How to use:
====================================================================================
* Lets assume you want to create some spell filter
You would do the following:
Example
1. call SetSFS(GetOwningPlayer(GetTriggerUnit()),True,True,null,Null,True)
2. call GroupEnumUnitsInRange(group,x,y,range,SFS)
3. call ClearFilter()
====================================================================================
SPECIAL THANKS TO:
====================================================================================
* PandaMine - AFS from which I did this sys
HOW TO IMPORT:
* Just create a trigger named SFS
* convert it to text and replace the whole trigger text with this one
==============================================================================
Hopefully this system will help you!
~Matrix 7.08.08
==============================================================================
this is just a remix of Panda's AFS
Download SFS v1.01
**************************************************************************************
*************************Simple Filter System v1.01***********************************
**********************************************************************************
******************************By: Matrix****************************************
Pros:
1) Allow to create filters
2) Consists of 68 lines
3) Can be confugured up to 4 options
Cons:
1) Mb smb find it not very user friendly
====================================================================================
PURPOUSE OF SFS:
====================================================================================
* Simply create filters
* Currently supported alliance, visibility, unittype and aliveness
* These are the only 4 handle types I found that are in need
If you have the need for some other handle types please let me know
====================================================================================
Changelog v1.01
====================================================================================
1) Less size
2) Changed the way of setting filter
3) More Cleaner&Leakless code
====================================================================================
How to implant:
====================================================================================
The system is very easy. The only things you'll have to do to implement the system is to
copy the trigger "SFS" into your map
====================================================================================
Quick function index:
====================================================================================
__________________________________________________________________________________________|
Set Functions - these functions makes ur boolexpr
----------------------------------------------------------------------
function SetSFS takes player p, integer Enemy, integer Visibility, unittype u, integer OnlyThatUnit, integer Alive returns nothing
player p - the player (owner of caster); use null if not needed
integer Enemy - if you want group filter enemies of the player use True; Ally - use False;
if You don't want use this option use Null
integer Visibilty - If you wants group filter only visible units for player p use True; Only Non-Visible use False;
All - use Null
unittype u - the unittype u only (not) allowed to be in group
integer OnlyThatUnit - if You want filter group with only that unit-type use True; Except that unittype use False;
if You don't want use this option use Null
integer Alive - if You want to filter only alive units use True; only dead use False;
All - use Null
__________________________________________________________________________________|
Clear Function
----------------------------------------------------------------------
ClearFilter() // Use only after using filter
__________________________________________________________________________________________|
====================================================================================
How to use:
====================================================================================
* Lets assume you want to create some spell filter
You would do the following:
Example
1. call SetSFS(GetOwningPlayer(GetTriggerUnit()),True,True,null,Null,True)
2. call GroupEnumUnitsInRange(group,x,y,range,SFS)
3. call ClearFilter()
====================================================================================
SPECIAL THANKS TO:
====================================================================================
* PandaMine - AFS from which I did this sys
HOW TO IMPORT:
* Just create a trigger named SFS
* convert it to text and replace the whole trigger text with this one
==============================================================================
Hopefully this system will help you!
~Matrix 7.08.08
==============================================================================
JASS:
library SFS initializer init
globals
private integer array SFSB
boolexpr SFS = null
constant integer Null = -1
constant integer True = 1
constant integer False = 0
endglobals
private function H2I takes handle h returns integer
return h
return 0
endfunction
private function I2B takes integer i returns boolean
return i
return false
endfunction
function ClearFilter takes nothing returns nothing
set SFSB[0]=Null
set SFSB[1]=Null
set SFSB[2]=Null
set SFSB[3]=Null
set SFSB[4]=Null
set SFSB[5]=Null
endfunction
function SetSFS takes player p, integer Enemy, integer Visibility, unittype u, integer OnlyThatUnit, integer Alive returns nothing
if p!= null then
set SFSB[0] = GetPlayerId(p)
else
set SFSB[0] = Null
endif
set SFSB[1] = Enemy
set SFSB[2] = Visibility
set SFSB[3] = OnlyThatUnit
set SFSB[4] = H2I(u)
set SFSB[5] = Alive
endfunction
function SFSCon takes nothing returns boolean
local unit u = GetFilterUnit()
local boolean r = true
if SFSB[0] != Null and SFSB[1]!=Null then
if IsUnitEnemy(u,Player(SFSB[0]))!=I2B(SFSB[1]) then
return false
endif
endif
if SFSB[2] != Null then
if IsUnitVisible(u,Player(SFSB[0]))!=I2B(SFSB[2]) then
return false
endif
endif
if SFSB[3]!=Null then
if IsUnitType(u,ConvertUnitType(SFSB[4]))!=I2B(SFSB[3]) then
return false
endif
endif
if SFSB[5]!=Null then
if (GetWidgetLife(u)>.405)!=I2B(SFSB[5]) then
return false
endif
endif
set u = null
return r
endfunction
private function init takes nothing returns nothing
set SFS=Condition(function SFSCon)
endfunction
endlibrary
this is just a remix of Panda's AFS
Download SFS v1.01
Last edited: