Рандомная пропажа оружия

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Тема пропажи оружия из рук встречается крайне часто и многократно поднималась, но конкретных причин и решения найдено так и не было.


Вот Madness aka null138 придумал плагин, что может отловливать такие события и возвращать оружия на место На пабчике пропадает оружие из рук.
Потребовало времени это всё найти и да бы возможно помочь ещё кому то, решил создать данную тему как общую для решения имеющейся проблемы. Как в сторону исправления причины, так и в сторону решения последствий проблемы.
Из возможных причин перечисляют от No-Block и Shop Core, до ViP и Trails плагинов.
@SlavON, просто нужно найти виновника исчезновений.
Какой-то плагин некорректно удаляет энтити.
@Grey83, сложно искать плагин, проблема не сильно частая чтобы отключать нужные плагины, при том у кого я спрашивал тоже говорят что бывает такое, просто редко. Подскажи пример плагина с этим функционалом, в каких случая требуется удаление энтити? Я удалял lsd и запрет оружия, не помогло.
Нужно в исходниках всех плагинов искать вызов функций RemoveEdict(entity);, AcceptEntityInput(entity, "Kill");, AcceptEntityInput(entity, "KillHierarchy"); (у функции AcceptEntityInput() может быть больше 2 параметров, но 2-й должен быть одним из этих двух, регистр символов значения не имеет) или RemoveEntity(entity);.
Если встречается, то проверять на наличие проверки корректности Id удаляемой энтити. Ну или если не понимаешь в коде, то выключать по одному такому плагину, пока не выловишь виновника.

Вообще я удивлен увидев столько обсуждений и версий причины. Этот баг существует очень давно, по крайней мере с тех пор как скины были введены в ксго. До этого я не припомню исчезания пушек. Для Валве сам факт доната гораздо важнее, чем исправление всех этих багов, в том числе и бага что не всегда видно хп и патроны. Все эти исчезания исправляются перезаходом на сервер или сменой разрешения.

Получается на карте объектов больше чем должно быть и поэтому удаляет? Как бы логично. И такой плагин у меня есть в випе, как автозакуп оружия. Но фича в том, что на авп, 35хп и аим картах, випка отключается специальным плагином. А оружие всё равно пропадает, даже больше на авп картах, чем на обычных. Сначала в левой руке появляется, затем исчезает физически, со стороны руки в стороны. Тех. поддержка говорит "Отключайте все плагины, которые меняют модели/скрины/раскраски или накладывают различные эффекты свечения/спрайты и т.п.
Проблема 100% в одном из таких плагинов." отключил лазер на авп, думал он, нет. Такие же баги. Шоп? Может блокировщик проходов тогда уж, он создаёт объект на карте. Но опять же его нет на 2000$ и там бы он никак не мешал. Остаётся шоп. Только он работает из "больших плагинов" на авп_индии. Блокировщика там нет и вип тоже.
--- Добавлено позже ---
Писал на форум, ответ похожий "смотреть в сторону плагинов, которые создают различные эффекты либо меняют модели/свойства оружия. " Отключаю шоп на день, отпишусь, как пойдут дела.
--- Добавлено позже ---
Убрал шоп, багов не заметил. Если они не исчезли, то достаточно сократились. Отключайте шоп парни. Ну или выявляйте модуль виновника в шопе.

Этот фикс по идеи должен работать, но как он себя поведёт при блокировки оружий тех же плагинов weapon restrict или с плагином дуэли 1 на 1?
Сейчас "поймал" данную проблему на своем сервере и решил её исправить, по ходу дела буду дополнять эту тему новостями и буду рад, если вы поделитесь своими успехами в борьбе с этой проблемой
 

Вложения

  • fixweapon.sp
    678 байт · Просмотры: 49
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@Nekro, я бы на всякий случай увеличил размер classname до 32 (и сделал его static, хотя это не обязательно).
В принципе я бы сделал примерно вот так:
C-подобный:
#pragma semicolon 1

#include <sdktools_functions>
#include <sdkhooks>

int
    iOwner,
    iWeapon;
float
    fPos[3];
char
    sCls[32];

