Если после этого не сработает, то я умываю рукиНе отключается
#pragma semicolon 1
#include <cstrike>
public Plugin myinfo =
{
name = "Respawner",
author = "Ganter1234",
version = "1.0"
}
bool Respawn[MAXPLAYERS+1];
public void OnPluginStart()
{
RegConsoleCmd("sm_respawnon", Cmd_On);
RegConsoleCmd("sm_respawnoff", Cmd_Off);
HookEvent("player_death", Event_Death);
}
public void OnClientDisconnect(int client)
{
Respawn[client] = true;
}
public void Event_Death(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
if(client && GetClientTeam(client) > CS_TEAM_SPECTATOR && Respawn[client]) CS_RespawnPlayer(client);
}
public Action Cmd_On(int client, int args)
{
Respawn[client] = true;
}
public Action Cmd_Off(int client, int args)
{
Respawn[client] = false;
}
имеется в виду, что админ может отключить возрождение всем или то, как сделал Ganter1234?с возможностью включения и отключения плагина командой.
Я прост все еще не умею на новом писать, поэтому такая каша, поправил.@Ganter1234, раз уж начал на новом синтаксисе писать, то пиши на нём полностью
И ещё: а если GetClientOfUserId() вернёт 0? Где проверка?
Вот что-то типа этого:C-подобный:#pragma semicolon 1 #include <cstrike> public Plugin myinfo = { name = "Respawner", author = "Ganter1234", version = "1.0" } bool Respawn[MAXPLAYERS+1]; public void OnPluginStart() { RegConsoleCmd("sm_respawnon", Cmd_On); RegConsoleCmd("sm_respawnoff", Cmd_Off); HookEvent("player_death", Event_Death); } public void OnClientDisconnect(int client) { Respawn[client] = true; } public void Event_Death(Event event, const char[] name, bool dontBroadcast) { int client = GetClientOfUserId(event.GetInt("userid")); if(client && GetClientTeam(client) > CS_TEAM_SPECTATOR && Respawn[client]) CS_RespawnPlayer(client); } public Action Cmd_On(int client, int args) { Respawn[client] = true; } public Action Cmd_Off(int client, int args) { Respawn[client] = false; }Сообщения автоматически склеены:
имеется в виду, что админ может отключить возрождение всем или то, как сделал Ganter1234?
Плагин работает, но не ресает + ошибка:Я прост все еще не умею на новом писать, поэтому такая каша, поправил.
UPD: Проверил на сервере, когда респавнишся все равно остаешься мертвым, добавил таймер
L 06/15/2021 - 15:32:51: [SM] Exception reported: Client index 0 is invalid
L 06/15/2021 - 15:32:51: [SM] Blaming: respawner.smx
Проверь последний комментарий, там обновлено всеПлагин работает, но не ресает + ошибка:
C-подобный:L 06/15/2021 - 15:32:51: [SM] Exception reported: Client index 0 is invalid L 06/15/2021 - 15:32:51: [SM] Blaming: respawner.smx
Так, все работает. Но мне нужно чтобы всех ресало, а кваром можно было выключить плагин. Как на ДМ автореспавн.Проверь последний комментарий, там обновлено все
Боже, так сказал бы что тебе нужно кваром а не командой (Пробуй)Так, все работает. Но мне нужно чтобы всех ресало, а кваром можно было выключить плагин. Как на ДМ автореспавн.
Прости, но кваром плагин не выключается.Боже, так сказал бы что тебе нужно кваром а не командой (Пробуй)
sm_respawner 0?Прости, но кваром плагин не выключается.
+sm_respawner 0?
Попытка номер 4
Не отключаетсяПопытка номер 4
Если после этого не сработает, то я умываю рукиНе отключается
Всё, спасибо тебе большое! :3Если после этого не сработает, то я умываю руки
Если уменьшить интервал, ошибки не будет?@Ganter1234, ошибка будет, если игрок успеет выйти за 1 сек после смерти
Если это будет пусть добавит проверку в таймер, я уже устал@Ganter1234, ошибка будет, если игрок успеет выйти за 1 сек после смерти
Да, до 0.1 можешь делатьЕсли уменьшить интервал, ошибки не будет?
В таймер нужно передавать не Clientid а Userid, и потом уже его проверять Userid > 0Если уменьшить интервал, ошибки не будет?
Я уменьшил интервал. Чисто теоритически игрок не успеет выйти. Даже если успеет, то это не значительная ошибка. Как по мнеВ таймер нужно передавать не Clientid а Userid, и потом уже его проверять Userid > 0