Hi. I tried to make test vip plugin but i finished on creating table and save players to thar table.
PHP Code:
#include <sourcemod>
ConVar g_tableName;
Database g_db;
public Plugin info = {
name = "Test Vip",
author = "BlacK",
description = "Test VIP"
}
public void OnPluginStart(){
g_tableName = CreateConVar("nazwa_tabeli", "tVip", "Ustawia nazwę tabeli w bazie danych");
Database.Connect(OnConnect, "tVip");
PrintToServer("[Onecer] Test vip aktywny");
}
public void OnConnect(Database db, char[] error, any data){
char tableName[20];
g_tableName.GetString(tableName, sizeof(tableName));
if(db == null){
PrintToServer("[Onecer] Nie można połączyć się z bazą danych.");
SetFailState("[Onecer] Nie można połączyć się z bazą danych.");
PrintToConsoleAll("[Onecer] Nie można połączyć z bazą danych");
return;
}
PrintToServer("[Onecer] Połączono z bazą danych");
PrintToConsoleAll("[Onecer] Połączono z bazą danych");
g_db = db;
char query[264];
g_db.Format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `%s` (`name` varchar(30) NOT NULL, `steamId` varchar(32), `enabled` int(1))", tableName);
g_db.Query(ConnectCallback, query);
}
public void ConnectCallback(Database db, DBResultSet results, char[] error, any data){
char tableName[20];
g_tableName.GetString(tableName, sizeof(tableName));
PrintToConsoleAll("--------- Connect Callback ---------");
if(results == null){
PrintToServer("[Onecer] Nie można Stworzyć/Wczytać tabeli");
PrintToConsoleAll("[Onecer] Nie można Stworzyć/Wczytać tabeli");
return;
}
PrintToServer("[Onecer] Stworzono/Wczytano tabelę");
PrintToConsoleAll("[Onecer] Stworzono/Wczytano tabelę");
for(int i = 1; i <= MaxClients; i++){
if(IsClientInGame(i)){
char steamId[32];
GetClientAuthId(i, AuthId_Steam2, steamId, sizeof(steamId));
char name[30];
GetClientName(i, name, sizeof(name));
int enabled = 1;
InsertPlayer(name, steamId, enabled);
}
}
}
public void InsertPlayer(char[] name, char[] steamId, int enabled){
char tableName[20];
g_tableName.GetString(tableName, sizeof(tableName));
char query[264];
g_db.Format(query, sizeof(query),
"INSERT INTO `%s` (`name`, `steamId`, `enabled`) SELECT * FROM (SELECT '%s', '%s', '%d') AS tmp WHERE NOT EXISTS (SELECT `steamId` FROM `%s` WHERE `steamId` = '%s') LIMIT 1;",
tableName, name, steamId, enabled, tableName, steamId
);
g_db.Query(InsertCallback, query);
}
public void InsertCallback(Database db, DBResultSet results, char[] error, any data){
PrintToServer("[Results]: %s", results)
if(results == null){
PrintToServer("[Onecer] Nie można wczytać klienta");
PrintToConsoleAll("[Onecer] Nie można wczytać klienta");
}
}
- I didn't get any logs in console.
- I pasted create table query to phpmyadmin console and it created a table.
Thanks for all help.