я про то что если плагин на серв кс го поставить, он будет в таблицы засчитывать?на веб, на старое ядро сайта ЛР был сделан, и работал через бд
ок принял, а по цене сориентируешь на новое ядро такой модуль бахнутьДа
Сообщения автоматически склеены:
Но таблицы нужно будет самому создать
окта я думаю смысла от этого дополнения на новое ядро нету
Да, это веб частьПодскажите работает ли плагин на CSS v34?
Там есть и серверная часть) Вопрос касается именно серверной части )Да, это веб часть
Работает на 34Там есть и серверная часть) Вопрос касается именно серверной части )
levels_ranks/levelsranks_extrakills.smx ([ LVL ] Модуль: Дополнительная информация): Required extension "SteamWorks" file("SteamWorks.ext") not runningРаботает на 34
?Работает на 34
Я на данный момент помочь не смогу в данном вопросе, но знаю, что его запускали на 34, может и переписывали плагин
Убери из исходника следующее:levels_ranks/levelsranks_extrakills.smx ([ LVL ] Модуль: Дополнительная информация): Required extension "SteamWorks" file("SteamWorks.ext") not running
Насколько я знаю, расширение "SteamWorks" не работает на CSS v34
#include <steamworks>
#include <csgo_colors>
ошибка при компилировании - IsValidClientУбери из исходника следующее:
PHP:#include <steamworks> #include <csgo_colors>
И скомпилируй плагин. Должно сработать
Полностью кидай ошибки...ошибка при компилировании - IsValidClient
ошибка при компилировании - IsValidClient
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <cstrike>
#include <lvl_ranks>
Database g_hDatabase;
int iKills[MAXPLAYERS+1];
char g_sTableName[64];
public Plugin:myinfo =
{
name = "[ LVL ] Модуль: Дополнительная информация",
author = "Rustgame",
description = "Информация о xУбийствах",
};
public void OnPluginStart()
{
Database.Connect(ConnectCallBack, "levels_ranks");
HookEvent("player_death", OnPlayerDeath, EventHookMode_Pre);
HookEvent("round_end", OnRoundEnd, EventHookMode_PostNoCopy);
static char sPath[PLATFORM_MAX_PATH];
BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings.ini");
KeyValues hKv = new KeyValues("LR_Settings");
if(!hKv.ImportFromFile(sPath))
{
SetFailState("%s - is not found", sPath);
}
hKv.GotoFirstSubKey();
hKv.Rewind();
hKv.JumpToKey("MainSettings");
hKv.GetString("lr_table", g_sTableName, sizeof(g_sTableName), "lvl_base");
}
public Action OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){for(int i = 1; i <= MAXPLAYERS; ++i){SendInfoKills(i);}}
public Action OnPlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
int iClient = GetClientOfUserId(GetEventInt(event, "userid")),
iAttacker = GetClientOfUserId(GetEventInt(event, "attacker"));
iKills[iAttacker]++;
if (iKills[iClient] > 2){SendInfoKills(iClient);}
}
public void SendInfoKills(int iClient)
{
if (IsValidClient(iClient))
{
char szQuery[256], szAuth[32];
GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
FormatEx(szQuery, sizeof(szQuery), "SELECT `tkills`, `qkills`, `aces` FROM `%s` WHERE `steam` = '%s';", g_sTableName, szAuth);
g_hDatabase.Query(CallBack, szQuery, GetClientUserId(iClient));
}
}
public void CallBack(Database hDatabase, DBResultSet results, const char[] sError, any iUserID)
{
if(sError[0])
{
LogError("SQL_Callback: %s", sError);
}
int iClient = GetClientOfUserId(iUserID);
if (IsValidClient(iClient))
{
if(results.FetchRow())
{
char szQuery[256], szAuth[32];
GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth));
int iTKills = 0,
iQKills = 0,
iAces = 0;
iTKills = results.FetchInt(0);
iQKills = results.FetchInt(1);
iAces = results.FetchInt(2);
if (iKills[iClient] == 3){iTKills++;}
else if(iKills[iClient] == 4){iQKills++;}
else if(iKills[iClient] >= 5){iAces++;}
FormatEx(szQuery, sizeof(szQuery), "UPDATE `%s` SET `tkills` = %i, `qkills` = %i, `aces` = %i WHERE `steam` = '%s';", g_sTableName, iTKills, iQKills, iAces, szAuth);
g_hDatabase.Query(SQL_Callback_CheckError, szQuery);
//PrintToServer("%N: [%i][%i][%i][%i]", iClient, iKills[iClient], iTKills, iQKills, iAces);
iKills[iClient] = 0;
}
}
}
public void SQL_Callback_CheckError(Database hDatabase, DBResultSet results, const char[] szError, any data){if(szError[0]){LogError("SQL_Callback_CheckError: %s", szError);}}
public void ConnectCallBack(Database hDatabase, const char[] sError, any data)
{
if (hDatabase == null){SetFailState("Database Failure: %s", sError);return;}
g_hDatabase = hDatabase;
}
public IsValidClient(iClient)
{
if (iClient <= 0 || iClient > MaxClients)
{
return false;
}
if (!IsClientInGame(iClient) || !IsClientConnected(iClient))
{
return false;
}
return true;
}
Полностью кидай ошибки...
Сообщения автоматически склеены:
Пробуй:#include <sourcemod> #include <sdktools> #include <sdkhooks> #include <cstrike> #include <lvl_ranks> Database g_hDatabase; int iKills[MAXPLAYERS+1]; char g_sTableName[64]; public Plugin:myinfo = { name = "[ LVL ] Модуль: Дополнительная информация", author = "Rustgame", description = "Информация о xУбийствах", }; public void OnPluginStart() { Database.Connect(ConnectCallBack, "levels_ranks"); HookEvent("player_death", OnPlayerDeath, EventHookMode_Pre); HookEvent("round_end", OnRoundEnd, EventHookMode_PostNoCopy); static char sPath[PLATFORM_MAX_PATH]; BuildPath(Path_SM, sPath, sizeof(sPath), "configs/levels_ranks/settings.ini"); KeyValues hKv = new KeyValues("LR_Settings"); if(!hKv.ImportFromFile(sPath)) { SetFailState("%s - is not found", sPath); } hKv.GotoFirstSubKey(); hKv.Rewind(); hKv.JumpToKey("MainSettings"); hKv.GetString("lr_table", g_sTableName, sizeof(g_sTableName), "lvl_base"); } public Action OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast){for(int i = 1; i <= MAXPLAYERS; ++i){SendInfoKills(i);}} public Action OnPlayerDeath(Event event, const char[] name, bool dontBroadcast) { int iClient = GetClientOfUserId(GetEventInt(event, "userid")), iAttacker = GetClientOfUserId(GetEventInt(event, "attacker")); iKills[iAttacker]++; if (iKills[iClient] > 2){SendInfoKills(iClient);} } public void SendInfoKills(int iClient) { if (IsValidClient(iClient)) { char szQuery[256], szAuth[32]; GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth)); FormatEx(szQuery, sizeof(szQuery), "SELECT `tkills`, `qkills`, `aces` FROM `%s` WHERE `steam` = '%s';", g_sTableName, szAuth); g_hDatabase.Query(CallBack, szQuery, GetClientUserId(iClient)); } } public void CallBack(Database hDatabase, DBResultSet results, const char[] sError, any iUserID) { if(sError[0]) { LogError("SQL_Callback: %s", sError); } int iClient = GetClientOfUserId(iUserID); if (IsValidClient(iClient)) { if(results.FetchRow()) { char szQuery[256], szAuth[32]; GetClientAuthId(iClient, AuthId_Engine, szAuth, sizeof(szAuth)); int iTKills = 0, iQKills = 0, iAces = 0; iTKills = results.FetchInt(0); iQKills = results.FetchInt(1); iAces = results.FetchInt(2); if (iKills[iClient] == 3){iTKills++;} else if(iKills[iClient] == 4){iQKills++;} else if(iKills[iClient] >= 5){iAces++;} FormatEx(szQuery, sizeof(szQuery), "UPDATE `%s` SET `tkills` = %i, `qkills` = %i, `aces` = %i WHERE `steam` = '%s';", g_sTableName, iTKills, iQKills, iAces, szAuth); g_hDatabase.Query(SQL_Callback_CheckError, szQuery); //PrintToServer("%N: [%i][%i][%i][%i]", iClient, iKills[iClient], iTKills, iQKills, iAces); iKills[iClient] = 0; } } } public void SQL_Callback_CheckError(Database hDatabase, DBResultSet results, const char[] szError, any data){if(szError[0]){LogError("SQL_Callback_CheckError: %s", szError);}} public void ConnectCallBack(Database hDatabase, const char[] sError, any data) { if (hDatabase == null){SetFailState("Database Failure: %s", sError);return;} g_hDatabase = hDatabase; } public IsValidClient(iClient) { if (iClient <= 0 || iClient > MaxClients) { return false; } if (!IsClientInGame(iClient) || !IsClientConnected(iClient)) { return false; } return true; }