Hallo Leute^^
Ich habe ein problem mit einem GmVote script.
Es spaaaamt wie sau.
Hier mal das Clientseitige:
Code
function GMStart()
addEventHandler("onClientRender",getRootElement(),GmDefaultText)
end
addEvent("onGMStart",true)
addEventHandler("onGMStart",getRootElement(),GMStart)
function GMStop()
removeEventHandler("onClientRender",getRootElement(),GmDefaultText)
removeEventHandler("onClientRender",getRootElement(),VoteNumber)
if votecount >= reqPlayers then
triggerServerEvent("onVoteSuccess",getRootElement())
else
triggerServerEvent("onVoteFail",getRootElement())
end
end
addEvent("onGMStop",true)
addEventHandler("onGMStop",getRootElement(),GMStop)
local width, height = guiGetScreenSize()
function GmDefaultText()
dxDrawText("PRESS 1 TO VOTE FOR GHOSTMODE",0,(567/1440)*width,(1436/1440)*width,(669/1440)*width,tocolor(0,0,0,255),1.0,"bankgothic","center","center",false,false,false)
dxDrawText("PRESS 1 TO VOTE FOR GHOSTMODE",(3/1440)*width,(570/1440)*width,(1439/1440)*width,(672/1440)*width,tocolor(255,255,255,255),1.0,"bankgothic","center","center",false,false,false)
end
function GMStart2(pcount,vcount)
addEventHandler("onClientRender",getRootElement(),VoteNumber)
votecount = vcount
if pcount == 1 then
reqPlayers = 1
elseif pcount > 1 and pcount < 4 then
reqPlayers = 2
elseif pcount > 3 and pcount < 7 then
reqPlayers = 3
elseif pcount > 6 and pcount < 10 then
reqPlayers = 5
elseif pcount > 9 and pcount < 15 then
reqPlayers = 7
elseif pcount > 14 and pcount < 21 then
reqPlayers = 12
elseif pcount > 20 and pcount < 26 then
reqPlayers = 17
elseif pcount > 25 then
reqPlayers = 21
end
end
addEvent("onGMStart2",true)
addEventHandler("onGMStart2",getRootElement(),GMStart2)
function GMUpdate(vocount)
removeEventHandler("onClientRender",getRootElement(),VoteNumber)
votecount = votecount + 1
addEventHandler("onClientRender",getRootElement(),VoteNumber)
end
addEvent("onGMUpdate",true)
addEventHandler("onGMUpdate",getRootElement(),GMUpdate)
function VoteNumber()
dxDrawText(votecount.."/"..reqPlayers.." VOTES RECIEVED",(2/1440)*width,(633/1440)*width,(1430/1440)*width,(707/1440)*width,tocolor(0,0,0,255),1.5,"bankgothic","center","center",false,false,false)
dxDrawText(votecount.."/"..reqPlayers.." VOTES RECIEVED",0,(645/1440)*width,(1439/1440)*width,(701/1440)*width,tocolor(255,255,255,255),1.5,"bankgothic","center","center",false,false,false)
end
function resWarning()
if (width < 1280) and (height < 720) then
outputChatBox("You are running on low resolutions, some elements WILL NOT appear correctly![Minimum: 1280 x 720]",255,0,0)
end
end
addEventHandler("onClientPlayerJoin",getRootElement(),resWarning)
Alles anzeigen
Server:
Code
addEvent("onMapStarting")
function onResourceStart()
executeSQLCreateTable("GmBlockList", "serial STRING")
end
function KeyBind(pcount,vcount) -- bind the key for all players.
local resourceName = getMapName()
if string.find(resourceName, "[DD]", 1, true) or string.find(resourceName, "DD", 1, true) then
else
local players = getElementsByType("player")
local pcount = getPlayerCount()
executeSQLQuery("DELETE FROM GmBlockList")
vcount = 0
for k,v in ipairs (players) do
bindKey(v,"1","down",addVote)
setElementData( v, "overrideCollide.uniqueblah", nil, false )
end
triggerClientEvent(getRootElement(),"onGMStart", getRootElement())
triggerClientEvent(getRootElement(),"onGMStart2", getRootElement(),pcount,vcount)
end
end
addEventHandler("onMapStarting",getRootElement(),KeyBind)
function KeyUnBind(newStateName,oldStateName) -- unbind the key for all players when the countdown finishes.
if newStateName == "Running" then
local players = getElementsByType("player")
triggerClientEvent(getRootElement(),"onGMStop", getRootElement())
for k,v in ipairs (players) do
unbindKey(v,"1","down",addVote)
end
executeSQLQuery("DELETE FROM GmBlockList")
end
end
addEvent("onRaceStateChanging")
addEventHandler("onRaceStateChanging",getRootElement(),KeyUnBind)
function addVote(keyPresser)
local serial = getPlayerSerial(keyPresser)
local serialcheck = executeSQLSelect ( "GmBlockList", "serial","serial = '" .. serial .. "'")
if ( type( serialcheck ) == "table" and #serialcheck == 0 ) or not serialcheck then
executeSQLInsert ( "GmBlockList", "'"..serial.."'")
triggerClientEvent("onGMUpdate",getRootElement())
else
outputChatBox("You Have Already Voted For Ghostmode.",keyPresser,255,0,0)
end
end
function success()
local players = getElementsByType("player")
for theKey,thePlayer in ipairs(players) do
setElementData( thePlayer, "overrideCollide.uniqueblah", 0, false )
outputChatBox("*Ghostmode: Voting For Ghostmode Passed!",thePlayer,186,212,71)
end
end
addEvent("onVoteSuccess",true)
addEventHandler("onVoteSuccess",getRootElement(),success)
function failed()
for k,v in ipairs(getElementsByType("player")) do
outputChatBox("*Ghostmode: Voting For Ghostmode Failed!",player,186,212,71)
end
end
addEvent("onVoteFail",true)
addEventHandler("onVoteFail",getRootElement(),failed)
Alles anzeigen
Ich experementier die ganze zeit, aber wenn ghostmode Failed oder Ghostmode passed dran ist, erscheint die nachricht 50 mal ...