17.03.2016, 15:06
Hello all. How to convert to save in mysql from dini ?
i have here i script:
Thanks!
i have here i script:
pawn Код:
/*
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;
}