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

Warnings: Number of arguments does not match definition  [Решено]

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

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

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

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

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

Warnings: Number of arguments does not match definition  [Решено]

Сообщение oReo » 05 сен 2017, 16:16

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

new s_Players[32], i_Num, i_Player;
new s_Player[10];
new namer[32];
new warnings[33];
new warnings2[33];
new warnings3[33];

public client_connect(id)
{
    warnings[id] = 0;
    warnings2[id] = 0;
    warnings3[id] = 0;
}

public plugin_init() {
    register_plugin("Warn Plugin & Menu", "1.0", "???")
    
    register_clcmd
("say /warn", "dd");
    
    register_menucmd
(register_menuid("dd_1"),          1023, "dd_reason2");
}

public dd(id)
{
    if(get_user_flags(id) & ADMIN_KICK)
    {
        
    new i_Menu 
= menu_create("\yМ\wеню \rП\yредупреждений^n^n", "dd_handler")
    
    get_players
(s_Players, i_Num)
    
    for
(new i; i < i_Num; i++)
    {
        i_Player = s_Players[i]
        get_user_name(i_Player, namer, charsmax(namer))
        num_to_str(i_Player, s_Player, charsmax(s_Player))
        
        menu_additem
(i_Menu, namer, s_Player, 0)
    }
    menu_display(id, i_Menu, 0)
    }
}

public dd_handler(id)
{
    dd_reason(id);
}

public dd_reason(id)
{
    new MenuBody[512], len, keys;
    len = format(MenuBody, 511, "\yМ\wеню \rП\yричин^n");
    len += format(MenuBody[len], 511-len, "^n\r1. \wНезнание правила админа \d[\yтолько админам\d]");
    len += format(MenuBody[len], 511-len, "^n\r2. \wНезнание правил сервера");
    len += format(MenuBody[len], 511-len, "^n\r3. \wНету 13+");
    len += format(MenuBody[len], 511-len, "^n^n\r0. \wВыход");
    
    keys 
|= (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<9);
    
    show_menu
(id, keys, MenuBody, -1, "dd_1");
}

public dd_reason2( id, key )
{
    switch( key )
    {
        case 0:
        {    
            dd2
(id);
        }
        case 1:
        {
            dd3(id);
        }
        case 2:
        {
            dd4(id);
        }
    }
}

public dd2(id, menu, item)
{
    new s_Data[6], s_Name[64], i_Access, i_Callback
    
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Player 
= str_to_num(s_Data)
    
    warnings
[i_Player]++;
    
    new name
[33];
    new name_warn[33];
    get_user_name(i_Player, name_warn, 32);
    get_user_name(id, name, 32);

    if(get_user_flags(i_Player) & ADMIN_BAN)
    {
        client_print(0, print_chat, "[Jail] Внимание! %s выдано предупреждение за: Незнание правил Админа, админом %s [%s раз(а)]", name_warn, name, reason, warnings[i_Player]);
    }else{
        client_print(id, print_chat, "[Jail] Данный игрок не администратор!");
    }
    if(warnings[i_Player] >= 3)
    {
        server_cmd("fb_ban 30 #%d ^"Незнание правил администратора^"", get_user_userid(i_Player));
    }
}

public dd3(id, menu, item)
{
    new s_Data[6], s_Name[64], i_Access, i_Callback
    
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Player 
= str_to_num(s_Data)
    
    warnings
[i_Player]++;
    
    new name
[33];
    new name_warn[33];
    get_user_name(i_Player, name_warn, 32);
    get_user_name(id, name, 32);
    client_print(0, print_chat, "[Jail] Внимание! %s выдано предупреждение за: Незнание правил сервера, админом %s [%s раз(а)]", name_warn, name, reason, warnings2[i_Player]);
    if(warnings2[i_Player] >= 3)
    {
        server_cmd("fb_ban 5 #%d ^"Незнание правил сервера^"", get_user_userid(i_Player));
    }
}

public dd4(id, menu, item)
{
    new s_Data[6], s_Name[64], i_Access, i_Callback
    
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new i_Player 
= str_to_num(s_Data)
    
    warnings
[i_Player]++;
    
    new name
[33];
    new name_warn[33];
    get_user_name(i_Player, name_warn, 32);
    get_user_name(id, name, 32);
    client_print(0, print_chat, "[Jail] Внимание! %s выдано предупреждение за: Нету 13+ админом %s [%s раз(а)]", name_warn, name, reason, warnings3[i_Player]);
    if(warnings3[i_Player] >= 3)
    {
        server_cmd("fb_ban 5 #%d ^"Нету 13+^"", get_user_userid(i_Player));
    }
}


