Търся плъгин за запазване в база данни ника и steamid на играч
-
qwertymi
Извън линия - Потребител
- Мнения: 45
- Регистриран на: 13 Мар 2020, 19:18
- Се отблагодари: 9 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Здравейте търся плъгин който да запазва в база данни името и steamid на играч.
Относно таблицата, може да бъде много проста: ID(int) номер за всеки ред, Nickname, Steamid.
Относно таблицата, може да бъде много проста: ID(int) номер за всеки ред, Nickname, Steamid.
AWP ONLY: 185.148.145.234:27022
-
mi0
Извън линия - AMXX Скриптър
- Мнения: 534
- Регистриран на: 09 Дек 2016, 22:02
- Се отблагодари: 97 пъти
- Получена благодарност: 120 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
// ТРЯБВА ДА НЯМАШ СЪЗДАДЕНА ТАБЛИЦА!!!
#define HOST "localhost"
#define USER "root"
#define PASS ""
#define BASE "csusers"
#define TABLE "users"
new Handle:g_iSqlTuple
new g_szPlayersNames[33][33]
public plugin_init()
{
register_plugin("SteamID/Nick Sql Save", "1.0", "mi0")
}
public plugin_cfg()
{
set_task(0.5, "SQLInit")
}
public SQLInit()
{
g_iSqlTuple = SQL_MakeDbTuple(HOST, USER, PASS, BASE)
new iErrorCode, g_szError[512], Handle:iSqlConnection
iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError))
if (iSqlConnection == Empty_Handle)
{
set_fail_state(g_szError)
}
new Handle:iQueries = SQL_PrepareQuery(iSqlConnection, "CREATE TABLE IF NOT EXISTS `%s`\
(`id` INT(10) NOT NULL AUTO_INCREMENT,\
`nickname` VARCHAR(64) NOT NULL,\
`steamid` VARCHAR(64) NOT NULL,\
PRIMARY KEY (`id`));", TABLE)
if (!SQL_Execute(iQueries))
{
SQL_QueryError(iQueries, g_szError, charsmax(g_szError))
set_fail_state(g_szError)
}
SQL_FreeHandle(iQueries)
SQL_FreeHandle(iSqlConnection)
}
public client_authorized(id, const szAuthID[])
{
get_user_name(id, g_szPlayersNames[id], charsmax(g_szPlayersNames[]))
new szUserID[64]
copy(szUserID, charsmax(szUserID), szAuthID)
Func_SavePlayer(id, szUserID)
}
public client_infochanged(id)
{
new szNewName[33]
get_user_info(id, "name", szNewName, charsmax(szNewName))
if (!equal(szNewName, g_szPlayersNames[id]))
{
copy(g_szPlayersNames[id], charsmax(g_szPlayersNames[]), szNewName)
new szAuthID[64]
get_user_authid(id, szAuthID, charsmax(szAuthID))
Func_SavePlayer(id, szAuthID)
}
}
Func_SavePlayer(id, szAuthID[64])
{
new iErrorCode, g_szError[512], Handle:iSqlConnection
iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError))
if (iSqlConnection == Empty_Handle)
{
set_fail_state(g_szError)
}
new szQuery[128]
formatex(szQuery, charsmax(szQuery), "SELECT `nickname`, `steamid` FROM `%s` WHERE `nickname` = '%s' AND `steamid` = '%s';", TABLE, g_szPlayersNames[id], szAuthID)
szAuthID[63] = id
SQL_ThreadQuery(g_iSqlTuple, "OnSelectExecuted", szQuery, szAuthID, sizeof(szAuthID))
}
public OnSelectExecuted(iFailState, Handle:iQuery, szError[], iError, szData[], iDataSize)
{
if (iFailState != TQUERY_SUCCESS)
{
set_fail_state(szError)
}
if (Func_CheckForResults(iQuery))
{
return
}
new szQuery[128]
formatex(szQuery, charsmax(szQuery), "INSERT INTO `%s` (`nickname`, `steamid`) VALUES ('%s', '%s');", TABLE, g_szPlayersNames[szData[63]], szData)
SQL_ThreadQuery(g_iSqlTuple, "QueryEmptyHandle", szQuery)
}
public QueryEmptyHandle(iFailState, Handle:iQuery, szError[])
{
if (iFailState != TQUERY_SUCCESS)
{
set_fail_state(szError)
}
}
bool:Func_CheckForResults(Handle:iQueryHandle)
{
return SQL_NumResults(iQueryHandle) >= 1
}
aka kurdokoleno
Catch Mod - 87.121.112.232:27021
Catch Mod - 87.121.112.232:27021
-
sf4n
Извън линия - Потребител
- Мнения: 311
- Регистриран на: 08 Яну 2018, 11:25
- Се отблагодари: 25 пъти
- Получена благодарност: 14 пъти
Търся плъгин за запазване в база данни ника и steamid на играч
Няма ли да е по добре да се записват в txt файл? Няма да се налага да го свързваш с база данни.
Единствен по рода си Zombie BaseBuilder с уникален мод и коректни админи по всяко време в сървъра.
IP: bb.cs-zapad.eu:27013
Respawn сървър.
IP: re.cs-zapad.eu:27015
Furien сървър.
IP: fu.cs-zapad.eu:27016
Нашият Сайт
Нашият Форум
-
qwertymi
Извън линия - Потребител
- Мнения: 45
- Регистриран на: 13 Мар 2020, 19:18
- Се отблагодари: 9 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Хм, имам 2 записа на играч с един и същ ник и steamidmi0 написа: ↑09 Май 2020, 12:55Можеш да тестваш.Код за потвърждение: Избери целия код
#include <amxmodx> #include <amxmisc> #include <sqlx> // ТРЯБВА ДА НЯМАШ СЪЗДАДЕНА ТАБЛИЦА!!! #define HOST "localhost" #define USER "root" #define PASS "" #define BASE "csusers" #define TABLE "users" new Handle:g_iSqlTuple new g_szPlayersNames[33][33] public plugin_init() { register_plugin("SteamID/Nick Sql Save", "1.0", "mi0") } public plugin_cfg() { set_task(0.5, "SQLInit") } public SQLInit() { g_iSqlTuple = SQL_MakeDbTuple(HOST, USER, PASS, BASE) new iErrorCode, g_szError[512], Handle:iSqlConnection iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError)) if (iSqlConnection == Empty_Handle) { set_fail_state(g_szError) } new Handle:iQueries = SQL_PrepareQuery(iSqlConnection, "CREATE TABLE IF NOT EXISTS `%s`\ (`id` INT(10) NOT NULL AUTO_INCREMENT,\ `nickname` VARCHAR(64) NOT NULL,\ `steamid` VARCHAR(64) NOT NULL,\ PRIMARY KEY (`id`));", TABLE) if (!SQL_Execute(iQueries)) { SQL_QueryError(iQueries, g_szError, charsmax(g_szError)) set_fail_state(g_szError) } SQL_FreeHandle(iQueries) SQL_FreeHandle(iSqlConnection) } public client_authorized(id, const szAuthID[]) { get_user_name(id, g_szPlayersNames[id], charsmax(g_szPlayersNames[])) new szUserID[64] copy(szUserID, charsmax(szUserID), szAuthID) Func_SavePlayer(id, szUserID) } public client_infochanged(id) { new szNewName[33] get_user_info(id, "name", szNewName, charsmax(szNewName)) if (!equal(szNewName, g_szPlayersNames[id])) { copy(g_szPlayersNames[id], charsmax(g_szPlayersNames[]), szNewName) new szAuthID[64] get_user_authid(id, szAuthID, charsmax(szAuthID)) Func_SavePlayer(id, szAuthID) } } Func_SavePlayer(id, szAuthID[64]) { new iErrorCode, g_szError[512], Handle:iSqlConnection iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError)) if (iSqlConnection == Empty_Handle) { set_fail_state(g_szError) } new szQuery[128] formatex(szQuery, charsmax(szQuery), "SELECT `nickname`, `steamid` FROM `%s` WHERE `nickname` = '%s' AND `steamid` = '%s';", TABLE, g_szPlayersNames[id], szAuthID) szAuthID[63] = id SQL_ThreadQuery(g_iSqlTuple, "OnSelectExecuted", szQuery, szAuthID, sizeof(szAuthID)) } public OnSelectExecuted(iFailState, Handle:iQuery, szError[], iError, szData[], iDataSize) { if (iFailState != TQUERY_SUCCESS) { set_fail_state(szError) } if (Func_CheckForResults(iQuery)) { return } new szQuery[128] formatex(szQuery, charsmax(szQuery), "INSERT INTO `%s` (`nickname`, `steamid`) VALUES ('%s', '%s');", TABLE, g_szPlayersNames[szData[63]], szData) SQL_ThreadQuery(g_iSqlTuple, "QueryEmptyHandle", szQuery) } public QueryEmptyHandle(iFailState, Handle:iQuery, szError[]) { if (iFailState != TQUERY_SUCCESS) { set_fail_state(szError) } } bool:Func_CheckForResults(Handle:iQueryHandle) { return SQL_NumResults(iQueryHandle) >= 1 }
Може ли да се добави проверка ако steamid-то на играч е било записано вече в базата данни да презаписва реда на steamid-то с новото име? Много благодаря за кода.
Целта е да използвам именно база данни. Защото останалите плъгини са също към базата данни, но всичките 5-6 плъгина записват информация за играча по steamid, а аз няма как да извадя информацията за конкретен играч по никнейм (примерно като се опитам да направя с php класация на топ играчи или да ги селектирам по някакъв начин, за да може информацията ми да е достъпна с ника. Ако направя в сайта пример top15 на играчи? Вместо имената ще им изкарва steamid-тата
AWP ONLY: 185.148.145.234:27022
-
mi0
Извън линия - AMXX Скриптър
- Мнения: 534
- Регистриран на: 09 Дек 2016, 22:02
- Се отблагодари: 97 пъти
- Получена благодарност: 120 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Такава проверка съществува. Може ли да дадеш снимка на двата еднакви записа? Провери дали плъгин-а е fail-нал и кажи reason-а.
Ето ти и код с промените.
Ето ти и код с промените.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define HOST "localhost"
#define USER "root"
#define PASS ""
#define BASE "csusers"
#define TABLE "users"
new Handle:g_iSqlTuple
new g_szPlayersNames[33][33]
public plugin_init()
{
register_plugin("SteamID/Nick Sql Save", "1.0", "mi0")
}
public plugin_cfg()
{
set_task(0.5, "SQLInit")
}
public SQLInit()
{
g_iSqlTuple = SQL_MakeDbTuple(HOST, USER, PASS, BASE)
new iErrorCode, g_szError[512], Handle:iSqlConnection
iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError))
if (iSqlConnection == Empty_Handle)
{
set_fail_state(g_szError)
}
new Handle:iQueries = SQL_PrepareQuery(iSqlConnection, "CREATE TABLE IF NOT EXISTS `%s`\
(`id` INT(10) NOT NULL AUTO_INCREMENT,\
`nickname` VARCHAR(64) NOT NULL,\
`steamid` VARCHAR(64) NOT NULL,\
PRIMARY KEY (`id`));", TABLE)
if (!SQL_Execute(iQueries))
{
SQL_QueryError(iQueries, g_szError, charsmax(g_szError))
set_fail_state(g_szError)
}
SQL_FreeHandle(iQueries)
SQL_FreeHandle(iSqlConnection)
}
public client_authorized(id, const szAuthID[])
{
get_user_name(id, g_szPlayersNames[id], charsmax(g_szPlayersNames[]))
new szUserID[64]
copy(szUserID, charsmax(szUserID), szAuthID)
Func_SavePlayer(id, szUserID)
}
public client_infochanged(id)
{
new szNewName[33]
get_user_info(id, "name", szNewName, charsmax(szNewName))
if (!equal(szNewName, g_szPlayersNames[id]))
{
copy(g_szPlayersNames[id], charsmax(g_szPlayersNames[]), szNewName)
new szAuthID[64]
get_user_authid(id, szAuthID, charsmax(szAuthID))
Func_SavePlayer(id, szAuthID)
}
}
Func_SavePlayer(id, szAuthID[64])
{
new iErrorCode, g_szError[512], Handle:iSqlConnection
iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError))
if (iSqlConnection == Empty_Handle)
{
set_fail_state(g_szError)
}
new szQuery[128]
formatex(szQuery, charsmax(szQuery), "SELECT * FROM `%s` WHERE `steamid` = '%s';", TABLE, g_szPlayersNames[id], szAuthID)
szAuthID[63] = id
SQL_ThreadQuery(g_iSqlTuple, "OnSelectExecuted", szQuery, szAuthID, sizeof(szAuthID))
}
public OnSelectExecuted(iFailState, Handle:iQuery, szError[], iError, szData[], iDataSize)
{
if (iFailState != TQUERY_SUCCESS)
{
set_fail_state(szError)
}
new szQuery[128]
if (Func_CheckForResults(iQuery))
{
formatex(szQuery, charsmax(szQuery), "UPDATE %s SET `nickname` = '%s' WHERE `steamid` = '%s';", TABLE, g_szPlayersNames[szData[63]], szData)
}
else
{
formatex(szQuery, charsmax(szQuery), "INSERT INTO `%s` (`nickname`, `steamid`) VALUES ('%s', '%s');", TABLE, g_szPlayersNames[szData[63]], szData)
}
SQL_ThreadQuery(g_iSqlTuple, "QueryEmptyHandle", szQuery)
}
public QueryEmptyHandle(iFailState, Handle:iQuery, szError[])
{
if (iFailState != TQUERY_SUCCESS)
{
set_fail_state(szError)
}
}
bool:Func_CheckForResults(Handle:iQueryHandle)
{
return SQL_NumResults(iQueryHandle) >= 1
}
Определено това е най-достъпния и лесен начин.qwertymi написа: ↑09 Май 2020, 14:42 Целта е да използвам именно база данни. Защото останалите плъгини са също към базата данни, но всичките 5-6 плъгина записват информация за играча по steamid, а аз няма как да извадя информацията за конкретен играч по никнейм (примерно като се опитам да направя с php класация на топ играчи или да ги селектирам по някакъв начин, за да може информацията ми да е достъпна с ника. Ако направя в сайта пример top15 на играчи? Вместо имената ще им изкарва steamid-тата
aka kurdokoleno
Catch Mod - 87.121.112.232:27021
Catch Mod - 87.121.112.232:27021
-
qwertymi
Извън линия - Потребител
- Мнения: 45
- Регистриран на: 13 Мар 2020, 19:18
- Се отблагодари: 9 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Хм, променям sma файла > настройвам mysql връзката > спирам сървъра > комплирам плъгина и го замествам > трия таблицата с записите >
пускам сървъра > влизам в сървъра > отварям базата данни и вече записите са 3
Edit: и когато влезна с друго име се създава нов запис не се обновява стийм идто с новия nick. Правят се още 2 записа на потребителя с новия ник; не мога да разбера що се правят 2 записа Тъп mysql!
пускам сървъра > влизам в сървъра > отварям базата данни и вече записите са 3
Edit: и когато влезна с друго име се създава нов запис не се обновява стийм идто с новия nick. Правят се още 2 записа на потребителя с новия ник; не мога да разбера що се правят 2 записа Тъп mysql!
AWP ONLY: 185.148.145.234:27022
-
mi0
Извън линия - AMXX Скриптър
- Мнения: 534
- Регистриран на: 09 Дек 2016, 22:02
- Се отблагодари: 97 пъти
- Получена благодарност: 120 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#define HOST "localhost"
#define USER "root"
#define PASS ""
#define BASE "csusers"
#define TABLE "users"
new Handle:g_iSqlTuple
new g_szPlayersNames[33][33]
public plugin_init()
{
register_plugin("SteamID/Nick Sql Save", "1.0", "mi0")
}
public plugin_cfg()
{
set_task(0.5, "SQLInit")
}
public SQLInit()
{
g_iSqlTuple = SQL_MakeDbTuple(HOST, USER, PASS, BASE)
new iErrorCode, g_szError[512], Handle:iSqlConnection
iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError))
if (iSqlConnection == Empty_Handle)
{
set_fail_state(g_szError)
}
new Handle:iQueries = SQL_PrepareQuery(iSqlConnection, "CREATE TABLE IF NOT EXISTS `%s`\
(`id` INT(10) NOT NULL AUTO_INCREMENT,\
`nickname` VARCHAR(64) NOT NULL,\
`steamid` VARCHAR(64) NOT NULL,\
PRIMARY KEY (`id`));", TABLE)
if (!SQL_Execute(iQueries))
{
SQL_QueryError(iQueries, g_szError, charsmax(g_szError))
set_fail_state(g_szError)
}
SQL_FreeHandle(iQueries)
SQL_FreeHandle(iSqlConnection)
}
public client_authorized(id, const szAuthID[])
{
get_user_name(id, g_szPlayersNames[id], charsmax(g_szPlayersNames[]))
new szUserID[64]
copy(szUserID, charsmax(szUserID), szAuthID)
Func_SavePlayer(id, szUserID)
}
public client_infochanged(id)
{
new szNewName[33]
get_user_info(id, "name", szNewName, charsmax(szNewName))
if (!equal(szNewName, g_szPlayersNames[id]))
{
copy(g_szPlayersNames[id], charsmax(g_szPlayersNames[]), szNewName)
new szAuthID[64]
get_user_authid(id, szAuthID, charsmax(szAuthID))
Func_SavePlayer(id, szAuthID)
}
}
Func_SavePlayer(id, szAuthID[64])
{
new iErrorCode, g_szError[512], Handle:iSqlConnection
iSqlConnection = SQL_Connect(g_iSqlTuple, iErrorCode, g_szError, charsmax(g_szError))
if (iSqlConnection == Empty_Handle)
{
set_fail_state(g_szError)
}
new szQuery[128]
formatex(szQuery, charsmax(szQuery), "SELECT * FROM `%s` WHERE `steamid` = '%s';", TABLE, szAuthID)
szAuthID[63] = id
SQL_ThreadQuery(g_iSqlTuple, "OnSelectExecuted", szQuery, szAuthID, sizeof(szAuthID))
}
public OnSelectExecuted(iFailState, Handle:iQuery, szError[], iError, szData[], iDataSize)
{
if (iFailState != TQUERY_SUCCESS)
{
set_fail_state(szError)
}
new szQuery[128]
if (Func_CheckForResults(iQuery))
{
formatex(szQuery, charsmax(szQuery), "UPDATE %s SET `nickname` = '%s' WHERE `steamid` = '%s';", TABLE, g_szPlayersNames[szData[63]], szData)
}
else
{
formatex(szQuery, charsmax(szQuery), "INSERT INTO `%s` (`nickname`, `steamid`) VALUES ('%s', '%s');", TABLE, g_szPlayersNames[szData[63]], szData)
}
SQL_ThreadQuery(g_iSqlTuple, "QueryEmptyHandle", szQuery)
}
public QueryEmptyHandle(iFailState, Handle:iQuery, szError[])
{
if (iFailState != TQUERY_SUCCESS)
{
set_fail_state(szError)
}
}
bool:Func_CheckForResults(Handle:iQueryHandle)
{
return SQL_NumResults(iQueryHandle) >= 1
}
aka kurdokoleno
Catch Mod - 87.121.112.232:27021
Catch Mod - 87.121.112.232:27021
-
qwertymi
Извън линия - Потребител
- Мнения: 45
- Регистриран на: 13 Мар 2020, 19:18
- Се отблагодари: 9 пъти
- Получена благодарност: 5 пъти
- Обратна връзка:
Търся плъгин за запазване в база данни ника и steamid на играч
Хах, работи! Браво бе машино!
Може да локвате!
Може да локвате!
AWP ONLY: 185.148.145.234:27022
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 2 Отговори
- 2802 Преглеждания
-
Последно мнение от zolfeca
-
- 6 Отговори
- 2518 Преглеждания
-
Последно мнение от gadinkata
-
- 2 Отговори
- 728 Преглеждания
-
Последно мнение от AfterLife
-
- 4 Отговори
- 2461 Преглеждания
-
Последно мнение от OciXCrom
-
- 2 Отговори
- 656 Преглеждания
-
Последно мнение от To.To
-
- 13 Отговори
- 4351 Преглеждания
-
Последно мнение от SILENT HILL`
-
- 10 Отговори
- 3629 Преглеждания
-
Последно мнение от iv69
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 17 госта