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

Ошибка плагина Examples

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

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

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

Ошибка плагина Examples

Сообщение Graviti » 03 фев 2018, 09:15

Что не так в коде, что примеры не работают. Когда пишешь ответ ничего не происходит
Код: Выделить всё
// Еще больше плагинов: vk.com/halt_gamers
// Автор: vk.com/6u3oH

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <dhudmessage>
#include <hamsandwich>

#define PLUGIN "Examples"
#define VERSION "1.0"
#define AUTHOR "6u3oH"

#define MaxExp 5

const TaskOne = 5005;
const TaskTwo = 5006;

new iAnswer, ExampleRandom, gMaxPlayers, PrizeRandom, iMoney;

new iSum[MaxExp];
new sMessage[156];
new NameWinner[32];

new bool: ExampleOnly;

// Настройки

const Float: TimeExample = 180.0; // Периодичность появления примера (через каждые N секунд он будет появляться (по умолчанию: 180 сек = 3 мин))

const RewardMoneyMin = 50; // Минимальное кол-во выдаваемых денег за отгаданный пример
const RewardMoneyMax = 200; // Максимальное кол-во выдаваемых денег за отгаданный пример

const RewardHealth = 165; // Кол-во HP, устанавливаемых игроку

public plugin_precache()
{
    precache_sound("examples/Start.wav");
    precache_sound("examples/Reward.wav");
}

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);

    register_clcmd("say", "HookSay");
    register_clcmd("say_team", "HookSay");
    
    set_task
(TimeExample, "StartExampleEvent", TaskOne, _, _, "b");
    
    set_task
(1.0, "StartHudMessage", TaskOne, _, _, "b");
    gMaxPlayers = get_maxplayers();
}

public StartExampleEvent()
{
    client_cmd(0, "spk examples/Start");
    
    for
(new iExp; iExp < MaxExp; iExp++)
    {
        iSum[iExp] = random_num(1, 50);
    }
    
    ExampleOnly 
= true;
        
    ExampleRandom 
= random_num(0, 5);
        
    switch
(ExampleRandom)
    {
        case 0:
        {
            iAnswer = iSum[0] + iSum[1] + iSum[2] + iSum[3] + iSum[4];
            formatex(sMessage, 155, "Пример:^n%i + %i + %i + %i + %i = ?", iSum[0], iSum[1], iSum[2], iSum[3], iSum[4]);
        }
        
        case 1
:
        {
            iAnswer = iSum[0] + iSum[1] - iSum[2] + iSum[3] - iSum[4];
            formatex(sMessage, 155, "Пример:^n%i + %i - %i + %i - %i = ?", iSum[0], iSum[1], iSum[2], iSum[3], iSum[4]);
        }
        
        case 2
:
        {
            iAnswer = iSum[0] - iSum[1] + iSum[2] - iSum[3] + iSum[4];
            formatex(sMessage, 155, "Пример:^n%i - %i + %i - %i + %i = ?", iSum[0], iSum[1], iSum[2], iSum[3], iSum[4]);
        }
        
        case 3
:
        {    
            iAnswer 
= iSum[0] + iSum[1] - iSum[2] - iSum[3] - iSum[4];
            formatex(sMessage, 155, "Пример:^n%i + %i - %i - %i - %i = ?", iSum[0], iSum[1], iSum[2], iSum[3], iSum[4]);
        }
        
        case 4
:
        {
            iAnswer = iSum[0] - iSum[1] - iSum[2] - iSum[3] + iSum[4];
            formatex(sMessage, 155, "Пример:^n%i - %i - %i - %i + %i = ?", iSum[0], iSum[1], iSum[2], iSum[3], iSum[4]);
        }
        
        case 5
:
        {    
            iAnswer 
= iSum[0] + iSum[1] + iSum[2] - iSum[3] + iSum[4];
            formatex(sMessage, 155, "Пример:^n%i + %i + %i - %i + %i = ?", iSum[0], iSum[1], iSum[2], iSum[3], iSum[4]);
        }
    }
}

public StartHudMessage()
{
    if(!ExampleOnly)
    return;
    
    for
(new id = 1; id <= gMaxPlayers; id++)
    {
        if(!is_user_connected(id))
        continue;
        
        set_dhudmessage
(0, 255, 255, 0.01, 0.65, 0, 1.0, 1.0, 1.0, 1.0, false);
        show_dhudmessage(id, "%s", sMessage);
    }
}

public HookSay(id)
{
    if(!is_user_connected(id))
    return;
    
    if
(!ExampleOnly)
    return;
    
    new String
[256], Answer[32];
    read_args(String, 255);
    remove_quotes(String);
    num_to_str(iAnswer, Answer, 31);
        
    if
(equali(String, Answer))
    {
        ExampleOnly = false;
        set_task(2.0, "RewardEvent", id)
    }
}