public void OnEntityDestroyed(int entity)
{
    if(!IsValidEdict(entity) || !GetEdictClassname(entity, sCls, sizeof(sCls)) || strncmp(sCls, "weapon_", 7, false)
    || (iOwner = GetEntPropEnt(entity, Prop_Data, "m_hOwner")) < 1 || !IsClientInGame(iOwner) || !IsPlayerAlive(iOwner)
    || (iWeapon = CreateEntityByName(sCls)) == -1)
        return;

    GetClientAbsOrigin(iOwner, fPos);
    fPos[0] += 22.0;
    TeleportEntity(iWeapon, fPos, NULL_VECTOR, NULL_VECTOR);
    DispatchSpawn(iWeapon);

    LogMessage("Missing %s returned", sCls);    // пишем в лог соурсмода об удачном возврате оружия
}
UPD Исправил очепятку (забыл убрать закрывающую круглую скобку)
 
Последнее редактирование:

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
@Nekro, я бы на всякий случай увеличил размер classname до 32 (и сделал его static).
В принципе я бы сделал примерно вот так:
C-подобный:
#pragma semicolon 1

#include <sdktools_functions>
#include <sdkhooks>

int
    iOwner,
    iWeapon;
float
    fPos[3];
char
    sCls[32];

public void OnEntityDestroyed(int entity)
{
    if(!IsValidEdict(entity) || !GetEdictClassname(entity, sCls, sizeof(sCls)) || strncmp(sCls, "weapon_", 7, false)
    || (iOwner = GetEntPropEnt(entity, Prop_Data, "m_hOwner")) < 1 || !IsClientInGame(iOwner) || !IsPlayerAlive(iOwner))
    || (iWeapon = CreateEntityByName(sCls)) == -1)
        return;

    GetClientAbsOrigin(iOwner, fPos);
    fPos[0] += 22.0;
    TeleportEntity(iWeapon, fPos, NULL_VECTOR, NULL_VECTOR);
    DispatchSpawn(iWeapon);

    LogMessage("Missing %s returned", sCls);    // пишем в лог соурсмода об удачном возврате оружия
}
Можно ещё поподробнее о
Нужно в исходниках всех плагинов искать вызов функций RemoveEdict(entity);, AcceptEntityInput(entity, "Kill");, AcceptEntityInput(entity, "KillHierarchy"); (у функции AcceptEntityInput() может быть больше 2 параметров, но 2-й должен быть одним из этих двух, регистр символов значения не имеет) или RemoveEntity(entity);.
Если встречается, то проверять на наличие проверки корректности Id удаляемой энтити. Ну или если не понимаешь в коде, то выключать по одному такому плагину, пока не выловишь виновника.
Имеется ввиду "наличие проверки корректности Id удаляемой энтити" это EntIndexToEntRef · halflife · SourceMod Scripting API Reference ?
Сообщения автоматически склеены:

@Grey83, sdkhooks как понимаю там тоже не нужен
 

Reg1oxeN

Участник
Сообщения
399
Реакции
314
на самом деле тут хорошей практикой является вызов исключения при попытке удалить оружие у игрока.
это заметно ускорит нахождение проблемного плагина, который плохо контролирует удаление своих сущностей.
 

khood

Участник
Сообщения
214
Реакции
51
@Nekro, я бы на всякий случай увеличил размер classname до 32 (и сделал его static, хотя это не обязательно).
В принципе я бы сделал примерно вот так:
C-подобный:
#pragma semicolon 1

#include <sdktools_functions>
#include <sdkhooks>

int
    iOwner,
    iWeapon;
float
    fPos[3];
char
    sCls[32];

public void OnEntityDestroyed(int entity)
{
    if(!IsValidEdict(entity) || !GetEdictClassname(entity, sCls, sizeof(sCls)) || strncmp(sCls, "weapon_", 7, false)
    || (iOwner = GetEntPropEnt(entity, Prop_Data, "m_hOwner")) < 1 || !IsClientInGame(iOwner) || !IsPlayerAlive(iOwner))
    || (iWeapon = CreateEntityByName(sCls)) == -1)
        return;

    GetClientAbsOrigin(iOwner, fPos);
    fPos[0] += 22.0;
    TeleportEntity(iWeapon, fPos, NULL_VECTOR, NULL_VECTOR);
    DispatchSpawn(iWeapon);

    LogMessage("Missing %s returned", sCls);    // пишем в лог соурсмода об удачном возврате оружия
}
Ошибка компиляции:
[1.11.0] (6936)\fixweapon.sp(18) : error 029: invalid expression, assumed zero
[1.11.0] (6936)\fixweapon.sp(18) : error 029: invalid expression, assumed zero
[1.11.0] (6936)\fixweapon.sp(19) : error 001: expected token: ";", but found "return"
[1.11.0] (6936)\fixweapon.sp(19) : warning 217: inconsistent indentation (did you mix tabs and spaces?)
[1.11.0] (6936)\fixweapon.sp(21) : warning 217: inconsistent indentation (did you mix tabs and spaces?)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@qdwqdwq32, в строке 17 забыл убрать 2-ю закрывающую скобку после проверки жив ли игрок
 

