Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Падение сервера при смене карты.

, Смена на вествуд.
Статус пользователя izymcs
сообщение 4.7.2014, 17:54
Сообщение #1


Стаж: 12 лет

Сообщений: 203
Благодарностей: 9
Полезность: 48

Доброго времени суток.
Играя на сервере, я поменял карту на de_westwood и сервер упал с такой причиной:
L 07/04/2014 - 19:48:27: FATAL ERROR (shutting down): WRITE_SHORT called with no active message
FATAL ERROR (shutting down): WRITE_SHORT called with no active message
Внятного объяснения я не нашёл, так что спрашиваю у Вас, форумчан.
Что за ошибка такая и чем она может вызваться?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 4.7.2014, 18:06
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

выруби amx и проверь, если ошибка пропала ->
смотри плагины, которые используют функцию
write_short
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя izymcs
сообщение 4.7.2014, 18:07
Сообщение #3


Стаж: 12 лет

Сообщений: 203
Благодарностей: 9
Полезность: 48

Цитата(Legenda @ 4.7.2014, 20:06) *
выруби amx и проверь, если ошибка пропала ->
смотри плагины, которые используют функцию
write_short


Я нашёл плагин. Цветной дым. Colored Smoke. Отключаю плагин - всё нормально. Включаю и меняю карту на вествуд - сервер падает. (Может это и не от карты зависит)
Никаких проблем не было никогда с этим плагинов и тут вдруг вот это вот.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.7.2014, 18:15
Сообщение #4


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

izymcs, amxx ошибок нет? condebug тоже не помешает. Падает исключительно на westwood?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя izymcs
сообщение 4.7.2014, 18:22
Сообщение #5


Стаж: 12 лет

Сообщений: 203
Благодарностей: 9
Полезность: 48

Цитата(Bloo @ 4.7.2014, 20:15) *
izymcs, amxx ошибок нет? condebug тоже не помешает. Падает исключительно на westwood?

В голосование за карту выбрали вествуд и всё.
Могу сейчас на других картах проверить быстренько.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя izymcs
сообщение 4.7.2014, 18:52
Сообщение #6


Стаж: 12 лет

Сообщений: 203
Благодарностей: 9
Полезность: 48

sv_colored_smoke "2"
Может ли вызвать падение этот квар в server.cfg? Сегодня его вписал.

Только на вествуде. Было подозрение на de_dust2_2006, но нет, там всё норм.
sv_colored_smoke поставил так же как и было всегда - 1.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.7.2014, 18:54
Сообщение #7


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

izymcs, не мешало бы хотя бы название плагина увидеть, а еще лучше исходник и описание кваров.
И еще раз, включите condebug, так будет хотя бы видно после чего конкретно крашится сервер. И про error логи amxx так ничего и не ответили.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя izymcs
сообщение 4.7.2014, 19:19
Сообщение #8


Стаж: 12 лет

Сообщений: 203
Благодарностей: 9
Полезность: 48

Цитата(Bloo @ 4.7.2014, 20:54) *
izymcs, не мешало бы хотя бы название плагина увидеть, а еще лучше исходник и описание кваров.
И еще раз, включите condebug, так будет хотя бы видно после чего конкретно крашится сервер. И про error логи amxx так ничего и не ответили.

В логах нет ничего необычного.
ColoredSmoke.amxx condebug - вот так надо прописать в plugins.ini?

"Исходник Colored Smoke 1.1 xPaw"
Код:

#include <amxmodx>
#include <engine>
#include <fakemeta>

#define VERSION "1.1"

new const g_szClassname[] = "colored_smokenade";

new g_szSmokeSprites[ 6 ];
new g_Cvar_Enabled;

