tunderbolt Posted May 15, 2024 Share Posted May 15, 2024 well i downloaded this resource and idk how to change the interior and dimension of the marker. ----------------- --- (c) 2010 ---- --- by Zipper --- ----------------- --[[ Don't change anything if you don't know what you're doing!!! ______________________________ Please don't remove the copyright, but feel free to edit this resource and please report if you find a bug! ______________________________ Maybe it would have been better to use tables instead of "_G", but i simply like the "_G" much more. ______________________________ Don't like the optic of the cards? Think that "_G" is crap? Think that my english is too bad? Then go to hell. ]] pokerPlayerPositions = {} pokerPlayerPositions[1] = {} pokerPlayerPositions[1]["x"] = 1117.9412841797 pokerPlayerPositions[1]["y"] = 11.394277572632 pokerPlayerPositions[1]["z"] = 1002 pokerPlayerPositions[1]["rot"] = 0 pokerPlayerPositions[2] = {} pokerPlayerPositions[2]["x"] = 1118.427734375 pokerPlayerPositions[2]["y"] = 12.34 pokerPlayerPositions[2]["z"] = 1001.8 pokerPlayerPositions[2]["rot"] = -45 pokerPlayerPositions[3] = {} pokerPlayerPositions[3]["x"] = 1119.2440185547 pokerPlayerPositions[3]["y"] = 12.797629356384 pokerPlayerPositions[3]["z"] = 1002 pokerPlayerPositions[3]["rot"] = -90 pokerPlayerPositions[4] = {} pokerPlayerPositions[4]["x"] = 1120.1339111328 pokerPlayerPositions[4]["y"] = 12.356394767761 pokerPlayerPositions[4]["z"] = 1002 pokerPlayerPositions[4]["rot"] = -135 pokerPlayerPositions[5] = {} pokerPlayerPositions[5]["x"] = 1120.3681640625 pokerPlayerPositions[5]["y"] = 11.336325645447 pokerPlayerPositions[5]["z"] = 1002 pokerPlayerPositions[5]["rot"] = 180 pokerPlayerPositions[6] = {} pokerPlayerPositions[6]["x"] = 1118.6916503906 pokerPlayerPositions[6]["y"] = 10.396108627319 pokerPlayerPositions[6]["z"] = 1001.5 pokerPlayerPositions[6]["rot"] = 206 -- The door & the dice-blip at the marker-position createObject ( 3109, -2502.216796875, 2361.5061035156, 5.2554173469543 ) createBlip ( -2502.216796875, 2361.5061035156, 5.2554173469543, 25 ) -- Need an explanation? pokerPlayer1 = false pokerPlayer2 = false pokerPlayer3 = false pokerPlayer4 = false pokerPlayer5 = false pokerPlayer6 = false pokerCurPlayers = 0 pokerFirstLoop = false pokerPlayer1In = false pokerPlayer2In = false pokerPlayer3In = false pokerPlayer4In = false pokerPlayer5In = false pokerPlayer6In = false pokerPlayer1Money = 0 pokerPlayer2Money = 0 pokerPlayer3Money = 0 pokerPlayer4Money = 0 pokerPlayer5Money = 0 pokerPlayer6Money = 0 pokerPlayer1Bet = 0 pokerPlayer2Bet = 0 pokerPlayer3Bet = 0 pokerPlayer4Bet = 0 pokerPlayer5Bet = 0 pokerPlayer6Bet = 0 pokerPlayer1HandValue = 0 pokerPlayer2HandValue = 0 pokerPlayer3HandValue = 0 pokerPlayer4HandValue = 0 pokerPlayer5HandValue = 0 pokerPlayer6HandValue = 0 communityCard1 = false communityCard2 = false communityCard3 = false communityCard4 = false communityCard5 = false pokerPlayer1TotalBet = 0 pokerPlayer2TotalBet = 0 pokerPlayer3TotalBet = 0 pokerPlayer4TotalBet = 0 pokerPlayer5TotalBet = 0 pokerPlayer6TotalBet = 0 curPokerRound = 0 curPokerPlayer = false curPokerPot = 0 curPokerBlindPlayer = false bigBlind = 20 smallBlind = bigBlind / 2 -- The Marker for entering the poker pokerEntranceMarker = createMarker ( 1119.03, 9.81, 1002.07, "cylinder", 1.5, 125, 0, 0, 125, 1620, 12 ) -- The poker table pokerTable = createObject ( 2189, 1119.17, 11.49, 1001.88 ) setElementInterior ( pokerTable, 12 ) pokerChair1 = createObject ( 1720, 1119.8155517578, 10.448568344116, 1001.078, 0, 0, 206 ) pokerChair2 = createObject ( 1720, 1118.6916503906, 10.396108627319, 1001.078, 0, 0, 146 ) setElementInterior ( pokerChair1, 12 ) setElementInterior ( pokerChair2, 12 ) function pokerMarkerHit ( hit, dim ) if dim then if getElementType ( hit ) == "player" then suc = true for i = 1, 6 do if _G["pokerPlayer"..i] == hit then suc = false break end end -- Only proceed if the player isn't already playing and is not in a vehicle! if not getPedOccupiedVehicle ( hit ) and suc then -- If there is one more seat if pokerCurPlayers <= 5 then pokerCurPlayers = pokerCurPlayers + 1 for i = 1, 6 do if not _G["pokerPlayer"..i] then _G["pokerPlayer"..i] = hit _G["pokerPlayer"..i.."Money"] = 200 _G["pokerPlayer"..i.."In"] = false setPedFrozen ( hit, true ) setElementPosition ( hit, pokerPlayerPositions[i]["x"], pokerPlayerPositions[i]["y"], pokerPlayerPositions[i]["z"] ) setElementInterior ( hit, 12 ) setPedRotation ( hit, pokerPlayerPositions[i]["rot"] - 90 ) setCameraMatrix ( hit, 1119.8720703125, 11.228228569031, 1005.1077270508, 1119.1854248047, 11.514589309692, 1002.0599365234 ) toggleAllControls ( hit, false, true, false ) -- Sometimes the animations stops, don't ask me why for i = 1, 6 do if _G["pokerPlayer"..i] then setPedAnimation ( _G["pokerPlayer"..i], "FOOD", "FF_Sit_Loop", -1, true, false, false ) setPedRotation ( _G["pokerPlayer"..i], pokerPlayerPositions[i]["rot"] - 90 ) end end showCursor ( hit, true ) setElementData ( hit, "ElementClicked", true ) triggerClientEvent ( hit, "showPokerHand", hit, 0, 0 ) triggerClientEvent ( hit, "setVarbs", getRootElement(), "pokerCurOwnChips", 200 ) -- Refresh the Values for the new player for k = 1, 6 do if _G["pokerPlayer"..k] then _G["p"..k] = "(".._G["pokerPlayer"..k.."Money"]..") "..getPlayerName ( _G["pokerPlayer"..k] ) if _G["pokerPlayer"..k.."In"] then _G["p"..k.."s"] = true else _G["p"..k.."s"] = false end else _G["p"..k] = "" _G["p"..k.."s"] = false end end sendMessageToAllPokerPlayers ( getPlayerName(hit).." joined the game!", 200, 200, 0 ) triggerClientEvent ( _G["pokerPlayer"..i], "refreshPokerVarbs", getRootElement(), _G["pokerPlayer"..i.."Bet"], curPokerPot, getHighestCall(), _G["pokerPlayer"..i.."Money"], p1, p1s, p2, p2s, p3, p3s, p4, p4s, p5, p5s, p6, p6s ) if not pokerRoundStarted then _G["pokerPlayer"..i.."In"] = true else _G["pokerPlayer"..i.."In"] = false end break end end else outputChatBox ( "Please wait, all seats are currently in use!", hit, 125, 0, 0 ) end end end end end addEventHandler ( "onMarkerHit", pokerEntranceMarker, pokerMarkerHit ) function takePlayerChips ( player, amount ) _G["pokerPlayer"..player.."Money"] = _G["pokerPlayer"..player.."Money"] - amount curPokerPot = curPokerPot + amount if _G["pokerPlayer"..player.."Money"] < 0 then _G["pokerPlayer"..player.."Money"] = 0 sendMessageToAllPokerPlayers ( getPlayerName(_G["pokerPlayer"..player]).." is all in!", 0, 0, 170 ) end end function roundCheck() -- Check if enough players are there - -- if there are enough, proceed pokerCurPlayers = 0 for i = 1, 6 do if _G["pokerPlayer"..i] ~= false then pokerCurPlayers = pokerCurPlayers + 1 if _G["pokerPlayer"..i.."Money"] <= 0 then setPlayerLeavingPoker_func ( _G["pokerPlayer"..i] ) end end end if pokerCurPlayers > 1 then curPokerPot = 0 sendMessageToAllPokerPlayers ( "Dealer: New round!", 200, 200, 0 ) pokerRoundStarted = true curPokerRound = 0 if not curPokerBlindPlayer then curPokerBlindPlayer = 0 end pokerFirstLoop = false for i = 1, 6 do _G["pokerPlayer"..i.."Bet"] = 0 end i = getNextPlayerAtPoker ( curPokerBlindPlayer ) i = getPrevPlayerAtPoker ( i ) curPokerBlindPlayer = i _G["pokerPlayer"..i.."Bet"] = bigBlind takePlayerChips ( i, bigBlind ) _G["pokerPlayer"..i.."Bet"] = _G["pokerPlayer"..i.."Bet"] smallBlindPlayer = getNextPlayerAtPoker (curPokerBlindPlayer) _G["pokerPlayer"..smallBlindPlayer.."Bet"] = smallBlind takePlayerChips ( smallBlindPlayer, smallBlind ) sendMessageToAllPokerPlayers ( "Dealer: Bigblind: "..getPlayerName(_G["pokerPlayer"..curPokerBlindPlayer])..", Smallblind: "..getPlayerName(_G["pokerPlayer"..smallBlindPlayer]).."!", 200, 200, 0 ) cardsInUse = nil cardsInUse = {} pokerFirstLoop = false -- Give out the hand cards for the players & some other things for i = 1, 6 do _G["pokerPlayer"..i.."HandValue"] = 0 if _G["pokerPlayer"..i] then card1 = getNewCard() card2 = getNewCard() _G["pokerPlayer"..i.."In"] = true _G["pokerPlayer"..i.."card1"] = card1 _G["pokerPlayer"..i.."card2"] = card2 triggerClientEvent ( _G["pokerPlayer"..i], "showPokerHand", getRootElement(), card1, card2 ) triggerClientEvent ( _G["pokerPlayer"..i], "setVarbs", _G["pokerPlayer"..i], "pokerCurBets", bigBlind ) end end setTimer ( nextRoundPlayer, 1000, 1 ) else if isTimer ( roundCheckTimer ) then killTimer ( roundCheckTimer ) end roundCheckTimer = setTimer ( roundCheck, 5000, 1 ) end end roundCheckTimer = setTimer ( roundCheck, 5000, 1 ) function playerTurnCheck_func ( player ) -- if the player decides to check local id = getPlayerPokerID ( player ) sendMessageToAllPokerPlayers ( getPlayerName(player).." checks!", 200, 0, 0 ) killTimer ( timeoutTimer ) nextRoundPlayer () end addEvent ( "playerTurnCheck", true ) addEventHandler ( "playerTurnCheck", getRootElement(), playerTurnCheck_func ) function playerTurnCall_func ( player ) -- if the player decides to call local id = getPlayerPokerID ( player ) sendMessageToAllPokerPlayers ( getPlayerName(player).." calls ( To "..getHighestCall().." )!", 200, 0, 0 ) local curAmount = getHighestCall () local amount = curAmount - _G["pokerPlayer"..id.."Bet"] -- Check if its an all in if amount >= _G["pokerPlayer"..id.."Money"] then _G["pokerPlayer"..id.."TotalBet"] = _G["pokerPlayer"..id.."TotalBet"] + amount sendMessageToAllPokerPlayers ( getPlayerName(_G["pokerPlayer"..id]).." is all in!", 0, 0, 170 ) else _G["pokerPlayer"..id.."TotalBet"] = _G["pokerPlayer"..id.."TotalBet"] + _G["pokerPlayer"..id.."Money"] end curPokerPot = curPokerPot + amount _G["pokerPlayer"..id.."Bet"] = getHighestCall () killTimer ( timeoutTimer ) nextRoundPlayer () end addEvent ( "playerTurnCall", true ) addEventHandler ( "playerTurnCall", getRootElement(), playerTurnCall_func ) function playerTurnRaise_func ( amount ) -- if the player decides to raise local player = source sendMessageToAllPokerPlayers ( getPlayerName(player).." raises ( To: "..amount.." )!", 200, 0, 0 ) local id = getPlayerPokerID ( player ) takePlayerChips ( id, amount ) _G["pokerPlayer"..id.."Bet"] = _G["pokerPlayer"..id.."Bet"] + amount _G["pokerPlayer"..id.."TotalBet"] = _G["pokerPlayer"..id.."TotalBet"] + amount if isTimer ( timeoutTimer ) then killTimer ( timeoutTimer ) end nextRoundPlayer () end addEvent ( "playerTurnRaise", true ) addEventHandler ( "playerTurnRaise", getRootElement(), playerTurnRaise_func ) function playerTurnFold_func () -- if the player decides to fold local player = source local id = getPlayerPokerID ( player ) sendMessageToAllPokerPlayers ( getPlayerName(player).." folds!", 200, 0, 0 ) _G["pokerPlayer"..id.."Bet"] = 0 _G["pokerPlayer"..id.."In"] = false if isTimer ( timeoutTimer ) then killTimer ( timeoutTimer ) end nextRoundPlayer () end addEvent ( "playerTurnFold", true ) addEventHandler ( "playerTurnFold", getRootElement(), playerTurnFold_func ) function getPlayerPokerID ( player ) -- get the poker-ID of the player, responsible for his money / seat / ect. for i = 1, 6 do if _G["pokerPlayer"..i] == player then return i end end end function getHighestCall () -- get the highest call local highest = 0 for i = 1, 6 do if _G["pokerPlayer"..i.."Bet"] > highest then highest = _G["pokerPlayer"..i.."Bet"] end end return highest end function nextRoundPlayer () -- After a player decides to call / raise / whatever if isTimer ( timeoutTimer ) then killTimer ( timeoutTimer ) end sucess = true p1, p2, p3, p4, p5, p6, p1s, p2s, p3s, p4s, p5s, p6s = getPokerPlayerStats() for i = 1, 6 do if _G["pokerPlayer"..i] then triggerClientEvent ( _G["pokerPlayer"..i], "refreshPokerVarbs", getRootElement(), _G["pokerPlayer"..i.."Bet"], curPokerPot, getHighestCall(), _G["pokerPlayer"..i.."Money"], p1, p2, p3, p4, p5, p6, p1s, p2s, p3s, p4s, p5s, p6s ) end end counter = 0 for i = 1, 6 do if _G["pokerPlayer"..i.."In"] then counter = counter + 1 pokerCPlayerFolder = i if _G["pokerPlayer"..i.."Bet"] ~= getHighestCall () and _G["pokerPlayer"..i.."Money"] ~= 0 then sucess = false end end end if counter == 0 then sendMessageToAllPokerPlayers ( "Runde beendet!", 0, 125, 0 ) resetPokerValues() elseif counter == 1 then sendMessageToAllPokerPlayers ( "Runde beendet - Durch Fold gewonnen hat: "..getPlayerName(_G["pokerPlayer"..pokerCPlayerFolder]).."!", 0, 125, 0 ) _G["pokerPlayer"..pokerCPlayerFolder.."Money"] = _G["pokerPlayer"..pokerCPlayerFolder.."Money"] + curPokerPot for i = 1, 6 do if _G["pokerPlayer"..i] then triggerClientEvent ( _G["pokerPlayer"..i], "hidePokerPlayerBtns", getRootElement() ) end end resetPokerValues() else if curPokerPlayer == curPokerBlindPlayer then pokerFirstLoop = true elseif not _G["pokerPlayer"..curPokerBlindPlayer.."In"] then if curPokerPlayer == getPrevPlayerAtPoker ( curPokerBlindPlayer ) then pokerFirstLoop = true end end if not sucess or not pokerFirstLoop then nextPlayer() pokerFirstLoop = false elseif curPokerRound == 0 then showFlop() pokerFirstLoop = false elseif curPokerRound == 1 then showTurn() pokerFirstLoop = false elseif curPokerRound == 2 then showRiver() pokerFirstLoop = false elseif curPokerRound == 3 then getWinner() pokerFirstLoop = false end end end function setPlayerLeavingPoker_func ( player, id ) -- If someone leaves the game, for e.g. by disconnect -- or "timeout" triggerEvent ( "playerTurnFold", player ) if not id then id = getPlayerPokerID ( player ) end if isElement ( player ) then setPedFrozen ( player, false ) setElementPosition ( player, -2504.489, 2362.214, 4.634 ) setElementInterior ( player, 0 ) setCameraTarget ( player, player ) toggleAllControls ( player, true, true, true ) setPedAnimation ( player ) showCursor ( player, false ) setElementData ( player, "ElementClicked", false ) sendMessageToAllPokerPlayers ( getPlayerName(player).." left the game!", 200, 200, 0 ) triggerClientEvent ( player, "hidePokerDisplay", getRootElement() ) end _G["pokerPlayer"..id] = false _G["pokerPlayer"..id.."HandValue"] = 11 _G["pokerPlayer"..id.."Bet"] = 0 _G["pokerPlayer"..id.."Money"] = 0 _G["pokerPlayer"..id.."In"] = false pokerCurPlayers = pokerCurPlayers - 1 if curPokerPlayer == id then nextPlayer () end end addEvent ( "setPlayerLeavingPoker", true ) addEventHandler ( "setPlayerLeavingPoker", getRootElement(), setPlayerLeavingPoker_func ) -- If a player quits whos playing at the moment function pokerPlayerQuit () for i = 1, 6 do if _G["pokerPlayer"..i] == source then setPlayerLeavingPoker_func ( source ) end end end addEventHandler ( "onPlayerQuit", getRootElement(), pokerPlayerQuit ) -- start the turn of the next player function nextPlayer () if not curPokerPlayer then curPokerPlayer = getNextPlayerAtPoker ( getNextPlayerAtPoker ( getNextPlayerAtPoker ( 0 ) ) ) end curPokerPlayer = getNextPlayerAtPoker ( curPokerPlayer ) sendMessageToAllPokerPlayers ( getPlayerName(_G["pokerPlayer"..curPokerPlayer]).."'s turn!", 0, 0, 170 ) outputChatBox ( "Current call: "..getHighestCall()..", your call: ".._G["pokerPlayer"..curPokerPlayer.."Bet"], _G["pokerPlayer"..curPokerPlayer], 150, 150, 25 ) if isTimer ( timeoutTimer ) then killTimer ( timeoutTimer ) end local player = _G["pokerPlayer"..curPokerPlayer] timeoutTimer = setTimer ( setPlayerLeavingPoker_func, 30000, 1, player, curPokerPlayer ) triggerClientEvent ( _G["pokerPlayer"..curPokerPlayer], "turnBegin", getRootElement() ) end -- show the flop to the players function showFlop() communityCard1 = getNewCard() communityCard2 = getNewCard() communityCard3 = getNewCard() for i = 1, 6 do _G["pokerPlayer"..i.."Bet"] = 0 end for i = 1, 6 do if _G["pokerPlayer"..i] then triggerClientEvent ( _G["pokerPlayer"..i], "refreshPokerCommunityCards", getRootElement(), communityCard1, communityCard2, communityCard3 ) end end curPokerRound = curPokerRound + 1 nextPlayer () end -- show the turn to the players function showTurn() communityCard4 = getNewCard() for i = 1, 6 do _G["pokerPlayer"..i.."Bet"] = 0 end for i = 1, 6 do if _G["pokerPlayer"..i] then triggerClientEvent ( _G["pokerPlayer"..i], "refreshPokerCommunityCards", getRootElement(), communityCard1, communityCard2, communityCard3, communityCard4 ) end end curPokerRound = curPokerRound + 1 nextPlayer () end -- show the river to the players function showRiver() communityCard5 = getNewCard() for i = 1, 6 do _G["pokerPlayer"..i.."Bet"] = 0 end for i = 1, 6 do if _G["pokerPlayer"..i] then triggerClientEvent ( _G["pokerPlayer"..i], "refreshPokerCommunityCards", getRootElement(), communityCard1, communityCard2, communityCard3, communityCard4, communityCard5 ) end end curPokerRound = curPokerRound + 1 nextPlayer () end -- force the clients to "tell" their hand-values function getWinner() for i = 1, 6 do if _G["pokerPlayer"..i] and _G["pokerPlayer"..i.."In"] then triggerClientEvent ( _G["pokerPlayer"..i], "getPlayerBestHand", getRootElement(), communityCard1, communityCard2, communityCard3, communityCard4, communityCard5, _G["pokerPlayer"..i.."card1"], _G["pokerPlayer"..i.."card2"] ) else _G["pokerPlayer"..i.."HandValue"] = 11 end end setTimer ( finalCheck, 2000, 1 ) end function finalCheck () curWinnerValue = 11 pokerPlayer0HandSecValue = 0 curWinner = 0 curWinners = 0 curWinnersList = nil curWinnersList = {} for i = 1, 6 do if _G["pokerPlayer"..i.."In"] then val = _G["pokerPlayer"..i.."HandValue"] -- If a player has a better hand than the current "winner" -- "<" instead ">", because smaller values are better hands if _G["pokerPlayer"..i.."HandValue"] < curWinnerValue then curWinnerValue = _G["pokerPlayer"..i.."HandValue"] curWinner = i curWinners = 1 curWinnersList = nil curWinnersList = {} table.insert ( curWinnersList, curWinner ) -- if the current "winner" has the same hand as a player elseif _G["pokerPlayer"..i.."HandValue"] == curWinnerValue then if val == 3 or val == 6 or val == 7 or val == 9 then if _G["pokerPlayer"..i.."HandSecValue"] and _G["pokerPlayer"..curWinner.."HandSecValue"] then if _G["pokerPlayer"..i.."HandSecValue"] > _G["pokerPlayer"..curWinner.."HandSecValue"] then curWinner = i curWinners = 1 curWinnersList = nil curWinnersList = {} table.insert ( curWinnersList, i ) -- if they've got the same "hand value" elseif _G["pokerPlayer"..i.."HandSecValue"] ==_G["pokerPlayer"..curWinner.."HandSecValue"] then curWinners = curWinners + 1 table.insert ( curWinnersList, i ) end end else -- choose the highcard if getPlayerHighCard ( i ) > getPlayerHighCard ( curWinner ) then curWinner = i curWinners = 1 curWinnersList = nil curWinnersList = {} table.insert ( curWinnersList, i ) -- if they've got the same highcard elseif getPlayerHighCard ( i ) == getPlayerHighCard ( curWinner ) then curWinners = curWinners + 1 table.insert ( curWinnersList, i ) end end end end end if curWinners == 1 then local winnername = getPlayerName(_G["pokerPlayer"..curWinner]) local value = handValueNames[_G["pokerPlayer"..curWinner.."HandValue"]] local h1 = pokerColorOutNames[getCardColor(_G["pokerPlayer"..curWinner.."card1"])].." "..cardIDTypeOutName[getCardType(_G["pokerPlayer"..curWinner.."card1"])] local h2 = pokerColorOutNames[getCardColor(_G["pokerPlayer"..curWinner.."card2"])].." "..cardIDTypeOutName[getCardType(_G["pokerPlayer"..curWinner.."card2"])] -- if the winner was "all in" -- if the winner was "all in" if _G["pokerPlayer"..curWinner.."Money"] <= 0 then _G["pokerPlayer"..curWinner.."Money"] = curPokerPot - _G["pokerPlayer"..curWinner.."TotalBet"] * 2 curPokerPot = curPokerPot - _G["pokerPlayer"..curWinner.."TotalBet"] * 2 sendMessageToAllPokerPlayers ( winnername.." winns with "..value..". ( Hand: "..h1..", "..h2.." ), "..(_G["pokerPlayer"..curWinner.."TotalBet"] * 2).." chips", 0, 125, 0 ) if curPokerPot > 0 then counter = 0 for i = 1, 6 do if _G["pokerPlayer"..i.."In"] then if i == curWinner then else counter = counter + 1 end end end local amount = math.floor ( curPokerPot / counter ) sendMessageToAllPokerPlayers ( "The remaining "..curPokerPot.." chips will be split!", 0, 125, 0 ) for i = 1, 6 do if _G["pokerPlayer"..i.."In"] then if i == curWinner then else _G["pokerPlayer"..i.."Money"] = _G["pokerPlayer"..i.."Money"] + amount end end end resetPokerValues() end else sendMessageToAllPokerPlayers ( winnername.." winns with a "..value..". ( Hand: "..h1..", "..h2.." ), "..curPokerPot.." chips", 0, 125, 0 ) _G["pokerPlayer"..curWinner.."Money"] = _G["pokerPlayer"..curWinner.."Money"] + curPokerPot resetPokerValues() end else winnernames = nil counter = 0 for i, key in ipairs ( curWinnersList ) do counter = counter + 1 if winnernames then local h1 = pokerColorOutNames[getCardColor(_G["pokerPlayer"..i.."card1"])].." "..cardIDTypeOutName[getCardType(_G["pokerPlayer"..i.."card1"])] local h2 = pokerColorOutNames[getCardColor(_G["pokerPlayer"..i.."card2"])].." "..cardIDTypeOutName[getCardType(_G["pokerPlayer"..i.."card2"])] winnernames = winnernames..", "..getPlayerName(_G["pokerPlayer"..i]).." ("..h1..", "..h2..")" else local h1 = pokerColorOutNames[getCardColor(_G["pokerPlayer"..i.."card1"])].." "..cardIDTypeOutName[getCardType(_G["pokerPlayer"..i.."card1"])] local h2 = pokerColorOutNames[getCardColor(_G["pokerPlayer"..i.."card2"])].." "..cardIDTypeOutName[getCardType(_G["pokerPlayer"..i.."card2"])] winnernames = getPlayerName(_G["pokerPlayer"..i]).." ("..h1..","..h2..")" end end local splot = math.floor ( curPokerPot / counter ) sendMessageToAllPokerPlayers ( "Split pot between: "..winnernames..", "..splot.." chips ( each )!", 0, 125, 0 ) for i, key in ipairs ( curWinnersList ) do _G["pokerPlayer"..i.."Money"] = _G["pokerPlayer"..i.."Money"] + splot end resetPokerValues() end end function resetPokerValues () -- Reset the values when a round is finished pokerRoundStarted = false pokerFirstLoop = false curPokerRound = 0 curPokerPlayer = false curPokerPot = 0 curPokerBlindPlayer = getNextPlayerAtPoker ( curPokerBlindPlayer ) for i = 1, 6 do if _G["pokerPlayer"..i] then _G["pokerPlayer"..i.."In"] = true else _G["pokerPlayer"..i.."In"] = false end _G["pokerPlayer"..i.."TotalBet"] = 0 _G["pokerPlayer"..i.."Bet"] = 0 _G["pokerPlayer"..i.."HandValue"] = 0 _G["communityCard"..i] = 0 end p1, p2, p3, p4, p5, p6, p1s, p2s, p3s, p4s, p5s, p6s = getPokerPlayerStats() for i = 1, 6 do if _G["pokerPlayer"..i] then setTimer ( triggerClientEvent, 3000, 1, _G["pokerPlayer"..i], "refreshPokerCommunityCards", getRootElement() ) setTimer ( triggerClientEvent, 3000, 1, _G["pokerPlayer"..i], "refreshPokerVarbs", getRootElement(), _G["pokerPlayer"..i.."Bet"], curPokerPot, getHighestCall(), _G["pokerPlayer"..i.."Money"], p1, p2, p3, p4, p5, p6, p1s, p2s, p3s, p4s, p5s, p6s ) end end if isTimer ( roundCheckTimer ) then killTimer ( roundCheckTimer ) end roundCheckTimer = setTimer ( roundCheck, 7500, 1 ) end function getNextPlayerAtPoker ( id ) -- get the next player ( clockwise ) if id then for i = id, 6 do if _G["pokerPlayer"..i] and _G["pokerPlayer"..i.."In"] and i ~= id then return i end end for i = 1, 6 do if _G["pokerPlayer"..i] and _G["pokerPlayer"..i.."In"] and i ~= id then return i end end end return false end function getPrevPlayerAtPoker ( id ) -- get the next player ( counter-clockwise ) if id then for i = id, 0, -1 do if _G["pokerPlayer"..i] and _G["pokerPlayer"..i.."In"] and i ~= id then return i end end for i = 6, 0, -1 do if _G["pokerPlayer"..i] and _G["pokerPlayer"..i.."In"] and i ~= id then return i end end end return false end function getPlayerHighCard ( id ) if id > 0 then local card1 = getCardType ( _G["pokerPlayer"..id.."card1"] ) local card2 = getCardType ( _G["pokerPlayer"..id.."card2"] ) for i = 1, 5 do _G["card"..(i+2)] = _G["communityCard"..i] end curBest = card1 for i = 2, 7 do if curBest < _G["card"..i] then curBest = _G["card"..i] end end return curBest end return -1 end function handRecieveFromClient_func ( value, sec ) -- retrieve the hand-value from the client local id = getPlayerPokerID ( source ) _G["pokerPlayer"..id.."HandValue"] = value if sec then _G["pokerPlayer"..id.."HandSecValue"] = sec end end addEvent ( "handRecieveFromClient", true ) addEventHandler ( "handRecieveFromClient", getRootElement(), handRecieveFromClient_func ) function sendMessageToAllPokerPlayers ( text, r, g, b ) -- send a message to all current players for i = 1, 6 do local player = _G["pokerPlayer"..i] if player then if isElement ( player ) then outputChatBox ( text, player, r, g, b ) end end end end function getNewCard() -- get a new card from the "stack" while true do local card = math.random ( 1, 52 ) if not cardsInUse[card] then table.insert ( cardsInUse, card ) cardsInUse[card] = true return card end end end function getPokerPlayerStats () -- get the stats for the client for i = 1, 6 do if _G["pokerPlayer"..i.."In"] then _G["p"..i.."s"] = true else _G["p"..i.."s"] = false end if _G["pokerPlayer"..i] then _G["p"..i] = "(".._G["pokerPlayer"..i.."Money"]..") "..getPlayerName ( _G["pokerPlayer"..i] ) else _G["p"..i] = "" end end return p1, p2, p3, p4, p5, p6, p1s, p2s, p3s, p4s, p5s, p6s end Link to comment
ARYDER Posted June 13, 2024 Share Posted June 13, 2024 Find this code: pokerEntranceMarker = createMarker ( 1119.03, 9.81, 1002.07, "cylinder", 1.5, 125, 0, 0, 125, 1620, 12 ) Then add functions like this: setElementDimension (pokerEntranceMarker, YOUR_DIMENSION_INTEGER_NUMBER) setElementInterior (pokerEntranceMarker, YOUR_INTERIOR_INTEGER_NUMBER) setElementInterior setElementDimension Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now