Lotto Script
#5

pawn Код:
#include <a_samp>

#define FILTERSCRIPT
#pragma tabsize 0
#define COLOR_RED 0xAA3333AA

#define LOTTO_PRICE 2000 //price of lotto ticket
#define MAX_LOTTO_JACKPOT_INCREASE 20 //jackpot grows every second with a random value, which can not be bigger than stated here



new LottoParticipant[MAX_PLAYERS];
new PlayerLottoGuess[MAX_PLAYERS];
new NumberUsed[99];
new LottoJackpot = 1;

forward public LottoDraw();
forward public LottoJackpotIncrease();
forward public Warning1();
forward public Warning2();
forward public Warning3();
forward public Warning4();

public OnFilterScriptInit()
{
    print("\nLotto filterscript by player007\n");
    SetTimer("LottoJackpotIncrease", 1000, 1);
    SetTimer("LottoDraw", 1440000, 1);
    SetTimer("Warning1", 360000, 0);
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid, COLOR_RED, "Use /lotto to buy a lotto ticket. Use /jackpot to check the current jackpot.");
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    if (newinteriorid == 17 || newinteriorid == 10 || newinteriorid == 18 || newinteriorid == 16 || newinteriorid == 6 || newinteriorid == 4)
    {
      SendClientMessage(playerid, COLOR_RED, "Type /lotto [number] to buy a lotto ticket, and /jackpot to see today's jackpot.");
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    new cmd[256];
    new idx;
    cmd = strtok(cmdtext, idx);

    if (strcmp(cmd, "/lotto", true) == 0)
    {
            new dir[256];
      dir = strtok(cmdtext, idx);
        if (!strlen(dir))
        {
            SendClientMessage(playerid, COLOR_RED, "USAGE: /lotto [number]");
            return 1;
        }
      new number = strval(dir);
          if (LottoParticipant[playerid] == 1)
          {
                    SendClientMessage(playerid, COLOR_RED, "You have already guessed a number for today.");
          }
          else
          {
            if (GetPlayerMoney(playerid) >= LOTTO_PRICE)
                    {
                        if (number > 0 && number < 100)
                        {
                          if (NumberUsed[number] == 0)
                          {
                                new string[256];
                                format(string, sizeof(string), "~w~Your lotto number is:~g~ %d ~w~.", number);
                                GameTextForPlayer(playerid, string, 4000, 3);
                                PlayerLottoGuess[playerid] = number;
                                LottoParticipant[playerid] = 1;
                                GivePlayerMoney(playerid, -LOTTO_PRICE);
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_RED, "The number you selected is already used.");
                            }

                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_RED, "The number you entered is invalid, please type a number between 0 and 99.");
                        }
                    }
                    else
                    {
                      SendClientMessage(playerid, COLOR_RED, "You do not have enought money to buy a lotto ticket.");
                    }
                }
            }
    return 1;
    }

    if (strcmp(cmd, "/jackpot", true) == 0)
    {
        new string[256];
        format(string, sizeof(string), "Current jackpot is: %d.", LottoJackpot);
        SendClientMessage(playerid, COLOR_RED, string);
    return 1;
    }

    if (strcmp(cmd, "/resetjackpot", true) == 0)
    {
        if (IsPlayerAdmin(playerid))
        {
          ResetJackpot();
          SendClientMessage(playerid, COLOR_RED, "Jackpot set to 0.");
        }
        else
        {
          SendClientMessage(playerid, COLOR_RED, "Only admins can reset the lotto jackpot. See /lottocommands.");
        }
    return 1;
    }

    if (strcmp(cmd, "/lottocommands", true) == 0)
    {
      if (IsPlayerAdmin(playerid))
      {
        SendClientMessage(playerid, COLOR_RED, "Lotto filterscript made by player007.");
        SendClientMessage(playerid, COLOR_RED, "/lotto [number] (only in 24/7 shops), /jackpot (see today's jackpot)");
        SendClientMessage(playerid, COLOR_RED, "Admins can also use /resetjackpot to reset the jackpot (set it to 0).");
        }
        else
        {
        SendClientMessage(playerid, COLOR_RED, "Lotto filterscript made by player007.");
        SendClientMessage(playerid, COLOR_RED, "/lotto [number] , /jackpot (see today's jackpot)");
        }
    return 1;
    }

    return 0;
}

strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}

public LottoJackpotIncrease()
{
    LottoJackpot = LottoJackpot+random(MAX_LOTTO_JACKPOT_INCREASE);
}

public LottoDraw()
{
         new LottoWinningNumber = random(99)+1;
         new IsThereAWinner = 0;
         new WinnerID;
         new WinnerName[MAX_PLAYER_NAME];
         new tempJackpot = LottoJackpot;
          for (new i = 0; i < MAX_PLAYERS; i++)
            {
              if (LottoParticipant[i] == 1)
              {
                    if (PlayerLottoGuess[i] == LottoWinningNumber)
                    {
                      IsThereAWinner = 1;
                      WinnerID = i;
                        GetPlayerName(i, WinnerName, sizeof(WinnerName));
                        GivePlayerMoney(i, LottoJackpot);
                        ResetJackpot();
                    }
              }
            }
            if (IsThereAWinner == 1)
            {
              new string[256], string2[256];
              format(string, sizeof(string), "Today's winner is %s (%d), who has recieved today's jackpot, $%d! Winning number: %d.", WinnerName, WinnerID, tempJackpot, LottoWinningNumber);
              format(string2, sizeof(string2), "Buy a ticket for tomorrow's lotto drawing with /lotto [number] command!");
              SendClientMessageToAll(COLOR_RED, string);
              SendClientMessageToAll(COLOR_RED, string2);
            }
            if (IsThereAWinner == 0)
            {
              new string[256], string2[256];
                format(string, sizeof(string), "We have no winner for today, so the jackpot remains $%d! Today's winning number was: %d.", LottoJackpot, LottoWinningNumber);
              format(string2, sizeof(string2), "Buy a ticket for tomorrow's lotto drawing with /lotto [number] command!");
              SendClientMessageToAll(COLOR_RED, string);
              SendClientMessageToAll(COLOR_RED, string2);
            }
            ResetLotto();
}

stock ResetLotto()
{
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
      LottoParticipant[i] = 0;
      PlayerLottoGuess[i] = 0;
    }
    for (new number = 0; number < 99; number++)
    {
      NumberUsed[number] = 0;
    }
}

stock ResetJackpot()
{
    LottoJackpot = 0;
}

public Warning1()
{
    GameTextForAll("~w~Only ~g~18 ~w~hours til next lotto number picking! Buy a lotto ticket at your local 24/7 store!", 6500, 3);
    new string[256];
    format(string, sizeof(string), "~n~~w~Today's jackpot is: ~g~$%d~w~.", LottoJackpot);
    SetTimer("Warning2", 360000, 0);
}

public Warning2()
{
    GameTextForAll("~w~Only ~g~12 ~w~hours til next lotto number picking! Buy a lotto ticket at your local 24/7 store!", 6500, 3);
    new string[256];
    format(string, sizeof(string), "~n~~w~Today's jackpot is: ~g~$%d~w~.", LottoJackpot);
    SetTimer("Warning3", 360000, 0);
}

public Warning3()
{
    GameTextForAll("~w~Only ~g~6 ~w~hours til next lotto number picking! Buy a lotto ticket at your local 24/7 store!", 6500, 3);
    new string[256];
    format(string, sizeof(string), "~n~~w~Today's jackpot is: ~g~$%d~w~.", LottoJackpot);
    SetTimer("Warning4", 360000, 0);
}

public Warning4()
{
    SetTimer("Warning1", 360000, 0);
}
Reply


Messages In This Thread
Lotto Script - by Ownzer - 15.07.2009, 22:48
Re: Lotto Script - by Vetle - 15.07.2009, 22:54
Re: Lotto Script - by Ownzer - 15.07.2009, 22:55
Re: Lotto Script - by Ownzer - 15.07.2009, 23:37
Re: Lotto Script - by Abernethy - 15.07.2009, 23:48
Re: Lotto Script - by Ownzer - 16.07.2009, 00:18
Re: Lotto Script - by Ownzer - 16.07.2009, 00:21
Re: Lotto Script - by Correlli - 16.07.2009, 00:21
Re: Lotto Script - by Ownzer - 16.07.2009, 00:23
Re: Lotto Script - by Ownzer - 16.07.2009, 00:31

Forum Jump:


Users browsing this thread: 2 Guest(s)