public plugin_init( ) {
register_plugin( "Colored Smoke", VERSION, "xPaw" );

register_cvar( "colored_smoke", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
set_cvar_string( "colored_smoke", VERSION );

g_Cvar_Enabled = register_cvar( "sv_colored_smoke", "1" );

register_forward( FM_EmitSound, "FwdEmitSound" );
register_touch( g_szClassname, "worldspawn", "FwdTouch_FakeSmoke" );
register_think( g_szClassname, "FwdThink_FakeSmoke" );
}

public plugin_precache( ) {
g_szSmokeSprites[ 0 ] = precache_model( "sprites/gas_puff_01y.spr" );
g_szSmokeSprites[ 1 ] = precache_model( "sprites/gas_puff_01r.spr" );
g_szSmokeSprites[ 2 ] = precache_model( "sprites/gas_puff_01b.spr" );
g_szSmokeSprites[ 3 ] = precache_model( "sprites/gas_puff_01g.spr" );
g_szSmokeSprites[ 4 ] = precache_model( "sprites/gas_puff_01m.spr" );
g_szSmokeSprites[ 5 ] = precache_model( "sprites/gas_puff_01o.spr" );

precache_sound( "weapons/grenade_hit1.wav" );
}

public FwdEmitSound( iOrigEnt, iChannel, const szSample[], Float:fVol, Float:fAttn, iFlags, iPitch ) {
new iCvar = get_pcvar_num( g_Cvar_Enabled );
if( iCvar > 0 ) {
static const szSmokeSound[] = "weapons/sg_explode.wav";

if( equal( szSample, szSmokeSound ) ) {
// cache origin, angles and model
new Float:vOrigin[ 3 ], Float:vAngles[ 3 ], szModel[ 64 ], iOwner;
iOwner = entity_get_edict( iOrigEnt, EV_ENT_owner );
entity_get_vector( iOrigEnt, EV_VEC_origin, vOrigin );
entity_get_vector( iOrigEnt, EV_VEC_angles, vAngles );
entity_get_string( iOrigEnt, EV_SZ_model, szModel, charsmax( szModel ) );

// remove entity from world
entity_set_vector( iOrigEnt, EV_VEC_origin, Float:{ 9999.9, 9999.9, 9999.9 } );
entity_set_int( iOrigEnt, EV_INT_flags, FL_KILLME );

// create new entity
new iEntity = create_entity( "info_target" );
if( iEntity > 0 ) {
entity_set_string( iEntity, EV_SZ_classname, g_szClassname );

entity_set_origin( iEntity, vOrigin );
entity_set_vector( iEntity, EV_VEC_angles, vAngles );

entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_TOSS );
entity_set_int( iEntity, EV_INT_solid, SOLID_BBOX );

entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 21.5 );
entity_set_float( iEntity, EV_FL_gravity, 0.5 );
entity_set_float( iEntity, EV_FL_friction, 0.8 );

entity_set_model( iEntity, szModel );

new Float:vVelocity[ 3 ];
vVelocity[ 0 ] = random_float( -220.0, 220.0 );
vVelocity[ 1 ] = random_float( -220.0, 220.0 );
vVelocity[ 2 ] = random_float( 200.0, 300.0 );
entity_set_vector( iEntity, EV_VEC_velocity, vVelocity );

emit_sound( iEntity, iChannel, szSample, fVol, fAttn, iFlags, iPitch );

// Create fake smoke
new iSmoke;

if( iCvar == 2 )
iSmoke = get_user_team( iOwner ); // i did indexes as team, 1 - red, 2 - blue, 3 - green( spec oO )
else
iSmoke = random_num( 0, 5 );

// Store the smoke number in entity, we will use it later
entity_set_int( iEntity, EV_INT_iuser4, iSmoke );

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_szSmokeSprites[ iSmoke ] );
write_byte( 100 );
write_byte( TEFIRE_FLAG_ALPHA );
write_byte( 1000 );
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_szSmokeSprites[ iSmoke ] );
write_byte( 10 );
write_byte( TEFIRE_FLAG_ALPHA | TEFIRE_FLAG_SOMEFLOAT );
write_byte( 1000 );
message_end( );
}
}
}
}

