@ololoex,
PHP:L 11/25/2017 - 09:08:32: SourceMod error session started L 11/25/2017 - 09:08:32: Info (map "zm_dust2v2_v3") (file "errors_20171125.log") L 11/25/2017 - 09:08:32: [SM] Exception reported: Invalid timer handle 42c039b (error 3) L 11/25/2017 - 09:08:32: [SM] Blaming: zombiereloaded/zr_change_fov.smx L 11/25/2017 - 09:08:32: [SM] Call stack trace: L 11/25/2017 - 09:08:32: [SM] [0] KillTimer L 11/25/2017 - 09:08:32: [SM] [1] Line 43, C:\Users\User\YandexDisk\Mr. GiG Servers\Compil\Компилятор\ZR Compil\zr_change_fov.sp::OnClientDisconnect
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <zombiereloaded>
public Plugin myinfo =
{
name = "[ZR] Change FOV",
author = "Extr1m (Michail)",
description = "Adds a unique class of zombies",
version = "1.1",
url = "https://sourcemod.net/"
};
#define DEFAULT_FOV 90
ConVar gCV_PEnabled = null;
ConVar gCV_PFovZombie = null;
bool gB_PEnabled = true;
int gI_PFovZombie;
Handle SpawnTimer[MAXPLAYERS+1];
public void OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
gCV_PEnabled = CreateConVar("sm_fov_enabled", "1", "Включить/Выключить плагин", 0, true, 0.0, true, 1.0);
gCV_PFovZombie = CreateConVar("sm_fov_number", "110.0", "Значение FOV", 0, true, 0.0, true, 200.0);
gCV_PEnabled.AddChangeHook(ConVarChange);
gCV_PFovZombie.AddChangeHook(ConVarChange);
gB_PEnabled = gCV_PEnabled.BoolValue;
gI_PFovZombie = gCV_PFovZombie.IntValue;
}
public void OnClientDisconnect(int client)
{
if(SpawnTimer[client] != null)
{
KillTimer(SpawnTimer[client]);
SpawnTimer[client] = null;
}
}
public void ConVarChange(ConVar CVar, const char[] oldVal, const char[] newVal)
{
gB_PEnabled = gCV_PEnabled.BoolValue;
gI_PFovZombie = gCV_PFovZombie.IntValue;
}
public void Event_PlayerSpawn(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(hEvent, "userid"));
SpawnTimer[client] = CreateTimer(0.2, SpawnPlayer, client);
}
public Action SpawnPlayer(Handle timer, any client)
{
if(gB_PEnabled && IsPlayerAlive(client))
{
if(ZR_IsClientHuman(client))
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", DEFAULT_FOV);
SetEntProp(client, Prop_Send, "m_iFOV", DEFAULT_FOV);
}
else
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", gI_PFovZombie);
SetEntProp(client, Prop_Send, "m_iFOV", gI_PFovZombie);
}
}
SpawnTimer[client] = null;
}
public ZR_OnClientHumanPost(int client, bool respawn, bool protect)
{
if(gB_PEnabled)
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", DEFAULT_FOV);
SetEntProp(client, Prop_Send, "m_iFOV", DEFAULT_FOV);
}
}
public ZR_OnClientInfected(client, attacker, bool:motherInfect, bool:respawnOverride, bool:respawn)
{
if(gB_PEnabled)
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", gI_PFovZombie);
SetEntProp(client, Prop_Send, "m_iFOV", gI_PFovZombie);
}
}
SourceMod error session started
L 11/25/2017 - 15:07:04: Info (map "zm_continuity_v2fix") (file "errors_20171125.log")
L 11/25/2017 - 15:07:04: [SM] Exception reported: Client 3 is not in game
L 11/25/2017 - 15:07:04: [SM] Blaming: zombiereloaded/zr_change_fov.smx
L 11/25/2017 - 15:07:04: [SM] Call stack trace:
L 11/25/2017 - 15:07:04: [SM] [0] IsPlayerAlive
L 11/25/2017 - 15:07:04: [SM] [1] Line 63, C:\Users\User\YandexDisk\Mr. GiG Servers\Compil\Компилятор\ZR Compil\zr_change_fov.sp::SpawnPlayer
L 11/25/2017 - 15:07:05: [SM] Exception reported: Client 4 is not in game
Ну это уже точно последний)@ololoex,
PHP:SourceMod error session started L 11/25/2017 - 15:07:04: Info (map "zm_continuity_v2fix") (file "errors_20171125.log") L 11/25/2017 - 15:07:04: [SM] Exception reported: Client 3 is not in game L 11/25/2017 - 15:07:04: [SM] Blaming: zombiereloaded/zr_change_fov.smx L 11/25/2017 - 15:07:04: [SM] Call stack trace: L 11/25/2017 - 15:07:04: [SM] [0] IsPlayerAlive L 11/25/2017 - 15:07:04: [SM] [1] Line 63, C:\Users\User\YandexDisk\Mr. GiG Servers\Compil\Компилятор\ZR Compil\zr_change_fov.sp::SpawnPlayer L 11/25/2017 - 15:07:05: [SM] Exception reported: Client 4 is not in game
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <zombiereloaded>
public Plugin myinfo =
{
name = "[ZR] Change FOV",
author = "Extr1m (Michail)",
description = "Adds a unique class of zombies",
version = "1.1",
url = "https://sourcemod.net/"
};
#define DEFAULT_FOV 90
ConVar gCV_PEnabled = null;
ConVar gCV_PFovZombie = null;
bool gB_PEnabled = true;
int gI_PFovZombie;
Handle SpawnTimer[MAXPLAYERS+1];
public void OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
gCV_PEnabled = CreateConVar("sm_fov_enabled", "1", "Включить/Выключить плагин", 0, true, 0.0, true, 1.0);
gCV_PFovZombie = CreateConVar("sm_fov_number", "110.0", "Значение FOV", 0, true, 0.0, true, 200.0);
gCV_PEnabled.AddChangeHook(ConVarChange);
gCV_PFovZombie.AddChangeHook(ConVarChange);
gB_PEnabled = gCV_PEnabled.BoolValue;
gI_PFovZombie = gCV_PFovZombie.IntValue;
}
public void OnClientDisconnect(int client)
{
if(SpawnTimer[client] != null)
{
KillTimer(SpawnTimer[client]);
SpawnTimer[client] = null;
}
}
public void ConVarChange(ConVar CVar, const char[] oldVal, const char[] newVal)
{
gB_PEnabled = gCV_PEnabled.BoolValue;
gI_PFovZombie = gCV_PFovZombie.IntValue;
}
public void Event_PlayerSpawn(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(hEvent, "userid"));
if(SpawnTimer[client] != null)
{
KillTimer(SpawnTimer[client]);
SpawnTimer[client] = null;
}
SpawnTimer[client] = CreateTimer(0.2, SpawnPlayer, client);
}
public Action SpawnPlayer(Handle timer, any client)
{
if(gB_PEnabled && IsClientInGame(client) && IsPlayerAlive(client))
{
if(ZR_IsClientHuman(client))
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", DEFAULT_FOV);
SetEntProp(client, Prop_Send, "m_iFOV", DEFAULT_FOV);
}
else
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", gI_PFovZombie);
SetEntProp(client, Prop_Send, "m_iFOV", gI_PFovZombie);
}
}
SpawnTimer[client] = null;
}
public ZR_OnClientHumanPost(int client, bool respawn, bool protect)
{
if(gB_PEnabled)
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", DEFAULT_FOV);
SetEntProp(client, Prop_Send, "m_iFOV", DEFAULT_FOV);
}
}
public ZR_OnClientInfected(client, attacker, bool:motherInfect, bool:respawnOverride, bool:respawn)
{
if(gB_PEnabled)
{
SetEntProp(client, Prop_Send, "m_iDefaultFOV", gI_PFovZombie);
SetEntProp(client, Prop_Send, "m_iFOV", gI_PFovZombie);
}
}
При тесте я заметил что если человек умирает, то ему ставится FOV другой (не знаю с чем связано). Если идет заражение или обратно то все нормально. Конечно можно попробовать через таймер сделать, но в тот когда писал плагин задумывался об этом.
--- Добавлено позже ---
Сделал через таймер и убрал OnGameFrame, теперь работает как надо.
[CS:S/CS:GO/DoD:S/TF2] Player Respawn - AlliedModdersЕсть ли плагин respawn игроков через меню админа?
Знаю про этот плагин. Но мне нужен только для css, уберите функции от остальных игр. Что бы код поменьше был
Мне требуется это простоА какая разница, будут они или нет? Сервер всё равно их вызывать не будет.
L 11/28/2017 - 17:02:51: [SM] Native "HookConVarChange" reported: Invalid convar handle 0 (error 4)@Seton1447, ну пробуй (синтаксис оставил старым, просто вырезал лишние функции)
11/28/2017 - 23:44:27: [SM] Plugin encountered error 4: Invalid parameter or parameter type
отсутствует фраза в файле перевода или же сам файлLanguage phrase "Toggled respawn on target" not found