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

[HL]RPG светила в соответствии с цветом команды.  [Решено]

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

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

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

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

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

[HL]RPG светила в соответствии с цветом команды.

Сообщение smurfavr » 20 июн 2018, 15:39

Можно ли добавить его в плагин и как это сделать?

Я хочу, чтобы точка(Crosshairs) RPG светила в соответствии с цветом команды.
Красный для красной команды.
Синий цвет для синей команды.



Тема перемещена из раздела "Поиск плагинов" // Subb98
У вас нет необходимых прав для просмотра вложений в этом сообщении.






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение smurfavr » 09 июл 2018, 17:30

Up






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение ALIK » 11 июл 2018, 00:21

smurfavr, манипуляции с WeaponList
Аватара пользователя
ALIK
 
Сообщения: 227
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 116 раз.
Поблагодарили: 55 раз.
Опыт программирования: Меньше недели
Языки программирования: Pawn

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение smurfavr » 11 июл 2018, 13:32

ALIK Я не знаю, как это сделать. Вы можете помочь?

Лев не хочет мне помогать, и он дал мне этот ответ, но я не уклоняюсь от создания плагинов.

Lev писал(а):По-моему цвет лазерного пятна зашит в спрайте, т.к. в коде цвет не задается. Надо сделать спрайты разного цвета. Далее надо перехватить спавн лазерного пятна и заменить в нем модель.
К сожалению, почему-то, разработчики ХЛ сделали установку класса ентити не в Spawn, а после. Поэтому, немного упячный способ:
1. Зарегать хуки
Код: Выделить всё

RegisterHam(Ham_Spawn, "laser_spot", "laser_spot_spawn", 1);
g_weapon_rpg_postframe_hook = RegisterHam(Ham_Item_PostFrame, "weapon_rpg", "weapon_rpg_postframe");

2. В laser_spot_spawn запоминаем ентитю. Включаем хук g_weapon_rpg_postframe_hook.
3. В weapon_rpg_postframe получаем игрока этого рокетлаунчера и для запомненой ентити меняем модель на нужную. Отключаем хук g_weapon_rpg_postframe_hook.






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение ALIK » 12 июл 2018, 18:11

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

#define PLUGIN "RPG Trail Color"
#define VERSION "1.1"
#define AUTHOR "LetiLetiLepestok"

#define XO_WEAPON 4
#define m_pPlayer 28

#define LASER_SPOT_RED     "sprites/laserspot_red.spr"
#define LASER_SPOT_BLUE "sprites/laserspot_blue.spr"

new g_Colors[5][3] =
{
    {
000},
    {
8080255},        // color for team 1
    
{2558080},        // color for team 2
    
{20020080},        // color for team 3
    
{8020080}        // color for team 4
}

new 
g_iLaserSpot FM_NULLENT;

new 
HamHook:g_iHamHook_RPG_PostFrame;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
    
register_message(SVC_TEMPENTITY"MessageTempEntity");
    
    
RegisterHam(Ham_Spawn"laser_spot""HamHook_LaserSpotSpawn_Post"true);
    
    
DisableHamForward(g_iHamHook_RPG_PostFrame RegisterHam(Ham_Item_PostFrame"weapon_rpg""HamHook_RPG_PostFrame"false));
}

public 
plugin_precache()
{
    
precache_model(LASER_SPOT_RED);
    
precache_model(LASER_SPOT_BLUE);
}

public 
HamHook_LaserSpotSpawn_Post(iLaserSpot)
{
    
g_iLaserSpot iLaserSpot;
    
    
EnableHamForward(g_iHamHook_RPG_PostFrame);
}

public 
HamHook_RPG_PostFrame(iItem)
{
    static 
iPlayer;
    
// iPlayer = pev(iItem, pev_owner);
    
iPlayer get_pdata_cbase(iItemm_pPlayerXO_WEAPON);
    
    if(!
is_user_connected(iPlayer))
        return 
HAM_IGNORED;
    
    switch(
get_user_team(iPlayer))
    {
        case 
1engfunc(EngFunc_SetModelg_iLaserSpotLASER_SPOT_RED);
        case 
2engfunc(EngFunc_SetModelg_iLaserSpotLASER_SPOT_BLUE);
    }
    
    
DisableHamForward(g_iHamHook_RPG_PostFrame);
    
    return 
HAM_IGNORED;
}

public 
MessageTempEntity()
{
    if(
get_msg_arg_int(1) != TE_BEAMFOLLOW)
        return 
PLUGIN_CONTINUE
        
    
new classname[32]
    new 
ent get_msg_arg_int(2)
    
pev(entpev_classnameclassname31)

    if(!
equal(classname"rpg_rocket"))
        return 
PLUGIN_CONTINUE
    
    
new team get_user_team(pev(entpev_owner))
    
    if(
team <= || team 4)
    {
        
team 0
        g_Colors
[0][0] = random_num(0255)
        
g_Colors[0][1] = random_num(0255)
        
g_Colors[0][2] = random_num(0255)
    }

    
set_msg_arg_int(6ARG_BYTEg_Colors[team][0])
    
set_msg_arg_int(7ARG_BYTEg_Colors[team][1])
    
set_msg_arg_int(8ARG_BYTEg_Colors[team][2])
    
set_msg_arg_int(9ARG_BYTE255)
    
    return 
PLUGIN_CONTINUE
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
 
Аватара пользователя
ALIK
 
Сообщения: 227
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 116 раз.
Поблагодарили: 55 раз.
Опыт программирования: Меньше недели
Языки программирования: Pawn

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение smurfavr » 12 июл 2018, 21:12

Плагин работает. Я очень благодарен вам. :thumbs_up :friends:


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






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение smurfavr » 21 июл 2018, 12:01

Ошибка.
L 07/21/2018 - 08:53:58: [AMXX] Run time error 10: native error (native "engfunc")
L 07/21/2018 - 08:53:58: [AMXX] [0] rpg_color.sma::HamHook_RPG_PostFrame (line 63)
L 07/21/2018 - 08:53:58: [FAKEMETA] Invalid entity
L 07/21/2018 - 08:53:58: [AMXX] Displaying debug trace (plugin "rpg_color.amxx")
У вас нет необходимых прав для просмотра вложений в этом сообщении.






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение ALIK » 21 июл 2018, 13:56

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

#define PLUGIN "RPG Trail Color"
#define VERSION "1.1"
#define AUTHOR "LetiLetiLepestok"

#define XO_WEAPON 4
#define m_pPlayer 28

#define LASER_SPOT_RED     "sprites/laserspot_blue.spr"
#define LASER_SPOT_BLUE "sprites/laserspot_red.spr"

new g_Colors[5][3] =
{
    {
000},
    {
8080255},        // color for team 1
    
{2558080},        // color for team 2
    
{20020080},        // color for team 3
    
{8020080}        // color for team 4
}

new 
g_iLaserSpot FM_NULLENT;

new 
HamHook:g_iHamHook_RPG_PostFrame;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
    
register_message(SVC_TEMPENTITY"MessageTempEntity");
    
    
RegisterHam(Ham_Spawn"laser_spot""HamHook_LaserSpotSpawn_Post"true);
    
    
DisableHamForward(g_iHamHook_RPG_PostFrame RegisterHam(Ham_Item_PostFrame"weapon_rpg""HamHook_RPG_PostFrame"false));
}

public 
plugin_precache()
{
    
precache_model(LASER_SPOT_RED);
    
precache_model(LASER_SPOT_BLUE);
}

public 
HamHook_LaserSpotSpawn_Post(iLaserSpot)
{
    
g_iLaserSpot iLaserSpot;
    
    
EnableHamForward(g_iHamHook_RPG_PostFrame);
}

public 
HamHook_RPG_PostFrame(iItem)
{
    if(
pev_valid(g_iLaserSpot))
    {
        static 
iPlayer;
        
// iPlayer = pev(iItem, pev_owner);
        
iPlayer get_pdata_cbase(iItemm_pPlayerXO_WEAPON);
        
        if(!
is_user_connected(iPlayer))
            return 
HAM_IGNORED;
        
        switch(
get_user_team(iPlayer))
        {
            case 
1engfunc(EngFunc_SetModelg_iLaserSpotLASER_SPOT_BLUE);
            case 
2engfunc(EngFunc_SetModelg_iLaserSpotLASER_SPOT_RED);
        }
    }
    
DisableHamForward(g_iHamHook_RPG_PostFrame);

    return 
HAM_IGNORED;
}

