Скриптер
Проверенный
Пользователь
- Сообщения
- 3,582
- Реакции
- 1,570
- Помог
- 137 раз(а)
I tried other systems and there were problems. It was not correctly considered the experience of killing with guns and lasersFagor, what did you exactly try and what was the problem?
СпасибоFagor, в крайнем случае можно будет внести правки в плагины лазеров и тд, с использованием api ранг системы.
// How to update player stats in db
// -2 - on death and disconnect
// -1 - on round end and disconnect
// 0 - on disconnect
// higher than 0 - every n seconds and disconnect
// -
// Default: "-1"
csstats_sql_update "-2"
#include <amxmodx>
#include <crxranks>
#include <nvault_util>
#include <sqlx>
#define PLUGIN_VERSION "1.0"
new g_szTable[32], Handle:g_iTuple
public plugin_init()
{
register_plugin("CRXRanks: nVault to MySQL", PLUGIN_VERSION, "OciXCrom")
register_cvar("CRXRanksTransfer", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
register_srvcmd("crxranks_nvault_to_mysql", "Cmd_Transfer")
}
public Cmd_Transfer()
{
static bUsed
if(bUsed)
{
server_print("Data has already been transfered once during this map. There's no point in transfering it again.")
return PLUGIN_HANDLED
}
new szHost[32], szUser[32], szPassword[32], szDatabase[32]
crxranks_get_setting("SQL_HOST", szHost, charsmax(szHost))
crxranks_get_setting("SQL_USER", szUser, charsmax(szUser))
crxranks_get_setting("SQL_PASSWORD", szPassword, charsmax(szPassword))
crxranks_get_setting("SQL_DATABASE", szDatabase, charsmax(szDatabase))
crxranks_get_setting("SQL_TABLE", g_szTable, charsmax(g_szTable))
g_iTuple = SQL_MakeDbTuple(szHost, szUser, szPassword, szDatabase)
new szVault[32]
crxranks_get_setting("VAULT_NAME", szVault, charsmax(szVault))
new iVault = nvault_util_open(szVault)
nvault_util_readall(iVault, "OnVaultRead")
nvault_util_close(iVault)
bUsed = true
return PLUGIN_HANDLED
}
public OnVaultRead(iCurrent, iNumEntries, szKey[], szValue[], iTimeStamp, iData, iSize)
{
static szQuery[128]
formatex(szQuery, charsmax(szQuery), "INSERT INTO %s (`Player`,`XP`,`Level`,`Next XP`,`Rank`,`Next Rank`) VALUES ('%s','%s','1','0','n/a','n/a');", g_szTable, szKey, szValue)
SQL_ThreadQuery(g_iTuple, "QueryHandler", szQuery)
}
public QueryHandler(iFailState, Handle:iQuery, szError[], iErrorCode)
{
if(iFailState == TQUERY_CONNECT_FAILED || iFailState == TQUERY_QUERY_FAILED)
{
server_print(szError)
}
}
crxranks_nvault_to_mysql
. It must be executed through the server's console (or rcon).?Вот ссылка на все ключевые события и слова