public RewardEvent(id)
{
    if(!is_user_connected(id))
    return;

    get_user_name(id, NameWinner, 31);
    
    client_cmd
(0, "spk examples/Reward");
    
    iMoney 
= random_num(RewardMoneyMin, RewardMoneyMax);
    
    if
(is_user_alive(id))
    {
        if(get_user_health(id) < 100)
        {
            PrizeRandom = random_num(0, 2);
            
            switch
(PrizeRandom)
            {
                case 0:
                {
                    cs_set_user_money(id, cs_get_user_money(id) + iMoney);
                    
                    formatex
(sMessage, 155, "Победитель: %s^nОтвет: %i^nНаграда: %i$", NameWinner, iAnswer, iMoney);
                }
                
                case 1
:
                {
                    set_user_health(id, RewardHealth);
                    
                    formatex
(sMessage, 155, "Победитель: %s^nОтвет: %i^nНаграда: Пополнение здоровья", NameWinner, iAnswer);
                }
                
                case 2
:
                {
                    give_item(id, "weapon_hegrenade");
                    give_item(id, "weapon_flashbang");
                    give_item(id, "weapon_flashbang");
                    give_item(id, "weapon_smokegrenade");
                    
                    formatex
(sMessage, 155, "Победитель: %s^nОтвет: %i^nНаграда: Набор гранат", NameWinner, iAnswer);
                }
            }
        }else{
            PrizeRandom = random_num(0, 2);
            
            switch
(PrizeRandom)
            {
                case 0:
                {
                    cs_set_user_money(id, cs_get_user_money(id) + iMoney);
                    
                    formatex
(sMessage, 155, "Победитель: %s^nОтвет: %i^nНаграда: %i$", NameWinner, iAnswer, iMoney);
                }
                
                case 1
:
                {
                    give_item(id, "weapon_hegrenade");
                    give_item(id, "weapon_flashbang");
                    give_item(id, "weapon_flashbang");
                    give_item(id, "weapon_smokegrenade");
                    
                    formatex
(sMessage, 155, "Победитель: %s^nОтвет: %i^nНаграда: Набор гранат", NameWinner, iAnswer);
                }                
            
}
        }
    }else{
        cs_set_user_money(id, cs_get_user_money(id) + iMoney);
        formatex(sMessage, 155, "Победитель: %s^nОтвет: %i^nНаграда: %i$", NameWinner, iAnswer, iMoney);    
    
}
    
    set_dhudmessage
(0, 255, 255, 0.01, 0.65, 0, 1.0, 2.0, 1.0, 1.0, false)
    show_dhudmessage(0, "%s", sMessage);
}
Последний раз редактировалось Graviti 03 фев 2018, 12:26, всего редактировалось 1 раз.
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Примеры

Сообщение Subb98 » 03 фев 2018, 09:16

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

Re: Примеры

Сообщение Graviti » 03 фев 2018, 11:07

Как это сделать?
Последний раз редактировалось Subb98 04 фев 2018, 13:21, всего редактировалось 1 раз.
Причина: Не нужно цитировать предыдущее сообщение, оверквотинг не приветствуется
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Примеры

Сообщение Subb98 » 03 фев 2018, 14:21

С помощью кнопки "правка", я вижу, вы ею уже воспользовались.

Добавлено спустя 4 минуты 4 секунды:
Re: Ошибка плагина Examples
Добавьте в этот участок кода

Код: Выделить всё
if(equali(String, Answer))
{
    ExampleOnly = false;
    set_task(2.0, "RewardEvent", id)

новую строку

Код: Выделить всё
log_amx("right answer!"); 

Должно получиться так

Код: Выделить всё
if(equali(String, Answer))
{
    ExampleOnly = false;
    set_task(2.0, "RewardEvent", id)
    log_amx("right answer!");

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

Re: Примеры

Сообщение Graviti » 04 фев 2018, 10:01

Как смотреть в логах?
Последний раз редактировалось Subb98 04 фев 2018, 13:19, всего редактировалось 1 раз.
Причина: Не нужно цитировать предыдущее сообщение, оверквотинг не приветствуется
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Ошибка плагина Examples

Сообщение Subb98 » 04 фев 2018, 13:20

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

Re: Ошибка плагина Examples

Сообщение Graviti » 04 фев 2018, 13:36

Subb98 писал(а):Переходите в каталог addons/amxmodx/logs, открываете крайний по дате .log файл и смотрите, есть ли в нём такое сообщение.

Нету
Аватара пользователя
Graviti
 
Сообщения: 35
Зарегистрирован: 29 янв 2018, 16:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Pawn
Php
HTML
CSS
Java

Re: Ошибка плагина Examples

Сообщение Subb98 » 04 фев 2018, 13:39

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


Вернуться в Вопросы по AMXX и его плагинам

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

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