public FwdTouch_FakeSmoke( iEntity, iWorld ) {
if( !is_valid_ent( iEntity ) )
return PLUGIN_CONTINUE;

// Bounce sound
emit_sound( iEntity, CHAN_VOICE, "weapons/grenade_hit1.wav", 0.25, ATTN_NORM, 0, PITCH_NORM );

new Float:vVelocity[ 3 ];
entity_get_vector( iEntity, EV_VEC_velocity, vVelocity );

if( vVelocity[ 1 ] <= 0.0 && vVelocity[ 2 ] <= 0.0 ) {
new Float:vOrigin[ 3 ];
new iSmoke = entity_get_int( iEntity, EV_INT_iuser4 );
entity_get_vector( iEntity, EV_VEC_origin, vOrigin );

// Make small smoke near grenade on ground
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 ] + 10 );
write_short( 2 );
write_short( g_szSmokeSprites[ iSmoke ] );
write_byte( 2 );
write_byte( TEFIRE_FLAG_ALLFLOAT | TEFIRE_FLAG_ALPHA );
write_byte( 30 );
message_end();
}

return PLUGIN_CONTINUE;
}

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

remove_entity( iEntity );

return PLUGIN_CONTINUE;
}


https://forums.alliedmods.net/showthread.php?p=849413

Видео, как работает плагин:
Видео с плагином

[media]https://www.youtube.com/watch?v=KQy0uLi_i20[/media]

Если есть лучше версия такого плагина, то подскажите где найти, пожалуйста.

Отредактировал: izymcs, - 4.7.2014, 19:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.7.2014, 19:23
Сообщение #9


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

izymcs, нет, я имел ввиду -condebug в строке запуска или condebug в server.cfg
Error логи вообще есть за ближайшее время?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 4.7.2014, 19:31
Сообщение #10


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

изучай message_begin
write_short вызывает падение, что-то не правильно в плагине, либо плагин с картой левым образом взаимодействует
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя izymcs
сообщение 4.7.2014, 19:40
Сообщение #11


Стаж: 12 лет

Сообщений: 203
Благодарностей: 9
Полезность: 48

Цитата(Legenda @ 4.7.2014, 21:31) *
изучай message_begin
write_short вызывает падение, что-то не правильно в плагине, либо плагин с картой левым образом взаимодействует

Никогда такого падения не было вообще. Я не знаю что там заковеркалось. Бред в общем. И почему-то именно на вествуде.

Цитата(Bloo @ 4.7.2014, 21:23) *
izymcs, нет, я имел ввиду -condebug в строке запуска или condebug в server.cfg
Error логи вообще есть за ближайшее время?


Исходник

Код:

#include <amxmodx>
#include <engine>
#include <fakemeta>

#define VERSION "1.1"

new const g_szClassname[] = "colored_smokenade";

new g_szSmokeSprites[ 6 ];
new g_Cvar_Enabled;

