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

Дописать флаг для Bullet Damage Crosshair  [Решено]

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

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

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

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

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

Дописать флаг для Bullet Damage Crosshair

Сообщение tomasme73 » 10 май 2018, 04:23

Помогите дописать админ права к Bullet Damage Crosshair
Опишу подробно что я хочу. Например когда игрок заходит на сервер и стреляет по игроку показывать должно "*", а когда VIP игрок то "Урон". Но это должно быть по кругу а не в 1 сторону.
Если я что-то не так описал поправьте буду благодарен=)
Код: Выделить всё
#include <amxmodx>

#define PLUGIN "Bullet Damage"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"

#define MAX_PLAYERS    32

new const Float:g_flCoords[][] = 
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new g_iMaxPlayers
new g_pCvarEnabled

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

    g_pCvarEnabled = register_cvar("bullet_damage", "1")

    register_event("Damage", "Event_Damage", "b", "2>0", "3=0")

    g_iMaxPlayers = get_maxplayers()
}

public Event_Damage( iVictim )
{
    if( get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
    {
        new id = get_user_attacker(iVictim)
        if( (<= id <= g_iMaxPlayers) && is_user_connected(id) )
        {
            new iPos = ++g_iPlayerPos[id]
            if( iPos == sizeof(g_flCoords) )
            {
                iPos = g_iPlayerPos[id] = 0
            
}
            set_hudmessage(0, 40, 80, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
            show_hudmessage(id, "%d", read_data(2))
        }
    }
}

Вот какой пример. Я бы его поставил но тут нету Crosshair
Код: Выделить всё
////////////////////////////////////
//   Amx_Killer                   //
//   by Xhonor for stefkone       //
//   Skype: xhonor_39             //
////////////////////////////////////
 
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <dhudmessage>
#include <fakemeta>
#include <cstrike>
 
#define PLUGIN "Amx_Killer"
#define VERSION "1.1"
#define AUTHOR "Xhonor/asd edit"
#pragma tabsize 0
 
#define ICON_SHOW             1
#define ICON_HIDE             0
 
new kill_num[33]
new 
gMsgID
 
public plugin_init()
{
   
register_pluginPLUGINVERSIONAUTHOR );
 
   
register_event"DeathMsg""hook_death""a""1>0" 
   
RegisterHamHam_TakeDamage,"player","damager",)
 
   
RegisterHam(Ham_Killed"player""ham_PlayerKilled")
   
RegisterHam(Ham_Spawn"player""ham_PlayerSpawned_Post"1);
    
   
gMsgID get_user_msgid("StatusIcon")   
}
 
public 
ham_PlayerSpawned_Post(id)
{
   if (
is_user_alive(id))
   {
      
ammo_hud(id0)
      
kill_num[id] = 0
      ammo_hud
(id1)
   }
}
 
public 
ham_PlayerKilled(victimattacker)
{
   static 
selfkill;
 
   
selfkill = (victim == attacker || !is_user_connected(attacker)) ? true false;
 
   if(!
selfkill)
   {
      
ammo_hud(attacker0)
      
kill_num[attacker] += 1
      ammo_hud
(attacker1)
   }
}
 
ammo_hud(idsw)
{
   if(
is_user_bot(id) || !is_user_alive(id)) 
           return
 
   new 
s_sprite[33]
   
format(s_sprite32"number_%d"kill_num[id])
   if(
sw && is_user_alive(id))
   {
      
message_beginMSG_ONEgMsgID, {0,0,0}, id )
      
write_byteICON_SHOW )
      
write_strings_sprite )
      
write_byte30 )
      
write_byte144 )
      
write_byte255 )
      
message_end()
   } else {
      
message_beginMSG_ONEgMsgID, {0,0,0}, id )
      
write_byteICON_HIDE )
      
write_strings_sprite )
      
write_byte30 )
      
write_byte144 )
      
write_byte255 )
      
message_end()
   }
 
   if(
kill_num[id] <= && is_user_alive(id))
   {
      
message_beginMSG_ONEgMsgID, {0,0,0}, id )
      
write_byteICON_HIDE )
      
write_strings_sprite )
      
write_byte30 )
      
write_byte144 )
      
write_byte255 )
      
message_end()
   }
}
    
public 
hook_death()
{
    new 
iKiller read_data(1)
   new 
iVictim read_data(2)
 
   if(
is_user_alive(iKiller)) 
   {
       
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, iKiller)
        
write_short(1<<10)
        
write_short(1<<10)
        
write_short(0x0000)
      
write_byte30 )
      
write_byte144 )
      
write_byte255 )
        
write_byte(75)
        
message_end()
   }   
   new 
s_sprite[33]
   
format(s_sprite32"number_%d"kill_num[iVictim])
    
   
message_beginMSG_ONEgMsgID, {0,0,0}, iVictim )
   
write_byteICON_HIDE )
   
write_strings_sprite )
      
write_byte30 )
      
write_byte144 )
      
write_byte255 )
   
message_end()      
}
 
public 
damager(victiminflictorattackerFloat:damage)
{
   if(!
is_user_connected(attacker))
      return
 
   if(
victim == attacker || !victim)
      return
 
   if(
is_user_alive(attacker))
   {
      if(
damage 0)
      {
         if(
cs_get_user_team(attacker) == cs_get_user_team(victim))
            return
 
         if(
get_user_flags(attacker) & ADMIN_LEVEL_H)
         {
            
set_hudmessage(30144255, -0.49, -0.5600.010.01)
            
show_dhudmessage(attacker"")
            
show_hudmessage(attacker"")
            
show_hudmessage(attacker"%d"floatround(damage))
         }
         else
         {
            
set_dhudmessage(30144255, -0.49, -0.4800.010.01)
            
show_dhudmessage(attacker"")
            
show_hudmessage(attacker"")
            
show_dhudmessage(attacker" * ")
         }
      }
   }

Последний раз редактировалось tomasme73 10 май 2018, 11:41, всего редактировалось 2 раз(а).
Аватара пользователя
tomasme73
 
Сообщения: 12
Зарегистрирован: 02 сен 2017, 14:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: Bullet Damage Crosshair

Сообщение Subb98 » 10 май 2018, 10:18

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

Re: Bullet Damage Crosshair

Сообщение tempo » 10 май 2018, 10:35

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

#define PLUGIN "Bullet Damage"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"

#define MAX_PLAYERS    32

new const Float:g_flCoords[][] = 
{
    {
0.500.40},
    {
0.560.44},
    {
0.600.50},
    {
0.560.56},
    {
0.500.60},
    {
0.440.56},
    {
0.400.50},
    {
0.440.44}
}

new 
g_iPlayerPos[MAX_PLAYERS+1]

new 
g_iMaxPlayers
new g_pCvarEnabled

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
g_pCvarEnabled register_cvar("bullet_damage""1")

    
register_event("Damage""Event_Damage""b""2>0""3=0")

    
g_iMaxPlayers get_maxplayers()
}

