Русское сообщество по скриптингу

Что за аномалия? Раунды не считываются.  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Что за аномалия? Раунды не считываются.

Сообщение Sheigar » 04 ноя 2021, 17:30

Есть такой код, тут должны считываться раунды и записываться в Round_Counter но при отправки в чат - там всегда ноль. Я проверил даже клонированный плагин и там работает счетчик, а тут с такими-же настройками нет. Что за аномалия и как ее чинить?

Вот такая ошибка в компиляторе:
reduntant test: constant expression is non-zero


Код: Выделить всё
#include <amxmodx>                                        
#include <amxmisc>                                                 
#include <cstrike>                                                
#include <engine>                                                
#include <fakemeta>                                                
#include <hamsandwich>                                            
#include <fakemeta_util>                                
#include <fun>                                
#define ROUND_VIP 4                                     
#define ROUND_SVIP 3                                    
#define ROUND_PREMIUM 2                                

new Round_Counter                                 
new bool
:Players[33] = true                                
public plugin_init
(){        
    register_plugin
("Main", "Sheigar", "1.0")                
    register_clcmd
("say /Menu", "Menu")                            
    register_clcmd
("Menu", "Menu")                                 
    register_clcmd
("Privmenu", "Privmenu")                        
    register_clcmd
("Settings", "Settings")                         
    register_event
("HLTV", "EventStartRound", "a", "1=0", "2=0")                                        
    register_event
("TextMsg", "EventRestartRound", "a", "2=#Game_will_restart_in","2=#Game_Commencing") 
}
public EventRestartRound() {
    Round_Counter = 0
}

