Custom Smoke by bionext

Custom Smoke by bionext 1.07

Нет прав для скачивания

iOS

Сообщения
323
Реакции
100
Помог
5 раз(а)
Osenniy Shelest, уже объясняли пару страниц назад. Для эмуляции дыма выбран рендер горения огня. И как по мне нормальный дым, пусть как хочет там движется. Всё же это лучше чем дефолтная какаха.
 
Сообщения
57
Реакции
-12
iOS, Хотя я в этом не разбираюсь)) но можно же сделать дефолтный дым густей, как на том же fastcup.
 
Сообщения
22
Реакции
0
Hello, how to fix that bug, i am just replace the .spr file with original .spr and smoke effect going to be verry poor,and hackers still play nosmoke ? Somebody can you help me, to fix that glitch ? When i am using STEAM that sprite going i cstrike_downloads and from there i am replace that file with another , and i am nosmoke afterthat....
 

mAx

Сообщения
61
Реакции
-7
ANARCHIST, Вот описание события (сообщения), меняйте в коде и добивайтесь того что вам нужно.
Код:
/**
* Makes a field of fire
*
* @note
* write_byte(TE_FIREFIELD)
* write_coord(origin)
* write_short(radius) (fire is made in a square around origin. -radius, -radius to radius, radius)
* write_short(modelindex)
* write_byte(count)
* write_byte(flags)
* write_byte(duration (in seconds) * 10) (will be randomized a bit)
*/
#define TE_FIREFIELD                123

/**
* Flags for the TE_FIREFIELD effect, controlling its performance and aesthetic
* features
*/
#define TEFIRE_FLAG_ALLFLOAT        1        // All sprites will drift upwards as they animate
#define TEFIRE_FLAG_SOMEFLOAT       2        // Some of the sprites will drift upwards. (50% chance)
#define TEFIRE_FLAG_LOOP            4        // If set, sprite plays at 15 fps, otherwise plays at whatever rate stretches the animation over the sprite's duration.
#define TEFIRE_FLAG_ALPHA           8        // If set, sprite is rendered alpha blended at 50% else, opaque
#define TEFIRE_FLAG_PLANAR          16       // If set, all fire sprites have same initial Z instead of randomly filling a cube.
bionext, это где плагин ??
 
Сообщения
330
Реакции
-22
Как сделать чтобы был статичный дым, чтобы не двигался? Какую настройку изменить?
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
SergeyPanov, никак. Синком постоянно отправляет мессагу, а она, в свою очередь, рандомно заполняет некий куб, потому и получается такой дерганный и не статичный дым. Единственное, можешь убрать флаг TEFIRE_FLAG_SOMEFLOAT, чтобы 2-3 из 5 спрайтов не поднимались вверх.
 
Сообщения
141
Реакции
55
Помог
2 раз(а)
Is this plugin blocking 16 bit advantage too?
 
Сообщения
330
Реакции
-22
Minni, На другом сервере был статичный, стоит этот плагин как он сделал? Правил код?
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
SergeyPanov, понятия не имею. Спроси у того, у кого видел этот дым.
 
Сообщения
53
Реакции
6
Ни кто не доделывал для себя, чтобы газ урон наносил?
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
etkins, заюзай rg_dmg_radius при отправке TE_FIREFIELD
 
Сообщения
2,144
Реакции
1,223
Помог
44 раз(а)
etkins, попробуй.
Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <reapi>

#if !defined write_coord_f
    #define write_coord_f(%1)   engfunc( EngFunc_WriteCoord, %1 )
#endif

#define VERSION "1.07"
#define SMOKE_SPRITE "sprites/gas_puff_gray_opaque.spr"

new const g_szClassname[] = "custom_smoke";
new g_fwid
new g_evCreateSmoke;
new g_szSmokeSprite;
new g_Cvar_Enabled;
new g_Cvar_Duration;
new g_Cvar_CountSprites;
new g_Clear;
new g_iCvar_Enebled;
new g_iCountSprites;

public plugin_init( )
{
    register_plugin( "Custom Smoke", VERSION, "bionext" );

    g_Clear = 0;
    g_iCvar_Enebled = 0;
    g_Cvar_Enabled = register_cvar( "sv_customsmoke", "1" );
    g_Cvar_Duration = register_cvar( "sv_smokeduration", "10.0" );
    g_Cvar_CountSprites = register_cvar( "sv_smokespritescount", "30" );

    unregister_forward(FM_PrecacheEvent, g_fwid, 1);

    register_think( g_szClassname, "FwdThink_BlackSmoke" );
    register_forward(FM_PlaybackEvent, "FwdPlaybackEvent");
    register_logevent("FwdClear", 2, "1=Round_End");
    register_logevent("FwdStart", 2, "1=Round_Start");
    register_event("TextMsg", "FwdClear", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
}

public FwdClear( )
{
    g_Clear = 1;
}

public FwdStart( )
{
    g_iCvar_Enebled = get_pcvar_num( g_Cvar_Enabled );
    g_Clear = 0;
}

public plugin_precache( )
{
    g_szSmokeSprite = precache_model( SMOKE_SPRITE );
    g_fwid = register_forward(FM_PrecacheEvent, "FwdPrecacheEvent", 1);
    force_unmodified(force_exactfile, {0,0,0},{0,0,0}, SMOKE_SPRITE);
}

public FwdPlaybackEvent( iFlags , iEntity , iEventindex, Float:fDelay, Float:vOrigin[3], Float:vAngles[3], Float:fParam1, Float:fParam2, iParam1, iParam2, iBparam1, iBparam2 )
{
    if(iEventindex != g_evCreateSmoke || iBparam2 || !g_iCvar_Enebled)
        return FMRES_IGNORED;

    new iEnt = create_entity( "info_target" );

    if( !iEnt )
        return FMRES_IGNORED;

    g_iCountSprites = get_pcvar_num( g_Cvar_CountSprites );
    new Float:fDuration = get_pcvar_float( g_Cvar_Duration );
      
    entity_set_string( iEnt, EV_SZ_classname, g_szClassname );
    entity_set_float( iEnt, EV_FL_nextthink, get_gametime( ));
    entity_set_vector( iEnt, EV_VEC_origin, vOrigin );
    entity_set_float( iEnt, EV_FL_animtime, fDuration );

    return FMRES_SUPERCEDE;
}

public FwdPrecacheEvent(type, const name[])
{
    if (equal("events/createsmoke.sc", name))
    {
        g_evCreateSmoke = get_orig_retval();
        return FMRES_HANDLED;
    }

    return FMRES_IGNORED;
}

public FwdThink_BlackSmoke( iEntity )
{
    if( !is_valid_ent( iEntity ) )
        return PLUGIN_CONTINUE;

    if( g_Clear > 0 )
    {
        entity_set_int( iEntity,EV_INT_flags, FL_KILLME );
        return PLUGIN_CONTINUE;
    }

    new Float:vOrigin[3];
    entity_get_vector( iEntity, EV_VEC_origin, vOrigin );
  
    rg_dmg_radius(vOrigin, iEntity, 0, 1.0, 120.0, IGNORE_GLASS, DMG_NERVEGAS);

    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_FIREFIELD );
    write_coord_f( vOrigin[ 0 ] );
    write_coord_f( vOrigin[ 1 ] );
    write_coord_f( vOrigin[ 2 ] + 50 );
    write_short( 100 );
    write_short( g_szSmokeSprite );
    write_byte( g_iCountSprites );
    write_byte( TEFIRE_FLAG_ALPHA );
    write_byte( 11 );
    message_end();

    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_FIREFIELD );
    write_coord_f( vOrigin[ 0 ] );
    write_coord_f( vOrigin[ 1 ] );
    write_coord_f( vOrigin[ 2 ] + 50 );
    write_short( 150 );
    write_short( g_szSmokeSprite );
    write_byte( 5 );
    write_byte( TEFIRE_FLAG_ALPHA | TEFIRE_FLAG_SOMEFLOAT );
    write_byte( 11 );
    message_end( );

    new Float:time = entity_get_float(iEntity,EV_FL_animtime);
    time = time - 0.25;

    if( time > 0.0 )
    {
        entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 0.25 );
        entity_set_float( iEntity, EV_FL_animtime, time );
    }
    else
    {
        entity_set_int( iEntity,EV_INT_flags, FL_KILLME );
    }

    return PLUGIN_CONTINUE;
}
5 Май 2020
Варик, конечно, дерьмо, поскольку нет айди владельца гранаты, чтобы ему засчитывался фраг, если убьет. Да и урон наносится весьма часто в синке)
 
Последнее редактирование:
Сообщения
53
Реакции
6
Minni, от души.
rg_dmg_radius(vOrigin, iEntity, 0, 1.0, 120.0, IGNORE_GLASS, DMG_NERVEGAS);
и всего то. Я думал надо регать новую переменную, квар и вот тут чето менять/добавить

Код:
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_FIREFIELD );
    write_coord_f( vOrigin[ 0 ] );
    write_coord_f( vOrigin[ 1 ] );
    write_coord_f( vOrigin[ 2 ] + 50 );
    write_short( 100 );
    write_short( g_szSmokeSprite );
    write_byte( g_iCountSprites );
    write_byte( TEFIRE_FLAG_ALPHA );
    write_byte( 11 );
    message_end();

    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( TE_FIREFIELD );
    write_coord_f( vOrigin[ 0 ] );
    write_coord_f( vOrigin[ 1 ] );
    write_coord_f( vOrigin[ 2 ] + 50 );
    write_short( 150 );
    write_short( g_szSmokeSprite );
    write_byte( 5 );
    write_byte( TEFIRE_FLAG_ALPHA | TEFIRE_FLAG_SOMEFLOAT );
    write_byte( 11 );
    message_end( );
 

ssx

Сообщения
272
Реакции
71
Если уже речь пошла об уровне, было бы хорошо чтобы урон был не сразу а по типу как в воде плаваешь долго и типа кислород заканчивается.
Ну и учесть что могут пару дымов кинуть в одно место (чтобы двойной урон не наносило).
 

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

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