public 
Event_DamageiVictim )
{
    if( 
get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
    {
        new 
id get_user_attacker(iVictim)
        if( (
<= id <= g_iMaxPlayers) && is_user_connected(id) )
        {
            new 
iPos = ++g_iPlayerPos[id]
            if( 
iPos == sizeof(g_flCoords) )
            {
                
iPos g_iPlayerPos[id] = 0
            
}
            
set_hudmessage(04080Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 00.12.50.020.02, -1)
            
            if(
get_user_flags(attacker) & ADMIN_LEVEL_H)
            {
                
show_hudmessage(id"%d"read_data(2))
            }
            else
            {
                
show_hudmessage(id"*")
            }
        }
    }
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: Дописать флаг для Bullet Damage Crosshair

Сообщение tomasme73 » 10 май 2018, 11:29

Моя ошибка в сполере 1
Вот код с админ правами который без Crosshair.
Код: Выделить всё
////////////////////////////////////
//   Amx_Killer                   //
//   by Xhonor for stefkone       //
//   Skype: xhonor_39             //
////////////////////////////////////
 
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <dhudmessage>
#include <fakemeta>
#include <cstrike>
 
#define PLUGIN "Amx_Killer"
#define VERSION "1.1"
#define AUTHOR "Xhonor/asd edit"
#pragma tabsize 0
 
#define ICON_SHOW             1
#define ICON_HIDE             0
 
new kill_num
[33]
new gMsgID
 
public plugin_init
()
{
   register_plugin( PLUGIN, VERSION, AUTHOR );
 
   register_event
( "DeathMsg", "hook_death", "a", "1>0" ) 
   RegisterHam
( Ham_TakeDamage,"player","damager",)
 
   RegisterHam
(Ham_Killed, "player", "ham_PlayerKilled")
   RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawned_Post", 1);
    
   gMsgID 
= get_user_msgid("StatusIcon")   
}
 
public ham_PlayerSpawned_Post
(id)
{
   if (is_user_alive(id))
   {
      ammo_hud(id, 0)
      kill_num[id] = 0
      ammo_hud
(id, 1)
   }
}
 
public ham_PlayerKilled
(victim, attacker)
{
   static selfkill;
 
   selfkill 
= (victim == attacker || !is_user_connected(attacker)) ? true : false;
 
   if
(!selfkill)
   {
      ammo_hud(attacker, 0)
      kill_num[attacker] += 1
      ammo_hud
(attacker, 1)
   }
}
 
ammo_hud
(id, sw)
{
   if(is_user_bot(id) || !is_user_alive(id)) 
           return
 
   new s_sprite
[33]
   format(s_sprite, 32, "number_%d", kill_num[id])
   if(sw && is_user_alive(id))
   {
      message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
      write_byte( ICON_SHOW )
      write_string( s_sprite )
      write_byte( 30 )
      write_byte( 144 )
      write_byte( 255 )
      message_end()
   } else {
      message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
      write_byte( ICON_HIDE )
      write_string( s_sprite )
      write_byte( 30 )
      write_byte( 144 )
      write_byte( 255 )
      message_end()
   }
 
   if
(kill_num[id] <= 0 && is_user_alive(id))
   {
      message_begin( MSG_ONE, gMsgID, {0,0,0}, id )
      write_byte( ICON_HIDE )
      write_string( s_sprite )
      write_byte( 30 )
      write_byte( 144 )
      write_byte( 255 )
      message_end()
   }
}
    
public hook_death
()
{
    new iKiller = read_data(1)
   new iVictim = read_data(2)
 
   if
(is_user_alive(iKiller)) 
   
{
       message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, iKiller)
        write_short(1<<10)
        write_short(1<<10)
        write_short(0x0000)
      write_byte( 30 )
      write_byte( 144 )
      write_byte( 255 )
        write_byte(75)
        message_end()
   }   
   new s_sprite
[33]
   format(s_sprite, 32, "number_%d", kill_num[iVictim])
    
   message_begin
( MSG_ONE, gMsgID, {0,0,0}, iVictim )
   write_byte( ICON_HIDE )
   write_string( s_sprite )
      write_byte( 30 )
      write_byte( 144 )
      write_byte( 255 )
   message_end()      
}
 
public damager
(victim, inflictor, attacker, Float:damage)
{
   if(!is_user_connected(attacker))
      return
 
   if
(victim == attacker || !victim)
      return
 
   if
(is_user_alive(attacker))
   {
      if(damage > 0)
      {
         if(cs_get_user_team(attacker) == cs_get_user_team(victim))
            return
 
         if
(get_user_flags(attacker) & ADMIN_LEVEL_H)
         {
            set_hudmessage(30, 144, 255, -0.49, -0.56, 0, 0.01, 0.01)
            show_dhudmessage(attacker, "")
            show_hudmessage(attacker, "")
            show_hudmessage(attacker, "%d", floatround(damage))
         }
         else
         
{
            set_dhudmessage(30, 144, 255, -0.49, -0.48, 0, 0.01, 0.01)
            show_dhudmessage(attacker, "")
            show_hudmessage(attacker, "")
            show_dhudmessage(attacker, " * ")
         }
      }
   }
}
Тут Error прошу перепроверить.
Код: Выделить всё
Bullet-damager.sma(51) : error 017: undefined symbol "attacker"
Аватара пользователя
tomasme73
 
Сообщения: 12
Зарегистрирован: 02 сен 2017, 14:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: Дописать флаг для Bullet Damage Crosshair

Сообщение tempo » 10 май 2018, 12:42

tomasme73, я же вам дал что
нужно
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: Дописать флаг для Bullet Damage Crosshair

Сообщение tomasme73 » 10 май 2018, 14:45

Там Error
Аватара пользователя
tomasme73
 
Сообщения: 12
Зарегистрирован: 02 сен 2017, 14:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: Дописать флаг для Bullet Damage Crosshair

Сообщение tempo » 10 май 2018, 15:29

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

#define PLUGIN "Bullet Damage"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"

#define MAX_PLAYERS    32

new const Float:g_flCoords[][] = 
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new g_iMaxPlayers
new g_pCvarEnabled

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

    g_pCvarEnabled = register_cvar("bullet_damage", "1")

    register_event("Damage", "Event_Damage", "b", "2>0", "3=0")

    g_iMaxPlayers = get_maxplayers()
}

