Broudy Rose
Участник
- Сообщения
- 157
- Реакции
- 22
Делаю отладку сервера v34, удаляя плагины по одному.
Ищу проблему падений сервера раз в 2 дня.
На данном этапе error-логов уже нет, crash-логи интересной информации не предоставляют.
После удаления простого плагина растворения тел Dissolve падения прекратились.
Перечитал код и не нашёл проблемных мест. Иных плагинов, удаляющих тела на сервере нет.
Ваши мысли?
Ищу проблему падений сервера раз в 2 дня.
На данном этапе error-логов уже нет, crash-логи интересной информации не предоставляют.
После удаления простого плагина растворения тел Dissolve падения прекратились.
Перечитал код и не нашёл проблемных мест. Иных плагинов, удаляющих тела на сервере нет.
Ваши мысли?
C-подобный:
#include <sdktools>
public OnPluginStart()
{
HookEvent("player_death", OnPlayerDeath);
}
public OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
new Float:duration = 3.0;
new ragdoll = GetEntPropEnt(GetClientOfUserId(GetEventInt(event, "userid")), Prop_Send, "m_hRagdoll");
if (ragdoll <= MaxClients || !IsValidEdict(ragdoll))
return;
CreateTimer(duration, DissolveEntity, ragdoll, TIMER_FLAG_NO_MAPCHANGE);
}
public Action:DissolveEntity(Handle:event, any:ragdoll)
{
if (!IsValidEdict(ragdoll))
return;
ExtinguishEntity(ragdoll);
decl String:target[32];
Format(target, sizeof(target), "target_%d", ragdoll);
new ent = CreateEntityByName("env_entity_dissolver");
if (ent > 0)
{
DispatchKeyValue(ragdoll, "targetname", target);
DispatchKeyValue(ent, "dissolvetype", "3");
DispatchKeyValue(ent, "target", target);
AcceptEntityInput(ent, "Dissolve");
AcceptEntityInput(ent, "kill");
}
}