public plugin_init( ) {
register_plugin( "Colored Smoke", VERSION, "xPaw" );

register_cvar( "colored_smoke", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
set_cvar_string( "colored_smoke", VERSION );

g_Cvar_Enabled = register_cvar( "sv_colored_smoke", "1" );

register_forward( FM_EmitSound, "FwdEmitSound" );
register_touch( g_szClassname, "worldspawn", "FwdTouch_FakeSmoke" );
register_think( g_szClassname, "FwdThink_FakeSmoke" );
}

public plugin_precache( ) {
g_szSmokeSprites[ 0 ] = precache_model( "sprites/gas_puff_01y.spr" );
g_szSmokeSprites[ 1 ] = precache_model( "sprites/gas_puff_01r.spr" );
g_szSmokeSprites[ 2 ] = precache_model( "sprites/gas_puff_01b.spr" );
g_szSmokeSprites[ 3 ] = precache_model( "sprites/gas_puff_01g.spr" );
g_szSmokeSprites[ 4 ] = precache_model( "sprites/gas_puff_01m.spr" );
g_szSmokeSprites[ 5 ] = precache_model( "sprites/gas_puff_01o.spr" );

precache_sound( "weapons/grenade_hit1.wav" );
}

public FwdEmitSound( iOrigEnt, iChannel, const szSample[], Float:fVol, Float:fAttn, iFlags, iPitch ) {
new iCvar = get_pcvar_num( g_Cvar_Enabled );
if( iCvar > 0 ) {
static const szSmokeSound[] = "weapons/sg_explode.wav";

if( equal( szSample, szSmokeSound ) ) {
// cache origin, angles and model
new Float:vOrigin[ 3 ], Float:vAngles[ 3 ], szModel[ 64 ], iOwner;
iOwner = entity_get_edict( iOrigEnt, EV_ENT_owner );
entity_get_vector( iOrigEnt, EV_VEC_origin, vOrigin );
entity_get_vector( iOrigEnt, EV_VEC_angles, vAngles );
entity_get_string( iOrigEnt, EV_SZ_model, szModel, charsmax( szModel ) );

// remove entity from world
entity_set_vector( iOrigEnt, EV_VEC_origin, Float:{ 9999.9, 9999.9, 9999.9 } );
entity_set_int( iOrigEnt, EV_INT_flags, FL_KILLME );

// create new entity
new iEntity = create_entity( "info_target" );
if( iEntity > 0 ) {
entity_set_string( iEntity, EV_SZ_classname, g_szClassname );

entity_set_origin( iEntity, vOrigin );
entity_set_vector( iEntity, EV_VEC_angles, vAngles );

entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_TOSS );
entity_set_int( iEntity, EV_INT_solid, SOLID_BBOX );

entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 21.5 );
entity_set_float( iEntity, EV_FL_gravity, 0.5 );
entity_set_float( iEntity, EV_FL_friction, 0.8 );

entity_set_model( iEntity, szModel );

new Float:vVelocity[ 3 ];
vVelocity[ 0 ] = random_float( -220.0, 220.0 );
vVelocity[ 1 ] = random_float( -220.0, 220.0 );
vVelocity[ 2 ] = random_float( 200.0, 300.0 );
entity_set_vector( iEntity, EV_VEC_velocity, vVelocity );

emit_sound( iEntity, iChannel, szSample, fVol, fAttn, iFlags, iPitch );

// Create fake smoke
new iSmoke;

if( iCvar == 2 )
iSmoke = get_user_team( iOwner ); // i did indexes as team, 1 - red, 2 - blue, 3 - green( spec oO )
else
iSmoke = random_num( 0, 5 );

// Store the smoke number in entity, we will use it later
entity_set_int( iEntity, EV_INT_iuser4, iSmoke );

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_szSmokeSprites[ iSmoke ] );
write_byte( 100 );
write_byte( TEFIRE_FLAG_ALPHA );
write_byte( 1000 );
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_szSmokeSprites[ iSmoke ] );
write_byte( 10 );
write_byte( TEFIRE_FLAG_ALPHA | TEFIRE_FLAG_SOMEFLOAT );
write_byte( 1000 );
message_end( );
}
}
}
}

public FwdTouch_FakeSmoke( iEntity, iWorld ) {
if( !is_valid_ent( iEntity ) )
return PLUGIN_CONTINUE;

// Bounce sound
emit_sound( iEntity, CHAN_VOICE, "weapons/grenade_hit1.wav", 0.25, ATTN_NORM, 0, PITCH_NORM );

new Float:vVelocity[ 3 ];
entity_get_vector( iEntity, EV_VEC_velocity, vVelocity );

if( vVelocity[ 1 ] <= 0.0 && vVelocity[ 2 ] <= 0.0 ) {
new Float:vOrigin[ 3 ];
new iSmoke = entity_get_int( iEntity, EV_INT_iuser4 );
entity_get_vector( iEntity, EV_VEC_origin, vOrigin );

// Make small smoke near grenade on ground
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 ] + 10 );
write_short( 2 );
write_short( g_szSmokeSprites[ iSmoke ] );
write_byte( 2 );
write_byte( TEFIRE_FLAG_ALLFLOAT | TEFIRE_FLAG_ALPHA );
write_byte( 30 );
message_end();
}

return PLUGIN_CONTINUE;
}

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

remove_entity( iEntity );

return PLUGIN_CONTINUE;
}


Colored Smoke 1.1 xPaw.

condebug как прописать в server.cfg?

Отредактировал: izymcs, - 4.7.2014, 19:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 4.7.2014, 19:50
Сообщение #12


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

izymcs, как его можно еще прописать? Лучше в строке запуска, по тому как о том что его можно прописывать в server.cfg я знаю только по наслышке...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: