Vice City: Multiplayer

Server Development => Scripting and Server Management => Snippet Showroom => Topic started by: ! on Dec 25, 2017, 12:18 PM

Title: [SNIPPET]Lottery System
Post by: ! on Dec 25, 2017, 12:18 PM
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];}
Title: Re: [SNIPPET]Lottery System
Post by: Darran on Dec 25, 2017, 03:25 PM
Thansk for share looking great
Title: Re: [SNIPPET]Lottery System
Post by: Xmair on Dec 27, 2017, 02:27 PM
Stop using the <?php thing. Just paste stuff on pastebin.
Title: Re: [SNIPPET]Lottery System
Post by: ! on Dec 27, 2017, 02:55 PM
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 :)
Title: Re: [SNIPPET]Lottery System
Post by: =RK=MarineForce on Dec 27, 2017, 08:54 PM
Nice Working ;)

Make merry christmas

ITS Good Idea @! zeus you can do it :o
Title: Re: [SNIPPET]Lottery System
Post by: =RK=MarineForce on Jan 05, 2018, 04:59 PM
1 or lotto system find = http://vcmp.liberty-unleashed.co.uk/forum/index.php?topic=2869.0
Title: Re: [SNIPPET]Lottery System
Post by: kennedyarz on Jan 23, 2018, 04:41 AM
is a fuck
Title: Re: [SNIPPET]Lottery System
Post by: =RK=MarineForce on Jan 23, 2018, 08:17 PM
LOOL WTF.
Title: Re: [SNIPPET]Lottery System
Post by: ! on Feb 03, 2018, 01:00 PM
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.