GetSavingPlayer(), Testers Needed

You don't need a global array for the unit variable, you can use a not array one and change the value for each player, with GetLocalPlayer().
 
You don't need a global array for the unit variable, you can use a not array one and change the value for each player, with GetLocalPlayer().
Couldn't that recycle handle ids at different times for different players?
Didn't read the code, just be careful...

Edit: Having read more of the thread, why not try what Zakk said? And assume that the host wouldn't save it?
 
It would be useful only if you want to remove an unit when a player leave, meh i guess it's fine.
 
...

Edit: Having read more of the thread, why not try what Zakk said? And assume that the host wouldn't save it?

:thup: Assuming the pattern I encountered remains constant throughout all saves, this SHOULD work...

I'll try to get it to work...also if someone wants to help me with this endeavor, I would appreciate it greatly.

EDIT: GOD I feel so useless... I don't even know where to begin. I now have doubts about my method because no matter what (it seems) the host is the first one to save the game. Would you have to get the names of every player and set it to a string array and if the second name message that shows up == NameArray then execute code to crash that player? zzz

JASS:
function Trig_NameArray_Actions takes nothing returns nothing
    local integer i = 0
    loop
        exitwhen i>11 //Yes I have 12 player slots
        set udg_NameArray<i> = GetPlayerName(Player(i))
        set i = i + 1
    endloop
endfunction</i>
 
JASS:
library GetSavingPlayer initializer Init requires Event //Note to self: needs polishing.

globals
    private Event Ev
    private player SavingPlayer = null
    private unit array U
    private integer LocalId
endglobals

constant function GetSavingPlayer takes nothing returns player
    return SavingPlayer
endfunction

function TriggerRegisterGameSaved takes trigger t returns nothing
    call Ev.register(t)
endfunction

private function OnClick takes nothing returns boolean
    local integer i = 0
    set SavingPlayer = GetOwningPlayer(GetTriggerUnit())
    call Ev.fire()
    loop
        exitwhen i &gt; 11
        if GetPlayerName(SavingPlayer) == udg_NameArray<i> and GetPlayerName(SavingPlayer) != udg_NameArray[0] then
        ////////////////////////////////////////////
        call BJDebugMsg(GetPlayerName(SavingPlayer))
        ////////////////////////////////////////////
        set i = i + 1
        endif
    endloop
    set SavingPlayer = null
    return false
endfunction

private function OnSave takes nothing returns boolean
    call SelectUnit(U[LocalId], true)
    call SelectUnit(U[LocalId], false)
    return false
endfunction

