Написание плагинов

Madness aka null138

Участник
Сообщения
713
Реакции
734

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
не буду спорить, не знал. Но хукы комманд, afaik, быстрее и менее затратные(по нагрузке) чем отлов форвардов.
То есть вас не смущает, что ваш callback это тоже форвард...
😓
 
Последнее редактирование:

Madness aka null138

Участник
Сообщения
713
Реакции
734

will_rock

Участник
Сообщения
1,074
Реакции
363
@Grey83, привет. Не подскажешь как пофиксить ошибки? Тут многие писали, но никто так и не ответил Round End Sound

Ошибки:
L 10/20/2019 - 05:32:22: SourceMod error session started
L 10/20/2019 - 05:32:22: Info (map "awp_lego_2") (file "errors_20191020.log")
L 10/20/2019 - 05:32:22: [SM] Exception reported: Invalid index 0 (count: 0)
L 10/20/2019 - 05:32:22: [SM] Blaming: res.smx
L 10/20/2019 - 05:32:22: [SM] Call stack trace:
L 10/20/2019 - 05:32:22: [SM]   [0] GetArrayString
L 10/20/2019 - 05:32:22: [SM]   [1] Line 1423, D:\Games\Servers\CSS-Public_Server\css\cstrike\addons\sourcemod\scripting\res.sp::OnRoundEnd
L 10/20/2019 - 05:32:22: [SM]   [3] ForcePlayerSuicide
L 10/20/2019 - 05:32:22: [SM]   [4] Line 37, /home/builds/sourcemod/linux-1.9/build/plugins/playercommands/slay.sp::PerformSlay
L 10/20/2019 - 05:32:22: [SM]   [5] Line 147, /home/builds/sourcemod/linux-1.9/build/plugins/playercommands/slay.sp::Command_Slay
L 10/20/2019 - 05:32:22: [SM]   [7] ServerCommandEx
L 10/20/2019 - 05:32:22: [SM]   [8] Line 400, /home/builds/sourcemod/linux-1.9/build/plugins/basecommands.sp::Command_Rcon
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Речь шла про именно этот плагин, и нет, не смущает AddCommandListener Function.
Считай как тебе хочется, не стоит продолжать этот диалог.
Using Reg*Cmd to intercept is in poor practice, as it physically creates a new command and can slow down dispatch in general.
И поэтому, я так понимаю, вы решили отказаться от api плагинов.😅
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
И поэтому, я так понимаю, вы решили отказаться от api плагинов.😅
я же ведь изначально сказал, что не знал. Прочитай повторно мой ответ выше.
upd. а где ты видел в коде создание команды ? "..whereas this is a lightweight hook on a command string, existing or not." это про AddCommandListener
 
Последнее редактирование:

DanZe

Участник
Сообщения
51
Реакции
7
Нужен плагин который включает прицел [Не зум] на Awp Noscope типо weapon_debug_spread_show через меню
Нужен такой же плагин.
Есть наброски, но выдаёт ошибку на сервере
[SM] Exception reported: Invalid convar handle 0 (error 4)
[SM] Blaming: Crosshair.smx
[SM] Call stack trace:
[SM] [0] ConVar.Flags.get
[SM] [1] Line 12, C:\Users\User\Desktop??????????\Crosshair.sp::OnPluginStart
 

Вложения

  • Crosshair.sp
    880 байт · Просмотры: 12

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
luidgi, а weapon_debug_spread_show - это разве серверный квар?
Попробуй так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

static const char
    CMD[] = "weapon_debug_spread_show";

bool
    bCrosshair[MAXPLAYERS+1];
int
    iDefFlags,
    iNewFlags;

public void OnPluginStart()
{
    iDefFlags = iNewFlags = GetCommandFlags(CMD);
    if(iDefFlags == INVALID_FCVAR_FLAGS) SetFailState("Can't find command 'weapon_debug_spread_show'!");
    iNewFlags &= ~FCVAR_CHEAT|FCVAR_SPONLY;

    RegConsoleCmd("sm_ch", Cmd_Crosshair);
}