google>

oldgamers
Сообщения
373
Реакции
210
пропадать оружие может из-за твоего плагина "парашюта" и тебе кстати писали об этом.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@Podrubchansky, можешь попробовать такой вариант.
SM1.11:
//// GrenadeTrails 1.1.0_24.10.2023.sp
//
// Code size:             7136 bytes
// Data size:             3532 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   27052 bytes
//
// Compilation Time: 0,22 sec
// ----------------------------------------

//// GrenadeTrails 1.0.0.sp
//
// Z:\GrenadeTrails 1.0.0.sp(82) : warning 242: function "Event_RoundStart" should return an explicit value
// Z:\GrenadeTrails 1.0.0.sp(86) : warning 242: function "Event_GrenadeDetonate_HE" should return an explicit value
// Z:\GrenadeTrails 1.0.0.sp(120) : warning 242: function "Event_GrenadeDetonate_FLASH" should return an explicit value
// Z:\GrenadeTrails 1.0.0.sp(169) : warning 242: function "Hook_OnSpawnProjectile_HE" should return an explicit value
// Z:\GrenadeTrails 1.0.0.sp(210) : warning 242: function "Hook_OnSpawnProjectile_FLASH" should return an explicit value
// Z:\GrenadeTrails 1.0.0.sp(251) : warning 242: function "Hook_OnSpawnProjectile_SMOKE" should return an explicit value
// Z:\GrenadeTrails 1.0.0.sp(291) : warning 242: function "Hook_OnSpawnParticles" should return an explicit value
// Code size:         15096 bytes
// Data size:         4512 bytes
// Stack/heap size:      16564 bytes
// Total requirements:   36172 bytes
//
// 7 Warnings.
//
// Compilation Time: 0,31 sec
// ----------------------------------------
 

Вложения

  • GrenadeTrails 1.1.0_24.10.2023.sp
    5.9 КБ · Просмотры: 10

jackn1ke.

Участник
Сообщения
85
Реакции
7
Почитал темку, подобрал несколько плагинов, в которых были эти функции.
Начал выгружать плагины. В итоге нашел импостера - [Shop] Trails 2.2.3.
Но так и не понял, почему из-за него пропадает оружие.
Может кто поправить?
 

Вложения

  • shop_trails.sp
    8.2 КБ · Просмотры: 11

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979

Вложения

  • shop_trails 2.2.3_fix.sp
    7.8 КБ · Просмотры: 20

FuckYeah

Челик
Сообщения
474
Реакции
57
Проверяй (заменил сохранение индекса на сохранение референса).
Можешь, пожалуйста, посмотреть эти 2 плагина?
Удаляют все гранаты на земле в начале раунда и выдает/удаляет дефюз киты
Есть подозрения что из-за них иногда пропадает оружие у игроков в начале раунда
 

Вложения

  • rmvkits.sp
    1.4 КБ · Просмотры: 4
  • clearnades.sp
    1.2 КБ · Просмотры: 4

Reg1oxeN

Участник
Сообщения
399
Реакции
314
Можешь, пожалуйста, посмотреть эти 2 плагина?
Удаляют все гранаты на земле в начале раунда и выдает/удаляет дефюз киты
Есть подозрения что из-за них иногда пропадает оружие у игроков в начале раунда
нужно искать то что создает объекты и удаляет их в начале раунда или через короткий промежуток времени.
в приложенных плагинах нет такой проблемы.
 

FuckYeah

