Нет я не менял авторство просто забыл дописать!KaRpIkS
И что же ты поменял? Авторство? LoadTranslations не следует выполнять при ловле чата
Работает.плагин больше не работает
Это такая "фишка" игры после обновления. CS:GO же?на след. раунде все возвращается
L 07/20/2014 - 23:12:32: [SM] Unable to load plugin "sm_resetscore.smx": Native "BfWriteByte" was not found
Взял вот этот плагин
Появляется ошибка и ничего не работает:
Умельцы, помогите исправить пожалуйста! Уж очень мне нравится эта версия плагина!C-подобный:L 07/20/2014 - 23:12:32: [SM] Unable to load plugin "sm_resetscore.smx": Native "BfWriteByte" was not found
попробуй компилировать его сп файл.
L 07/20/2014 - 23:50:20: [SM] Native "SetFailState" reported: This game is not supported!
L 07/20/2014 - 23:50:20: [SM] Displaying call stack trace for plugin "sm_resetscore.smx":
Эта игра не поддерживается плагином.
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#define PLUGIN_AUTHOR "tuty & GoDtm666"
#define PLUGIN_VERSION "1.3.3"
new Handle:g_hEnabled = INVALID_HANDLE,
Handle:g_hTimerMsg = INVALID_HANDLE,
Handle:g_hTimer = INVALID_HANDLE;
new bool:g_bEnabled = false,
bool:g_bSayHook = false;
new Float:g_fTimer;
public Plugin:myinfo =
{
name = "Reset Score",
author = PLUGIN_AUTHOR,
description = "Type !resetscore in chat to reset your score.",
version = PLUGIN_VERSION,
url = "www.ligs.us"
};
public OnPluginStart()
{
decl String:sGame[64];
GetGameFolderName(sGame, sizeof(sGame));
if (StrEqual(sGame, "cstrike", false) || StrEqual(sGame, "csgo", false))
{
g_hEnabled = CreateConVar("sm_resetscore", "1", "1 Включить, 0 Выключить.", FCVAR_PLUGIN, true, 0.0, true, 1.0);
OnSettingsChanged(g_hEnabled, "", "");
HookConVarChange(g_hEnabled, OnSettingsChanged);
g_hTimerMsg = CreateConVar("sm_resetscore_announce_timer", "200.0", "Через сколько времени (в секундах) прокручивать подсказку для сброса счета. (0 отключить.)", FCVAR_PLUGIN, true, 0.0);
OnSettingsChanged(g_hTimerMsg, "", "");
HookConVarChange(g_hTimerMsg, OnSettingsChanged);
if (GuessSDKVersion() == SOURCE_SDK_EPISODE2VALVE)
{
g_bSayHook = true;
RegConsoleCmd("say", Command_Say, "say", 0);
RegConsoleCmd("say_team", Command_Say, "say_team", 0);
}
else
{
g_bSayHook = false;
RegConsoleCmd("rs", Command_Say, "Restart Score", 0);
RegConsoleCmd("resetscore", Command_Say, "Restart Score", 0);
RegConsoleCmd("restartscore", Command_Say, "Restart Score", 0);
RegConsoleCmd("rdk", Command_Say, "Restart Score", 0);
RegConsoleCmd("кы", Command_Say, "Restart Score", 0);
RegConsoleCmd("куыуеысщку", Command_Say, "Restart Score", 0);
RegConsoleCmd("куыефкеысщку", Command_Say, "Restart Score", 0);
RegConsoleCmd("квл", Command_Say, "Restart Score", 0);
}
CreateConVar("sm_resetscore_version", PLUGIN_VERSION, "Reset Score Version", FCVAR_PLUGIN |FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
LoadTranslations("resetscore.phrases.txt");
}
else
{
SetFailState("This game is not supported!");
}
}
public OnSettingsChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
if (g_hTimer != INVALID_HANDLE)
{
KillTimer(g_hTimer, false);
g_hTimer = INVALID_HANDLE;
}
if (g_hEnabled == convar)
{
g_bEnabled = GetConVarBool(convar);
}
else if (g_hTimerMsg == convar)
{
if (GetConVarBool(convar))
{
g_fTimer = GetConVarFloat(convar);
g_hTimer = CreateTimer(4.9, Timer_Announce);
}
}
}
public Action:Timer_Announce(Handle:timer)
{
PrintToChatAll("\x04%t\x01 %t", "rs_tag", "announce_chat");
g_hTimer = CreateTimer(g_fTimer, Timer_Announce);
return Plugin_Continue;
}
public Action:Command_Say(client, args)
{
if (g_bSayHook)
{
decl String:sBuffer[32];
GetCmdArgString(sBuffer, sizeof(sBuffer));
StripQuotes(sBuffer);
TrimString(sBuffer);
if (StrEqual(sBuffer, "!resetscore", false) || StrEqual(sBuffer, "!restartscore", false) || StrEqual(sBuffer, "!rs", false) || StrEqual(sBuffer, "!rdk", false) || StrEqual(sBuffer, "!куыуеысщку", false) || StrEqual(sBuffer, "!куыефкеысщку", false) || StrEqual(sBuffer, "!кы", false) || StrEqual(sBuffer, "!квл", false))
{
if (g_bEnabled)
{
EditScore(client);
}
else
{
PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "plugin_disabled_chat");
PrintToConsole(client, "%t %t", "rs_tag", "plugin_disabled_console");
}
return Plugin_Stop;
}
}
else
{
if (g_bEnabled)
{
EditScore(client);
}
else
{
PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "plugin_disabled_chat");
PrintToConsole(client, "%t %t", "rs_tag", "plugin_disabled_console");
}
}
return Plugin_Continue;
}
public EditScore(client)
{
if (!GetClientDeaths(client) && !GetClientFrags(client))
{
PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "reset_already_chat");
PrintToConsole(client, "%t %t", "rs_tag", "reset_already_console");
}
else
{
decl String:sName[MAX_NAME_LENGTH], String:sMesg[128];
SetClientFrags(client);
SetClientDeaths(client);
GetClientName(client, sName, sizeof(sName));
PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "reset_chat");
new Handle:hBuffer = StartMessageAll("SayText2");
Format(sMesg, sizeof(sMesg), "\x04%t\x01 %t", "rs_tag", "reset_chat_all", "\x03", sName, "\x01");
if (hBuffer != INVALID_HANDLE)
{
PbSetInt(hBuffer, "ent_idx", client);
PbSetBool(hBuffer, "chat", true);
PbSetString(hBuffer, "msg_name", sMesg);
EndMessage();
}
PrintToConsole(client, "%t %t", "rs_tag", "reset_console" );
}
}
stock SetClientFrags(client)
{
SetEntProp(client, Prop_Data, "m_iFrags", 0);
return true;
}
stock SetClientDeaths(client)
{
SetEntProp(client, Prop_Data, "m_iDeaths", 0);
return true;
}
Использовать ProtoBuf - это решение.
Как-то так, но надо проверять.
ОффтопPHP:#pragma semicolon 1 #include <sourcemod> #include <sdktools> #define PLUGIN_AUTHOR "tuty & GoDtm666" #define PLUGIN_VERSION "1.3.3" new Handle:g_hEnabled = INVALID_HANDLE, Handle:g_hTimerMsg = INVALID_HANDLE, Handle:g_hTimer = INVALID_HANDLE; new bool:g_bEnabled = false, bool:g_bSayHook = false; new Float:g_fTimer; public Plugin:myinfo = { name = "Reset Score", author = PLUGIN_AUTHOR, description = "Type !resetscore in chat to reset your score.", version = PLUGIN_VERSION, url = "www.ligs.us" }; public OnPluginStart() { decl String:sGame[64]; GetGameFolderName(sGame, sizeof(sGame)); if (StrEqual(sGame, "cstrike", false)) { g_hEnabled = CreateConVar("sm_resetscore", "1", "1 Включить, 0 Выключить.", FCVAR_PLUGIN, true, 0.0, true, 1.0); OnSettingsChanged(g_hEnabled, "", ""); HookConVarChange(g_hEnabled, OnSettingsChanged); g_hTimerMsg = CreateConVar("sm_resetscore_announce_timer", "200.0", "Через сколько времени (в секундах) прокручивать подсказку для сброса счета. (0 отключить.)", FCVAR_PLUGIN, true, 0.0); OnSettingsChanged(g_hTimerMsg, "", ""); HookConVarChange(g_hTimerMsg, OnSettingsChanged); if (GuessSDKVersion() == SOURCE_SDK_EPISODE2VALVE) { g_bSayHook = true; RegConsoleCmd("say", Command_Say, "say", 0); RegConsoleCmd("say_team", Command_Say, "say_team", 0); } else { g_bSayHook = false; RegConsoleCmd("rs", Command_Say, "Restart Score", 0); RegConsoleCmd("resetscore", Command_Say, "Restart Score", 0); RegConsoleCmd("restartscore", Command_Say, "Restart Score", 0); RegConsoleCmd("rdk", Command_Say, "Restart Score", 0); RegConsoleCmd("кы", Command_Say, "Restart Score", 0); RegConsoleCmd("куыуеысщку", Command_Say, "Restart Score", 0); RegConsoleCmd("куыефкеысщку", Command_Say, "Restart Score", 0); RegConsoleCmd("квл", Command_Say, "Restart Score", 0); } CreateConVar("sm_resetscore_version", PLUGIN_VERSION, "Reset Score Version", FCVAR_PLUGIN |FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY); LoadTranslations("resetscore.phrases.txt"); } else { SetFailState("This game is not supported!"); } } public OnSettingsChanged(Handle:convar, const String:oldValue[], const String:newValue[]) { if (g_hTimer != INVALID_HANDLE) { KillTimer(g_hTimer, false); g_hTimer = INVALID_HANDLE; } if (g_hEnabled == convar) { g_bEnabled = GetConVarBool(convar); } else if (g_hTimerMsg == convar) { if (GetConVarBool(convar)) { g_fTimer = GetConVarFloat(convar); g_hTimer = CreateTimer(4.9, Timer_Announce); } } } public Action:Timer_Announce(Handle:timer) { PrintToChatAll("\x04%t\x01 %t", "rs_tag", "announce_chat"); g_hTimer = CreateTimer(g_fTimer, Timer_Announce); return Plugin_Continue; } public Action:Command_Say(client, args) { if (g_bSayHook) { decl String:sBuffer[32]; GetCmdArgString(sBuffer, sizeof(sBuffer)); StripQuotes(sBuffer); TrimString(sBuffer); if (StrEqual(sBuffer, "!resetscore", false) || StrEqual(sBuffer, "!restartscore", false) || StrEqual(sBuffer, "!rs", false) || StrEqual(sBuffer, "!rdk", false) || StrEqual(sBuffer, "!куыуеысщку", false) || StrEqual(sBuffer, "!куыефкеысщку", false) || StrEqual(sBuffer, "!кы", false) || StrEqual(sBuffer, "!квл", false)) { if (g_bEnabled) { EditScore(client); } else { PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "plugin_disabled_chat"); PrintToConsole(client, "%t %t", "rs_tag", "plugin_disabled_console"); } return Plugin_Stop; } } else { if (g_bEnabled) { EditScore(client); } else { PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "plugin_disabled_chat"); PrintToConsole(client, "%t %t", "rs_tag", "plugin_disabled_console"); } } return Plugin_Continue; } public EditScore(client) { if (!GetClientDeaths(client) && !GetClientFrags(client)) { PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "reset_already_chat"); PrintToConsole(client, "%t %t", "rs_tag", "reset_already_console"); } else { decl String:sName[MAX_NAME_LENGTH], String:sMesg[128]; SetClientFrags(client); SetClientDeaths(client); GetClientName(client, sName, sizeof(sName)); PrintToChat(client, "\x04%t\x01 %t", "rs_tag", "reset_chat"); new Handle:hBuffer = StartMessageAll("SayText2"); Format(sMesg, sizeof(sMesg), "\x04%t\x01 %t", "rs_tag", "reset_chat_all", "\x03", sName, "\x01"); if (hBuffer != INVALID_HANDLE) { BfWriteByte(hBuffer, client); BfWriteByte(hBuffer, true); BfWriteString(hBuffer, sMesg); EndMessage(); } PrintToConsole(client, "%t %t", "rs_tag", "reset_console" ); } } stock SetClientFrags(client) { SetEntProp(client, Prop_Data, "m_iFrags", 0); return true; } stock SetClientDeaths(client) { SetEntProp(client, Prop_Data, "m_iDeaths", 0); return true; }
L 07/21/2014 - 11:40:59: [SM] Plugin encountered error 25: Call was aborted
L 07/21/2014 - 11:40:59: [SM] Native "SetFailState" reported: This game is not supported!
L 07/21/2014 - 11:40:59: [SM] Displaying call stack trace for plugin "sm_resetscore.smx":
L 07/21/2014 - 11:40:59: [SM] [0] Line 61, C:\Users\Владислав\Desktop\scripting\sm_resetscore.sp::OnPluginStart()