public void OnClientPutInServer(int client)
{
    bCrosshair[client] = false;
}

public Action Cmd_Crosshair(int client, int args)
{
    if(client)
    {
        bCrosshair[client] = !bCrosshair[client];
        SetCommandFlags(CMD, iNewFlags);
        FakeClientCommand(client, "%s %d", CMD, bCrosshair[client] ? "3" : "0");
        SetCommandFlags(CMD, iDefFlags);

        PrintToChat(client, "Прицел %sключен", bCrosshair[client] ? "в" : "вы");
    }

    return Plugin_Handled;
}
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
will_rock, тыкни в комментарий из которого ты исходник брал. У оригинального всего 1251 строка, у тебя же пишет о строке 1423
Сообщения автоматически склеены:

Не знаю как определить
just google it!
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
will_rock, а что у тебя в файле addons/sourcemod/configs/res_list.cfg и файлах logs/res_*.log?
Если последних нет, то неплохо было бы включить квар sm_res_debugsounds и подождать появления этой ошибки снова. Тогда logs/res_*.log будет создан и можно будет определиться точнее где копать

Кстати, вот версия у которой не будет варнингов при компиляции с SM1.7+
 

Вложения

  • res.sp
    43.7 КБ · Просмотры: 7
Последнее редактирование:

Black_

Участник
Сообщения
48
Реакции
5
Можете пожалуйста написать плагин, на bot_kick - Bot_quota 0
В cfg не пашет...
 

DanZe

Участник
Сообщения
51
Реакции
7
Попробуй так:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

static const char
    CMD[] = "weapon_debug_spread_show";

bool
    bCrosshair[MAXPLAYERS+1];
int
    iDefFlags,
    iNewFlags;

public void OnPluginStart()
{
    iDefFlags = iNewFlags = GetCommandFlags(CMD);
    if(iDefFlags == INVALID_FCVAR_FLAGS) SetFailState("Can't find command 'weapon_debug_spread_show'!");
    iNewFlags &= ~FCVAR_CHEAT|FCVAR_SPONLY;

    RegConsoleCmd("sm_ch", Cmd_Crosshair);
}

public void OnClientPutInServer(int client)
{
    bCrosshair[client] = false;
}

public Action Cmd_Crosshair(int client, int args)
{
    if(client)
    {
        bCrosshair[client] = !bCrosshair[client];
        SetCommandFlags(CMD, iNewFlags);
        FakeClientCommand(client, "%s %d", CMD, bCrosshair[client] ? "3" : "0");
        SetCommandFlags(CMD, iDefFlags);

        PrintToChat(client, "Прицел %sключен", bCrosshair[client] ? "в" : "вы");
    }

    return Plugin_Handled;
}
В консоли ошибка при sm plugins load
[SM] Exception reported: Can't find command 'weapon_debug_spread_show'!
[SM] Blaming: crosshairshow.smx
[SM] Call stack trace:
[SM] [0] SetFailState
[SM] [1] Line 16, C:\crosshairshow.sp::OnPluginStart
[SM] Plugin crosshairshow.smx failed to load: Error detected in plugin startup (see error logs).
 

will_rock

