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];}
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 :)
1 or lotto system find = http://vcmp.liberty-unleashed.co.uk/forum/index.php?topic=2869.0
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.