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

khood

Участник
Сообщения
214
Реакции
51
C-подобный:
L 10/15/2023 - 16:50:26: [SM] Exception reported: Client index 0 is invalid
L 10/15/2023 - 16:50:26: [SM] Blaming: vip/VIP_Kick_1.0.3.smx
L 10/15/2023 - 16:50:26: [SM] Call stack trace:
L 10/15/2023 - 16:50:26: [SM]   [0] PrintToChat
L 10/15/2023 - 16:50:26: [SM]   [1] Line 190, C:\Users\SysAdm\YandexDisk\\\SourceMod\1.8\scripting\VIP_Kick_1.0.3.sp::Handler_ReasonsMenu
VIP-CORE v3.0.3R
 

Вложения

  • VIP_Kick_1.0.3.sp
    5 КБ · Просмотры: 5

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
C-подобный:
L 10/15/2023 - 16:50:26: [SM] Exception reported: Client index 0 is invalid
L 10/15/2023 - 16:50:26: [SM] Blaming: vip/VIP_Kick_1.0.3.smx
L 10/15/2023 - 16:50:26: [SM] Call stack trace:
L 10/15/2023 - 16:50:26: [SM]   [0] PrintToChat
L 10/15/2023 - 16:50:26: [SM]   [1] Line 190, C:\Users\SysAdm\YandexDisk\\\SourceMod\1.8\scripting\VIP_Kick_1.0.3.sp::Handler_ReasonsMenu
VIP-CORE v3.0.3R
190 строка
C-подобный:
PrintToChat(iTarget, "[SM] %t", "Player no longer available");
на
C-подобный:
PrintToChat(iClient, "[SM] %t", "Player no longer available");
 

NeLifeASkazka

Участник
Сообщения
128
Реакции
70
Всем привет
Может кто помочь с плагином ?
Почему-то когда я выбрасываю оружие, модель выброшенного оружия не меняется

code:
public Action ChangeModel(Handle timer, int index){
    // int weap = iSaveWeapon[index];
    int weap = GetWeapon(index);
    int client = ofc_GetOwner(index);
    if(weap > 0){
        if(IsValidClient(client)){
            ofc_SetPlaybackRate(VM_Client[client][1], ofc_GetPlaybackRate(VM_Client[client][0]));
            ofc_SetModelIndex(VM_Client[client][1], iWeapSett[weap].iModelWeapon[V]);
            ofc_SetWorldModelIndex(ofc_GetActiveWeapon(client), iWeapSett[weap].iModelWeapon[W]);
        }
        else
            ofc_SetWorldModelIndex(weap, iWeapSett[weap].iModelWeapon[D]);
    }
    return Plugin_Continue;
}
error:
[SM] Exception reported: Property "m_iWorldModelIndex" not found (entity 12/cs_team_manager)
[SM] Blaming: custom/weapons_4.smx
[SM] Call stack trace:
[SM]   [0] SetEntProp
[SM]   [1] Line 1153, D:\for_css\Compiled_sm\mods\weapons_4.sp::ofc_SetWorldModelIndex
[SM]   [2] Line 213, D:\for_css\Compiled_sm\mods\weapons_4.sp::ChangeModel
 

Вложения

  • weapons_4.sp
    67 КБ · Просмотры: 9

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Всем доброго времени суток, подскажите пожалуйста как можно это пофиксить. На сервере стоит плагин AutoNameChanger и Precеsscmds и когда плагин меняет ник в начале раунда и иногда выскакивает сообщение игроку о том что смена ника заблокирована, и его рекламный ник остается, а игрок получает предупреждение, после чего ник еще раз меняется (опять в начале раунда) и игрок уже получает бан. Мб можно как-то обойти это ограничение в плагине?
Код:
void ChangeClientName(int iClient, const char[] newname)
{
    BuildPath(Path_SM, LogPath, sizeof(LogPath), "logs/Auto_Name_Changer/anc.log");
    BanOptions(iClient);

    SetClientInfo(iClient, "name", newname);
    if (show_msg) CPrintToChat(iClient, "%t %t", "Prefix", "Rename", newname);
    if (logs) LogToFileEx(LogPath, "Игроку %N был изменени ник на %s", iClient, newname);
}