Участник
Сообщения
1,074
Реакции
363
@Grey83, спасибо, но ошибки все равно есть
L 10/22/2019 - 00:28:33: SourceMod error session started
L 10/22/2019 - 00:28:33: Info (map "$2000$_bg") (file "errors_20191022.log")
L 10/22/2019 - 00:28:33: [SM] Exception reported: Invalid index 0 (count: 0)
L 10/22/2019 - 00:28:33: [SM] Blaming: res.smx
L 10/22/2019 - 00:28:33: [SM] Call stack trace:
L 10/22/2019 - 00:28:33: [SM] [0] GetArrayString
L 10/22/2019 - 00:28:33: [SM] [1] Line 1162, C:\SM 1.9.0\res.sp::OnRoundEnd
res_2019.10.22.log
L 10/22/2019 - 00:18:05: [res.smx] Error: Sound sound/myres/32.mp3 not found, file doesn't exist!
L 10/22/2019 - 00:18:05: [res.smx] Error: Sound sound/myres/33.mp3 not found, file doesn't exist!
L 10/22/2019 - 00:18:05: [res.smx] General 10 MapEndSounds loaded
L 10/22/2019 - 00:27:10: [res.smx] Error: Sound sound/myres/32.mp3 not found, file doesn't exist!
L 10/22/2019 - 00:27:10: [res.smx] Error: Sound sound/myres/33.mp3 not found, file doesn't exist!
L 10/22/2019 - 00:27:10: [res.smx] General 43 MapEndSounds loaded
L 10/22/2019 - 00:27:10: [res.smx] No RoundEndSounds found in the sounds list
L 10/22/2019 - 00:27:37: [res.smx] Error: Sound sound/myres/32.mp3 not found, file doesn't exist!
L 10/22/2019 - 00:27:37: [res.smx] Error: Sound sound/myres/33.mp3 not found, file doesn't exist!
L 10/22/2019 - 00:27:37: [res.smx] General 43 MapEndSounds loaded
L 10/22/2019 - 00:27:37: [res.smx] No RoundEndSounds found in the sounds list
res_list.cfg
myres/1.mp3
myres/2.mp3
myres/3.mp3
myres/4.mp3
myres/5.mp3
myres/6.mp3
myres/7.mp3
myres/8.mp3
myres/9.mp3
myres/10.mp3
myres/11.mp3
myres/12.mp3
myres/13.mp3
myres/14.mp3
myres/15.mp3
myres/16.mp3
myres/17.mp3
myres/18.mp3
myres/19.mp3
myres/20.mp3
myres/21.mp3
myres/22.mp3
myres/23.mp3
myres/24.mp3
myres/25.mp3
myres/26.mp3
myres/27.mp3
myres/28.mp3
myres/29.mp3
myres/30.mp3
myres/31.mp3
myres/32.mp3
myres/33.mp3
myres/34.mp3
myres/35.mp3
myres/mapend/1.mp3=MAP
myres/mapend/2.mp3=MAP
myres/mapend/3.mp3=MAP
myres/mapend/4.mp3=MAP
myres/mapend/5.mp3=MAP
myres/mapend/6.mp3=MAP
myres/mapend/7.mp3=MAP
myres/mapend/8.mp3=MAP
myres/mapend/9.mp3=MAP
myres/mapend/10.mp3=MAP
Музыка и конфиги рабочие, так как если поставить старую версию 2.4.5 все играет. Хочу обновить до последней лишь потому что в старой версии почему-то в ксго не работают звуки в конце карты (=MAP). Надеюсь, что в новой версии все будет работать)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
will_rock, выключи квар sm_res_commonsounds, что ли
или добавляй к трекам тег BOTH, как для карты MAP
 
Последнее редактирование:

will_rock

Участник
Сообщения
1,074
Реакции
363
@Grey83, спс, дописал =BOTH к трекам и все заработало) Но вот не могу понять почему в конце игры перед сменой карты не играют треки с =MAP Не подскажешь что не так))? В конфиге sm_res_mapendsound "1"
Сообщения автоматически склеены:

Блин еще лог появился(

L 10/22/2019 - 02:36:04: SourceMod error session started
L 10/22/2019 - 02:36:04: Info (map "de_dust2") (file "errors_20191022.log")
L 10/22/2019 - 02:36:04: [SM] Exception reported: Temp entity property "m_iWeaponID" not found
L 10/22/2019 - 02:36:04: [SM] Blaming: res.smx
L 10/22/2019 - 02:36:04: [SM] Call stack trace:
L 10/22/2019 - 02:36:04: [SM] [0] TE_ReadNum
L 10/22/2019 - 02:36:04: [SM] [1] Line 979, C:\SM 1.9.0\res.sp::CSS_Hook_ShotgunShot
 
Сверху Снизу