[CS:GO] Нужна помощь с меню VIP

SniffRx

Участник
Сообщения
74
Реакции
75
Здравствуйте многоуважаемые форумчане. Беспокою вас по вопросу написания меню под VIP от R1KO.
Я добавил меню в плагин [VIP] Agents / Агенты CS:GO, но после выбора пункта из меню, возвращает обратно в вип, а не переходит в другие меню.

C-подобный:
VIP_RegisterFeature(VIP_Agents_M, BOOL, SELECTABLE, OnSelectItem);

Включение VIP меню - 451 строчка
Меню из плагина - 459 строчка
Меню выбора скина - 478 строчка

Сразу хочу извинится если если что-то написано коряво/говнокод
Сообщения автоматически склеены:

Закройте тему.
PS. Проблема была в
case MenuAction_End: CloseHandle(menu);
C-подобный:
        case MenuAction_End: CloseHandle(menu);
        case MenuAction_Cancel:
        {
            if(param2 == MenuCancel_ExitBack)
            {
                VIP_SendClientVIPMenu(param1);
            }
        }
 

Вложения

  • sskins.sp
    29.8 КБ · Просмотры: 4
Последнее редактирование:

NaN

FPE_INTDIV_TRAP
Сообщения
1,513
Реакции
1,487
Здравствуйте многоуважаемые форумчане. Беспокою вас по вопросу написания меню под VIP от R1KO.
Я добавил меню в плагин [VIP] Agents / Агенты CS:GO, но после выбора пункта из меню, возвращает обратно в вип, а не переходит в другие меню.

C-подобный:
VIP_RegisterFeature(VIP_Agents_M, BOOL, SELECTABLE, OnSelectItem);

Включение VIP меню - 451 строчка
Меню из плагина - 459 строчка
Меню выбора скина - 478 строчка

Сразу хочу извинится если если что-то написано коряво/говнокод
Сообщения автоматически склеены:

Закройте тему.
PS. Проблема была в
case MenuAction_End: CloseHandle(menu);
C-подобный:
        case MenuAction_End: CloseHandle(menu);
        case MenuAction_Cancel:
        {
            if(param2 == MenuCancel_ExitBack)
            {
                VIP_SendClientVIPMenu(param1);
            }
        }
в OnPluginEnd лучше сначала проверить доступна ли функция VIP_UnregisterFeature.

C-подобный:
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterMe") == FeatureStatus_Available)
        VIP_UnregisterMe();
ну и лучше использовать VIP_UnregisterMe, который снимет регистрацию со всех функций плагина. Тем более вы регистрируете две функции, а снимаете регистрацию только с одной.

в строке 618, если вы уж явно задаете действия для меню(которые в любом случае будут использоваться - https://sm.alliedmods.net/new-api/menus/CreateMenu), то добавьте MenuAction_Cancel

в switch на строке 762 вы забыли case default

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

кроме того, по коду видно что это паста из разных плагинов, мешанина старого и нового синтаксиса
 
Сверху Снизу