void BanOptions(int iClient)
{
    BuildPath(Path_SM, LogPath, sizeof(LogPath), "logs/Auto_Name_Changer/anc.log");
    if (bansamount == -1) return;
    if (++ban[iClient] != bansamount && show_msg) CPrintToChat(iClient, "%t %t", "Prefix", "Warning", ban[iClient], bansamount);
    
    else if (ban[iClient] >= bansamount)
    {
        ServerCommand("sm_ban #%i %i \"Запрещенный ник\"", GetClientUserId(iClient), banstime);
        if (logs) LogToFileEx(LogPath, "Игрок %N был забанен на %i за запрещенный ник", iClient, banstime);
        return;
    }
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Попробуй заменить способ переименования:
SetClientInfo(iClient, "name", newname);
==>
SetClientName(iClient, newname);

Не факт что что-то изменится, т.к. возможно плагин триггерится сам на себя
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Попробуй заменить способ переименования:
SetClientInfo(iClient, "name", newname);
==>
SetClientName(iClient, newname);

Не факт что что-то изменится, т.к. возможно плагин триггерится сам на себя
Там по дефолту это в плагине стояло, я убрал так как работает одинаково.
Сообщения автоматически склеены:

Всем доброго времени суток, подскажите пожалуйста как можно это пофиксить. На сервере стоит плагин AutoNameChanger и Precеsscmds и когда плагин меняет ник в начале раунда и иногда выскакивает сообщение игроку о том что смена ника заблокирована, и его рекламный ник остается, а игрок получает предупреждение, после чего ник еще раз меняется (опять в начале раунда) и игрок уже получает бан. Мб можно как-то обойти это ограничение в плагине?
Код:
void ChangeClientName(int iClient, const char[] newname)
{
    BuildPath(Path_SM, LogPath, sizeof(LogPath), "logs/Auto_Name_Changer/anc.log");
    BanOptions(iClient);

    SetClientInfo(iClient, "name", newname);
    if (show_msg) CPrintToChat(iClient, "%t %t", "Prefix", "Rename", newname);
    if (logs) LogToFileEx(LogPath, "Игроку %N был изменени ник на %s", iClient, newname);
}

void BanOptions(int iClient)
{
    BuildPath(Path_SM, LogPath, sizeof(LogPath), "logs/Auto_Name_Changer/anc.log");
    if (bansamount == -1) return;
    if (++ban[iClient] != bansamount && show_msg) CPrintToChat(iClient, "%t %t", "Prefix", "Warning", ban[iClient], bansamount);
   
    else if (ban[iClient] >= bansamount)
    {
        ServerCommand("sm_ban #%i %i \"Запрещенный ник\"", GetClientUserId(iClient), banstime);
        if (logs) LogToFileEx(LogPath, "Игрок %N был забанен на %i за запрещенный ник", iClient, banstime);
        return;
    }
}
Так что, есть у кого-то варианты как можно сделать это?
 
Последнее редактирование:

sladerev

Участник
Сообщения
323
Реакции
29
@sladerev, у тебя ошибка в инклюде, а не плагине.

На строке 442 написано for (new i = 1; i <= MaxClients; i++), а на строке 36 - new bool:CSkipList[MAXPLAYERS+1] = {false,...};?
Сообщения автоматически склеены:

@sladerev, переписал плагин на новый синтаксис, оптимизировал и почистил код:
SM1.11:
//// OCslaylosers 1.3.sp
//
// Z:\OCslaylosers 1.3.sp(60) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
// Z:\OCslaylosers 1.3.sp(168) : warning 213: tag mismatch (expected "bool", got "int")
// Code size:         12372 bytes
// Data size:         4192 bytes
// Stack/heap size:      16968 bytes
// Total requirements:   33532 bytes
//
// 2 Warnings.
//
// Compilation Time: 0,34 sec
// ----------------------------------------

//// OCslaylosers 1.4.0.sp
//
// Code size:         12688 bytes
// Data size:         4164 bytes
// Stack/heap size:      16968 bytes
// Total requirements:   33820 bytes
//
// Compilation Time: 0,27 sec
// ----------------------------------------
снова поставил плагин, он почему то не создает кфг, и вообще как будто не хочет работать ошибок нет.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
снова поставил плагин, он почему то не создает кфг
до установки плагина (в смысле не вообще, а прямо перед этим моментом) на сервере на было конфига и другой версии плагина?
Плагин вообще в списке отображается?
 

sladerev

Участник
Сообщения
323
Реакции
29
до установки плагина (в смысле не вообще, а прямо перед этим моментом) на сервере на было конфига и другой версии плагина?
Плагин вообще в списке отображается?
Стоял тот что выдавал ошибки, и кфг от него, я его удалял, делал и релоад и унлоад.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
снова поставил плагин, он почему то не создает кфг, и вообще как будто не хочет работать ошибок нет.
Мб исходник предоставишь? как нам понять почему не создается конфиг
 

sladerev

Участник
Сообщения
323
Реакции
29
@sladerev, в строке 83 замени false на true
Все теперь заработало, но теперь двоится чат при срабатывании.
1697987241105.png

Мб исходник предоставишь? как нам понять почему не создается конфиг
Дак исходник человек выше и давал.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Все теперь заработало, но теперь двоится чат при срабатывании.
Посмотреть вложение 115083

Дак исходник человек выше и давал.
Выше нет этого исходника. А на счет сообщений, скорее всего вывод сообщения находится в цикле, вот оно и дублируется
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
AutoExecConfig(false, "slaylosers"); замени на AutoExecConfig(true, "slaylosers");
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Выше нет этого исходника
Вот же:
 
Сверху Снизу