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

Получение буквы скилла AES

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

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

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

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

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

Получение буквы скилла AES

Сообщение mde... » 24 сен 2016, 20:33

Уже пол дня пытаюсь послать букву скилла, через натив, но никак не выходит.

Сама буква выводится вот так:
Код: Выделить всё
new Float:skill,skill_id
new stats
[8], bh[8]
get_user_stats(aID,stats,bh)
skill = effec(stats)
skill_id = aes_statsx_get_skill_id(skill)

g_skill_letters[skill_id] // Сама буква  


Пытался сделать так, но увы, не выходит.
Код: Выделить всё
public native_aes_get_skill(plugin_id,params)
{
    new id = get_param(1)
    
    new stats
[8],hits[8]
    new Float:skill,skill_id
    get_user_stats
(id,stats,hits)
    
    skill 
= effec(stats)

    skill_id = aes_statsx_get_skill_id(skill)
    
    set_string
(2,g_skill_letters[skill_id],get_param(3))
    
    return min
(strlen(g_skill_letters[skill_id]),get_param(3))
}
Аватара пользователя
mde...
 
Сообщения: 74
Зарегистрирован: 06 ноя 2012, 17:28
Благодарил (а): 44 раз.
Поблагодарили: 30 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Получения буквы скилла AES

Сообщение Bos93 » 24 сен 2016, 21:32

Что должна вернуть native_aes_get_skill ?

Что в effec и как объявлена g_skill_letters?
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: Получения буквы скилла AES

Сообщение mde... » 24 сен 2016, 21:53

Bos93 писал(а):Что должна вернуть native_aes_get_skill ?

Что в effec и как объявлена g_skill_letters?

Должна вернуть букву скилла.
native aes_get_skill(id,skill[],skill_len)

Код: Выделить всё
new const g_skill_letters[][] = {
    "L-",
    "L",
    "L+",
    "M-",
    "M",
    "M+",
    "H-",
    "H",
    "H+",
    "P-",
    "P",
    "P+",
    "G"
}

Float:effec(izStats[])
{
    if (!izStats[STATS_KILLS])
        return (0.0)
    
    return 
(100.0 * float(izStats[STATS_KILLS]) / float(izStats[STATS_KILLS] + izStats[STATS_DEATHS]))
}
aes_statsx_get_skill_id(Float:skill)
{
    
    for
(new i ; i < sizeof g_skill_opt ; i++)
    {
        if(skill < g_skill_opt[i])
        {
            return i
        
}
    }
    
    return 
(sizeof g_skill_opt - 1)
Аватара пользователя
mde...
 
Сообщения: 74
Зарегистрирован: 06 ноя 2012, 17:28
Благодарил (а): 44 раз.
Поблагодарили: 30 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Получение буквы скилла AES

Сообщение Bos93 » 25 сен 2016, 01:05

В нативе просто вернуть skill_id, зачем там другие манипуляции, мне не понятно.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: Получение буквы скилла AES

Сообщение mde... » 25 сен 2016, 01:12

Bos93 писал(а):В нативе просто вернуть skill_id, зачем там другие манипуляции, мне не понятно.

Так возвращал, всё с этого и началось, только почему-то передавалась единица всё время.
Аватара пользователя
mde...
 
Сообщения: 74
Зарегистрирован: 06 ноя 2012, 17:28
Благодарил (а): 44 раз.
Поблагодарили: 30 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Получение буквы скилла AES

Сообщение Bos93 » 25 сен 2016, 01:26

Так отдебаж, всё, что возвращается до aes_statsx_get_skill_id(skill)

Добавлено спустя 1 минуту 36 секунд:
Нафига натив делать, если есть уже aes_statsx_get_skill_id.
Ничего не понятно. Пиши подробно и выкладывай код.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: Получение буквы скилла AES

Сообщение артист666 » 25 сен 2016, 08:53

param_convert надо использовать, когда текст отправляешь...
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Получение буквы скилла AES

Сообщение mde... » 25 сен 2016, 16:57

Bos93 писал(а):Так отдебаж, всё, что возвращается до aes_statsx_get_skill_id(skill)

Добавлено спустя 1 минуту 36 секунд:
Нафига натив делать, если есть уже aes_statsx_get_skill_id.
Ничего не понятно. Пиши подробно и выкладывай код.

Вернуло опять единицу.
Код: Выделить всё
public native_aes_get_skill(plugin_id,params)
{
    new 
id get_param(1)
    
    new 
stats[8],hits[8]
    new 
Float:skillthe_skill[10]
    
get_user_stats(id,stats,hits)
    
    
skill effec(stats)

    
the_skill[id] = aes_statsx_get_skill_id(skill)
    
    
set_string(2,the_skill[id],get_param(3))
    
    return 
min(strlen(the_skill[id]),get_param(3))
Аватара пользователя
mde...
 
Сообщения: 74
Зарегистрирован: 06 ноя 2012, 17:28
Благодарил (а): 44 раз.
Поблагодарили: 30 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Получение буквы скилла AES

Сообщение Bos93 » 25 сен 2016, 23:35

Я понял. return min(strlen(the_skill[id]),get_param(3)) - это не нужно.

Вы должны зарегистрироваться, чтобы видеть ссылки.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

Re: Получение буквы скилла AES

Сообщение FakeDeadGod » 22 июл 2017, 11:14

я понимаю что тема с 2к16 года, но как видно вопрос до сих пор не решен был (или забыли выложить решение). Поэтому т.к. я тоже этим интересуюсь, хотел спросить о том самом, возможном, решении. Есть ли оно ?
Аватара пользователя
FakeDeadGod
 
Сообщения: 60
Зарегистрирован: 30 сен 2013, 15:56
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

След.

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

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

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