Лог ошибок:
Код: Выделить всё
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Number of arguments does not match definition on line 76
Error: Number of arguments does not match definition on line 80
Error: Number of arguments does not match definition on line 84
Error: Undefined symbol "reason" on line 106
Warning: Expression has no effect on line 106
Error: Expected token: ";", but found ")" on line 106
Error: Invalid expression, assumed zero on line 106
Error: Too many error messages on one line on line 106

Compilation aborted.
7 Errors.
Could not locate output file C:\Users\Trensons\Desktop\warns.amx (compile failed).
Последний раз редактировалось oReo 08 сен 2017, 05:24, всего редактировалось 4 раз(а).
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: [Вопрос] Не компилируется плагин Warnings!

Сообщение Fedcomp » 05 сен 2017, 17:09

и где ошибки?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: [Вопрос] Не компилируется плагин Warnings!

Сообщение NEoMASTERR » 05 сен 2017, 18:51

Если коротко то код - говно
Рекомендую удалить и забыть.
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: [Вопрос] Не компилируется плагин Warnings!

Сообщение Subb98 » 05 сен 2017, 19:23

oReo, Вы не так давно уточняли у меня в ЛС, возможно ли избавиться от предупреждения. И сейчас вновь создаёте тему с неинформативным названием. Я определённо рекомендую Вам ознакомиться (внимательно ознакомиться, с пониманием смысла написанного, и если будут вопросы, то не постеснявшись их задать в теме или мне в ЛС, а не просто бездумно прочесть) Вы должны зарегистрироваться, чтобы видеть ссылки..
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: [Вопрос] Не компилируется плагин Warnings!

Сообщение Pafos » 05 сен 2017, 23:24

Fedcomp писал(а):и где ошибки?

oReo писал(а):Плагин не хочет компилироваться помогите!

А ты шо не видишь?
Аватара пользователя
Pafos
 
Сообщения: 574
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Забанен
Благодарил (а): 129 раз.
Поблагодарили: 97 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Error: Number of arguments does not match definition on

Сообщение oReo » 06 сен 2017, 11:18

Subb98, обновил пост
Fedcomp, обновил пост
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: плагин Warnings: Ошибка при компиляции (логи ошибок ниже

Сообщение Subb98 » 07 сен 2017, 18:38

oReo, давайте я помогу Вам увидеть то, что Вы должны были увидеть в рекомендациях. Раз уж совсем всё плохо:

Subb98 писал(а):1.3. При указании заголовка темы, избегайте таких слов, как: "проблема", "помогите", "help", "не работает", "ошибка", "как сделать", и т.п. Старайтесь максимально кратко, одной фразой (двумя-тремя ключевыми словами), указать на суть вопроса. Если речь об ошибке, то лучше всего указать текст ошибки (если текст большой - ключевые слова / фразы из ошибки). Есть универсальная формула для составления информативного названия темы:

Имя плагина: суть вопроса

Например:

Reset score: сделать сообщение цветным
Hook: добавить ограничение по флагу
[JBE] Knives Menu: index out of bounds
VIP by OLO: не открывается меню

Итак, теперь вопрос к Вам: что в заголовке делает слово "ошибка"? Зачем в заголовке такие слова, как "Плагин", "при компиляции", "логи ошибок ниже"? Почему нельзя было назвать тему так, например:

Warnings: Number of arguments does not match definition

Что в этом такого сложного, что Вы не сумели с этим справиться и снова составили неинформативное название?
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Warnings: Number of arguments does not match definition

Сообщение oReo » 08 сен 2017, 05:26

Subb98, я вас услышал, теперь надеюсь такого не повторится :-)

Добавлено спустя 1 минуту 23 секунды:
Re: Warnings: Number of arguments does not match definition
Subb98, Можете закрыть тему? Я нашёл решение, в public было лишнее menu и item )
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn

Re: Warnings: Number of arguments does not match definition

Сообщение Subb98 » 08 сен 2017, 07:00

oReo, тему закрывать не обязательно, можно просто нажать на кнопку с зелёной галочкой на сообщении, которое Вы считаете решением темы и у темы появится префикс [Решено].
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Warnings: Number of arguments does not match definition

Сообщение oReo » 08 сен 2017, 18:02

Subb98, знаю) просто могут зафлудить тут :D
деструктор решает все проблемы: нет переменной - нет проблемы (с) Subb98
Аватара пользователя
oReo
 
Сообщения: 165
Зарегистрирован: 24 май 2017, 05:59
Благодарил (а): 10 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn


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

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

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