04.04.2014, 16:52
Hello guys i have a script.Its a lotto script the problem is its giving me a error "error 017: undefined symbol "playerid"
My code is
The line in red is where the error is happening
my total script is
My code is
Код:
forward Draw(); public Draw() { new Lnum = random(100) + 1; //Picks a random number new winner = -1; //Winners ID variable for(new i; i<MAX_PLAYERS; i++) //checks through all players { if(!IsPlayerConnected(i)) continue; //Players not connected if(GetPVarInt(i, "LottoNumber") == Lnum) winner = i; //If the players number is the winning number SetPVarInt(i, "LottoNumber", 0); //Resets the number } if(winner != -1) //If there was a winner { new Pname[24]; GetPlayerName(winner, Pname, 24); new str[100]; SendClientMessageToAll(0x62FF32FF, "****LOTTO INFORMATION****"); //Lotto info format(str, sizeof(str), "WE HAVE A WINNER! %s(%d) won $%d!!!!", Pname, winner, Jackpot); SendClientMessageToAll(0x62FF32FF, str); //Lotto info SendClientMessageToAll(0x62FF32FF, "Make sure you get a ticket for next draw /lotto [1-100]!!"); //Lotto info GivePlayerMoney(winner, Jackpot); //Gives the winner the cash SetPlayerScore(playerid, GetPlayerScore(playerid) + 5); Jackpot = LOTTO_START; //Resets the jackpot } if(winner == -1) //No winner { new str[100]; SendClientMessageToAll(0x62FF32FF, "****LOTTO INFORMATION****"); //Lotto info format(str, sizeof(str), "There was no lotto winner for this draw. The jackpot will go up to $%d!", Jackpot); SendClientMessageToAll(0x62FF32FF, str); //Lotto info SendClientMessageToAll(0x62FF32FF, "Make sure you get a ticket for next draw /lotto [1-100]!!"); } for(new s; s<100; s++) { Numbers[s] = 0; //Resets all numbers so they are usable. } return 1; }
my total script is
Код:
#include <a_samp> //You need the a_samp include in almost every script. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //DCMD #define LOTTO_JACKPOT 10000 //How much it goes up every 30 seconds or whenever someone buys a ticket #define LOTTO_START 200000 //How much the lotto starts off at every draw #define LOTTO_DRAW 10 //How many minutes between each lotto draw #define TICKET_COST 1000 //How much a ticket will cost new Jackpot = LOTTO_START; //Jackpot amount new Numbers[100]; //So 2 people don't get the same # public OnFilterScriptInit() { SetTimer("UpdateJP", 30000, true); //Updates the jackpot SetTimer("Draw", LOTTO_DRAW*1000*60, true); //Updates the jackpot return 1; } forward UpdateJP(); //Always forward a timer public UpdateJP() { Jackpot = Jackpot + LOTTO_JACKPOT; //Ads to the lotto jackpot return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(lotto, 5, cmdtext); return 0; } dcmd_lotto(playerid, params[]) { if(!strlen(params)) //If the player doesn't put a nubmer { SendClientMessage(playerid, 0x62FF32FF, "***Lotto information***"); //Lotto info SendClientMessage(playerid, 0x62FF32FF, "Pick a number between 1 and 100 with /lotto [1-100]"); //Lotto info new str[75]; //Creates the string format(str, sizeof(str), "Current Jackpot is $%d!!!!", Jackpot); //Formats the jackpot string SendClientMessage(playerid, 0x62FF32FF, str); //Shows the current jackpot } new Num = strval(params); //Makes the param that the player entered into a intiger if(Numbers[Num] == 1) //If the number is used { new str[75]; //Makes a variable format(str, sizeof(str), "Lotto number %d is already taken!", Num); //Formats a str SendClientMessage(playerid, 0xE21F1FFF, str); //Sends the message return 1; } if(GetPVarInt(playerid, "LottoNumber") != 0) return SendClientMessage(playerid, 0xE21F1FFF, "You have already got a lotto number"); SetPVarInt(playerid, "LottoNumber", Num); //Sets the players number Numbers[Num] = 1; //Number is used GivePlayerMoney(playerid, -TICKET_COST); //Takes away the ticket cost. new str[75]; format(str, sizeof(str), " Lotto ticket brought! You now have number %d for the next draw", Num); SendClientMessage(playerid, 0x62FF32FF, str); //Lotto info format(str, sizeof(str), " Draws are held every %d minutes and the winners are announced. Current jackpot is $%d", LOTTO_DRAW, Jackpot); Jackpot = Jackpot + LOTTO_JACKPOT; //Ads to the lotto jackpot SendClientMessage(playerid, 0x62FF32FF, str); //Lotto info return 1; } forward Draw(); public Draw() { new Lnum = random(100) + 1; //Picks a random number new winner = -1; //Winners ID variable for(new i; i<MAX_PLAYERS; i++) //checks through all players { if(!IsPlayerConnected(i)) continue; //Players not connected if(GetPVarInt(i, "LottoNumber") == Lnum) winner = i; //If the players number is the winning number SetPVarInt(i, "LottoNumber", 0); //Resets the number } if(winner != -1) //If there was a winner { new Pname[24]; GetPlayerName(winner, Pname, 24); new str[100]; SendClientMessageToAll(0x62FF32FF, "****LOTTO INFORMATION****"); //Lotto info format(str, sizeof(str), "WE HAVE A WINNER! %s(%d) won $%d!!!!", Pname, winner, Jackpot); SendClientMessageToAll(0x62FF32FF, str); //Lotto info SendClientMessageToAll(0x62FF32FF, "Make sure you get a ticket for next draw /lotto [1-100]!!"); //Lotto info GivePlayerMoney(winner, Jackpot); //Gives the winner the cash SetPlayerScore(playerid, GetPlayerScore(playerid) + 5); Jackpot = LOTTO_START; //Resets the jackpot } if(winner == -1) //No winner { new str[100]; SendClientMessageToAll(0x62FF32FF, "****LOTTO INFORMATION****"); //Lotto info format(str, sizeof(str), "There was no lotto winner for this draw. The jackpot will go up to $%d!", Jackpot); SendClientMessageToAll(0x62FF32FF, str); //Lotto info SendClientMessageToAll(0x62FF32FF, "Make sure you get a ticket for next draw /lotto [1-100]!!"); } for(new s; s<100; s++) { Numbers[s] = 0; //Resets all numbers so they are usable. } return 1; }