Lottery System
Credits:
LucasRed
Globals goes at the top of script
/* <?php */
LotteryWon <- false;
TicketsPurchased <- {};
usedTickets <- [];
LotteryCount <- 0;
LotteryPrize <- 0;
Add it in onScriptLoad() event
/* <?php */
function onScriptLoad()
{
Lottery <- array( GetMaxPlayers(), false );
Tickets <- array( 60, false );
}
Add it in onPlayerJoin( player ) event
/* <?php */
function onPlayerJoin( player )
{
Lottery[ player.ID ] = false;
TicketsPurchased.rawset( player.ID, 0 );
}
Add it in onPlayerPart( player, reason ) event
/* <?php */
function onPlayerPart( player, reason )
{
if ( Lottery[ player.ID ] == true ) // If the player bought ticket...
{
local a = TicketsPurchased.rawget( player.ID );
Tickets[a] = false;
TicketsPurchased.rawdelete( player.ID ); // Delete player ticket...
LotteryCount >= 1 ? LotteryCount -- : ( LotteryCount --, _Lottery.Delete(), EndLottery() ); // decrease participants...
}
}
Add it in onPlayerCommand( player, cmd, text ) event
/* <?php */
function onPlayerCommand( player, cmd, text )
{
if ( cmd == "lotto" )
{
if ( !text ) MessagePlayer( "Error - Syntax: /lotto <number betwen 1 and 60>", player);
else if ( !IsNum( text ) ) MessagePlayer( "Use numbers", player );
else
{
if ( Lottery[ player.ID ] == true ) MessagePlayer( "Wait for the result. You already have ticket", player );
else
{
if ( Tickets[text.tointeger()] == true ) MessagePlayer( "ticket already bought", player );
else if ( ( text.tointeger() > 0 ) && ( text.tointeger() < 61 ) )
{
if ( player.Cash >= 1000 )
{
if ( !LotteryCount )
{
Message( "lottery started." );
_Lottery <- NewTimer( "StartLottery", 2000, 1 );
}
player.Cash -= 1000;
Lottery[ player.ID ] = true;
Tickets[text.tointeger()] = true;
usedTickets.push( text.tointeger() );
LotteryCount ++;
local value = ( ( rand() % ( 80000 - 50000 ) ) + 50000 );
LotteryPrize = value.tointeger();
TicketsPurchased.rawset( player.ID, text.tointeger() ); // Set ticket ID for player...
MessagePlayer( "You have paid $1000 for ticket", player );
}
else MessagePlayer( "You need $1000 to buy ticket", player );
}
else
{
MessagePlayer( "You need $1000 to buy ticket.", player );
MessagePlayer("Select number betwen 1 and 60", player );
}
}
}
}
else if ( cmd == "lotstats" )
{
local a;
for ( local i = 0; i <= GetMaxPlayers(); i ++ )
{
local player = FindPlayer( i );
if ( player )
{
local t = TicketsPurchased.rawget( player.ID );
if ( a ) a = a + ", " + player.Name + "(" + t + ")";
else a = player.Name + "(" + t + ")";
}
}
if ( a ) Message( "Tickets: " + a );
else Message( "No tickets" );
}
}
functions goes at the end of script
/* <?php */
function StartLottery()
{
if ( LotteryCount >= 3 ) // Lottery starts from three tickets purchased. You chose this...
{
local ticket = raffle();
for ( local i = 0; i <= GetMaxPlayers(); i ++ )
{
local player = FindPlayer( i );
if ( player )
{
if ( Lottery[ player.ID ] == true )
{
if ( TicketsPurchased.rawget( player.ID ) == ticket )
{
LotteryWon = true;
Message( "Lottery: The winner is..." );
Message( "Lottery: " + player.Name + ". ( ticket " + TicketsPurchased.rawget( player.ID ) + " )" );
player.Cash += LotteryPrize;
}
}
}
}
LotteryWon ? ( Message( "Closed lottery." ), EndLottery() ) : Message( "Lottery: No winners this time, the prize is now " + LotteryPrize );
}
else
{
Message( "Lottery delayed for lack of tickets." );
_Lottery <- NewTimer( "StartLottery", 60000, 1 );
}
}
function EndLottery()
{
for ( local i = 0; i <= GetMaxPlayers(); i ++ )
{
local player = FindPlayer( i );
if ( player )
{
if ( Lottery[ player.ID ] == true )
{
TicketsPurchased.rawset( player.ID, 0 );
Lottery[ player.ID ] = false;
LotteryWon = false;
LotteryCount = 0;
}
}
}
for ( local i = 1; i < 60; i ++ )
{
Tickets[i] = false;
usedTickets.clear();
}
}
function raffle()
{
local rand = rand() % usedTickets.len();
return usedTickets[rand];
}
Thansk for share looking great
Stop using the <?php thing. Just paste stuff on pastebin.
Quote from: Xmair on Dec 27, 2017, 02:27 PMStop using the <?php thing. Just paste stuff on pastebin.
Some one hate php tag.
aye aye captain anything else for you.
Quote from: Xmair on Dec 27, 2017, 02:27 PMJust paste stuff on pastebin.
Never :)
Nice Working ;)
Make merry christmas
ITS Good Idea
@! zeus you can do it :o
1 or lotto system find = http://vcmp.liberty-unleashed.co.uk/forum/index.php?topic=2869.0
is a fuck
LOOL WTF.
Quote from: kennedyarz on Jan 23, 2018, 04:41 AMis a fuck
Show some respect to other releases if you can't stay out of it.
QuoteAt least he has done something and released.