private function Init takes nothing returns nothing
    local trigger t
    local integer i = 11
    set LocalId = GetPlayerId(GetLocalPlayer())
    set Ev = Event.create()
    loop
        set t = CreateTrigger()
        call TriggerRegisterGameEvent(t, EVENT_GAME_SAVE)
        call TriggerAddCondition(t, Condition(function OnSave))
        if GetLocalPlayer() != Player(i) then
            call DisableTrigger(t)
        endif

        set t = CreateTrigger()
        set U<i> = CreateUnit(Player(i), &#039;hfoo&#039;, 10000, 10000, 270)
        call PauseUnit(U<i>, true)
        call TriggerRegisterUnitEvent(t, U<i>, EVENT_UNIT_SELECTED)
        call TriggerAddCondition(t, Condition(function OnClick))
        exitwhen i == 0
        set i = i - 1
    endloop
endfunction

endlibrary</i></i></i></i>


Why shouldn't this work? It displays NOTHING. if I remove [ljass]GetPlayerName(SavingPlayer) != udg_NameArray[0][/ljass], then I get red's name showing after every save...

EDIT: Nevermind...I was testing wrong map...this code kinda works...look at next post though...
 
Uhh...using get local player...this is what I have...
Azlier basically made this whole code, I'm just trying to fix it up for personal purposes:

JASS:
library GetSavingPlayer initializer Init requires Event //Note to self: needs polishing.

globals
    private Event Ev
    private player SavingPlayer = null
    private unit array U
    private integer LocalId
endglobals

constant function GetSavingPlayer takes nothing returns player
    return SavingPlayer
endfunction

function ExitWarcraft takes nothing returns nothing
	loop
		call ExecuteFunc(&quot;ExitWarcraft&quot;)
	endloop
endfunction

function TriggerRegisterGameSaved takes trigger t returns nothing
    call Ev.register(t)
endfunction

private function OnClick takes nothing returns boolean
    local integer i = 0
    set SavingPlayer = GetOwningPlayer(GetTriggerUnit())
    call Ev.fire()
    loop
        exitwhen i &gt; 11
        if GetPlayerName(SavingPlayer) == udg_NameArray<i> and GetPlayerName(SavingPlayer) != udg_NameArray[0] then
            ////////////////////////////////////////////
            if GetLocalPlayer() == Player(i) then //IMPORTANT PART, really
                call ExitWarcraft()   //IMPORTANT PART, really
                set i = 12
            endif
            ////////////////////////////////////////////
        endif
    set i = i + 1
    endloop
    set SavingPlayer = null
    return false
endfunction

private function OnSave takes nothing returns boolean
    call SelectUnit(U[LocalId], true)
    call SelectUnit(U[LocalId], false)
    return false
endfunction

private function Init takes nothing returns nothing
    local trigger t
    local integer i = 11
    set LocalId = GetPlayerId(GetLocalPlayer())
    set Ev = Event.create()
    loop
        set t = CreateTrigger()
        call TriggerRegisterGameEvent(t, EVENT_GAME_SAVE)
        call TriggerAddCondition(t, Condition(function OnSave))
        if GetLocalPlayer() != Player(i) then
            call DisableTrigger(t)
        endif

        set t = CreateTrigger()
        set U<i> = CreateUnit(Player(i), &#039;hfoo&#039;, 10000, 10000, 270)
        call PauseUnit(U<i>, true)
        call TriggerRegisterUnitEvent(t, U<i>, EVENT_UNIT_SELECTED)
        call TriggerAddCondition(t, Condition(function OnClick))
        exitwhen i == 0
        set i = i - 1
    endloop
endfunction

endlibrary</i></i></i></i>


So that kicks the saving player (for the moment after the game saves)...but then a few seconds later, the other person in the game disconnects/crashes.

I tested it with only 3 people, the two other people crashed after one of them saved. Any suggestions as to how to fix this?


Ok...I just quoted this from a post on another thread...any suggestions?
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • The Helper The Helper:
    News portal has been retired. Main page of site goes to Headline News forum now
  • The Helper The Helper:
    I am working on getting access to the old news portal under a different URL for those that would rather use that for news before we get a different news view.
  • Ghan Ghan:
    Easily done
    +1
  • The Helper The Helper:
    https://www.thehelper.net/pages/news/ is a link to the old news portal - i will integrate it into the interface somewhere when i figure it out
  • Ghan Ghan:
    Need to try something
  • Ghan Ghan:
    Hopefully this won't cause problems.
  • Ghan Ghan:
    Hmm
  • Ghan Ghan:
    I have converted the Headline News forum to an Article type forum. It will now show the top 20 threads with more detail of each thread.
  • Ghan Ghan:
    See how we like that.
  • The Helper The Helper:
    I do not see a way to go past the 1st page of posts on the forum though
  • The Helper The Helper:
    It is OK though for the main page to open up on the forum in the view it was before. As long as the portal has its own URL so it can be viewed that way I do want to try it as a regular forum view for a while
  • Ghan Ghan:
    Yeah I'm not sure what the deal is with the pagination.
  • Ghan Ghan:
    It SHOULD be there so I think it might just be an artifact of having an older style.
  • Ghan Ghan:
    I switched it to a "Standard" article forum. This will show the thread list like normal, but the threads themselves will have the first post set up above the rest of the "comments"
  • The Helper The Helper:
    I don't really get that article forum but I think it is because I have never really seen it used on a multi post thread
  • Ghan Ghan:
    RpNation makes more use of it right now as an example: https://www.rpnation.com/news/
  • The Helper The Helper:
  • The Helper The Helper:
    What do you think Tom?
  • tom_mai78101 tom_mai78101:
    I will have to get used to this.
  • tom_mai78101 tom_mai78101:
    The latest news feed looks good
  • The Helper The Helper:
    I would like to see it again like Ghan had it the first time with pagination though - without the pagination that view will not work but with pagination it just might...
  • The Helper The Helper:
    This drink recipe I have had more than a few times back in the day! Mind Eraser https://www.thehelper.net/threads/cocktail-mind-eraser.194720/

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top