Иконка ресурса

Grenade Trail Like CS:GO 1.2

Нет прав для скачивания
Сообщения
893
Реакции
149
Помог
25 раз(а)
ImmortalAmxx добавил(а) новый ресурс:

Grenade Trail Like CS:GO - Добавляет на сервер шлейф за граной, похожую на линию из CS:GO

Добавляет на сервер шлейф за граной, похожую на линию из CS:GO.


Узнать больше об этом ресурсе...
 
Сообщения
28
Реакции
5
всех кикает с пичиной

Host_Error: CL_ParseServerMessage: Bad server message

удалил етот плаг и норм стало
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
flinken, у вас наблюдатели что-ли гранату кидают?
Попробуйте так:
Код:
#include <amxmodx>
#include <reapi>

#define UseTeamColor;    // Использовать цвета команды. Закоментировать, если хотите использовать цвета для каждой гранаты.

new g_SpriteTrail;

#if defined UseTeamColor
    // RGB Цвета, если игрок играет за террористов.
    new g_iColorsTT[3] = {
        191, 130, 0
    };

    // RGB Цвета, если игрок играет за спецназовцев.
    new g_iColorsCT[3] = {
        0, 130, 191
    };
#else
    // RGB Цвета для гранаты HE.
    new const g_szGrenadeColorHE[3] = {
        191, 130, 0
    };
    
    // RGB Цвета для гранаты Flash.
    new const g_szGrenadeColorFlash[3] = {
        0, 130, 191
    };
    
    // RGB Цвета для гранаты Smoke.
    new const g_szGrenadeColorSmoke[3] = {
        0, 255, 0
    };
#endif

const LIFETIME = 3;        // Время жизни в секундах.
const WIDTH = 5;        // Ширини линии.
const BRIGHTNESS = 225;    // Яркость линии.

public plugin_precache() {
    g_SpriteTrail = precache_model("sprites/smoke.spr");
}

public plugin_init() {
    register_plugin("[ReAPI] Grenade Trile Like CS:GO", "1.1", "Base Code: Fatih ~ EjderYa / Edite Cod: ImmortalAmxx");
    RegisterHookChain(RG_CBasePlayer_ThrowGrenade, "@CBasePlayer_TrhowGrenade_Post", true);
}

@CBasePlayer_TrhowGrenade_Post(UserId, WeaponId) {
    new pGrenade = GetHookChainReturn(ATYPE_INTEGER);
    
    if(is_nullent(pGrenade))
        return HC_CONTINUE;
    
    @SetSprite(UserId, pGrenade, WeaponId, LIFETIME, WIDTH, BRIGHTNESS);

    return HC_CONTINUE;
}

@SetSprite(UserId, GrenadeId, WeaponId, LifeTime, Width, Brig) {
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(GrenadeId);
    write_short(g_SpriteTrail);
    write_byte(LifeTime * 10);
    write_byte(Width);
    #if defined UseTeamColor
        @Team_Color(UserId);
    #else
        @Grenade_Color(WeaponId);
    #endif
    write_byte(Brig);
    message_end();
}

#if defined UseTeamColor
    @Team_Color(UserId) {
        switch(get_member(UserId, m_iTeam)) {
            case TEAM_TERRORIST: {
                write_byte(g_iColorsTT[0]);
                write_byte(g_iColorsTT[1]);
                write_byte(g_iColorsTT[2]);
            }
            case TEAM_CT: {
                write_byte(g_iColorsCT[0]);
                write_byte(g_iColorsCT[1]);
                write_byte(g_iColorsCT[2]);
            }
            default: {
                write_byte(150);
                write_byte(150);
                write_byte(150);
            }
        }
    }
#else
    @Grenade_Color(WeaponId) {
        new WeaponIdType: Weapon_iId = get_member(WeaponId, m_iId);
        
        switch(Weapon_iId) {
            case WEAPON_HEGRENADE: {
                write_byte(g_szGrenadeColorHE[0]);
                write_byte(g_szGrenadeColorHE[1]);
                write_byte(g_szGrenadeColorHE[2]);
            }
            case WEAPON_FLASHBANG: {
                write_byte(g_szGrenadeColorFlash[0]);
                write_byte(g_szGrenadeColorFlash[1]);
                write_byte(g_szGrenadeColorFlash[2]);
            }
            case WEAPON_SMOKEGRENADE: {
                write_byte(g_szGrenadeColorSmoke[0]);
                write_byte(g_szGrenadeColorSmoke[1]);
                write_byte(g_szGrenadeColorSmoke[2]);
            }
        }
    }
#endif
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
flinken, Ошибка означает: сообщение такого типа отсутствует. Ничего не менял в коде, какойто аргумент с ошибкой или чего то нехватает

тык
 
Последнее редактирование:
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
ImmortalAmxx, а если местами агрументы меняешь, не даст такую ошибку?
Мне кажется из - за этого, может нужно получить цвет до message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
Код:
#if defined UseTeamColor
    @Team_Color(UserId);
#else
    @Grenade_Color(WeaponId);
#endif
У него по какой-то причине передает не все аргументы, гранату кто то кинул, и кикнуло всех, так как MSG_BROADCAST
 
Последнее редактирование:
Сообщения
893
Реакции
149
Помог
25 раз(а)
Code_0xABC, местами не пробовал менять, да и по количеству аргументов вроде все норм, сравнил с мессагой этой же в других плагинах.
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
ImmortalAmxx, попробуй получи цвет до, у меня работает норм, у него чего то с запозданием. Но тестировать надо будет на linken)))
25 Ноя 2023
Кстате я не понял,вообще в этом типе 2 аргумент, для привязки модели?
25 Ноя 2023
ImmortalAmxx, протестировал
Код:
@SetSprite(UserId, GrenadeId, WeaponId, LifeTime, Width, Brig) {
    new iTmp[3];
    iTmp[0] = UserId;
    iTmp[1] = WeaponId;

    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(GrenadeId);
    write_short(g_SpriteTrail);
    write_byte(LifeTime * 10);
    write_byte(Width);
    set_task(0.00001, "test", .parameter = iTmp, .len = 2);
    write_byte(Brig);
    message_end();
}

public test(iTmp[]) {
    #if defined UseTeamColor
        @Team_Color(iTmp[0]);
    #else
        @Grenade_Color(iTmp[1]);
    #endif
}
Результат
Host_Error: CL_ParseServerMessage: Bad server message

L 11/25/2023 - 15:14:25: [ReAPI] get_member_s: invalid or uninitialized entity
L 11/25/2023 - 15:14:25: [AMXX] Displaying debug trace (plugin "test.amxx", version "1.1")
L 11/25/2023 - 15:14:25: [AMXX] Run time error 10: native error (native "get_member_s")
L 11/25/2023 - 15:14:25: [AMXX] [0] reapi_grenade_trail.sma::@Grenade_Color (line 100)
L 11/25/2023 - 15:14:25: [AMXX] [1] reapi_grenade_trail.sma::test (line 79)
 
Последнее редактирование:
Сообщения
75
Реакции
82
Помог
6 раз(а)
Код:
#include <amxmodx>
#include <reapi>

//#define UseTeamColor;    // Использовать цвета команды. Закоментировать, если хотите использовать цвета для каждой гранаты.

new g_SpriteTrail;

// RGB Цвета, если игрок играет за террористов.
new g_iColorsTT[3] = {
    191, 130, 0
};

// RGB Цвета, если игрок играет за спецназовцев.
new g_iColorsCT[3] = {
    0, 130, 191
};
    
// RGB Цвета для гранаты HE.
new const g_szGrenadeColorHE[3] = {
    191, 130, 0
};
    
// RGB Цвета для гранаты Flash.
new const g_szGrenadeColorFlash[3] = {
    0, 130, 191
};
    
// RGB Цвета для гранаты Smoke.
new const g_szGrenadeColorSmoke[3] = {
    0, 255, 0
};

const LIFETIME = 3;        // Время жизни в секундах.
const WIDTH = 5;        // Ширини линии.
const BRIGHTNESS = 225;    // Яркость линии.

public plugin_precache() {
    g_SpriteTrail = precache_model("sprites/smoke.spr");
}

public plugin_init() {
    register_plugin("[ReAPI] Grenade Trile Like CS:GO", "1.1", "Base Code: Fatih ~ EjderYa / Edite Cod: ImmortalAmxx");
    RegisterHookChain(RG_CBasePlayer_ThrowGrenade, "@CBasePlayer_TrhowGrenade_Post", true);
}

@CBasePlayer_TrhowGrenade_Post(UserId, WeaponId) {
    new pGrenade = GetHookChainReturn(ATYPE_INTEGER);
    
    if(is_nullent(pGrenade))
        return HC_CONTINUE;
#if defined UseTeamColor
    @SetSprite(get_member(UserId, m_iTeam), pGrenade, LIFETIME, WIDTH, BRIGHTNESS);
#else
    @SetSprite(get_member(WeaponId, m_iId), pGrenade, LIFETIME, WIDTH, BRIGHTNESS);
#endif
    return HC_CONTINUE;
}

@SetSprite(iColorData, GrenadeId, LifeTime, Width, Brig) {
    
    new iR, iG, iB;    @get_color(iColorData, iR, iG, iB);
    
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(GrenadeId);
    write_short(g_SpriteTrail);
    write_byte(LifeTime * 10);
    write_byte(Width);
    write_byte(iR);
    write_byte(iG);
    write_byte(iB);
    write_byte(Brig);
    message_end();
}

@get_color(iColorData, &iR, &iG, &iB)    {
    switch(iColorData)    {
        case TEAM_TERRORIST: {
            iR = g_iColorsTT[0];
            iG = g_iColorsTT[1];
            iB = g_iColorsTT[2];
        }
        case TEAM_CT: {
            iR = g_iColorsCT[0];
            iG = g_iColorsCT[1];
            iB = g_iColorsCT[2];
        }
        case WEAPON_HEGRENADE: {
            iR = g_szGrenadeColorHE[0];
            iG = g_szGrenadeColorHE[1];
            iB = g_szGrenadeColorHE[2];
        }
        case WEAPON_FLASHBANG: {
            iR = g_szGrenadeColorFlash[0];
            iG = g_szGrenadeColorFlash[1];
            iB = g_szGrenadeColorFlash[2];
        }
        case WEAPON_SMOKEGRENADE: {
            iR = g_szGrenadeColorSmoke[0];
            iG = g_szGrenadeColorSmoke[1];
            iB = g_szGrenadeColorSmoke[2];
        }
        default: {
            iR = 150;
            iG = 150;
            iB = 150;
        }
    }
}
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
ImmortalAmxx, цвета, яркость и тп в квары запили). И от этого можно избавиться, зачем это?
Код:
default: {
    iR = 150;
    iG = 150;
    iB = 150;
}
В любом случае будет так, при таких обсоятельствах
Код:
write_byte(0);
write_byte(0);
write_byte(0);
 
Последнее редактирование:
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
sezoniasty, In this version there is no, but the idea is cool
 
Последнее редактирование:
Сообщения
678
Реакции
579
Предупреждения
8
Помог
9 раз(а)
ImmortalAmxx, у тебя WeaponId передаётся аргументом, но хочешь получить его new WeaponIdType: Weapon_iId = get_member(WeaponId, m_iId);
Хотя WeaponId тут не энтити а уже индекс оружие(гранаты)
26 Ноя 2023
Соответственно ид не будет получен и три write_byte не будет отправлен. Таких случаев лучше дефолт добавить на свиче даже если править опечатку с ид.
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
tarsisd2, код предоставте, может скачен не обновленный плагин
26 Ноя 2023
Код:
#include <amxmodx>
#include <reapi>

//#define UseTeamColor;    // Использовать цвета команды. Закоментировать, если хотите использовать цвета для каждой гранаты.

new g_SpriteTrail;

// RGB Цвета, если игрок играет за террористов.
new g_iColorsTT[3] = {
    191, 130, 0
};

// RGB Цвета, если игрок играет за спецназовцев.
new g_iColorsCT[3] = {
    0, 130, 191
};
  
// RGB Цвета для гранаты HE.
new const g_szGrenadeColorHE[3] = {
    191, 130, 0
};
  
// RGB Цвета для гранаты Flash.
new const g_szGrenadeColorFlash[3] = {
    0, 130, 191
};
  
// RGB Цвета для гранаты Smoke.
new const g_szGrenadeColorSmoke[3] = {
    0, 255, 0
};

const LIFETIME = 3;        // Время жизни в секундах.
const WIDTH = 5;        // Ширини линии.
const BRIGHTNESS = 225;    // Яркость линии.

public plugin_precache() {
    g_SpriteTrail = precache_model("sprites/smoke.spr");
}

public plugin_init() {
    register_plugin("[ReAPI] Grenade Trile Like CS:GO", "1.1", "Base Code: Fatih ~ EjderYa / Edite Cod: ImmortalAmxx");
    RegisterHookChain(RG_CBasePlayer_ThrowGrenade, "@CBasePlayer_TrhowGrenade_Post", true);
}

@CBasePlayer_TrhowGrenade_Post(UserId, WeaponId) {
    new pGrenade = GetHookChainReturn(ATYPE_INTEGER);
  
    if(is_nullent(pGrenade))
        return HC_CONTINUE;
#if defined UseTeamColor
    @SetSprite(get_member(UserId, m_iTeam), pGrenade, LIFETIME, WIDTH, BRIGHTNESS);
#else
    @SetSprite(get_member(WeaponId, m_iId), pGrenade, LIFETIME, WIDTH, BRIGHTNESS);
#endif
    return HC_CONTINUE;
}

@SetSprite(iColorData, GrenadeId, LifeTime, Width, Brig) {
  
    new iR, iG, iB;    @get_color(iColorData, iR, iG, iB);
  
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(GrenadeId);
    write_short(g_SpriteTrail);
    write_byte(LifeTime * 10);
    write_byte(Width);
    write_byte(iR);
    write_byte(iG);
    write_byte(iB);
    write_byte(Brig);
    message_end();
}

@get_color(iColorData, &iR, &iG, &iB)    {
    switch(iColorData)    {
        case TEAM_TERRORIST: {
            iR = g_iColorsTT[0];
            iG = g_iColorsTT[1];
            iB = g_iColorsTT[2];
        }
        case TEAM_CT: {
            iR = g_iColorsCT[0];
            iG = g_iColorsCT[1];
            iB = g_iColorsCT[2];
        }
        case WEAPON_HEGRENADE: {
            iR = g_szGrenadeColorHE[0];
            iG = g_szGrenadeColorHE[1];
            iB = g_szGrenadeColorHE[2];
        }
        case WEAPON_FLASHBANG: {
            iR = g_szGrenadeColorFlash[0];
            iG = g_szGrenadeColorFlash[1];
            iB = g_szGrenadeColorFlash[2];
        }
        case WEAPON_SMOKEGRENADE: {
            iR = g_szGrenadeColorSmoke[0];
            iG = g_szGrenadeColorSmoke[1];
            iB = g_szGrenadeColorSmoke[2];
        }
        default: {
            iR = 150;
            iG = 150;
            iB = 150;
        }
    }
}
Вам это нужно поставить
 
Сообщения
893
Реакции
149
Помог
25 раз(а)
tarsisd2, временно откатитесь к первой версии, или измените строчку.
Diff:
-//#define UseTeamColor;
+#define UseTeamColor;
Сегодня постараюсь обновить ресурс. Всем людям выше спасибо за фитбек и помощь в устранении проблем.
 
