- Joined
- Mar 24, 2011
- Messages
- 1,082
-
Events
- Unit - Tavern Main 0021 <gen> Is selected
Note: Don't suggest using
- Player - Player 1 (Red) Selects a unit
- Player - Player 2 (Blue) Selects a unit
- . . .
- Unit - Tavern Main 0021 <gen> Is selected
function selected takes nothing returns integer
local integer p = 0
loop
exitwhen p > 17
if IsUnitSelected( tavern main, Player(p)) // change tavern main to ur tavern
return p
endif
set p = p + 1
endloop
return 18
endfunction
function unitSelectedActions takes nothing returns nothing
local integer p = call selected() // this should return the player selecting the tavern
endfunction
unction selected takes nothing returns integer
local integer p = 0
loop
exitwhen p > 17
if IsUnitSelected( gg_unit_Hpal_0000, Player(p))
return p
endif
set p = p + 1
endloop
return 18
endfunction
function unitSelectedActions takes nothing returns nothing
local integer p = call selected()
call SelectUnitForPlayerSingle( gg_unit_Hamg_0001, Player(p) )
endfunction
//===========================================================================
function InitTrig_Untitled_Trigger_001_Copy takes nothing returns nothing
set gg_trg_Untitled_Trigger_001_Copy = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_Untitled_Trigger_001_Copy, gg_unit_Hpal_0000, EVENT_UNIT_SELECTED )
call TriggerAddAction( gg_trg_Untitled_Trigger_001_Copy, function unitSelectedActions )
endfunction
Try (Triggering Player) and see what happens.
That returns the owner of the selected unit not the selecting player. (as strange as it is)
Derp.The title says pretty much all.
- Events
- Unit - Tavern Main 0021 <gen> Is selected
Note: Don't suggest usingI only ask how to get the selecting player for
- Player - Player 1 (Red) Selects a unit
- Player - Player 2 (Blue) Selects a unit
- . . .
if its possible
- Unit - Tavern Main 0021 <gen> Is selected
gg_unit_Hpal_0000 and gg_unit_Hamg_0001 are not declared in your map. Change them to valid unit variables.Syntax Check:
globals
unit TempUnit
unit TempUnit2
endglobals
function selected takes nothing returns integer
local integer p = 0
loop
exitwhen p > 17
if IsUnitSelected( TempUnit, Player(p))
return p
endif
set p = p + 1
endloop
return 18
endfunction
function unitSelectedActions takes nothing returns nothing
local integer p = call selected()
call SelectUnitForPlayerSingle( TempUnit2, Player(p) )
endfunction
//===========================================================================
function InitTrig_Untitled_Trigger_003 takes nothing returns nothing
set gg_trg_Untitled_Trigger_003 = CreateTrigger( )
call TriggerAddAction( gg_trg_Untitled_Trigger_003, function unitSelectedActions )
endfunction
call
in the middle of ANY statement.if (expression) then
elseif (expression) then
elseif (expression) then
else
endif
then
keyword in there.globals
// Global and Local variables are written likeThis.
// First letter is lowercased and the beginning of every word is capitalized.
unit tempUnit = null // initialize it
unit tempUnit2 = null // initialize it
endglobals
// selected isn't a proper name, so I changed the function name.
function GetSelectingPlayer takes nothing returns integer
// It's better to use variable names like this.
// If you leave your code and come back to it after
// several months, you wouldn't have to spend a lot of time
// figuring out what each variable/function was for.
local integer playerId = 0
loop
exitwhen playerId == 16
if IsUnitSelected(tempUnit, Player(playerId)) then
return playerId
endif
set playerId = playerId + 1
endloop
return -1
endfunction
// FunctionNamesAreWrittenJustLikeThis
function UnitSelectedActions takes nothing returns nothing
local integer playerId = GetSelectingPlayer()
if playerId != -1 then
call SelectUnitForPlayerSingle(tempUnit2, Player(playerId))
endif
endfunction
//===========================================================================
function InitTrig_Untitled_Trigger_003 takes nothing returns nothing
set gg_trg_Untitled_Trigger_003 = CreateTrigger( )
call TriggerAddAction( gg_trg_Untitled_Trigger_003, function UnitSelectedActions )
endfunction
function GetSelectingPlayer takes nothing returns integer
local integer playerId = 0
loop
exitwhen playerId == 16
if IsUnitSelected(udg_TempUnit, Player(playerId)) then
return playerId
endif
set playerId = playerId + 1
endloop
return -1
endfunction
// FunctionNamesAreWrittenJustLikeThis
function UnitSelectedActions takes nothing returns nothing
local integer playerId = GetSelectingPlayer()
if playerId != -1 then
call SelectUnitForPlayerSingle(udg_TempUnit2, Player(playerId))
endif
endfunction
//===========================================================================
function InitTrig_Untitled_Trigger_003 takes nothing returns nothing
set gg_trg_Untitled_Trigger_003 = CreateTrigger( )
call TriggerAddAction( gg_trg_Untitled_Trigger_003, function UnitSelectedActions)
endfunction