Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local hostersTable = {}
- function createBetPanel()
- local sx, sh = guiGetScreenSize()
- winCEMBet = guiCreateWindow((sx / 2) - (352 / 2), (sh / 2) - (330 / 2), 352, 330, "CIT2 CnR/MW/Some RP - Bet System", false)
- guiWindowSetSizable(winCEMBet, false)
- guiSetAlpha(winCEMBet, 95)
- guiSetVisible(winCEMBet, false)
- tabPanel = guiCreateTabPanel(9, 21, 333, 299, false, winCEMBet)
- -- Bet tab
- betTab = guiCreateTab("Bet", tabPanel)
- betPlayerGridList = guiCreateGridList(10, 39, 148, 225, false, betTab)
- guiGridListAddColumn(betPlayerGridList, "Player Name", 0.9)
- betSearchPlayerEdit = guiCreateEdit(11, 3, 147, 26, "Search Player", false, betTab)
- betButton = guiCreateButton(178, 39, 145, 27, "Bet", false, betTab)
- betAmount = guiCreateEdit(172, 3, 151, 26, "Amount", false, betTab)
- guiEditSetMaxLength(betAmount, 6)
- guiSetProperty(betAmount, "ValidationString", "^[0-9]*$")
- --Configuration tab
- confTab = guiCreateTab("Configuration", tabPanel)
- confPlayerGridList = guiCreateGridList(10, 39, 148, 225, false, confTab)
- guiGridListAddColumn(confPlayerGridList, "Player Name", 0.9)
- confSearchPlayerEdit = guiCreateEdit(11, 3, 147, 26, "Search Player", false, confTab)
- editHosterButton = guiCreateButton(178, 39, 145, 27, "Add player as hoster", false, confTab)
- confSearchHosterEdit = guiCreateEdit(172, 3, 151, 26, "Search Hoster", false, confTab)
- confHosterGridList = guiCreateGridList(172, 76, 151, 116, false, confTab)
- guiGridListAddColumn(confHosterGridList, "Hosters", 0.9)
- confBetButton = guiCreateButton(178, 202, 145, 27, "Start bet", false, confTab)
- confSetWinnerButton = guiCreateButton(178, 237, 145, 27, "Set winner", false, confTab)
- --Close tab
- closeTab = guiCreateTab("Close", tabPanel)
- --Event Handlers
- --Bet tab
- addEventHandler("onClientGUIClick", betButton, betPlayer, false)
- addEventHandler("onClientGUIChanged", betSearchPlayerEdit, searchPlayers, false)
- addEventHandler("onClientGUIClick", betSearchPlayerEdit, clearEdit, false)
- addEventHandler("onClientGUIClick", betAmount, clearEdit, false)
- --Configuration tab
- addEventHandler("onClientGUIClick", editHosterButton, editHosters, false)
- addEventHandler("onClientGUIClick", confBetButton, betOpenClose, false)
- addEventHandler("onClientGUIClick", confSetWinnerButton, betWinner, false)
- addEventHandler("onClientGUIClick", confHosterGridList, confButtons, false)
- addEventHandler("onClientGUIClick", confPlayerGridList, confButtons, false)
- addEventHandler("onClientGUIChanged", confSearchPlayerEdit, searchPlayers, false)
- addEventHandler("onClientGUIChanged", confSearchHosterEdit, searchPlayers, false)
- addEventHandler("onClientGUIClick", confSearchPlayerEdit, clearEdit, false)
- addEventHandler("onClientGUIClick", confSearchHosterEdit, clearEdit, false)
- --Close tab
- addEventHandler("onClientGUITabSwitched", closeTab, toggleCEMBetGui, false)
- end
- function toggleCEMBetGui(perm, hosters, betStatus, setWinner)
- if (not winCEMBet) then
- createBetPanel()
- end
- local state = not guiGetVisible(winCEMBet)
- guiSetVisible(winCEMBet, state)
- showCursor(state)
- if (not state) then
- return false
- end
- hostersTable = {}
- if (type(hosters) == "table") then
- hostersTable = hosters
- end
- guiSetEnabled(confTab, perm)
- guiSetSelectedTab(tabPanel, betTab)
- refreshPanel(betStatus or setWinner)
- if (betStatus) then
- guiSetText(confBetButton, "Stop bet")
- guiSetEnabled(editHosterButton, not betStatus)
- guiSetEnabled(confSetWinnerButton, not betStatus)
- if (perm) then
- guiSetSelectedTab(tabPanel, confTab)
- end
- end
- if (setWinner) then
- guiSetEnabled(editHosterButton, not setWinner)
- guiSetEnabled(confBetButton, not setWinner)
- guiSetEnabled(confSetWinnerButton, setWinner)
- if (perm) then
- guiSetSelectedTab(tabPanel, confTab)
- end
- end
- end
- addEvent("CITcemBet.showGui", true)
- addEventHandler("CITcemBet.showGui", root, toggleCEMBetGui)
- function betPlayer()
- local r, c = guiGridListGetSelectedItem(betPlayerGridList)
- if (r < 0) then
- return false
- end
- local plrName = guiGridListGetItemText(betPlayerGridList, r, 1)
- local plrEle = getPlayerFromName(plrName)
- if (plrEle == localPlayer) then
- outputChatBox("You cannot vote in yourself!", 200, 0, 0)
- return false
- end
- if (not plrEle) then
- outputChatBox("One of player has been logged off. Refreshing the player list.", 200, 0, 0)
- refreshPanel(true)
- return false
- end
- local amount = guiGetText(betAmount)
- triggerServerEvent("CITcemBet.betPlayer", resourceRoot, plrEle, amount)
- end
- function editHosters()
- local textButton = guiGetText(editHosterButton)
- if (textButton == "Add player as hoster") then
- local r, c = guiGridListGetSelectedItem(confPlayerGridList)
- if (r < 0) then
- return false
- end
- local plrName = guiGridListGetItemText(confPlayerGridList, r, 1)
- local plrEle = getPlayerFromName(plrName)
- if (not hostersTable[plrEle]) then
- hostersTable[plrEle] = true
- end
- local row = guiGridListAddRow(confHosterGridList)
- guiGridListSetItemText(confHosterGridList, row, 1, plrName, false, false)
- guiGridListRemoveRow(confPlayerGridList, r)
- return true
- end
- local r, c = guiGridListGetSelectedItem(confHosterGridList)
- if (r < 0) then
- return false
- end
- local plrName = guiGridListGetItemText(confHosterGridList, r, 1)
- local plrEle = getPlayerFromName(plrName)
- if (plrEle == localPlayer) then
- outputChatBox("You cannot move yourself!", 200, 0, 0)
- return false
- end
- if (hostersTable[plrEle]) then
- hostersTable[plrEle] = nil
- end
- local row = guiGridListAddRow(confPlayerGridList)
- guiGridListSetItemText(confPlayerGridList, row, 1, plrName, false, false)
- guiGridListRemoveRow(confHosterGridList, r)
- end
- function betOpenClose()
- local typeButton = guiGetText(confBetButton)
- if (typeButton == "Start bet") then
- guiSetText(confBetButton, "Stop bet")
- guiSetEnabled(editHosterButton, false)
- guiSetEnabled(confSetWinnerButton, false)
- triggerServerEvent("CITcemBet.startBet", resourceRoot, hostersTable)
- return true
- end
- guiSetText(confBetButton, "Start bet")
- triggerServerEvent("CITcemBet.stopBet", resourceRoot)
- guiSetEnabled(confSetWinnerButton, true)
- guiSetEnabled(confBetButton, false)
- end
- function betWinner()
- local r, c = guiGridListGetSelectedItem(confPlayerGridList)
- if (r < 0) then
- outputChatBox("Error: Invalid player name.", 200, 0, 0)
- return false
- end
- local plrName = guiGridListGetItemText(confPlayerGridList, r, 1)
- triggerServerEvent("CITcemBet.setBetWinner", resourceRoot, plrName)
- hostersTable = {}
- refreshPanel(false)
- end
- function searchPlayers(guiEle)
- if (guiEle ~= betSearchPlayerEdit and guiEle ~= confSearchPlayerEdit and guiEle ~= confSearchHosterEdit) then
- return false
- end
- local name = guiGetText(guiEle)
- local gridlistPlr
- if (guiEle == betSearchPlayerEdit) then
- gridlistPlr = betPlayerGridList
- elseif (guiEle == confSearchPlayerEdit) then
- gridlistPlr = confPlayerGridList
- else
- gridlistPlr = confHosterGridList
- end
- guiGridListClear(gridlistPlr)
- if (guiEle == confSearchHosterEdit) then
- for plr, bool in pairs(hostersTable) do
- local plrName = getPlayerName(plr)
- if (string.find(string.lower(plrName), string.lower(name))) then
- local rowMain = guiGridListAddRow(gridlistPlr)
- guiGridListSetItemText(gridlistPlr, rowMain, 1, plrName, false, false)
- end
- end
- return true
- end
- local plrs = getElementsByType("player")
- for i, plr in ipairs(plrs) do
- if (getElementDimension(plr) == 336) then
- local plrName = getPlayerName(plr)
- if (string.find(string.lower(plrName), string.lower(name)) and not hostersTable[plr] and localPlayer ~= plr) then
- local rowMain = guiGridListAddRow(gridlistPlr)
- guiGridListSetItemText(gridlistPlr, rowMain, 1, plrName, false, false)
- end
- end
- end
- end
- function confButtons()
- if (source ~= confPlayerGridList and source ~= confHosterGridList) then
- return false
- end
- if (source == confPlayerGridList) then
- guiSetText(editHosterButton, "Add player as hoster")
- return true
- end
- guiSetText(editHosterButton, "Remove player as hoster")
- end
- function clearEdit()
- local text = guiGetText(source)
- if (text == "Search Hoster" or text == "Search Player" or text == "Amount")then
- guiSetText(source, "")
- end
- end
- function refreshPanel(bool)
- guiSetText(confBetButton, "Start bet")
- guiSetText(editHosterButton, "Add player as hoster")
- guiSetText(confSearchHosterEdit, "Search Hoster")
- guiSetText(confSearchPlayerEdit, "Search Player")
- guiSetText(betAmount, "Amount")
- guiSetText(betSearchPlayerEdit, "Search Player")
- guiSetEnabled(confSetWinnerButton, false)
- guiSetEnabled(editHosterButton, true)
- guiSetEnabled(confBetButton, true)
- guiGridListClear(confPlayerGridList)
- guiGridListClear(confHosterGridList)
- guiGridListClear(betPlayerGridList)
- local plrs = getElementsByType("player")
- for i, plr in ipairs(plrs) do
- if (getElementDimension(plr) == 336) then
- local plrName = getPlayerName(plr)
- if (plr ~= localPlayer and not hostersTable[plr]) then
- local rowPlrHoster = guiGridListAddRow(confPlayerGridList)
- guiGridListSetItemText(confPlayerGridList, rowPlrHoster, 1, plrName, false, false)
- local rowBet = guiGridListAddRow(betPlayerGridList)
- guiGridListSetItemText(betPlayerGridList, rowBet, 1, plrName, false, false)
- elseif (hostersTable[plr] and bool) then
- local rowHoster = guiGridListAddRow(confHosterGridList)
- guiGridListSetItemText(confHosterGridList, rowHoster, 1, plrName, false, false)
- elseif (plr == localPlayer and not bool) then
- local rowHoster = guiGridListAddRow(confHosterGridList)
- guiGridListSetItemText(confHosterGridList, rowHoster, 1, plrName, false, false)
- if (not hostersTable[plr]) then
- hostersTable[plr] = true
- end
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment