Veteran Member
Join Date: May 2014
Location: Morocco :D
|
02-07-2015
, 16:46
Re: [Tut] MySql - Save/Load/Usefull Things (Xp Mod)
|
#109
|
Quote:
Originally Posted by frOOgy
So, can anyone edit BaD CopY's plugin and change nVault to MySQL ?
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <csstats>
#include <nvault>
#include <csx>
#define PLUGIN "Rank System"
#define VERSION "1.0"
#define AUTHOR "BaD CopY"
new gTime[33]
new gVault
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /rank", "cmd_rank")
register_clcmd("say rank", "cmd_rank")
register_clcmd("team_say /rank", "cmd_rank")
register_clcmd("team_say rank", "cmd_rank")
gVault = nvault_open("TIME")
}
public cmd_rank(id)
{
new stats[8], body[8], szName[33];
get_user_name(id, szName, 32)
new rank_pos = get_user_stats(id, stats, body)
new rank_max = get_statsnum()
new iTimeMins = gTime[id] / 60
static Deaths = 0, Kills = 0, Float:Ratio = 0.0
Deaths = stats[1], Kills = stats[0], Ratio = Deaths == 0 ? (float(Kills)) : (float(Kills) / float(Deaths))
ColorChat(0, GREEN, "^4[Rank]^3 %s^1's rank is ^4%d^1 of ^4%d ^3-- ^1KpD: ^4%.2f^1 [Online: %i m]", szName, rank_pos, rank_max, Ratio, iTimeMins)
return PLUGIN_CONTINUE;
}
public client_authorized(id)
{
loaddata(id)
}
public client_disconnect(id)
{
gTime[id] += get_user_time(id)
savedata(id)
}
stock savedata(id)
{
new AuthId[65]
get_user_authid(id, AuthId, charsmax(AuthId))
new VaultKey[64], VaultData[256]
format(VaultKey, 63, "%s-TIME", AuthId)
format(VaultData, 254, "%i", gTime[id])
nvault_set(gVault, VaultKey, VaultData)
return PLUGIN_CONTINUE
}
stock loaddata(id)
{
new AuthID[35]
get_user_authid(id,AuthID,charsmax(AuthID ))
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-TIME" ,AuthID)
format(vaultdata,255,"%i",gTime[id])
nvault_get(gVault,vaultkey,vaultdata,charsmax (vaultdata))
new Time[33]
parse(vaultdata, Time, charsmax(Time))
gTime[id] = str_to_num(Time)
}
|
try
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#include <csstats>
#include <csx>
#include <sqlx>
#define PLUGIN "Rank System"
#define VERSION "1.0"
#define AUTHOR "BaD CopY"
// Ur Mysql Information
new Host[] = "hostname"
new User[] = "username"
new Pass[] = "password"
new Db[] = "database"
new gTime[33]
new Handle:g_SqlTuple
new g_Error[512]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /rank", "cmd_rank")
register_clcmd("say rank", "cmd_rank")
register_clcmd("team_say /rank", "cmd_rank")
register_clcmd("team_say rank", "cmd_rank")
}
public MySql_Init()
{
g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
if(SqlConnection == Empty_Handle)
set_fail_state(g_Error)
new Handle:Queries
Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS tutorial (steamid varchar(32),time INT(11))")
if(!SQL_Execute(Queries))
{
SQL_QueryError(Queries,g_Error,charsmax(g_Error))
set_fail_state(g_Error)
}
SQL_FreeHandle(Queries)
SQL_FreeHandle(SqlConnection)
}
public cmd_rank(id)
{
new stats[8], body[8], szName[33];
get_user_name(id, szName, 32)
new rank_pos = get_user_stats(id, stats, body)
new rank_max = get_statsnum()
new iTimeMins = gTime[id] / 60
static Deaths = 0, Kills = 0, Float:Ratio = 0.0
Deaths = stats[1], Kills = stats[0], Ratio = Deaths == 0 ? (float(Kills)) : (float(Kills) / float(Deaths))
ColorChat(0, GREEN, "^4[Rank]^3 %s^1's rank is ^4%d^1 of ^4%d ^3-- ^1KpD: ^4%.2f^1 [Online: %i m]", szName, rank_pos, rank_max, Ratio, iTimeMins)
return PLUGIN_CONTINUE;
}
public client_authorized(id)
{
Load_MySql(id)
}
public client_disconnect(id)
{
gTime[id] += get_user_time(id)
Save_MySql(id)
}
public Load_MySql(id)
{
new szSteamId[32], szTemp[512]
get_user_authid(id, szSteamId, charsmax(szSteamId))
new Data[1]
Data[0] = id
format(szTemp,charsmax(szTemp),"SELECT * FROM `tutorial` WHERE (`tutorial`.`steamid` = '%s')", szSteamId)
SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}
public Save_MySql(id)
{
new szSteamId[32], szTemp[512]
get_user_authid(id, szSteamId, charsmax(szSteamId))
format(szTemp,charsmax(szTemp),"UPDATE `tutorial` SET `time` = '%i' WHERE `tutorial`.`steamid` = '%s';",gTime[id], szSteamId)
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(FailState == TQUERY_CONNECT_FAILED)
{
log_amx("Load - Could not connect to SQL database. [%d] %s", Errcode, Error)
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_amx("Load Query failed. [%d] %s", Errcode, Error)
}
new id
id = Data[0]
if(SQL_NumResults(Query) < 1)
{
new szSteamId[32]
get_user_authid(id, szSteamId, charsmax(szSteamId))
if (equal(szSteamId,"ID_PENDING"))
return PLUGIN_HANDLED
new szTemp[512]
format(szTemp,charsmax(szTemp),"INSERT INTO `tutorial` ( `steamid` , `timef`)VALUES ('%s','0');",szSteamId)
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)
}
else
{
gTime[id] = SQL_ReadResult(Query, 1)
}
return PLUGIN_HANDLED
}
public plugin_end()
{
SQL_FreeHandle(g_SqlTuple)
}
__________________
|
|