Иконка ресурса

Халява NPCFix 1.0

Нет прав для скачивания
Хостинг игровых серверов

GoodPlayer

Новичек
28 Янв 2018
3
0
26
Пользователь GoodPlayer разместил новый ресурс:

NPCFix - Проверяет список activePlayerList и sleepingPlayerList на наличие NPC каждые N* секунд, если таковые

Проверяет список activePlayerList и sleepingPlayerList на наличие NPC каждые N* секунд, если таковые находятся - удаляет их.

* - в плагине стоит время 10 секунд, у себя на сервере сильной нагрузки не заметил, если нужно можете время изменить сами в теле плагина.

Основан на NPCFix от OxideBro, мною частично оптимизирован и изменен метод проверки на NPC.

Узнать больше об этом ресурсе...
 

snak84

Прохожий
10 Янв 2019
79
31
40
Непонятно 2 вещи:

1. Зачем проверять sleepingPlayerList?

2. Почему это :
Код:
if (IsNPC(player))
{
if (player != null) 
{
player.DieInstantly();
PrintWarning($"Fake player {player.displayName} ({player.userID}) was killed");
}
}
не заменять на это
Код:
if (!player.userID.IsSteamId()){
player.DieInstantly();
PrintWarning($"Fake player {player.displayName} ({player.userID}) was killed");
}
?
 

ХУЙ228

Распиздяй
Прохожий
17 Дек 2017
707
196
1. У некоторых NPC ( синие ученые ) баговались так что "засыпали" и вываливались в sleepingPlayerList. Отсюда и проверка sleepingPlayerList.
2. Спасибо, не знал про дополнительный класс ExtensionMethods в Oxide в котором такие методы есть.

@GoodPlayer, обновляй :)
 
Последнее редактирование:

snak84

Прохожий
10 Янв 2019
79
31
40
Обновил
 

Вложения

  • NPCFix.cs
    798 байт · Просмотры: 6

ХУЙ228

Распиздяй
Прохожий
17 Дек 2017
707
196
@snak84, :confused: ептыть еще одно ответвление, я на другом ресурсе обновил, где изначально это выложил.

Кстати, NPC во время работы сервера могут вываливаться в sleepingPlayerList, поэтому не особо корректно проверять единожды при инициализации.
 

shturval

Новичек
7 Мар 2018
3
0
35
Код:
(11:01:19) | NPCFix was compiled successfully in 2922ms
(11:01:19) | Unloaded plugin NPCFix v0.0.2 by OxideBro/rostov114
(11:01:19) | Loaded plugin NPCFix v0.0.3 by OxideBro/rostov114/SNAK84
(11:01:24) | Error: global.playerlist - Object reference not set to an instance of an object (Facepunch.Raknet)
(11:01:49) | 1026538[414670/1026538] died (Generic)
(11:01:49) | Failed to run a 30.00 timer in 'NPCFix v0.0.3' (NullReferenceException: Object reference not set to an instance of an object)
  at HTNPlayer.OnKilled (HitInfo info) [0x00021] in <a85cfe9df6984a3b87f0d164ca8d2296>:0
  at BaseCombatEntity.DieInstantly () [0x00049] in <a85cfe9df6984a3b87f0d164ca8d2296>:0
  at Oxide.Plugins.NPCFix.CheckPlayer (BasePlayer player) [0x00010] in <e45035f61df84f07b0ea687b31f186b3>:0
  at System.Collections.Generic.List`1[T].ForEach (System.Action`1[T] action) [0x00024] in <1f0c1ef1ad524c38bbc5536809c46b48>:0
  at Oxide.Plugins.NPCFix.<OnServerInitialized>m__0 () [0x00000] in <e45035f61df84f07b0ea687b31f186b3>:0
  at Oxide.Core.Libraries.Timer+TimerInstance.FireCallback () [0x00018] in <4452f821def6406d834e4149849fe7ea>:0
(11:01:54) | Error: global.playerlist - Object reference not set to an instance of an object (Facepunch.Raknet)