public 
MessageTempEntity()
{
    if(
get_msg_arg_int(1) != TE_BEAMFOLLOW)
        return 
PLUGIN_CONTINUE
        
    
new classname[32]
    new 
ent get_msg_arg_int(2)
    
pev(entpev_classnameclassname31)

    if(!
equal(classname"rpg_rocket"))
        return 
PLUGIN_CONTINUE
    
    
new team get_user_team(pev(entpev_owner))
    
    if(
team <= || team 4)
    {
        
team 0
        g_Colors
[0][0] = random_num(0255)
        
g_Colors[0][1] = random_num(0255)
        
g_Colors[0][2] = random_num(0255)
    }

    
set_msg_arg_int(6ARG_BYTEg_Colors[team][0])
    
set_msg_arg_int(7ARG_BYTEg_Colors[team][1])
    
set_msg_arg_int(8ARG_BYTEg_Colors[team][2])
    
set_msg_arg_int(9ARG_BYTE255)
    
    return 
PLUGIN_CONTINUE
Аватара пользователя
ALIK
 
Сообщения: 227
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 116 раз.
Поблагодарили: 55 раз.
Опыт программирования: Меньше недели
Языки программирования: Pawn

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение smurfavr » 21 июл 2018, 16:01

Иногда это случается, когда я из синей команды, взгляды РПГ светят меня красным.
Это происходит, и когда я из красной команды, взгляды rpg светят меня синим цветом. ПОСЛЕ ЭТОЙ ПРОБЛЕМЫ УПРАВЛЯЕТСЯ. Какое это имеет значение и как это исправить?

Прямо сейчас я из синей команды, но мои взгляды красные.
Последний раз редактировалось smurfavr 21 июл 2018, 16:45, всего редактировалось 2 раз(а).






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: [HL]RPG светила в соответствии с цветом команды.

Сообщение ALIK » 21 июл 2018, 16:35

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

#define PLUGIN "RPG Trail Color"
#define VERSION "1.1"
#define AUTHOR "LetiLetiLepestok"

#define XO_WEAPON 4
#define m_pPlayer 28

#define LASER_SPOT_RED     "sprites/laserspot_blue.spr"
#define LASER_SPOT_BLUE "sprites/laserspot_red.spr"

new g_Colors[5][3] =
{
    {0, 0, 0},
    {80, 80, 255},        // color for team 1
    {255, 80, 80},        // color for team 2
    {200, 200, 80},        // color for team 3
    {80, 200, 80}        // color for team 4
}

new g_iLaserSpot = FM_NULLENT;

new HamHook:g_iHamHook_RPG_PostFrame;

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    register_message
(SVC_TEMPENTITY, "MessageTempEntity");
    
    RegisterHam
(Ham_Spawn, "laser_spot", "HamHook_LaserSpotSpawn_Post", true);
    
    DisableHamForward
(g_iHamHook_RPG_PostFrame = RegisterHam(Ham_Item_PostFrame, "weapon_rpg", "HamHook_RPG_PostFrame", false));
}

public plugin_precache()
{
    precache_model(LASER_SPOT_RED);
    precache_model(LASER_SPOT_BLUE);
}

public HamHook_LaserSpotSpawn_Post(iLaserSpot)
{
    g_iLaserSpot = iLaserSpot;
    
    EnableHamForward
(g_iHamHook_RPG_PostFrame);
}

public HamHook_RPG_PostFrame(iItem)
{
    if(pev_valid(g_iLaserSpot))
    {
        static iPlayer;
        // iPlayer = pev(iItem, pev_owner);
        iPlayer = get_pdata_cbase(iItem, m_pPlayer, XO_WEAPON);
        
        if
(!is_user_connected(iPlayer))
            return HAM_IGNORED;
        
        switch
(hl_get_user_team(iPlayer))
        {
            case TEAM_RED: engfunc(EngFunc_SetModel, g_iLaserSpot, LASER_SPOT_RED);
            case TEAM_BLUE: engfunc(EngFunc_SetModel, g_iLaserSpot, LASER_SPOT_BLUE);
        }
    }
    DisableHamForward(g_iHamHook_RPG_PostFrame);

    return HAM_IGNORED;
}

public MessageTempEntity()
{
    if(get_msg_arg_int(1) != TE_BEAMFOLLOW)
        return PLUGIN_CONTINUE
        
    new classname
[32]
    new ent = get_msg_arg_int(2)
    pev(ent, pev_classname, classname, 31)

    if(!equal(classname, "rpg_rocket"))
        return PLUGIN_CONTINUE
    
    
//new team = get_user_team(pev(ent, pev_owner))
    new team = hl_get_user_team(pev(ent, pev_owner))
    
    if
(team <= 0 || team > 4)
    {
        team = 0
        g_Colors
[0][0] = random_num(0, 255)
        g_Colors[0][1] = random_num(0, 255)
        g_Colors[0][2] = random_num(0, 255)
    }

    set_msg_arg_int(6, ARG_BYTE, g_Colors[team][0])
    set_msg_arg_int(7, ARG_BYTE, g_Colors[team][1])
    set_msg_arg_int(8, ARG_BYTE, g_Colors[team][2])
    set_msg_arg_int(9, ARG_BYTE, 255)
    
    return PLUGIN_CONTINUE
}


Добавлено спустя 45 секунд:
Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
ALIK
 
Сообщения: 227
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 116 раз.
Поблагодарили: 55 раз.
Опыт программирования: Меньше недели
Языки программирования: Pawn

След.

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

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

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