Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define FILTERSCRIPT
- #include <a_samp>
- #include <sscanf2>
- #include <iZCMD>
- #include <YSI\y_timers>
- #include <YSI\y_iterate>
- #define COLOR_ANNOUNCE 0x00DEDAFF
- stock hook_IsPlayerAdmin(playerid)
- {
- new bool:IsAdmin = false;
- IsAdmin = ( IsPlayerAdmin(playerid) ) ? true : false;
- // IsAdmin = ( CallRemoteFunction("GetAdminLevel", "i", playerid) ) ? true : false;
- return IsAdmin;
- }
- #if defined _ALS_IsPlayerAdmin
- #undef IsPlayerAdmin
- #else
- #define _ALS_IsPlayerAdmin
- #endif
- #define IsPlayerAdmin hook_IsPlayerAdmin
- enum D_LOTTERY_DATA {
- MoneyPrize,
- ScorePrize,
- bool:Hosted
- }
- stock const
- LOTTERY_WIN_MSG[] = "[Lottery] %s (ID:%d) has won the lottery and earned $%s and %s score.",
- LOTTERY_JOIN_MSG[] = "[Lottery] %s (ID:%d) has joined the lottery.",
- LOTTERY_HOST_MSG[] = "[Lottery] A lottery event has started with prizes: $%s and %s score."
- ;
- new
- Lottery[D_LOTTERY_DATA],
- Iterator:LotteryPlayer<MAX_PLAYERS>
- ;
- timer LotteryDelay[60000]() {
- Lottery[Hosted] = false;
- new winner = Iter_Random(LotteryPlayer);
- if( IsPlayerConnected(winner) ) {
- new tmp[128],p_name[MAX_PLAYER_NAME];
- GetPlayerName(winner, p_name, sizeof p_name);
- GivePlayerMoney(winner, Lottery[MoneyPrize]);
- SetPlayerScore(winner, GetPlayerScore(winner) + Lottery[ScorePrize]);
- format(tmp, sizeof tmp, LOTTERY_WIN_MSG, p_name, winner, IntToStr(Lottery[MoneyPrize]), IntToStr(Lottery[ScorePrize]));
- SendClientMessageToAll(COLOR_ANNOUNCE, tmp);
- }
- return true;
- }
- stock IntToStr(t) {
- new tmp[24],d = -1;
- valstr(tmp,t);
- for(new i = strlen(tmp); i > 0; i--) {
- d++;
- if(d == 3) {
- strins(tmp,",",i);
- d = 0;
- }
- }
- return tmp;
- }
- public OnPlayerDisconnect(playerid, reason) {
- if(Iter_Contains(LotteryPlayer, playerid)) {
- Iter_Remove(LotteryPlayer, playerid);
- }
- return true;
- }
- CMD:hostlottery(playerid, params[]) {
- if(IsPlayerAdmin(playerid)) {
- extract params -> new cash, score; else
- return SendClientMessage(playerid, 0xFF0000FF, "USAGE: hostlottery [cash] [score]");
- Lottery[MoneyPrize] = cash;
- Lottery[ScorePrize] = score;
- Lottery[Hosted] = true;
- new tmp[128];
- format(tmp, sizeof tmp, LOTTERY_HOST_MSG, IntToStr(Lottery[MoneyPrize]), IntToStr(Lottery[ScorePrize]));
- SendClientMessageToAll(COLOR_ANNOUNCE, tmp);
- defer LotteryDelay();
- return true;
- }
- return false;
- }
- CMD:joinlottery(playerid) {
- if(Iter_Contains(LotteryPlayer, playerid)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You have joined the lottery already.");
- else if(!Lottery[Hosted]) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: There is no active lottery.");
- else {
- new tmp[128],p_name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, p_name, sizeof p_name);
- format(tmp, sizeof tmp, LOTTERY_JOIN_MSG, p_name, playerid);
- SendClientMessageToAll(COLOR_ANNOUNCE, tmp);
- Iter_Add(LotteryPlayer, playerid);
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment