HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

lagggg

01-14-2005, 04:47 AM#1
a thing
Code:
function EndVotingActions takes nothing returns nothing
local integer i=0
local player pi=null
local force AllPlayers=GetPlayersAll()
    set udg_IsItVotingTime=false
    set udg_TotalVotes=0
    set udg_VotesForPlayerToBeKicked=0
    call DestroyTimerDialog(udg_VotingTimeD)
    loop
        exitwhen i>11
        set pi=Player(i)
        call DialogDisplay(pi,udg_YesAndNo[i],false)
        set pi=null
        set i=i+1
    endloop
    if I2R(udg_VotesForPlayerToBeKicked)>(udg_PlayersInGame-1)*.5 then
        call CustomDefeatBJ(udg_PlayerToBeKicked,"You've been voted out of the game!")
        call DisplayTimedTextToForce(AllPlayers,30,udg_PlayerName[GetPlayerId(udg_PlayerToBeKicked)]+" |c00ff0000has|r been voted out of the game!")
    else
        call DisplayTimedTextToForce(AllPlayers,30,udg_PlayerName[GetPlayerId(udg_PlayerToBeKicked)]+" has |c00ff0000not|r been voted out of the game!")
    endif
    call PauseAllUnitsBJ(false)
    call ResumeTimer(udg_TimeLeftInGame)
set AllPlayers=null
endfunction

function DetectVoteActions takes nothing returns nothing
local integer i=0
local button b=GetClickedButton()
set udg_TotalVotes=udg_TotalVotes+1
if udg_IsItVotingTime then
    loop
        exitwhen i>11
        if b==udg_Yes[i] then
            set udg_VotesForPlayerToBeKicked=udg_VotesForPlayerToBeKicked+1
        endif
        set i=i+1
    endloop
    if udg_TotalVotes==udg_PlayersInGame then
        call EndVotingActions()
    endif
endif
set b=null
endfunction

function BalletsActions takes nothing returns nothing
local integer i=0
local player pi=null
local button b=GetClickedButton()
if udg_IsItVotingTime then
    call TimerStart(udg_TimeLeftToVote,15,false,null)
    set udg_VotingTimeD=CreateTimerDialog(udg_TimeLeftToVote)
    call TimerDialogSetTitle(udg_VotingTimeD,"Time left to vote...")
    call TimerDialogDisplay(udg_VotingTimeD,true)
    loop
        exitwhen i>11
        if b==udg_WhoToKickDialogButton[i] then
            set pi=Player(i)
            set udg_PlayerToBeKicked=pi
            set pi=null
        endif
        set i=i+1
    endloop
    set i=0
    loop
        exitwhen i>11
        set pi=Player(i)
        call DialogClear(udg_YesAndNo[i])
        call DialogSetMessage(udg_YesAndNo[i],"Kick "+udg_PlayerName[GetPlayerId(udg_PlayerToBeKicked)]+" out of the game?")
        set udg_Yes[i]=DialogAddButton(udg_YesAndNo[i],"Yes",0)
        call DialogAddButton(udg_YesAndNo[i],"No",0)
        if pi!=udg_PlayerToBeKicked then
            call DialogDisplay(pi,udg_YesAndNo[i],true)
        endif
        set pi=null
        set i=i+1
    endloop
endif
set b=null
endfunction

function IntVoteDefeat takes nothing returns nothing
local integer i=0
local player TP=GetTriggerPlayer()
local trigger Ballets=CreateTrigger()
  local triggeraction BalletsA=TriggerAddAction(Ballets,function BalletsActions)
  local event BalletsE=TriggerRegisterDialogEvent(Ballets,udg_WhoToKickDialog)
local trigger DetectVote=CreateTrigger()
  local triggeraction DetectVoteA=TriggerAddAction(DetectVote,function DetectVoteActions)
  local event array DetectVoteE
local trigger EndVoting=CreateTrigger()
  local triggeraction EndVotingA=TriggerAddAction(EndVoting,function EndVotingActions)
  local event EndVotingE=TriggerRegisterTimerExpireEvent(EndVoting,udg_TimeLeftToVote)

    set udg_IsItVotingTime=true
    call PauseAllUnitsBJ(true)
    call PauseTimer(udg_TimeLeftInGame)
    call DialogClear(udg_WhoToKickDialog)
    call DialogSetMessage(udg_WhoToKickDialog,"Who do you want to kick?")
    loop
        exitwhen i>11
        if PlayerIsPlaying(i) then
            set udg_WhoToKickDialogButton[i]=DialogAddButton(udg_WhoToKickDialog,udg_PlayerName[i],0)
        endif
        set i=i+1
    endloop
    call DialogDisplay(TP,udg_WhoToKickDialog,true)
/////////////DetectVote
  set i=0
  loop
      exitwhen i>11
      set DetectVoteE[i]=TriggerRegisterDialogEvent(DetectVote,udg_YesAndNo[i])
  endloop
///////////////////////
set Ballets=null
set BalletsE=null
set BalletsA=null
 set DetectVote=null
 set i=0
 loop
   exitwhen i>11
   set DetectVoteE[i]=null
   set i=i+1
 endloop
 set DetectVoteA=null
set EndVoting=null
set EndVotingE=null
set EndVotingA=null
endfunction
//===========================================================================
function InitTrig_Vote_defeat takes nothing returns nothing
local integer i=0
local event array e
local triggeraction a=null
set gg_trg_Vote_defeat=CreateTrigger()
set a=TriggerAddAction(gg_trg_Vote_defeat,function IntVoteDefeat)
loop
 exitwhen i>11
 set e[i]=TriggerRegisterPlayerChatEvent(gg_trg_Vote_defeat,Player(i),"-kick",true)
 set e[i]=null
 set i=i+1
endloop
set a=null
endfunction

The above code is a working dialog vote-kick system, but it lags whever one of the triggers fires. I'm pretty sure I cleaned all leaks.
01-14-2005, 05:23 AM#2
AIAndy
You forgot increasing the i in the DetectVote loop.
01-14-2005, 02:18 PM#3
a thing
Thanks that fixed it^^ I'd give you rep but it says "No Post specified" when I click the link to give rep.