Челик
Сообщения
474
Реакции
57
нужно искать то что создает объекты и удаляет их в начале раунда или через короткий промежуток времени.
в приложенных плагинах нет такой проблемы.
[SM] Listing 58 plugins:
01 "Check SteamID in Chat"
02 "Basic Chat" (1.11.0.6522) by AlliedModders LLC
03 "AdminList" (1.0.1) by xyligan
04 "[LR] Module - Unusual Kills" (v3.1.7 Beta 1 SR1) by Wend4r
05 "[LR] Module - ExStats Maps" (3.1 F1) by RoadSide Romeo
06 "[LR] Module - ExStats Hits" (v3.1) by Wend4r
07 "[LR] Module - ExStats Weapons" (v3.1) by RoadSide Romeo & Wend4r
08 "Anti-Flood" (1.11.0.6522) by AlliedModders LLC
09 "Radio Spam Block" (1.0.0) by exvel
10 "WarMix" (1.1.8 NU) by FrozDark
11 "WarMix Half Round frag save" (1.0.0) by FrozDark
12 "Players Votes" (1.5.0) by The Resident, pZv!
13 "Лучший игрок раунда" (1.2) by vk.com/djmixcraft
14 "Material Admin" (0.8.6) by Material Admin Dev Team
15 "MapChooser Extended" (1.11.0) by Powerlord, Zuko, and AlliedModders LLC
16 "Material Admin Checker" (0.8.6) by psychonic, Ca$h Munny, Sarabveer(VEER™), Bloomstorm
17 "Sound Commands" (1.11.0.6522) by AlliedModders LLC
18 "Auto Name Changer" (1.1.0.9) by Exle
19 "Basic Commands" (1.11.0.6522) by AlliedModders LLC
20 "Weak throw grenade" (1.3.0_02.10.2021) by lar1ch, Grey83
21 "Basic Comm Control" (0.8.6) by AlliedModders LLC
22 "killer_info_display.smx"
23 "Bomb CS2" (Private Plugin) by Nebraska (ВКонтакте | ВКонтакте)
24 "GameDescOverride(SDKHooks)" (1.0) by KorDen
25 "MVP" (1.2)
26 "NoTextWin" (1.0) by by FawN
27 "Round end overlay CS2" (1.2.8) by vk.com/djmixcraft
28 "Advanced c4 Countdown Timer" (1.6.0) by dalto, Panda
29 "Game Events" (2.0.4) by KorDen / Paranoiiik / KOROVKA
30 "IP Name & Say Block" (2.1) by R1KO
31 "Mutual Scoring Players" (0.2.0) by AlmazON
32 "client_download.smx"
33 "Ball CS2" (Private Plugin) by Nebraska (ВКонтакте | ВКонтакте)
34 "NoAdmin.smx"
35 "Admin Help" (1.11.0.6522) by AlliedModders LLC
36 "Admin File Reader" (1.11.0.6522) by AlliedModders LLC
37 "AllChat" (1.1.1) by Frenzzy
38 "ClientMod API" (1.6.1) by Reg1oxeN
39 "WarMix Stats" (1.0.2) by FrozDark (HLModders LLC)
40 "Nextmap" (1.11.0.6522) by AlliedModders LLC
41 "Hide Any Chat Triggers" (1.0) by Mr.Skullbeef
42 "Player Commands" (1.11.0.6522) by AlliedModders LLC
43 "Fun Commands" (1.11.0.6522) by AlliedModders LLC
44 "Map Nominations Extended" (1.11.0) by Powerlord and AlliedModders LLC
45 "silencenades" (1.4) by grif_ssa
46 "Client Preferences" (1.11.0.6522) by AlliedModders LLC
47 "Basic Info Triggers" (1.10.0.6524) by AlliedModders LLC
48 "Default SM Text Replacer" (0.32) by Mitch/Bacardi
49 "Simple Chat Processor (Redux)" (1.1.5) by Simple Plugins, Mini
50 "Fun Votes" (1.11.0.6522) by AlliedModders LLC
51 "Add To Download" (1.2.3) by wS
52 "ClientMod Deathnotice" (1.1) by Reg1oxeN
53 "Most destructive" (0.08) by X@IDER
54 "[Levels Ranks] Core" (v3.1.7 Beta 1) by RoadSide Romeo & Wend4r
55 "Pickup Weapon [Using Use Key]" (1.0) by Reg1oxeN
56 "DisableGameSounds.smx"
57 "Console Welcome Message" (1.1.2) by exvel
58 "Admin Menu" (0.8.6) by AlliedModders LLC
Больше у меня нет вариантов что может быть виновником
 

Вложения

  • bullet_tracers.sp
    5.3 КБ · Просмотры: 3
  • bullet_tracers2.sp
    5.3 КБ · Просмотры: 4

Synd1qate

Участник
Сообщения
744
Реакции
259
[SM] Listing 58 plugins:
01 "Check SteamID in Chat"
02 "Basic Chat" (1.11.0.6522) by AlliedModders LLC
03 "AdminList" (1.0.1) by xyligan
04 "[LR] Module - Unusual Kills" (v3.1.7 Beta 1 SR1) by Wend4r
05 "[LR] Module - ExStats Maps" (3.1 F1) by RoadSide Romeo
06 "[LR] Module - ExStats Hits" (v3.1) by Wend4r
07 "[LR] Module - ExStats Weapons" (v3.1) by RoadSide Romeo & Wend4r
08 "Anti-Flood" (1.11.0.6522) by AlliedModders LLC
09 "Radio Spam Block" (1.0.0) by exvel
10 "WarMix" (1.1.8 NU) by FrozDark
11 "WarMix Half Round frag save" (1.0.0) by FrozDark
12 "Players Votes" (1.5.0) by The Resident, pZv!
13 "Лучший игрок раунда" (1.2) by vk.com/djmixcraft
14 "Material Admin" (0.8.6) by Material Admin Dev Team
15 "MapChooser Extended" (1.11.0) by Powerlord, Zuko, and AlliedModders LLC
16 "Material Admin Checker" (0.8.6) by psychonic, Ca$h Munny, Sarabveer(VEER™), Bloomstorm
17 "Sound Commands" (1.11.0.6522) by AlliedModders LLC
18 "Auto Name Changer" (1.1.0.9) by Exle
19 "Basic Commands" (1.11.0.6522) by AlliedModders LLC
20 "Weak throw grenade" (1.3.0_02.10.2021) by lar1ch, Grey83
21 "Basic Comm Control" (0.8.6) by AlliedModders LLC
22 "killer_info_display.smx"
23 "Bomb CS2" (Private Plugin) by Nebraska (ВКонтакте | ВКонтакте)
24 "GameDescOverride(SDKHooks)" (1.0) by KorDen
25 "MVP" (1.2)
26 "NoTextWin" (1.0) by by FawN
27 "Round end overlay CS2" (1.2.8) by vk.com/djmixcraft
28 "Advanced c4 Countdown Timer" (1.6.0) by dalto, Panda
29 "Game Events" (2.0.4) by KorDen / Paranoiiik / KOROVKA
30 "IP Name & Say Block" (2.1) by R1KO
31 "Mutual Scoring Players" (0.2.0) by AlmazON
32 "client_download.smx"
33 "Ball CS2" (Private Plugin) by Nebraska (ВКонтакте | ВКонтакте)
34 "NoAdmin.smx"
35 "Admin Help" (1.11.0.6522) by AlliedModders LLC
36 "Admin File Reader" (1.11.0.6522) by AlliedModders LLC
37 "AllChat" (1.1.1) by Frenzzy
38 "ClientMod API" (1.6.1) by Reg1oxeN
39 "WarMix Stats" (1.0.2) by FrozDark (HLModders LLC)
40 "Nextmap" (1.11.0.6522) by AlliedModders LLC
41 "Hide Any Chat Triggers" (1.0) by Mr.Skullbeef
42 "Player Commands" (1.11.0.6522) by AlliedModders LLC
43 "Fun Commands" (1.11.0.6522) by AlliedModders LLC
44 "Map Nominations Extended" (1.11.0) by Powerlord and AlliedModders LLC
45 "silencenades" (1.4) by grif_ssa
46 "Client Preferences" (1.11.0.6522) by AlliedModders LLC
47 "Basic Info Triggers" (1.10.0.6524) by AlliedModders LLC
48 "Default SM Text Replacer" (0.32) by Mitch/Bacardi
49 "Simple Chat Processor (Redux)" (1.1.5) by Simple Plugins, Mini
50 "Fun Votes" (1.11.0.6522) by AlliedModders LLC
51 "Add To Download" (1.2.3) by wS
52 "ClientMod Deathnotice" (1.1) by Reg1oxeN
53 "Most destructive" (0.08) by X@IDER
54 "[Levels Ranks] Core" (v3.1.7 Beta 1) by RoadSide Romeo & Wend4r
55 "Pickup Weapon [Using Use Key]" (1.0) by Reg1oxeN
56 "DisableGameSounds.smx"
57 "Console Welcome Message" (1.1.2) by exvel
58 "Admin Menu" (0.8.6) by AlliedModders LLC
Больше у меня нет вариантов что может быть виновником
Зачем вообще трассеры на микс?)
 
Сверху Снизу