public EventStartRound() {
    ++ Round_Counter
    arrayset
(Players, true, 32)    //Массив значения для каждого игрока отдельно.
Опытный скриптер.

VK: https://vk.com/vasheigar
Discord: Sheigar#0294
Аватара пользователя
Sheigar
 
Сообщения: 109
Зарегистрирован: 03 июл 2021, 21:36
Благодарил (а): 27 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Библиотека Amxmodx.
Язык Pawn.

Re: Что за аномалия? Раунды не считываются.

Сообщение [N][E][M][E][C] » 04 ноя 2021, 19:07

Код полностью в студию или мы должны догадаться???
Для чисел лучше использовать const
Код: Выделить всё
#define ROUND_VIP 4                                     
#define ROUND_SVIP 3                                    
#define ROUND_PREMIUM 2   

==>
Код: Выделить всё
const ROUND_VIP = 4                                     
const ROUND_SVIP 
= 3                                    
const ROUND_PREMIUM 
= 2
Последний раз редактировалось [N][E][M][E][C] 04 ноя 2021, 19:13, всего редактировалось 1 раз.
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Что за аномалия? Раунды не считываются.

Сообщение Sheigar » 04 ноя 2021, 19:12

Даже с таким кодом, не работает счетчик.

Код: Выделить всё
#pragma tabsize 0                                    
#include <amxmodx>                                        
#include <amxmisc>                                             
#include <cstrike>                                                
#include <engine>                                            
#include <fakemeta>                                            
#include <hamsandwich>                                        
#include <fakemeta_util>                                        
#include <fun>                                                

#define ROUND_VIP 4                                         
#define ROUND_SVIP 3                                    
#define ROUND_PREMIUM 2                                            

new cl_counting_round                                              //│ Cчитывания количества раундов.
new bool:Players[33]                                            //│ Массив с индексами игроков.
//│ Функция регистрации команд:                                    //│ 
public plugin_init(){                                            //│ 
    register_plugin("Main", "Sheigar", "1.0")                    //│ Регистрация плагина.
    register_clcmd("say /Menu", "Menu")                            //│ Регистрация "Меню Сервера" - Чат.
    register_clcmd("Menu", "Menu")                                 //│ Регистрация "Меню Сервера" - Консоль.
    register_clcmd("Privmenu", "Privmenu")                        //│ Регистрация "Меню Привилегий" в Консоли.
    register_clcmd("Settings", "Settings")                         //│ Регистрация "Меню Настроек" - Консоль.
    register_event("HLTV", "EventStartRound", "a", "1=0", "2=0")                                        //│ Отлов начала раунда.
    register_event("TextMsg", "EventRestartRound", "a", "2=#Game_will_restart_in","2=#Game_Commencing") //│ Отлов рестарта раунда.
}
//│─────────────────────────────────────────────────────────────CODE─────────────────────────────────────────────────────────────│
//│ Функция рестарта раунда.
public EventRestartRound() 
{
    cl_counting_round = 0
}
//│ Функция нового раунда.
public EventStartRound() 
{
    ++ cl_counting_round
    arrayset
(Players, true, 32)    //Массив значения для каждого игрока отдельно.
}

//│──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│
//│ Главное меню сервера.
public Menu(id) {
    client_cmd(id, "spk UI/buttonrollover.wav")
    new Menu_Main = menu_create("\yМеню сервера \y- \r«\yFᴏʟᴄᴏʀɴ\r»^n\yГруппа ВК - \rhttps://vk.com/folcorn", "Menu_Main_Handler")
    menu_additem(Menu_Main, "Обнулить счет.", "1", 0)            // 1
    menu_additem(Menu_Main, "Быстрые сообщения.", "2", 0)        // 2
    menu_additem(Menu_Main, "Лучшие игроки.", "3", 0)            // 3
    menu_additem(Menu_Main, "Передать деньги.", "4", 0)            // 4
    menu_additem(Menu_Main, "Настройки клиента.", "5", 0)        // 5
    menu_additem(Menu_Main, "Сменить команду.", "6", 0)            // 6
    if(get_user_flags(id) & ADMIN_RCON || ADMIN_IMMUNITY || ADMIN_BAN || ADMIN_LEVEL_A || ADMIN_KICK || ADMIN_SLAY || ADMIN_MENU || ADMIN_LEVEL_H) 
    
{
        menu_addtext(Menu_Main, "\d—————————————————", 0)
        menu_additem(Menu_Main, "\rМеню привилегий.", "7", 0)    // 7
        menu_addtext(Menu_Main, "\d—————————————————", 0)
    } else {
        menu_addtext(Menu_Main, "\d—————————————————", 0)
        menu_additem(Menu_Main, "\yЦены привилегий.", "7")    // 7
        menu_addtext(Menu_Main, "\d—————————————————", 0)
    }
    menu_setprop(Menu_Main, MPROP_EXITNAME, "\yВыход.")
    menu_display(id, Menu_Main, 0)
}
//│ Обработчик главного меню сервера.
public Menu_Main_Handler(id, menu, item) {
    if( item < 0 ) return PLUGIN_CONTINUE
    new cmd
[3], access, callback
    menu_item_getinfo
(menu, item, access, cmd,2,_,_, callback)
    new Choise = str_to_num(cmd)
    switch (Choise) {
        case 1: {
            client_cmd(id, "Rs")            // 1
            client_cmd(id, "say %d", cl_counting_round)        // 1
        }
        case 2: {
            client_cmd(id, "Fastmsg")        // 2
        }
        case 3: {
            client_cmd(id, "say /Top10")    // 3
        }
        case 4: {
            client_cmd(id, "Money")         // 4
        }
        case 5: {
            client_cmd(id, "Settings")        // 5
        }
        case 6: {
            client_cmd(id, "chooseteam")    // 6
        }
        case 7: {
            client_cmd(id, "Privmenu")        // 7
        }
    }
    return PLUGIN_HANDLED
}
Опытный скриптер.

VK: https://vk.com/vasheigar
Discord: Sheigar#0294
Аватара пользователя
Sheigar
 
Сообщения: 109
Зарегистрирован: 03 июл 2021, 21:36
Благодарил (а): 27 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Библиотека Amxmodx.
Язык Pawn.

Re: Что за аномалия? Раунды не считываются.  [Решено]

Сообщение [N][E][M][E][C] » 04 ноя 2021, 19:15

Sheigar,
Для чего тебе в коде new bool:Players[33] и arrayset(Players, true, 32)?
Удали эти 2 строки и будет тебе счастье
Код: Выделить всё
register_clcmd("Privmenu", "Privmenu") //¦ Регистрация "Меню Привилегий" в Консоли.
register_clcmd("Settings", "Settings") //¦ Регистрация "Меню Настроек" - Консоль.        

Эти строки выдавали ошибки, он тут не нужны?
Ты обьясни для чего они тебе, уж интересно стало мне
L 11/04/2021 - 18:33:51: [AMXX] Displaying debug trace (plugin "1.amxx")
L 11/04/2021 - 18:33:51: [AMXX] Run time error 19: function not found
L 11/04/2021 - 18:33:51: [AMXX] [0] 1.sma::plugin_init (line 21)
L 11/04/2021 - 18:34:53: Start of error session.
L 11/04/2021 - 18:34:53: Info (map "de_dust") (file "addons/amxmodx/logs/error_20211104.log")
L 11/04/2021 - 18:34:53: Function "Settings" was not found
L 11/04/2021 - 18:34:53: [AMXX] Displaying debug trace (plugin "1.amxx")
L 11/04/2021 - 18:34:53: [AMXX] Run time error 19: function not found
L 11/04/2021 - 18:34:53: [AMXX] [0] 1.sma::plugin_init (line 22)
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Что за аномалия? Раунды не считываются.

Сообщение Sheigar » 04 ноя 2021, 19:46

Убрал, но всеравно не считает количество раундов. А стоп, реально? Спасибо.
Опытный скриптер.

VK: https://vk.com/vasheigar
Discord: Sheigar#0294
Аватара пользователя
Sheigar
 
Сообщения: 109
Зарегистрирован: 03 июл 2021, 21:36
Благодарил (а): 27 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Библиотека Amxmodx.
Язык Pawn.

Re: Что за аномалия? Раунды не считываются.

Сообщение [N][E][M][E][C] » 04 ноя 2021, 19:47

Ты не ответил на вопрос!!
И еще вопрос, для чего вам #pragma tabsize 0?
Это служит от обхода warning 217: loose indentation, учитесь делать правильную табуляцию
И неужели нельзя найти общи флаг, что бы не писать эту хрень?
Код: Выделить всё
if(get_user_flags(id) & ADMIN_RCON || ADMIN_IMMUNITY || ADMIN_BAN || ADMIN_LEVEL_A || ADMIN_KICK || ADMIN_SLAY || ADMIN_MENU || ADMIN_LEVEL_H
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Что за аномалия? Раунды не считываются.

Сообщение Sheigar » 04 ноя 2021, 20:50

Можно, но я просто собираюсь изменять название флагов на свои, потом сделаю.
А правильная табуляция зачем? Ну и эти ошибки с предупреждениями занимают достаточно места, из за них не сразу вижу весомую проблему.
Опытный скриптер.

VK: https://vk.com/vasheigar
Discord: Sheigar#0294
Аватара пользователя
Sheigar
 
Сообщения: 109
Зарегистрирован: 03 июл 2021, 21:36
Благодарил (а): 27 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Библиотека Amxmodx.
Язык Pawn.

Re: Что за аномалия? Раунды не считываются.

Сообщение [N][E][M][E][C] » 04 ноя 2021, 21:00

Табуляцию надо делать не только для себя и для того что бы, помогающие тебе люди, не ломали голову
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

cron