public Event_Damage( iVictim )
{
    if( get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
    {
        new id = get_user_attacker(iVictim)
        if( (<= id <= g_iMaxPlayers) && is_user_connected(id) )
        {
            new iPos = ++g_iPlayerPos[id]
            if( iPos == sizeof(g_flCoords) )
            {
                iPos = g_iPlayerPos[id] = 0
            
}
            set_hudmessage(0, 40, 80, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
            
            if
(get_user_flags(id) & ADMIN_LEVEL_H)
            {
                show_hudmessage(id, "%d", read_data(2))
            }
            else
            
{
                show_hudmessage(id, "*")
            }
        }
    }
}
Аватара пользователя
tempo
 
Сообщения: 198
Зарегистрирован: 19 фев 2016, 15:23
Благодарил (а): 60 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года

Re: Дописать флаг для Bullet Damage Crosshair

Сообщение tomasme73 » 11 май 2018, 06:34

За помощь спасибо но не то что я хотел. Суть такова когда я играю за игрока без вип и т.д у меня будет показывать урон в виде "*" А когда у меня уже вип или админка есть должно показывать урон в виде "123". А тут на оборот когда играю и по подаю по игроку показывает "*" а когда в вип и т.д "123". Прости конечно что беспокою тебя и туплю =(
Код: Выделить всё
#include <amxmodx>

#define PLUGIN "Bullet Damage"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"

#define MAX_PLAYERS    32

new const Float:g_flCoords[][] = 
{
    {0.50, 0.40},
    {0.56, 0.44},
    {0.60, 0.50},
    {0.56, 0.56},
    {0.50, 0.60},
    {0.44, 0.56},
    {0.40, 0.50},
    {0.44, 0.44}
}

new g_iPlayerPos[MAX_PLAYERS+1]

new g_iMaxPlayers
new g_pCvarEnabled

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

    g_pCvarEnabled = register_cvar("bullet_damage", "1")

    register_event("Damage", "Event_Damage", "b", "2>0", "3=0")

    g_iMaxPlayers = get_maxplayers()
}

public Event_Damage( iVictim )
{
    if( get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
    {
        new id = get_user_attacker(iVictim)
        if( (<= id <= g_iMaxPlayers) && is_user_connected(id) )
        {
            new iPos = ++g_iPlayerPos[id]
            if( iPos == sizeof(g_flCoords) )
            {
                iPos = g_iPlayerPos[id] = 0
            
}
            set_hudmessage(0, 40, 80, Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
            
            if
(get_user_flags(id) & ADMIN_LEVEL_H)
            {
                show_hudmessage(id, "%d", read_data(2))
            }
            else
            
{
                show_hudmessage(id, "*")
            }
        }
    }
Аватара пользователя
tomasme73
 
Сообщения: 12
Зарегистрирован: 02 сен 2017, 14:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: Дописать флаг для Bullet Damage Crosshair  [Решено]

Сообщение 1Fresh1MaLoY » 12 май 2018, 22:19

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

#define PLUGIN "Bullet Damage"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"

#define MAX_PLAYERS    32

new const Float:g_flCoords[][] = 
{
    {
0.500.40},
    {
0.560.44},
    {
0.600.50},
    {
0.560.56},
    {
0.500.60},
    {
0.440.56},
    {
0.400.50},
    {
0.440.44}
}

new 
g_iPlayerPos[MAX_PLAYERS+1]

new 
g_iMaxPlayers
new g_pCvarEnabled

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
g_pCvarEnabled register_cvar("bullet_damage""1")

    
register_event("Damage""Event_Damage""b""2>0""3=0")

    
g_iMaxPlayers get_maxplayers()
}

public 
Event_DamageiVictim )
{
    if( 
get_pcvar_num(g_pCvarEnabled) && (read_data(4) || read_data(5) || read_data(6)) )
    {
        new 
id get_user_attacker(iVictim)
        if( (
<= id <= g_iMaxPlayers) && is_user_connected(id) )
        {
            new 
iPos = ++g_iPlayerPos[id]
            if( 
iPos == sizeof(g_flCoords) )
            {
                
iPos g_iPlayerPos[id] = 0
            
}
            
set_hudmessage(04080Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 00.12.50.020.02, -1)
            
            if(
get_user_flags(id) & ADMIN_USER)
            {
               
show_hudmessage(id"*")
            }
            else
            {
                
show_hudmessage(id"%d"read_data(2))
            }
        }
    }
}  

Я понял, что тебе нужно: Когда ты играешь за Игрока у тебя "*", а когда Админ, Вип и т.д. привилегии, то "%d". Прости если неправильно
Аватара пользователя
1Fresh1MaLoY
 
Сообщения: 33
Зарегистрирован: 08 июл 2017, 06:19
Благодарил (а): 8 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
SA:MP
C#

Re: Дописать флаг для Bullet Damage Crosshair

Сообщение tomasme73 » 13 май 2018, 13:46

Да ты прав вот именно это я хочу.
Аватара пользователя
tomasme73
 
Сообщения: 12
Зарегистрирован: 02 сен 2017, 14:14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn


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

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 10

cron