Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Daily Cash - Script
- by XStormiest
- using dini for save
- What we save:
- Player last day, last month, last year.
- */
- //includes
- #include <a_samp>
- #include <dini>
- #include <zcmd>
- //config
- #define USE_MONEY_AS_REWARD true // set true if you want to set moneys as reward!
- #define USE_SCORE_AS_REWARD false // set true if you want score to be set as reward!
- // Don't forget to set one to false if you're using another.
- #define MONEY_REWARD_EVERYDAY 1000 // change this to whatever you want
- #define SCORE_REWARD_EVERYDAY 1 // change this to whatever you want
- //some colors
- #define RED 0xFF000089
- #define YELLOW 0xFFCA50FF
- //functions
- stock Receive_Reward(playerid , bool: money=true, bool: score=false, cash = MONEY_REWARD_EVERYDAY, sc = SCORE_REWARD_EVERYDAY)
- {
- if(score)
- {
- new string[256];
- format(string, sizeof(string), "[LOGIN]You received ( %d score ) because you connected on this da for the first time!", sc);
- SendClientMessage(playerid, YELLOW, string);
- }
- else if(money)
- {
- new string[256];
- format(string, sizeof(string), "[LOGIN]You received ( %d $ ) because you connected on this da for the first time!", cash);
- SendClientMessage(playerid, YELLOW, string);
- }
- return 1;
- }
- GetDate_V(&day, &month, &year)
- {
- getdate(year, month, day);
- }
- #define U_DACC "Daily/Users/%s.ini"
- //variables
- enum pD
- {
- Login_Streak,
- pLastDay,
- pLastMonth,
- pLastYear
- }
- new P_Daily[MAX_PLAYERS][pD];
- new OnlinePlayers = 0;
- public OnFilterScriptInit()
- {
- if(fexist("Daily") )
- print("Folder Daily: Succesfully loaded!");
- else
- print("WARNING: File missing - Daily");
- if(fexist("Daily/Users"))
- print("Folder Users found inside Daily: succesfully loaded!");
- else
- print("WARNING: File missing - Users (inside Daily)");
- print("===================");
- print("Daily Cash script|by XStormiest | loaded!");
- print("===================");
- return 1;
- }
- public OnFilterScriptExit()
- {
- print("===================");
- print("Daily Cash script|by XStormiest | unloaded!");
- print("===================");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new username[MAX_PLAYER_NAME];
- GetPlayerName(playerid, username, sizeof(username));
- new File[MAX_PLAYER_NAME+19];
- format(File, sizeof(File), U_DACC, username);
- if(!dini_Exists(File))
- {
- dini_Create(File);
- dini_IntSet(File, "LastDay", P_Daily[playerid][pLastDay]);
- dini_IntSet(File, "LastMonth", P_Daily[playerid][pLastMonth]);
- dini_IntSet(File, "LastYear", P_Daily[playerid][pLastYear]);
- dini_IntSet(File, "LoginStreak", P_Daily[playerid][Login_Streak]);
- P_Daily[playerid][Login_Streak] = -1;
- new d, m, y;
- GetDate_V(d, m, y);
- P_Daily[playerid][pLastDay] = d-1;
- P_Daily[playerid][pLastMonth] = m;
- P_Daily[playerid][pLastYear] = y;
- }
- else
- {
- P_Daily[playerid][pLastDay] = dini_Int(File, "LastDay");
- P_Daily[playerid][pLastMonth] = dini_Int(File, "LastMonth");
- P_Daily[playerid][pLastYear] = dini_Int(File, "LastYear");
- P_Daily[playerid][Login_Streak] = dini_Int(File, "LoginStreak");
- }
- new d, m, y;
- GetDate_V(d, m, y);
- if(P_Daily[playerid][pLastDay] + 1 == d && dini_Exists(File)) // It means if players enters the next day
- {
- if(P_Daily[playerid][Login_Streak] == -1)
- {
- P_Daily[playerid][Login_Streak] = 0;
- GetDate_V(P_Daily[playerid][pLastDay], P_Daily[playerid][pLastMonth], P_Daily[playerid][pLastYear]);
- }
- P_Daily[playerid][Login_Streak]++;
- SendClientMessage(playerid, YELLOW, "Congratiolations, you are on a daily streak");
- #if USE_MONEY_AS_REWARD == true
- GivePlayerMoney(playerid, MONEY_REWARD_EVERYDAY);
- Receive_Reward(playerid, true, false);
- #endif
- #if USE_SCORE_AS_REWARD == true
- SetPlayerScore(playerid, GetPlayerScore(playerid)+SCORE_REWARD_EVERYDAY);
- Receive_Reward(playerid, false, true);
- #endif
- }
- else if(P_Daily[playerid][pLastDay] + 1 < d && dini_Exists(File)) // if play didn't entered everyday
- {
- if(P_Daily[playerid][Login_Streak] == -1)
- {
- P_Daily[playerid][Login_Streak] = 0;
- GetDate_V(P_Daily[playerid][pLastDay], P_Daily[playerid][pLastMonth], P_Daily[playerid][pLastYear]);
- }
- P_Daily[playerid][Login_Streak] = 0;
- SendClientMessage(playerid, YELLOW, "You losed your daily login streak, but don't worry you can get it back xD");
- #if USE_MONEY_AS_REWARD == true
- GivePlayerMoney(playerid, MONEY_REWARD_EVERYDAY);
- Receive_Reward(playerid, true, false);
- #endif
- #if USE_SCORE_AS_REWARD == true
- SetPlayerScore(playerid, GetPlayerScore(playerid)+SCORE_REWARD_EVERYDAY);
- Receive_Reward(playerid, false, true);
- #endif
- }
- else
- {
- if(P_Daily[playerid][pLastDay] == d && dini_Exists(File))
- SendClientMessage(playerid, YELLOW, "You can take your pay for login only once a day, not more!");
- }
- new string[256];
- if(m > 10 && d > 10 && (d - P_Daily[playerid][pLastDay] > 1) ) { format(string, sizeof(string), "[LOGIN] You connected last time on [%d:%d:%d]", P_Daily[playerid][pLastDay], P_Daily[playerid][pLastMonth], P_Daily[playerid][pLastYear]); SendClientMessage(playerid, YELLOW, string);}
- else if(m > 10 && d < 10 && (d - P_Daily[playerid][pLastDay] > 1) ) { format(string, sizeof(string), "[LOGIN] You connected last time on [0%d:%d:%d]", P_Daily[playerid][pLastDay], P_Daily[playerid][pLastMonth], P_Daily[playerid][pLastYear]); SendClientMessage(playerid, YELLOW, string);}
- else if(m < 10 && d > 10 && (d - P_Daily[playerid][pLastDay] > 1) ) { format(string, sizeof(string), "[LOGIN] You connected last time on [%d:0%d:%d]", P_Daily[playerid][pLastDay], P_Daily[playerid][pLastMonth], P_Daily[playerid][pLastYear]); SendClientMessage(playerid, YELLOW, string);}
- else if(d - P_Daily[playerid][pLastDay] == 1) SendClientMessage(playerid, YELLOW, "[LOGIN] You connected last time Yesterday");
- else if(d - P_Daily[playerid][pLastDay] == 0) SendClientMessage(playerid, YELLOW, "[LOGIN] You connected last time on this day!");
- OnlinePlayers++;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new username[MAX_PLAYER_NAME];
- GetPlayerName(playerid, username, sizeof(username));
- new File[MAX_PLAYER_NAME+19];
- format(File, sizeof(File), U_DACC, username);
- new d, m, y;
- GetDate_V(d, m, y);
- if(dini_Exists(File))
- {
- P_Daily[playerid][pLastDay] = d;
- P_Daily[playerid][pLastMonth] = m;
- P_Daily[playerid][pLastYear] = y;
- dini_IntSet(File, "LastDay", P_Daily[playerid][pLastDay]);
- dini_IntSet(File, "LastMonth", P_Daily[playerid][pLastMonth]);
- dini_IntSet(File, "LastYear", P_Daily[playerid][pLastYear]);
- dini_IntSet(File, "LoginStreak", P_Daily[playerid][Login_Streak]);
- }
- OnlinePlayers--;
- return 1;
- }
- // Command
- CMD:top5login(playerid, params[])
- {
- if(OnlinePlayers < 5) return SendClientMessage(playerid, RED, "Not Enough Players! Min 5!");
- new username[MAX_PLAYER_NAME];
- new str[512], string[256];
- strcat(str, "Username\tLogin Streak\n");
- for(new i = 0; i < MAX_PLAYERS - 1; i++)
- {
- if(P_Daily[i][Login_Streak] > P_Daily[i+1][Login_Streak] && IsPlayerConnected(i) && IsPlayerConnected(i+1))
- {
- GetPlayerName(i, username, sizeof(username));
- format(string, sizeof(string), "%s\t%d\n", username, P_Daily[i][Login_Streak]);
- strcat(str, string);
- }
- else if(P_Daily[i][Login_Streak] < P_Daily[i+1][Login_Streak] && IsPlayerConnected(i) && IsPlayerConnected(i+1))
- {
- GetPlayerName(i+1, username, sizeof(username));
- format(string, sizeof(string), "%s\t%d\n", username, P_Daily[i+1][Login_Streak]);
- strcat(str, string);
- }
- }
- ShowPlayerDialog(playerid, 100, DIALOG_STYLE_TABLIST_HEADERS, "Top 5 Login Streak", str, "Ok", "");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement