Custom Smoke by bionext

Custom Smoke by bionext 1.07

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

wopox1337

😈 самый злой модератор
Сообщения
2.194
Реакции
2.202
bionext Поддержка legacy кода устаревшего AMXX 1.8.2 это конечно "хорошо", но у меня со временем выработался на такие вещи некий стиль, не настаиваю, но мне такого варианта поддержка больше по душе в коде, нежели прямые внесения каркасов #ifdef-typed костыльных :crazy:

Код:
-#if AMXX_VERSION_NUM < 183
-   engfunc( EngFunc_WriteCoord, vOrigin[ 0 ] );
-   engfunc( EngFunc_WriteCoord, vOrigin[ 1 ] );
-   engfunc( EngFunc_WriteCoord, vOrigin[ 2 ] + 50 );
-#else
-   write_coord_f( vOrigin[ 0 ] );
-   write_coord_f( vOrigin[ 1 ] );
-   write_coord_f( vOrigin[ 2 ] + 50 );
-#endif
Код:
+#if !defined write_coord_f
+    #include <fakemeta>
+    #define write_coord_f(%1)    engfunc( EngFunc_WriteCoord, %1 )
+#endif
 
Последнее редактирование:
Сообщения
231
Реакции
283
wopox1337, только так
Код:
#if !defined write_coord_f
-    #include <fakemeta>
    #define write_coord_f(%1)    engfunc( EngFunc_WriteCoord, %1 )
#endif
Код:
+#include <fakemeta>
#if !defined write_coord_f
    #define write_coord_f(%1)    engfunc( EngFunc_WriteCoord, %1 )
#endif
потому что
Код:
unregister_forward(FM_PrecacheEvent, g_fwid, 1);
fakemeta.inc
:smile3:
 
Сообщения
231
Реакции
283
Tranquillity, а как откатить? Cумбурно всё получилось, не успел описать ресурс на работу дёрнули.
 
Сообщения
152
Реакции
29
iOS, так и должно быть. Еще не разобрался в чем причина7
 

iOS

Сообщения
128
Реакции
31
GALAXY, неа. Позже потестирую. Ставил стандартный спрайт, и другие пробовал. Тоже самое.
 
Сообщения
2
Реакции
1
Is there a possibility to slow down the "speed" of the smokepuffs?

and maybe you want to add in plugin_init
Код:
   register_event("TextMsg", "FwdClear", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
to ensure that the Smoke is cleared on RoundRestart too


// google translate:
Есть ли возможность замедлить «скорость» курения?


и, возможно, вы хотите добавить в plugin_init
Код:
   register_event("TextMsg", "FwdClear", "a", "2=#Game_will_restart_in","2=#Game_Commencing");
чтобы гарантировать, что дым очищается на RoundRestart тоже
 
Сообщения
231
Реакции
283
Daniele386, Thanks for the hint, I will add a clear when restarting in the next version. For simulated smoke, the tempentity (TE_FIREFIELD) of burning fire is used. If you use something else then it is probably possible.
 

tim

Сообщения
9
Реакции
1
Неверный раздел форума
не компилится все другие плагины компилит без проблем а этот не хочет ткните что я делаю не так

//// custom_smoke.sma
// C:\Users\Vendetta\Desktop\AmxModX 1.8.2_fix\custom_smoke.sma(107) : error 036: empty statement
// C:\Users\Vendetta\Desktop\AmxModX 1.8.2_fix\custom_smoke.sma(108) : error 036: empty statement
// C:\Users\Vendetta\Desktop\AmxModX 1.8.2_fix\custom_smoke.sma(109) : error 036: empty statement
// C:\Users\Vendetta\Desktop\AmxModX 1.8.2_fix\custom_smoke.sma(119) : error 036: empty statement
// C:\Users\Vendetta\Desktop\AmxModX 1.8.2_fix\custom_smoke.sma(120) : error 036: empty statement
// C:\Users\Vendetta\Desktop\AmxModX 1.8.2_fix\custom_smoke.sma(121) : error 036: empty statement
//
// 6 Errors.
// Could not locate output file compiled\custom_smoke.amx (compile failed).
//
// Compilation Time: 0,11 sec
 

tim

Сообщения
9
Реакции
1
alexei1s, ну я не скриптер хз что означает и где поправить=)
 
Сообщения
231
Реакции
283
tim, Скорее всего у вас кривой amxx так как судя по ошибкам в нём отсутствует найтив write_byte. Проверьте наличие в инклюде messages.inc наличие строки
Код:
native write_byte(x);
 

tim

Сообщения
9
Реакции
1
bionext,
native message_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0);
native message_end();
native write_byte(x);
native write_char(x);
native write_short(x);
native write_long(x);
native write_entity(x);
native write_angle(x);
native write_coord(x);
native write_string(const x[]);

компилятор нормальый с темы что кидал выше алексис да и на других пробовал такая же ошибка вылазит
 
Сообщения
231
Реакции
283
tim, тогда скомпилируйте вот это
Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>

#define VERSION "1.05"
#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", "100" );

   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");
}

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 );

   message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
   write_byte( TE_FIREFIELD );
   engfunc( EngFunc_WriteCoord, vOrigin[ 0 ] );
   engfunc( EngFunc_WriteCoord, vOrigin[ 1 ] );
   engfunc( EngFunc_WriteCoord, 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 );
   engfunc( EngFunc_WriteCoord, vOrigin[ 0 ] );
   engfunc( EngFunc_WriteCoord, vOrigin[ 1 ] );
   engfunc( EngFunc_WriteCoord, vOrigin[ 2 ] + 50 );
   write_short( 150 );
   write_short( g_szSmokeSprite );
   write_byte( 10 );
   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 - 1.0;

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

   return PLUGIN_CONTINUE;
}
 

tim

Сообщения
9
Реакции
1
bionext, а вот теперь все без ошибок спасибо!
напишите в чем была проблема а то тут минусы ставят будто я дуб зеленый=)
 
Сообщения
231
Реакции
283
tim, проблема в версии amxx в ней нет нейтива write_coord_f и почему-то компилятор не распознал дерективу
Код:
#if !defined write_coord_f
    #define write_coord_f(%1) engfunc( EngFunc_WriteCoord, %1 );
#endif
у меня просьба проверить как скомпилируется такой вариант как в прикреплённом файле.
 

Вложения

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

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