Сообщения
140
Реакции
24
Помог
2 раз(а)
A better version in my opinion


C++:
#include <amxmodx>
#include <reapi>

//#define USE_TEAM_COLOR // Uncomment to use team colors, comment to use grenade-specific colors.

#if defined USE_TEAM_COLOR
    new g_iColorsTT[] = { 191, 130, 0 }; // RGB Colors for terrorists.
    new g_iColorsCT[] = { 0, 130, 191 }; // RGB Colors for counter-terrorists.
#else
    new const g_szGrenadeColors[][3] = {
        { 191, 130, 0 },    // HE Grenade color.
        { 0, 130, 191 },    // Flashbang color.
        { 0, 255, 0 }        // Smoke Grenade color.
    };
#endif

enum {
    LIFETIME = 3,       // Lifetime in seconds.
    WIDTH = 5,           // Line width.
    BRIGHTNESS = 225     // Line brightness.
};

new g_SpriteTrail;

public plugin_precache() {
    g_SpriteTrail = precache_model("sprites/smoke.spr");
}

public plugin_init() {
    register_plugin("[ReAPI] Grenade Trail Like CS:GO", "1.1", "Base Code: Fatih ~ EjderYa / Edited by: ImmortalAmxx");
    RegisterHookChain(RG_CBasePlayer_ThrowGrenade, "@CBasePlayer_ThrowGrenade_Post", true);
}

@CBasePlayer_ThrowGrenade_Post(UserId, WeaponId) {
    new pGrenade = GetHookChainReturn(ATYPE_INTEGER);

    if (is_nullent(pGrenade))
        return HC_CONTINUE;

    @SetSprite(UserId, pGrenade, WeaponId, LIFETIME, WIDTH, BRIGHTNESS);

    return HC_CONTINUE;
}

@SetSprite(UserId, GrenadeId, WeaponId, LifeTime, Width, Brig) {
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
    write_byte(TE_BEAMFOLLOW);
    write_short(GrenadeId);
    write_short(g_SpriteTrail);
    write_byte(LifeTime * 10);
    write_byte(Width);

#if defined USE_TEAM_COLOR
    @Team_Color(UserId);
#else
    @Grenade_Color(WeaponId);
#endif

    write_byte(Brig);
    message_end();
}

#if defined USE_TEAM_COLOR
@Team_Color(UserId) {
    new teamColor[3];
    teamColor = (get_member(UserId, m_iTeam) == TEAM_TERRORIST) ? g_iColorsTT : g_iColorsCT;
    write_byte(teamColor[0]);
    write_byte(teamColor[1]);
    write_byte(teamColor[2]);
}

#else
@Grenade_Color(WeaponId) {
    new WeaponIdType: Weapon_iId = get_member(WeaponId, m_iId);

    switch (Weapon_iId) {
        case WEAPON_HEGRENADE: {
            write_byte(g_szGrenadeColors[0][0]);
            write_byte(g_szGrenadeColors[0][1]);
            write_byte(g_szGrenadeColors[0][2]);
        }
        case WEAPON_FLASHBANG: {
            write_byte(g_szGrenadeColors[1][0]);
            write_byte(g_szGrenadeColors[1][1]);
            write_byte(g_szGrenadeColors[1][2]);
        }
        case WEAPON_SMOKEGRENADE: {
            write_byte(g_szGrenadeColors[2][0]);
            write_byte(g_szGrenadeColors[2][1]);
            write_byte(g_szGrenadeColors[2][2]);
        }
    }
}
#endif
 
Сообщения
678
Реакции
579
Предупреждения
8
Помог
9 раз(а)
Никакой это не беттер если он точно так же отправляет трейл всем подряд без разбора. А по-хорошему надо сделать квар кто будет видеть (все, только тиммейты и.т.д) в кс го как я понимаю это чит квар. Так что это некий дисбаланс в игре.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу