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

Damager: Спрайт урона над головой у цели

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

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

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

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

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

Damager: Спрайт урона над головой у цели

Сообщение lexu5 » 15 дек 2017, 19:05

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

P.S. В первом спрайте цифры от 0 до -255, во втором от -256 до -512.

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


new g_spritedamage1g_spritedamage2

public plugin_init()
{
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage_Post"1)
}

public 
plugin_precache()
{
    
g_spritedamage1 engfunc(EngFunc_PrecacheModel"sprites/dm_xgamecs/spr/damager1.spr");
    
g_spritedamage2 engfunc(EngFunc_PrecacheModel"sprites/dm_xgamecs/spr/damager2.spr");
}


public 
fw_TakeDamage_Post(victiminflictorattackerFloat:damagedamage_type)
{
    if (
victim == attacker || !is_user_connected(attacker)) return
        
    if(
get_pdata_int(attacker1145)==get_pdata_int(victim1145)) return
        
    if (
inflictor == attacker
    {
        
remove_sprite(victim)
        if(
floatround(damage) < 255set_sprite1(victim)
        else 
set_sprite2(victim)
    }
}

stock remove_sprite(id)
{
    
message_begin(MSG_ALLSVC_TEMPENTITY);
       
write_byte(125);
       
write_byte(id);
       
message_end();
}

stock set_sprite1(id)
{
    
message_begin(MSG_ALLSVC_TEMPENTITY);
    
write_byte(124);
    
write_byte(id);
    
write_coord(35);
    
write_short(g_spritedamage1);
    
write_short(100);
    
message_end();
}

stock set_sprite2(id)
{
    
message_begin(MSG_ALLSVC_TEMPENTITY);
    
write_byte(124);
    
write_byte(id);
    
write_coord(35);
    
write_short(g_spritedamage2);
    
write_short(100);
    
message_end();
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Damager: Спрайт урона над головой у цели

Сообщение xbass13 » 15 дек 2017, 20:36

124е сообщение - TE_PLAYERATTACHMENT, вешает спрайт и проигрывает анимацию на нем, тут нельзя задать номер фрейма спрайта (как понял, каждый фрейм спрайта - какое-то значение урона). Задаются только: индекс игрока, возвышение над игроком, спрайт, его жизнь.
Аватара пользователя
xbass13
 
Сообщения: 96
Зарегистрирован: 13 июн 2012, 21:20
Благодарил (а): 36 раз.
Поблагодарили: 35 раз.
Опыт программирования: Больше трех лет
Языки программирования: pawn, c++, js, php

Re: Damager: Спрайт урона над головой у цели

Сообщение flymic24 » 15 дек 2017, 20:57

lexu5, В корне не верный подход к реализации. Как xbass13, отметил ранее - ваш метод не подходит.
Могу предложить поискать мессаги в которых можно будет задать определенный фрейм и посылать их.
Или создавать объект - вешая нужные параметры - добиться результата

З.Ы. Все мессаги что я встречал проигрывают по кругу все фреймы. Знатоки поправьте если не прав.
Аватара пользователя
flymic24
 
Сообщения: 209
Зарегистрирован: 05 окт 2012, 17:29
Откуда: Bryansk
Благодарил (а): 4 раз.
Поблагодарили: 76 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Damager: Спрайт урона над головой у цели

Сообщение lexu5 » 15 дек 2017, 22:43

Я понял, что вы хотели сказать, вы можете чуть конкретнее сказать, как мне это можно реализовать?
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn


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

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

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