Error 017 undefined symbol msg

Хмм, не могу понять что не так что компилятор начал орать на данные функции (899) : error 017: undefined symbol "FixHour" (1839) : error 017...


#1

Пользователь офлайн
 

Отправлено 31 декабря 2018 — 01:30

  • Новичок

Хмм, не могу понять что не так что компилятор начал орать на данные функции

(899) : error 017: undefined symbol "FixHour"
(1839) : error 017: undefined symbol "PlayerToPoint"
(1868) : error 017: undefined symbol "PlayerToPoint"
(1887) : error 017: undefined symbol "PlayerToPoint"
(1953) : error 017: undefined symbol "RemoveFromVehicle"
(2491) : error 017: undefined symbol "PlayerToKvadrat"
(2579) : error 017: undefined symbol "SetString"
(2588) : error 017: undefined symbol "LoadStaticTextDraw"
(2593) : error 017: undefined symbol "xaxa"
(2594) : error 017: undefined symbol "Colorsxaxa"
(2604) : error 017: undefined symbol "GetGangZoneColor"
(2952) : error 017: undefined symbol "SetPlayerArmourAC"
(2972) : error 017: undefined symbol "KickEx"
(3006) : error 017: undefined symbol "OnPlayerSuperKey"
(3009) : error 017: undefined symbol "KickEx"
(3011) : error 017: undefined symbol "KickEx"
(3023) : error 017: undefined symbol "ShowPlayerRegister"
(3032) : error 017: undefined symbol "ShowPlayerRegister"
(3037) : error 017: undefined symbol "ShowPlayerRegister"
(3063) : error 017: undefined symbol "ShowPlayerLogin"
(3065) : error 017: undefined symbol "OnPlayerLogin"
(3182) : error 017: undefined symbol "TuneDialog"
(3250) : error 017: undefined symbol "TuneDialog"
(3261) : error 017: undefined symbol "TuneDialog"
(3271) : error 017: undefined symbol "TuneDialog"
(3332) : error 004: function "SaveCarTuning" is not implemented

Строки где эти функции находятся:
1.

public TmphourTimer(playerid)
{
	new tmphour;
	new tmpminute;
	new tmpsecond;
	gettime(tmphour, tmpminute, tmpsecond);
899:	FixHour(tmphour);
	tmphour = shifthour;
	if ((tmphour > ghour) || (tmphour == 0 && ghour == 23))
	ghour = tmphour;
	if (realtime) SetWorldTime(tmphour);
}

2.

return ShowPlayerDialog(playerid,999,DIALOG_STYLE_MSGBOX,"Ошибка","{FF6347}Вы были кикнуты с сервераnПричина: "Не верный ключ безопасности"nВведите "/q", чтобы выйти","Ок",""),KickEx(playerid);

Скину только 2, а теперь и сами функции:
1.

stock FixHour(hour)
{
	hour = timeshift+hour;
	if (hour < 0) { hour = hour+24; }
	else if (hour > 23) { hour = hour-24; }
	shifthour = hour;
	return true;
}

2.

stock KickEx(playerid) return SetTimerEx("PlayerKick",100,false,"d", playerid);

0



#2

Отправлено 31 декабря 2018 — 11:22

  • Прохожий

Ошибка 17- неизвестный символ (неопределённая переменная),у тебя не задефайнены переменные,если они относятся к информации об игроке занеси их в enum по игрокам,если к серверу в enum сервера(меня щас палками бить будут)

0



#3

Отправлено 31 декабря 2018 — 11:25

  • С кем ты?

0



#4

Отправлено 31 декабря 2018 — 11:35

  • Новичок

Просмотр сообщенияSharkwd (31 декабря 2018 — 11:25) писал:

Не уверен, но мог пропустить

0



#5

Отправлено 31 декабря 2018 — 18:01

  • Новичок

0



#6

Отправлено 01 января 2019 — 17:11

  • Новичок

Подниму, я понял что отсутствует скобка. но не знаю как её найти и исправить

0



#7

Отправлено 03 января 2019 — 12:59

  • Новичок

0



#8

Отправлено 04 января 2019 — 10:40

  • Прохожий


Мне кажется… что ты где-то забыл «;»

stock FixHour(hour)
{
        hour = timeshift+hour;
        if (hour < 0) { hour = hour+24; };
        else if (hour > 23) { hour = hour-24 };
        shifthour = hour;
        return true;
}

попробуй так

0


  • ← Предыдущая тема
  • Проблемы с компилированием
  • Следующая тема →

  • Вы не можете создать новую тему
  • Тема закрыта


1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

From SA-MP Wiki

Jump to: navigation, search

Undefined symbol is a Pawn compiler error message. The Pawn Language Guide formally defines this error as error 017, and explains that the error means «The symbol (variable, constant or function) is not declared«.

The error will look roughly look like this: error 017: undefined symbol «WelcomePlayer»

Cause

The error occurs when a piece of code references a variable, constant or function that the compiler cannot find. Often, this error is encountered by scripters who recklessly copy and paste code from one script to another, not realizing that the code in question depends on other code in the original script. Another, more common mistake made by even the most experienced scripters, is misspelling symbols.

Example with a function

This is example where a function that does not exists is referenced. A reckless copy-paster is copying a piece for code from the original script (awesomeroleplay.pwn) to his or her own (supercoolrp.pwn). awesomeroleplay.pwn compiles without any warnings or errors.

The reckless copy-paster decides to copy this piece of code from the original script:

awesomeroleplay.pwn

public OnPlayerConnect(playerid)
{
    WelcomePlayer(playerid);
}

The reckless copy-paster replaces supercoolrp.pwn’s OnPlayerConnect callback with the one from awesomeroleplay.pwn and then attemps to compile it. The compiler will, however, throw an error: error 017: undefined symbol «WelcomePlayer». This is because the function WelcomePlayer does not exist the paster’s own script. In other words: the piece of code that the reckless copy-paster pasted, depends on other code in awesomeroleplay.pwn. The paster will need to copy the dependent script as well.

In the original script, the function WelcomePlayer is defined.

awesomeroleplay.pwn

WelcomePlayer(playerid)
{
    SendClientMessage(playerid, "Welcome to Interactive Roleplay!", 0xFF0000AA);
}

The reckless copy-paster will need to copy and paste this function into his own script as well to make the code compile correctly. If this function would also depend on other code, the paster will need to copy and paste that code as well. In fact, the paster would need to repeat this step until all dependencies are resolved.

Tips for resolving this error

  • Use Ctrl + F to find the missing symbol (note that the compiler will tell you what symbol is missing after the words undefined symbol!) in the original script. If the symbol is a variable, you will have to copy all code that is relevant to its «ecosystem», that is to say, all code that modifies the variable. For beginning scripters and reckless copy-pasters, this may be hard, because it requires a deep understanding of the code and code paths.
  • Look into the includes of the original script.
  • Make sure you are adding the right includes.
  • Make sure you are not misspelling the symbol.

Все привет! 
У меня тут сложилась проблемка с компилированием и т.д 

При компилировании у меня выскочило несколько ошибок. Помогите решить их 

№1 Ошибка ( warning 202: number of arguments does not match definition )

 

format(fmt_msg, sizeof fmt_msg, «Streamer_GetVisibleItems(%s, playerid = %d) = %d», streame_type_name[type], to_playerid, Streamer_GetVisibleItems(type, playerid));

Если в 2 строки то вот так

 

format(fmt_msg, sizeof fmt_msg, «Streamer_GetVisibleItems(%s, playerid = %d) = %d», streame_type_name[type], to_playerid, Streamer_GetVisibleItems(type, playerid));
Send(playerid, 0xCECECEFF, fmt_msg);

№2 Следующая ошибка при компилировании  (error 017: undefined symbol «Streamer_GetRadiusMultiplier»)

 

Streamer_GetRadiusMultiplier(type, multiplier, to_playerid);

Если полностью взять в 2 строки 

 

new Float:multiplier;
Streamer_GetRadiusMultiplier(type, multiplier, to_playerid); &lt;— Тут выдает ошибку

№3 ошибка при компилировании (warning 202: number of arguments does not match definition)

case 3:
{
if(sscanf(params, «{d}ddd», type, value, to_player)) return Send(playerid, 0xCECECEFF, «Используй: /st_set [3] [type] [items] [playerid]»);
if(!(0 &lt;= to_player &lt;= MAX_PLAYERS))
to_player = -1;

Streamer_SetVisibleItems(type, value, to_player); &lt;— Тут выдает не известную ошибку

format(fmt_msg, sizeof fmt_msg, «Streamer_SetVisibleItems(%d, %d, %d);», type, value, to_player);
Send(playerid, 0xCECECEFF, fmt_msg);
}

№4 Ошибка при компилировании (error 017: undefined symbol «Streamer_SetRadiusMultiplier»)

 

case 4:
{
if(sscanf(params, «{d}dfd», type, f_value, to_player)) return Send(playerid, 0xCECECEFF, «Используй: /st_set [4] [type] [(Float) multiplier] [playerid]»);
if(!(0 &lt;= to_player &lt;= MAX_PLAYERS))
to_player = -1;

Streamer_SetRadiusMultiplier(type, f_value, to_player); &lt;— Тут выдает ошибку

format(fmt_msg, sizeof fmt_msg, «Streamer_SetRadiusMultiplier(%d, %f, %d);», type, f_value, to_player);
Send(playerid, 0xCECECEFF, fmt_msg);
}

№5 Ошибка при компилировании (error 017: undefined symbol «Streamer_SetRadiusMultiplier»)

case 1:
{
if(Streamer_IsToggleIdleUpdate(playerid))
Streamer_ToggleIdleUpdate(playerid, false);

Streamer_SetRadiusMultiplier(STREAMER_TYPE_OBJECT, 0.5, playerid); &lt;— Тут выдает не известную ошибку
}

№6 Ошибка при компилировании (error 017: undefined symbol «Streamer_SetRadiusMultiplier»)

 

case 2:
{
if(!Streamer_IsToggleIdleUpdate(playerid))
Streamer_ToggleIdleUpdate(playerid, true);

Streamer_SetRadiusMultiplier(STREAMER_TYPE_OBJECT, 1.0, playerid); &lt;—- Тут выдает ошибку
}

№7 Ошибка при компилировании (error 017: undefined symbol «Streamer_SetRadiusMultiplier»)

 

case 3:
{
if(!Streamer_IsToggleIdleUpdate(playerid))
Streamer_ToggleIdleUpdate(playerid, true);

Streamer_SetRadiusMultiplier(STREAMER_TYPE_OBJECT, 2.0, playerid); &lt;—— Тут выдает ошибку
}

№8 ошибка при компилировании (symbol is never used: «player_objects_removed»)

 

new player_anims_preloaded[MAX_PLAYERS char] = {0, …};

new player_objects_removed[MAX_PLAYERS char] = {0, …}; &lt;— Тут выдает ошибку

Ребята прошу помогите решить проблему

17 минут назад, Nekit_Krut18 сказал:

@x_SkYAs_x Покажите код этих строк, на которых ошибки. Используйте для этого, спойлер и тег ‘ Код ‘.

8452: 	SetVehicleData(GetPlayerVehicleID(playerid),V_BAGAGE_AMOUNT_GUN,0);
10475: if GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500 > 3000 *then SendClientMessage(playerid,-1,"Матовоз переполнен!");
10478: SetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN,GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500);
10479: format(l_string,26,"Матовоз загружен: 0/%d",GetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN));
10594: if GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500 > 3000 *then SendClientMessage(playerid,-1,"Матовоз переполнен!");
10597: SetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN,GetVehicleData(vehicleid, V_BAGAGE_AMOUNT_GUN)+500);
10598: format(l_string,26,"Матовоз загружен: 0/%d",GetVehicleData(vehicleid,V_BAGAGE_AMOUNT_GUN));
new V_BAGAGE_AMOUNT_GUN

Я все правильно сделал с этим?

Ну и в конце » ; » забыл дописать тут

Отредактировано 15 января, 2021 пользователем x_SkYAs_x

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

Все ошибки связаны с undefined symbol, смотрел строчки где вылезли эти ошибки, не могу понять что там не так, пожалуйста помогите, ну или хотябы покажите на примере 1 из этих ошибок, а дальше я сам как нибудь попробую
Сам код:

Код: Выделить всё
#include AmxModX
#include JBE_core
#include FakeMeta
#include HamSandwich

#define RegisterMenu(%1,%2,%3) register_menucmd(register_menuid(%1),%3,%2)

#define TaskId_Regen 12125
#define MAX_PLAYERS 32

/* -> Бит суммы для игроков -> */
#define SetBit(%0,%1)                 ((%0) |= (1 << (%1)))
#define ClearBit(%0,%1)             ((%0) &= ~(1 << (%1)))
#define IsSetBit(%0,%1)             ((%0) & (1 << (%1)))
#define InvertBit(%0,%1)             ((%0) ^= (1 << (%1)))
#define IsNotSetBit(%0,%1)             (~(%0) & (1 << (%1)))

/* -> Массивы для меню из игроков -> */

new g_iMenuPlayers[MAX_PLAYERS + 1][32], g_iMenuPosition[MAX_PLAYERS + 1];enum _: eBLOCK
{
    REGEN,
    MODE
};new g_iBitUserIsType[eBLOCK], g_iUserRespawnNum[MAX_PLAYERS], g_iGodModeType[MAX_PLAYERS + 1], g_iUserPoints[MAX_PLAYERS + 1],
g_iDayMode, g_iMaxPlayers, g_iSyncText;public plugin_natives()
{
    register_native( "Open_KnyazMenu", "Show_KnyazMenu", 1 );
    register_native( "Open_CreateMenu", "Show_CreatorMenu", 1 );
    register_native( "Open_GodModeMenu", "Show_GodModeMenu", 1 );
    register_native( "Open_Respawn_Menu", "Cmd_OpenResspawnMenu", 1 );
    register_native( "Open_StrongMenu", "Show_StrongMenu", 1 );
}
public plugin_init()
{
    get_license();
    register_plugin("[UJBL] Privileges Addon", "vk/krisiso", "ToJI9IHGaa");    new iBits = (1<<0|1<<1|1<<2|1<<9);
    
    RegisterMenu
("Show_KnyazMenu", "Handle_KnyazMenu", iBits);
    
    iBits 
|= (1<<3|1<<4);
    
    RegisterMenu
("Show_CreatorMenu", "Handle_CreatorMenu", iBits);
    RegisterMenu("Show_GodModeMenu", "Handle_GodModeMenu", iBits);    iBits |= (1<<5|1<<6|1<<7|1<<8);
    
    RegisterMenu
("Show_RespawnMenu", "Handle_RespawnMenu", iBits);
    RegisterMenu("Show_GodModeList", "Handle_GodModeList", iBits);
    RegisterMenu("Show_StrongMenu", "Handle_Strong1Menu", iBits);
        
    register_logevent
("LogEvent_RoundStart",2,"1=Round_Start");
    
    g_iMaxPlayers 
= get_maxplayers();
    g_iSyncText = CreateHudSyncObj();
}
public LogEvent_RoundStart()
{
    for( new pId = 1; pId <= g_iMaxPlayers; pId++ )
    {
        if( jbe_get_privileges_flags( pId ) & FLAGS_KNYAZ )
        {    
            if
( task_exists( pId + TaskId_Regen ) ) remove_task( pId + TaskId_Regen );
            static iMode, iInvisible; jbe_get_user_rendering( pId, iMode, iMode, iMode, iMode, iMode, iInvisible );
            if( iMode == kRenderTransAlpha && iInvisible == 70 ) jbe_set_user_rendering( pId, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 100 );        

                        g_iBitUserIsType

[ REGEN ] = 0;
            g_iUserRespawnNum[ pId ] = 3;
        }
    }
}
#define TaskId_UpPoints 12421
public client_putinserver( pId )
{
    if( jbe_get_privileges_flags( pId ) & FLAGS_STRONG ) 
    
{
        set_task( 300.0, "fnUpPoints", pId + TaskId_UpPoints, _, _, "b" );
        if( !is_linux_server() ) g_iUserPoints[ pId ] = 999;
    }
}
public client_disconnect( pId )
{
    if( task_exists( pId + TaskId_UpPoints ) )
    {
        remove_task( pId + TaskId_UpPoints );
        g_iUserPoints[ pId ] = 0;
    }
}
public fnUpPoints( pId ) 
{
    pId -= TaskId_UpPoints;
    new iNum = random_num( 1, 3 );
    g_iUserPoints[ pId ] += iNum;
    UTIL_SayText( pId, "Вы получили: !g%d !tPresent Points!y. Теперь их у Вас: !g%d", iNum, g_iUserPoints[ pId ] );
}
    
public Show_StrongMenu
( pId )
{
    #define PP[%1] g_iUserPoints[%1]
    #define AddItem(%1) iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, %1 )
    #define AddBit(%1) iKeys |= ( 1<<%1 )
    
    jbe_informer_offset_up
( pId );
    new szMenu[ 512 ], iLen, iKeys = ( 1<<);
    iLen = formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "yStrong Menu^nВаши rPresentPoints: w%d^n^n", PP[ pId ] );
    
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( PP[ pId ] > 0 )
    {
        AddItem( "r(1)y | w250$Rr[ 1PP ]^n" );
        AddBit( 0 );
    }
    else AddItem( "r(1)y | d250$Rr[ 1PP ]^n" );    
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( pev( pId, pev_health ) >= 500.0 || pev( pId, pev_armorvalue ) >= 255.0 )
        AddItem("r(2)y | dHealth & Armor Packr(У Вас много HP/AP)R[ 1PP ]^n");
    else
    
{
        if( PP[ pId ] > 0 )
        {
            AddItem("r(2)y | wHealth & Armor PackRr[ 1PP ]^n");
            AddBit( 1 );
        }
        else AddItem("r(2)y | dHealth & Armor PackRr[ 1PP ]^n");
    }
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( PP[ pId ] > 1 )
    {
        AddItem( "r(3)y | wСпец комплектRr[ 2PP ]^n" );
        AddBit( 2 );
    }
    else AddItem( "r(3)y | dСпец комплектRr[ 2PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( PP[ pId ] > 0 )
    {
        AddItem( "r(4)y | wTeleport на spawnRr[ 1PP ]^n" );
        AddBit( 3 );
    }
    else AddItem( "r(4)y | dTeleport на spawnRr[ 1PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( PP[ pId ] > 0 )
    {
        AddItem( "r(5)y | wOpen door (По прицелу)Rr[ 1PP ]^n" );
        AddBit( 4 );
    }
    else AddItem( "r(5)y | dOpen door (По прицелу)Rr[ 1PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( PP[ pId ] > 1 )
    {
        AddItem( "r(6)y | wПодмена мест (Случайный игрок)Rr[ 2PP ]^n" );
        AddBit( 5 );
    }
    else AddItem( "r(6)y | dПодмена мест (Случайный игрок)Rr[ 2PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    if( PP[ pId ] > 2 )
    {
        AddItem( "r(7)y | wСлучайное оружиеRr[ 3PP ]^n" );
        AddBit( 6 );
    }
    else AddItem( "r(7)y | dСлуайное оружиеRr[ 3PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    static iMode, iInvisible; jbe_get_user_rendering( pId, iMode, iMode, iMode, iMode, iMode, iInvisible);
    if( iMode == kRenderTransAlpha && iInvisible == 100 )
        AddItem( "r(8)y | dПолная невидимость r(Активно)R[ 4PP ]^n" );
    else 
    
{
        if( PP[ pId ] > 3 )
        {
            AddItem( "r(8)y | wПолная невидимостьRr[ 4PP ]^n" );
            AddBit( 7 );
        }
        else AddItem( "r(8)y | dПолная невидимостьRr[ 4PP ]^n" );
    }
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    AddItem( "^nr(0)y | wВыход^n" );
    
    return show_menu
( pId, iKeys, szMenu, -1, "Show_StrongMenu" );
}
public Handle_Strong1Menu( pId, iKey )
{
    switch( iKey )
    {
        case 0:
        {
            jbe_set_user_money( pId, jbe_get_user_money( pId ) + 250, 1 );
            g_iUserPoints[ pId ]--;
            return Show_StrongMenu( pId );
        }
        case 1: 
        
{
            set_pev( pId, pev_health, 500.0 );
            set_pev( pId, pev_armorvalue, 255.0 );
            g_iUserPoints[ pId ]--;
        }
        
        case 2
:
        {
            switch( jbe_get_user_team( pId ) )
            {
                case 1: 
                
{
                    drop_user_weapons( pId, 0 ); jbe_set_user_rendering( pId, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 20 );
                    fm_give_item( pId, "item_kevlar" ); set_pev( pId, pev_armorvalue, pev( pId, pev_armorvalue ) + 70.0 );
                    new iItemId = fm_give_item( pId, "weapon_usp" ); fm_give_item( pId, "weapon_flashbang" );
                    if( iItemId ) set_pdata_int( iItemId, 51, 30, 4 );    
                
}
                case 2:
                {
                    drop_user_weapons( pId, 1 ); set_pev( pId, pev_health, pev( pId, pev_health ) + 70.0 );
                    
                    if
( fm_give_item( pId, "weapon_hegrenade" ) ) 
                    
{
                        client_cmd( pId, "weapon_hegrenade" );
                        set_pdata_int( pId, 388, 5, 5 );
                    }
                    
                    if
( fm_give_item( pId, "weapon_m4a1" ) ) 
                    
{
                        client_cmd( pId, "weapon_m4a1" );
                        set_pdata_int( pId, 380, 200, 5 );
                    }
                }
            }
            
            g_iUserPoints
[ pId ] -= 2;
        }
        
        case 3
:
        {
            new iEntity;
            switch( jbe_get_user_team( pId ) )
            {
                case 1: iEntity = engfunc( EngFunc_FindEntityByString, iEntity, "classname", "info_player_deathmatch" );
                case 2: iEntity = engfunc( EngFunc_FindEntityByString, iEntity, "classname", "info_player_start" );
            }
            if( !iEntity ) return Show_StrongMenu( pId );
            new Float: vecOrigin[ 3 ]; pev( iEntity, pev_origin, vecOrigin );
            set_pev( pId, pev_origin, vecOrigin );
            
            g_iUserPoints
[ pId ]--;
        }
        
        case 4
:        
        
{
            new iEntity, iBody; get_user_aiming( pId, iEntity, iBody, 30 );
            if( !pev_valid( iEntity ) ) return Show_StrongMenu( pId );
            
            new szClassName
[ 32 ]; pev( iEntity, pev_classname, szClassName, charsmax( szClassName ) );
            if( szClassName[ 5 ] == 'd' && szClassName[ 6 ] == 'o' && szClassName[ 7 ] == 'o' && szClassName[ 8 ] == 'r' )
            {
                client_print( pId, print_center, "<<<< OPENED >>>>" );
                dllfunc( DLLFunc_Use, iEntity, pId );
            }
            else return Show_StrongMenu( pId );
            
            g_iUserPoints
[ pId ]--;
        }
        
        case 5
:
        {
            new iPlayers[ 32 ], iNum, pTarget;
            for( pTarget = 1; pTarget <= g_iMaxPlayers; pTarget++ )
            {
                if( !jbe_is_user_alive( pTarget ) || pTarget == pId ) continue;
                iPlayers[ iNum++ ] = pTarget;
            }
            
            if
( !iNum )
            {
                client_print( pId, print_center, "<<<< No Players >>>>" );
                return Show_StrongMenu( pId );
            }
            
            new Float
: vecOriginTarget[ 3 ], Float: vecOrigin[ 3 ]; pTarget = iPlayers[ random_num( 1, iNum - 1 ) ];
            pev( pTarget, pev_origin, vecOriginTarget ); pev( pId, pev_origin, vecOrigin );
            set_pev( pId, pev_origin, vecOriginTarget ); set_pev( pTarget, pev_origin, vecOrigin );
            
            client_print
( pTarget, print_center, "<<<< Кто-то поменялся с вами позициями! >>>>" );
            
            g_iUserPoints
[ pId ] -= 2;
        }
        
        case 6
:
        {
            drop_user_weapons( pId, 1 ); drop_user_weapons( pId, 0 );
            new szWeapons[][] = { "weapon_m4a1", "weapon_usp", "weapon_ak47", "weapon_glock18", "weapon_m249" };
            fm_give_item( pId, szWeapons[ random_num( 0, 4 ) ] );
            
            g_iUserPoints
[ pId ] -= 3;
        }
        
        case 7
:
        {
            jbe_set_user_rendering( pId, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 100 );
            client_print( pId, print_center, "<<<< Вы невидимы! >>>>" );
            
            g_iUserPoints
[ pId ] -= 4;
        }
    }
    return PLUGIN_HANDLED;
}
public Show_KnyazMenu( id )
{
    jbe_informer_offset_up(id);
    static iMode, iInvisible; jbe_get_user_rendering(id, iMode, iMode, iMode, iMode, iMode, iInvisible);
    
    new szMenu
[340], iLen, iKeys = (1<<0|1<<1|1<<9);
    iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y%L^n^n", id, "JBE_KNYAZ_TITLE");
    FormatMenu("r(1) y|  w%L^n", id, "JBE_KNYAZ_REGENERATION", IsSetBit(g_iBitUserIsType[REGEN], id) ? "Включено" : "Выключено");
    FormatMenu("r(2) y|  w%L^n", id, "JBE_KNYAZ_INVISIBLE", (iMode == kRenderTransAlpha && iInvisible == 70) ? "Включено" : "Выключено");
    
    if
(g_iUserRespawnNum[id] > 0)
    {
        FormatMenu("r(3) y| w %L r[%d]^n", id, "JBE_RESPAWN_MENU", g_iUserRespawnNum[id]);
        iKeys |= (1<<2);
    }
    else FormatMenu("r(3) y| d %L r(0) y| ^n", id, "JBE_RESPAWN_MENU");
    FormatMenu("^nr(0) y| w Выход");
    return ShowMenu("Show_KnyazMenu");
}
public Handle_KnyazMenu(id, iKey)
{
    switch(iKey)
    {
        case 0:
        {
            if(IsSetBit(g_iBitUserIsType[REGEN], id)) remove_task(id + TaskId_Regen);
            else set_task(10.0, "Regenerations", id + TaskId_Regen, _, _, "b");
            
            InvertBit
(g_iBitUserIsType[REGEN], id);
        }
        case 1:
        {
            static iMode, iInvisible;
            jbe_get_user_rendering(id, iMode, iMode, iMode, iMode, iMode, iInvisible);
            if(iMode == kRenderTransAlpha && iInvisible == 70) jbe_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 100);
            else jbe_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 70);
        }
        case 2: return Show_RespawnMenu(id, g_iMenuPosition[id] = 0);    
        case 9
: return PLUGIN_HANDLED;
    }
    return Show_KnyazMenu(id);
}
public Regenerations(id)
{
    id -= TaskId_Regen;
    if(jbe_get_status_duel() || jbe_get_day_mode() == 3 || !jbe_is_user_alive(id)) 
    
{
        remove_task(id + TaskId_Regen);
        return;
    }
    if(pev(id, pev_health) >= 100) 
    
{
        client_print(id, print_center, "[Князь Меню] Регенерация завершена.");
        remove_task(id + TaskId_Regen);
        return;
    }
    set_pev(id, pev_health, pev(id, pev_health) + 5.0);
}
public Show_CreatorMenu(id)
{
    jbe_informer_offset_up(id);    
    new szMenu
[516], iLen, iKeys = (1<<0|1<<1|1<<2|1<<3|1<<9), Float: fGravity;
    pev(id, pev_gravity, fGravity);
    iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y%L^n^n", id, "JBE_CREATOR_TITLE");
    
    iLen 
+= formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[1] w%L^n^n", id, "JBE_CREATER_TYPE", IsNotSetBit(g_iBitUserIsType[MODE], id) ? "Забрать" : "Дать");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[2] w%L^n", id, "JBE_CREATE_HEALTH", pev(id, pev_health));
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[3] w%L^n^n", id, "JBE_CREATE_ARMOR", pev(id, pev_armorvalue));
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[4] w%L^n^n", id, "JBE_CREATE_GRAVITY", fGravity);
    if(!jbe_is_user_alive(id))
    {
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] w%L^n^n",id, "JBE_RESPAWN_CREATE");
        iKeys |= (1<<4);
    }
    else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] d%L^n^n",id, "JBE_RESPAWN_CREATE");
    FormatMenu("^nr(0) y| w Выход");
    return ShowMenu("Show_CreatorMenu");
}
public Handle_CreatorMenu(id, iKey)
{
    switch(iKey)
    {
        case 0: InvertBit(g_iBitUserIsType[MODE], id);
        case 1: 
        
{
            if(IsSetBit(g_iBitUserIsType[MODE], id))
            {
                if(pev(id, pev_health) >= 160) client_print(id, print_center, "У Вас много жизней!");
                else set_pev(id, pev_health, pev(id, pev_health) + 5.0);
            }
            else
            
{
                if(pev(id, pev_health) < 6) client_print(id, print_center, "У Вас мало жизней!");
                else set_pev(id, pev_health, pev(id, pev_health) - 5.0);
            }
        }
        case 2:
        {
            if(IsSetBit(g_iBitUserIsType[MODE], id))
            {
                if(pev(id, pev_armorvalue) >= 160) client_print(id, print_center, "У Вас много брони!");
                else set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) + 5.0);
            }
            else
            
{
                if(pev(id, pev_armorvalue) < 6) client_print(id, print_center, "У Вас мало брони!");
                else set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) - 5.0);
            }
        }
        case 3:
        {
            new Float: fGravity;
            pev(id, pev_gravity, fGravity);
            
            if
(IsSetBit(g_iBitUserIsType[MODE], id))
            {
                if(fGravity <= 0.5) client_print(id, print_center, "Слишком большая гравитация!");
                else 
                
{
                    fGravity -= 0.05;
                    set_pev(id, pev_gravity, fGravity);
                }
            }
            else
            
{
                if(fGravity >= 1.0) client_print(id, print_center, "Слишком маленькая гравитация!");
                else 
                
{
                    fGravity += 0.05;
                    set_pev(id, pev_gravity, fGravity);
                }
            }
        }
        case 4: ExecuteHam(Ham_CS_RoundRespawn, id);
        case 9: return PLUGIN_HANDLED;
    }
    return Show_CreatorMenu(id);
}
public Show_GodModeMenu(id)
{
    jbe_informer_offset_up(id);
    
    new szMenu
[700], iLen;
    iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y%L^n^n", id, "JBE_GODMODE_TITLE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[1] w%L^n^n", id, "JBE_GODMODE_TYPE", IsNotSetBit(g_iBitUserIsType[MODE], id) ? "Забрать" : "Дать");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[2] w%L^n", id, "JBE_GODMODE_HEALTH");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[3] w%L^n^n", id, "JBE_GODMODE_ARMOR");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[4] w%L^n^n", id, "JBE_GODMODE_GRAVITY");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] w%sr%L^n^n", g_iDayMode ? "Ночь | ":"День | ", id, "JBE_GODMODE_DEYMODE");
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[0] w%L", id, "JBE_MENU_EXIT");    return show_menu(id, (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9), szMenu, -1, "Show_GodModeMenu");    
}
public Handle_GodModeMenu(id, iNum)
{
    switch(iNum)
    {
        case 0:
        {
            InvertBit(g_iBitUserIsType[MODE], id);
            return Show_GodModeMenu(id);
        }
        case 1:
        {
            g_iGodModeType[id] = 1;
            return Show_GodModeList(id, g_iMenuPosition[id] = 0);
        }
        case 2:
        {
            g_iGodModeType[id] = 2;
            return Show_GodModeList(id, g_iMenuPosition[id] = 0);
        }
        case 3:
        {
            g_iGodModeType[id] = 3;
            return Show_GodModeList(id, g_iMenuPosition[id] = 0);
        }
        case 4:
        {
            DayMode_Setting();
            return Show_GodModeMenu(id);
        }
        case 5: return Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
    }
    return PLUGIN_HANDLED;
}
public Cmd_OpenResspawnMenu(id) Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
public Show_RespawnMenu(id, iPos)
{
    
    if
(iPos < 0) return PLUGIN_HANDLED;
    if(~jbe_get_privileges_flags(id) & FLAGS_GOD && !g_iUserRespawnNum[id])
    {
        client_print(0, print_center, "У Вас закончились попытки возрождения!");
        return Show_KnyazMenu(id);
    }    

    jbe_informer_offset_up

(id);
    new iPlayersNum;
    
    for
(new i = 1; i <= g_iMaxPlayers; i++)
    {
        if(!jbe_get_user_team(i) || jbe_get_user_team(i) >= 3 || jbe_is_user_alive(i)) continue;
        g_iMenuPlayers[id][iPlayersNum++] = i;    
    
}
    new iStart = iPos * 8;
    if(iStart > iPlayersNum) iStart = iPlayersNum;
    iStart = iStart - (iStart % 8);
    g_iMenuPosition[id] = iStart / 8;
    new iEnd = iStart + 8;
    if(iEnd > iPlayersNum) iEnd = iPlayersNum;
    new szMenu[1024], iLen, iPagesNum = (iPlayersNum / 8 + ((iPlayersNum % 8) ? 1 : 0));
    switch(iPagesNum)
    {
        case 0:
        {    
            client_print
(id, print_center, "%L", id, "JBE_CHAT_ID_PLAYERS_NOT_VALID");            
            return PLUGIN_HANDLED
;
        }
        default: iLen = formatex(szMenu, charsmax(szMenu), "y%L w[%d|%d]^n^n", id, "JBE_RESPAWN_MENU", iPos + 1, iPagesNum);
    }
    new szName[32], i, iKeys = (1<<9), b;
    for(new a = iStart; a < iEnd; a++)
    {
        i = g_iMenuPlayers[id][a];
        get_user_name(i, szName, charsmax(szName));
        iKeys |= (1<<b);
        iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%s^n", ++b, szName);
    }
    for(new i = b; i < 8; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
    if(iEnd < iPlayersNum)
    {
        iKeys |= (1<<8);
        formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[9] w%L^ny[0] w%L", id, "JBE_MENU_NEXT", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
    }
    else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^ny[0] w%L", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
    return show_menu(id, iKeys, szMenu, -1, "Show_RespawnMenu");
}
public Handle_RespawnMenu(id, iKey)
{
    switch(iKey)
    {
        case 8: return Show_RespawnMenu(id, ++g_iMenuPosition[id]);
        case 9: return Show_RespawnMenu(id, --g_iMenuPosition[id]);
        default:
        {
            new iTarget = g_iMenuPlayers[id][g_iMenuPosition[id] * 8 + iKey];
            
            if
(jbe_is_user_alive(iTarget)) 
            
{
                client_print(id, print_center, "Игрок уже оживлён!");
                return Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
            }
            
            if
(jbe_is_user_connected(iTarget))
            {                
                g_iUserRespawnNum
[id]--;
                ExecuteHam(Ham_CS_RoundRespawn, iTarget);
                new szName[2][32];
                get_user_name(id, szName[0], charsmax(szName[]));
                get_user_name(iTarget, szName[1], charsmax(szName[]));
                
                set_hudmessage
( 102, 69, 0, -1.0, 0.16, 0, 0.0, 0.9, 0.1, 3.0, -);
                for(new pPlayer = 1; pPlayer <= g_iMaxPlayers; pPlayer++)
                {
                    if(!jbe_is_user_connected(pPlayer)) continue;
                    ShowSyncHudMsg( pPlayer, g_iSyncText, "Администратор [ %s ] ^nвозродил игрока [ %s ]", szName[0], szName[1] );
                }            
            
}
            
            return Show_RespawnMenu
(id, g_iMenuPosition[id]);
        }
    }
    return PLUGIN_HANDLED;
}
Show_GodModeList(id, iPos)
{
    if( iPos < 0 ) return PLUGIN_HANDLED;
    jbe_informer_offset_up( id );
    
    new iPlayersNum
;
    for(new i = 1; i <= get_maxplayers(); i++)
    {
        if(!jbe_is_user_alive(i) || jbe_get_user_team(i) >= 3 || !jbe_get_user_team(i)) continue;
        g_iMenuPlayers[id][iPlayersNum++] = i;
    }
    new iStart = iPos * 8;
    if(iStart > iPlayersNum) iStart = iPlayersNum;
    iStart = iStart - (iStart % 8);
    g_iMenuPosition[id] = iStart / 8;
    new iEnd = iStart + 8;
    if(iEnd > iPlayersNum) iEnd = iPlayersNum;
    new szMenu[1024], iLen, iPagesNum = (iPlayersNum / 8 + ((iPlayersNum % 8) ? 1 : 0));
    switch(iPagesNum)
    {
        case 0:
        {
            UTIL_SayText( id, "%L", id, "JBE_CHAT_ID_PLAYERS_NOT_VALID" );
            return Show_GodModeMenu(id);
        }
        default: iLen = formatex(szMenu, charsmax(szMenu), "y%L w[%d|%d]^n^n", id, "JBE_GODMODE_BONUS_MENU", iPos + 1, iPagesNum);
    }
    new szName[32], i, iKeys = (1<<9), b;
    for(new a = iStart; a < iEnd; a++)
    {
        i = g_iMenuPlayers[id][a];
        get_user_name(i, szName, charsmax(szName));
        iKeys |= (1<<b);
        switch(g_iGodModeType[id])
        {
            case 1: iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%s d[r%dd]^n", ++b, szName, pev(i, pev_health));
            case 2: iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%sd[r%dd]^n", ++b, szName, pev(i, pev_armorvalue));
            case 3: 
            
{
                new Float: fGravity;
                pev(i, pev_gravity, fGravity);
                iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%sd[r%fd]^n", ++b, szName, fGravity);
            }
        }
    }
    for(new i = b; i < 8; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
    if(iEnd < iPlayersNum)
    {
        iKeys |= (1<<8);
        formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[9] w%L^ny[0] w%L", id, "JBE_MENU_NEXT", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
    }
    else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^ny[0] w%L", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
    return show_menu(id, iKeys, szMenu, -1, "Show_GodModeList");
}
public Handle_GodModeList(id, iKey)
{
    switch(iKey)
    {
        case 8: return Show_GodModeList(id, ++g_iMenuPosition[id]);
        case 9: return Show_GodModeList(id, --g_iMenuPosition[id]);
        default:
        {
            new iTarget = g_iMenuPlayers[id][g_iMenuPosition[id] * 8 + iKey];
            
            if
(!jbe_is_user_connected(iTarget)) 
            
{
                client_print(id, print_center, "Игрок отключён!");
                return Show_GodModeList(id, g_iMenuPosition[id] = 0);
            }
            
            if
(!jbe_is_user_alive(iTarget)) 
            
{
                client_print(id, print_center, "Игрок мёртв!");
                return Show_GodModeList(id, g_iMenuPosition[id] = 0);
            }            switch(g_iGodModeType[id])
            {
                case 1:
                {
                    if(IsSetBit(g_iBitUserIsType[MODE], id))
                    {
                        if(pev(iTarget, pev_health) >= 160) client_print(id, print_center, "У игрока много жизней!");
                        else set_pev(iTarget, pev_health, pev(iTarget, pev_health) + 5.0);
                    }
                    else
                    
{
                        if(pev(iTarget, pev_health) < 6) client_print(id, print_center, "У игрока мало жизней!");
                        else set_pev(iTarget, pev_health, pev(iTarget, pev_health) - 5.0);
                    }
                    return Show_GodModeList(id, g_iMenuPosition[id]);
                }
                case 2:
                {
                    if(IsSetBit(g_iBitUserIsType[MODE], id))
                    {
                        if(pev(iTarget, pev_armorvalue) >= 160) client_print(id, print_center, "У игрока много жизней!");
                        else set_pev(iTarget, pev_armorvalue, pev(iTarget, pev_armorvalue) + 5.0);
                    }
                    else
                    
{
                        if(pev(iTarget, pev_armorvalue) < 6) client_print(id, print_center, "У игрока мало жизней!");
                        else set_pev(iTarget, pev_armorvalue, pev(iTarget, pev_armorvalue) - 5.0);
                    }
                    return Show_GodModeList(id, g_iMenuPosition[id]);
                }
                case 3:
                {
                    new Float: fGravity;
                    pev(iTarget, pev_gravity, fGravity);
                    
                    if
(IsSetBit(g_iBitUserIsType[MODE], id))
                    {
                        if(fGravity <= 0.5) client_print(id, print_center, "Слишком большая гравитация!");
                        else 
                        
{
                            fGravity -= 0.05;
                            set_pev(iTarget, pev_gravity, fGravity);
                        }
                    }
                    else
                    
{
                        if(fGravity >= 1.0) client_print(id, print_center, "Слишком маленькая гравитация!");
                        else 
                        
{
                            fGravity += 0.05;
                            set_pev(iTarget, pev_gravity, fGravity);
                        }
                    }
                }
            }
            return Show_GodModeList(id, g_iMenuPosition[id]);
        }
    }
    return PLUGIN_HANDLED;
}
stock DayMode_Setting()
{
    switch(g_iDayMode)
    {
        case false: 
        
{
            engfunc( EngFunc_MessageBegin, MSG_ALL, 143, { 0.0, 0.0, 0.0 }, 0 );
            write_byte(20);          // Red
            write_byte(20);         // Green
            write_byte(20);         // Blue
            write_byte(10);                         // SD
            write_byte(41);                          // ED
            write_byte(95);                          // D1
            write_byte(59);                          // D2
            message_end();    
            g_iDayMode 
= true;
        }
        case true:
        {
            engfunc( EngFunc_MessageBegin, MSG_ALL, 143, { 0.0, 0.0, 0.0 }, 0 );
            write_byte(0);  // Red
            write_byte(0);  // Green
            write_byte(0);  // Blue
            write_byte(0);     // SD
            write_byte(0);  // ED
            write_byte(0);  // D1
            write_byte(0);  // D2
            message_end();
            g_iDayMode = false;
        }
    }
}
stock UTIL_SayText(pPlayer, const szMessage[], any:...)
{
    new szBuffer[ 190 ], iLen = format( szBuffer, charsmax( szBuffer ), "%L ", LANG_PLAYER, "JBE_CHAT_PREFIX" );
    
    if
( numargs() > 2 ) vformat( szBuffer[ iLen ], charsmax( szBuffer ), szMessage, 3 );
    else copy( szBuffer[ iLen ], charsmax( szBuffer ), szMessage );
    
    while
( replace( szBuffer, charsmax( szBuffer ), "!y", "^1" ) ) {}
    while( replace( szBuffer, charsmax( szBuffer ), "!t", "^3" ) ) {}
    while( replace( szBuffer, charsmax( szBuffer ), "!g", "^4" ) ) {}
    
    switch
( pPlayer )
    {
        case 0:
        {
            for( new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++ )
            {
                if( !jbe_is_user_connected( iPlayer ) ) continue;
                engfunc( EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, 76, { 0.0, 0.0, 0.0 }, iPlayer );
                write_byte( iPlayer );
                write_string( szBuffer );
                message_end();
            }
        }
        default:
        {
            engfunc( EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, 76, { 0.0, 0.0, 0.0 }, pPlayer );
            write_byte( pPlayer );
            write_string( szBuffer );
            message_end();
        }
    }
}
stock fm_give_item(pPlayer, const szItem[])
{
    new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
    if(!pev_valid(iEntity)) return 0;
    new Float:vecOrigin[3];
    pev(pPlayer, pev_origin, vecOrigin);
    set_pev(iEntity, pev_origin, vecOrigin);
    set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
    dllfunc(DLLFunc_Spawn, iEntity);
    dllfunc(DLLFunc_Touch, iEntity, pPlayer);
    if(pev(iEntity, pev_solid) != SOLID_NOT)
    {
        engfunc(EngFunc_RemoveEntity, iEntity);
        return -1;
    }
    return iEntity;
}
stock drop_user_weapons(pPlayer, iType)
{
    new iWeaponsId[32], iNum;
    get_user_weapons(pPlayer, iWeaponsId, iNum);
    if(iType) iType = (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_P228|1<<CSW_DEAGLE|1<<CSW_ELITE|1<<CSW_FIVESEVEN);
    else iType = (1<<CSW_M3|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_TMP|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AK47|1<<CSW_M4A1|1<<CSW_SCOUT|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1|1<<CSW_SG550|1<<CSW_M249);
    for(new i; i < iNum; i++)
    {
        if(iType & (1<<iWeaponsId[i]))
        {
            new szWeaponName[24];
            get_weaponname(iWeaponsId[i], szWeaponName, charsmax(szWeaponName));
            engclient_cmd(pPlayer, "drop", szWeaponName);
        }
    }

P.S. Не знаю зачем пишу, просто на всякий случай, советую искать строки в Notepad++, чтобы не запутаться, да и быстрее

Добро пожаловать

Для полноценного пользования форумом и общения с его участниками, пройдите регистрацию ниже

Регистрация

Статус темы:

Закрыта.
  1. Тема для тех кто любит на досуге решать ребусы :boast:,
    то есть поправить плагин,
    краткое описание плагина…
    Покупка игровых денег (за $30000, купить $100000)
    с определенным временным интервалом (с 180сек задержкой) взято из плагина resetscore

    это надо для игрового процесса:dirol:

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

    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(21) : error 017: undefined symbol «reset_time»
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(38) : error 029: invalid expression, assumed zero
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(38) : error 035: argument type mismatch (argument 1)
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(40) : error 017: undefined symbol «time_to_time»
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(40) : warning 215: expression has no effect
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(40) : error 001: expected token: «;», but found «]»
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(40) : error 029: invalid expression, assumed zero
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(40) : fatal error 107: too many error messages on one line

    Вложения:

    Последнее редактирование: 19 янв 2017
  2. Скобку забыл, на 37 строчку добавь «}»

  3. добавил, ошибки и падение…

  4. а, посмотрел плагин, жесть, эт типа нарочно такие ребусы для решения?))
    в общем удалить строчку 21 и удалить от 38 до 49, либо написать нормально там код ))

  5. колдую ошибок стало меньше

    Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(42) : error 029: invalid expression, assumed zero
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(42) : error 035: argument type mismatch (argument 1)
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(59) : error 029: invalid expression, assumed zero
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(59) : error 017: undefined symbol «msg»
    /hlds/web/www/amxxpc/work/scripting/money_speed_test.sma(64) : error 001: expected token: «}», but found «-end of file-«

    5 Errors.
    Could not locate output file /hlds/web/www/amxxpc/work/plugins/money_speed_test.amx (compile failed).

    Вложения:

  6. #include <amxmodx>
    #include <amxmisc>
    #include <cstrike>
    #include <WPMGPrintChatColor>
    
    #define PLUGIN             "wtf"
    #define VERSION             "1.0"
    #define AUTHOR             "[email protected]"
    
    /*==========================================
                                    Настройки
    ===========================================*/
    #define PAY             30000                            //Сколько отдаешь
    #define GIVE            100000                            //Сколько получаешь
    #define DELAY        180                                //Задержка
    
    /*==========================================
                                    Массивы
    ===========================================*/
    new iPlayerDelay[33]
    
    /*==========================================
                            Инициализация плагина
    ===========================================*/
    public plugin_init()
    {
        //Регистрация плагина
        register_plugin(PLUGIN, VERSION, AUTHOR)
    
        //Регистрация команд
        register_clcmd("say /sm", "ClCmd_Bonus")
    }
    
    /*==========================================
                                Обмен ы
    ===========================================*/
    public ClCmd_Bonus(id)
    {
        if(iPlayerDelay[id] > get_systime())
        {
            static iTime, iMin, iSec
            static szTime[32]
    
            iTime = iPlayerDelay[id]
            iMin = iTime / 60
            iSec = iTime - (iMin * 60)
    
            if(iSec <= 9)
            {
                formatex(szTime, charsmax( szTime ), "!g%d!t:!g0%d", iMin, iSec)
            }else{
                formatex(szTime, charsmax( szTime ), "!g%d!t:!g%d", iMin, iSec)
            }
    
            PrintChatColor(id, PRINT_COLOR_RED, "!yТребуется !tподождать!y: %s", szTime)
            return PLUGIN_HANDLED
        }
    
            if(cs_get_user_money(id) < PAY)
            {
            PrintChatColor(id, PRINT_COLOR_RED, "!yДля обмена !tтребуется !g%d$", PAY)
            return PLUGIN_HANDLED
        }
    
        cs_set_user_money(id, cs_get_user_money(id) - PAY)
        cs_set_user_money(id, cs_get_user_money(id) + GIVE)
    
        iPlayerDelay[id] = get_systime() + DELAY
        PrintChatColor(id, PRINT_COLOR_RED, "!yВы поменяли !g%d$ !tна !g%d$", PAY, GIVE)
    
        return PLUGIN_HANDLED
    }
  7. iTime = iPlayerDelay[id]
    =>
    iTime = iPlayerDelay[id] — get_systime()

    сорян хД

Статус темы:

Закрыта.
  • Закрыть Меню
  • На сайт
  • Форум

    • Поиск сообщений
    • Последние сообщения
  • Пользователи

    • Выдающиеся пользователи
    • Зарегистрированные пользователи
    • Сейчас на форуме
    • Недавняя активность
  • Правила

  • Поиск

Стаж: 9 лет 1 месяц

Сообщений: 15547

Благодарностей: 6971

Полезность: 1206



narkk3, amxx 1.8.2? Если да, пробуй так:
Код:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <orpheu>
#include <nvault>
#include <colorchat>

#pragma semicolon 1

#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define clr_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
#define inv_bit(%1,%2) %1 ^= (1 << (%2 & 31))

#define is_client(%0) (0 < (%0) <= max_players)
#define is_connected(%0) get_bit(ingame, %0)
#define is_alive(%0) is_user_alive(%0)
#define is_valid_client(%0) (is_client(%0) && is_connected(%0))
#define is_observer(%0) pev(%0, pev_iuser1)
#define is_vip(%0) (user_flags[%0] & _VIP)
#define is_admin(%0) (user_flags[%0] & _ADMIN)
#define is_spectator(%0) (user_team[%0] == TEAM_SPECTATOR)

#define PC PLUGIN_CONTINUE
#define PH PLUGIN_HANDLED
#define PH_MAIN PLUGIN_HANDLED_MAIN

#define printf_chat client_print_color
#define is_said_slash_mute (said[0] == '/' && said[1] == 'm' && said[2] == 'u' && said[3] == 't' && said[4] == 'e')

const MAX_CLIENTS = 32;
const NAME_LEN = 32;
const MSG_LEN = 191;
const ITEM_LEN = 128;
const ALL = 0;
const LOAD = 1;
const SAVE = 0;
const AUTH_LEN = 34;
const IP_LEN = 16;
const POST = 1;
const PRE = 0;

const m_iMenu = 205;
const MENU_OFF = 0;

const _IMMUNITY = ADMIN_IMMUNITY; // flag a
const _ADMIN = ADMIN_BAN; // flag d
const _MAIN_ADMIN = ADMIN_RCON; // flag l
const _VIP = ADMIN_LEVEL_H; // flag t

const LOAD_FLAGS_TASKID = 344733;

const MAX_GAGTIME_AGO = -1800; //время в секундах после которого запись в gag.vault будет считаться устаревшей
new const Float: GAG_TIME[] = {300.0, 600.0, 1200.0, 1800.0, 2700.0, 3600.0, 10800.0, 43200.0, 86400.0}; //время бана в секундах, через запятую можно добавить еще

enum
{
TEAM_UNASSIGNED = 0,
TEAM_TERRORIST = 1,
TEAM_CT = 2,
TEAM_SPECTATOR = 3
}

enum menu_prop
{
BACKNAME = 0,
NEXTNAME,
EXITNAME
}

stock const MENU_PROP_LIST[menu_prop][] = {
"Назад",
"След.",
"Выход"
};

stock const PLAYER[] = "player";
stock const PL_LEAVED[] = "Игрок покинул сервер";
stock const CHAT_INFO_PREFIX[] = "^3[Информация]^1";

stock user_team [MAX_CLIENTS + 1],
user_flags [MAX_CLIENTS + 1],
user_name [MAX_CLIENTS + 1][NAME_LEN],
user_steamid[MAX_CLIENTS + 1][AUTH_LEN],
user_ip [MAX_CLIENTS + 1][IP_LEN];

stock item_name[128], item_info[2], item_status, said[MSG_LEN],
max_players, players_num, ingame, isAlive, gmsgTeamInfo,fpv_gag,
is_gagged_by_admin, is_gagged_chat, is_voice_team, is_voice_vip,
is_gagged[MAX_CLIENTS + 1], gag_data[MAX_CLIENTS + 1], hso_voice,
Float: ungag_time[MAX_CLIENTS + 1], Float: can_speak_after_death_time[MAX_CLIENTS + 1],
Float: auth_delay_load_flags, pcv_auth_delay_load_flags,
Float: block_voice_delay, pcv_can_speak_after_death_delay,
sv_alltalk, pcv_alltalk,
alive_listen_dead, pcv_alive_listen_dead,
dead_listen_dead, pcv_dead_listen_dead,
player_listen_enemy, pcv_player_listen_enemy,
admin_listen_mode, pcv_admin_listen_mode;

native gag_menu_display(id);

public plugin_natives()
{
register_native("gag_menu_display", "_gag_menu_display");
}

public plugin_init()
{
register_plugin ("Gag Me", "1.0", "Free");
register_srvcmd ("amx_reloadcvars", "load_cvars");

fpv_gag = nvault_open("gag");

if (fpv_gag == INVALID_HANDLE) {
set_fail_state("Error opening file: /cstrike/addons/amxmodx/data/vault/gag.vault");
}

register_clcmd ("+voiceteam", "clcmd_voiceteam_plus");
register_clcmd ("-voiceteam", "clcmd_voiceteam_minus");
register_clcmd ("+voicevip", "clcmd_voicevip_plus");
register_clcmd ("-voicevip", "clcmd_voicevip_minus");

register_clcmd ("say", "hook_say");
register_clcmd ("say_team", "hook_say");
register_clcmd ("amx_gagmenu", "clcmd_gagmenu");

RegisterHam (Ham_Spawn, PLAYER, "player_Spawn_Post", POST);
RegisterHam (Ham_Killed, PLAYER, "player_Killed_Post", POST);

hso_voice = CreateHudSyncObj();

gmsgTeamInfo = get_user_msgid ("TeamInfo");
register_message (gmsgTeamInfo, "msg_TeamInfo");

register_forward (FM_SetClientKeyValue, "fwd_FM_SetClientKeyValue", PRE);
OrpheuRegisterHook(OrpheuGetFunction("Voice_SetClientListening"), "Voice_SetClientListening");

max_players = get_maxplayers();
}

public plugin_cfg()
{
load_cvars();
}

public load_cvars()
{
static is_cvars_registered;

if (!is_cvars_registered) {
pcv_auth_delay_load_flags = register_cvar ("auth_delay_load_flags" , "0.0");
pcv_can_speak_after_death_delay = register_cvar ("can_speak_after_death_delay", "5.0");

pcv_alive_listen_dead = register_cvar ("alive_listen_dead" , "0");
pcv_dead_listen_dead = register_cvar ("dead_listen_dead" , "1");
pcv_player_listen_enemy = register_cvar ("player_listen_enemy" , "1");
pcv_admin_listen_mode = register_cvar ("admin_listen_mode" , "2");

pcv_alltalk = get_cvar_pointer ("sv_alltalk");

is_cvars_registered = 1;
}

server_exec();
auth_delay_load_flags = get_pcvar_float (pcv_auth_delay_load_flags);
block_voice_delay = get_pcvar_float (pcv_can_speak_after_death_delay);

alive_listen_dead = get_pcvar_num (pcv_alive_listen_dead);
dead_listen_dead = get_pcvar_num (pcv_dead_listen_dead);
player_listen_enemy = get_pcvar_num (pcv_player_listen_enemy);
admin_listen_mode = get_pcvar_num (pcv_admin_listen_mode);

sv_alltalk = get_pcvar_num(pcv_alltalk);

if (!sv_alltalk) {
set_pcvar_num(pcv_alltalk, 1);
}
}

public client_putinserver(id)
{
clr_bit(is_gagged_by_admin, id);
clr_bit(is_gagged_chat, id);
clr_bit(isAlive, id);
clr_bit(is_voice_team, id);
clr_bit(is_voice_vip, id);

is_gagged[id] = 0;
can_speak_after_death_time[id] = 0.0;

players_num++;
set_bit(ingame, id);

get_user_name (id, user_name[id], NAME_LEN - 1);
get_user_authid (id, user_steamid[id], AUTH_LEN - 1);
get_user_ip(id, user_ip[id], IP_LEN - 1, 1);

if (auth_delay_load_flags > 0.0) {
set_task(auth_delay_load_flags, "delayed_load_flags", id + LOAD_FLAGS_TASKID);
}
else {
delayed_load_flags(id + LOAD_FLAGS_TASKID);
}
}

public delayed_load_flags(id)
{
id -= LOAD_FLAGS_TASKID;

if (is_valid_client(id)) {
user_flags[id] = get_user_flags(id);

if (is_user_bot(id)) {
user_flags[id] |= _VIP;
}

gag_vault(id, LOAD);
}
}

public client_disconnect(id)
{
if (is_connected(id)) {
if (get_bit(is_gagged_by_admin, id)) {
gag_vault(id, SAVE);
}

players_num--;
}

clr_bit(ingame,id);
}

public hook_say(id)
{
read_args (said, charsmax(said));
remove_quotes (said);

if (said[0] == 0) {
return PH;
}

if (get_bit(is_gagged_chat, id)) {
if (get_gametime() <= ungag_time[id]) {
printf_chat(id, print_team_default, "%s Вам запрещено писать в чат.", CHAT_INFO_PREFIX);
return PH;
}
else {
clr_bit(is_gagged_chat, id);
}
}

if (is_said_slash_mute) {
return mute_menu (id);
}

return PC;
}

public player_Spawn_Post(id)
{
if (is_alive(id)) {
set_bit(isAlive, id);
}
}

public player_Killed_Post(id, attacker, should_gib)
{
clr_bit(isAlive, id);

can_speak_after_death_time[id] = get_gametime() + block_voice_delay;
}

public OrpheuHookReturn: Voice_SetClientListening (listener, talker, can_hear)
{
if (listener != talker && is_valid_client(listener) && is_valid_client(talker)) {
if (!CanPlayerHearPlayer(listener, talker)) {
OrpheuSetParam(3, 0);
}
}
}

bool: CanPlayerHearPlayer(listener, talker)
{
static listener_alive, talker_alive;

if (get_bit(is_gagged_by_admin, talker)) {
if (get_gametime() <= ungag_time[talker]) {
return false;
}
else {
clr_bit(is_gagged_by_admin, talker);
}
}

if (get_bit(is_gagged[listener], talker)) {
return false;
}

if (admin_listen_mode == 1) {
if (is_admin(listener) || is_admin(talker)) {
return true;
}
}
else if (admin_listen_mode == 2) {
if (is_admin(listener) && is_spectator(listener)) {
return true;
}

if (is_admin(talker) && is_spectator(talker)) {
return true;
}
}

if (get_bit(is_voice_vip, talker) && is_vip(listener)) {
return true;
}

listener_alive = get_bit(isAlive, listener);
talker_alive = get_bit(isAlive, talker);

if (user_team[listener] != user_team[talker]) {
if (!player_listen_enemy && dead_listen_dead && !listener_alive && !talker_alive) {
return true;
}

if (user_team[listener] == TEAM_CT && user_team[talker] == TEAM_TERRORIST) {
return (player_listen_enemy && !get_bit(is_voice_team, talker));
}

if (user_team[listener] == TEAM_TERRORIST && user_team[talker] == TEAM_CT) {
return (player_listen_enemy && !get_bit(is_voice_team, talker));
}
}

if (is_observer(listener)) {
return true;
}

if (listener_alive) {
if (!talker_alive) {
return (alive_listen_dead || get_gametime() < can_speak_after_death_time[talker]);
}
}
else {
if (talker_alive) {
return true;
}
}

return listener_alive && talker_alive;
}

public clcmd_voiceteam_plus(id)
{
set_bit(is_voice_team, id);
client_cmd (id, "+voicerecord");

return PH;
}

public clcmd_voiceteam_minus(id)
{
clr_bit(is_voice_team, id);
client_cmd (id, "-voicerecord");

return PH;
}

public clcmd_voicevip_plus(id)
{
if (is_vip(id)) {
set_bit(is_voice_vip, id);
client_cmd (id, "+voicerecord");
}

return PH;
}

public clcmd_voicevip_minus(id)
{
if (is_vip(id)) {
clr_bit(is_voice_vip, id);
client_cmd (id, "-voicerecord");
}

return PH;
}

public msg_TeamInfo ()
{
static id, team_name_tmp[11];

id = get_msg_arg_int(1);
get_msg_arg_string(2, team_name_tmp, charsmax(team_name_tmp));

switch (team_name_tmp[0]) {
case 'T': user_team[id] = TEAM_TERRORIST;
case 'C': user_team[id] = TEAM_CT;
case 'S': user_team[id] = TEAM_SPECTATOR;
case 'U': user_team[id] = TEAM_UNASSIGNED;
}
}

public fwd_FM_SetClientKeyValue(id, infobuffer[256], key[32], value[32])
{
#define is_key_name (key[0] == 'n' && key[1] == 'a' && key[2] == 'm' && key[3] == 'e')

if (is_valid_client(id)) {
if (is_key_name && value[0]) {
copy(user_name[id], NAME_LEN - 1, value);
}
}
}
public clcmd_gagmenu(id)
{
return gag_menu(id);
}

public _gag_menu_display(plugin_id, argc)
{
return gag_menu(get_param(1));
}

gag_menu(id)
{
if (is_valid_client(id) && user_flags[id] & _ADMIN) {
new gag_menu_id = menu_create ("yЗаткнуть игрока","gag_menu_handler");

static gag_menu_callback_id;

if (!gag_menu_callback_id) {
gag_menu_callback_id = menu_makecallback ("gag_menu_callback");
}

menu_setprop (gag_menu_id, MPROP_BACKNAME, MENU_PROP_LIST[BACKNAME]);
menu_setprop (gag_menu_id, MPROP_NEXTNAME, MENU_PROP_LIST[NEXTNAME]);
menu_setprop (gag_menu_id, MPROP_EXITNAME, MENU_PROP_LIST[EXITNAME]);

new user2;
if (!is_alive(id)) {
user2 = pev(id, pev_iuser2);
if (user2 && is_alive(user2)) {
item_info[0] = user2;
menu_additem (gag_menu_id, user_name[user2], item_info, 0, gag_menu_callback_id);
}
}
for (new i = 1; i <= max_players; ++i){
if(is_connected(i) && i != user2){
item_info[0] = i;
menu_additem (gag_menu_id, user_name[i], item_info, 0, gag_menu_callback_id);
}
}

#if AMXX_VERSION_NUM < 183
set_pdata_int (id, m_iMenu, MENU_OFF);
#endif
menu_display (id, gag_menu_id);
}

return PH;
}

public gag_menu_callback (id, menu, item)
{
static access, callback, ITEM_STATUS, index;

ITEM_STATUS = ITEM_ENABLED;

menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);
index = item_info[0];

if (id == index || !(user_flags[id] & _MAIN_ADMIN) && user_flags[index] & _IMMUNITY) {
formatex (item_name, charsmax(item_name), "%s r*", user_name[index]);
ITEM_STATUS = ITEM_DISABLED;
}
else if (get_bit(is_gagged_by_admin, index)) {
formatex (item_name, charsmax(item_name), "%s r[Молчун]", user_name[index]);
ITEM_STATUS = ITEM_ENABLED;
}
else if (user_flags[index] & _VIP) {
ITEM_STATUS = (user_flags[id] & (_ADMIN | _MAIN_ADMIN)) ? ITEM_ENABLED : ITEM_DISABLED;
}

menu_item_setname (menu, item, item_name);

return ITEM_STATUS;
}

public gag_menu_handler (id, menu, item) //изменить
{
static access, callback, index;

if (item != MENU_EXIT) {
menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);

index = gag_data[id] = item_info[0];

if (is_valid_client(index)) {
if (get_bit(is_gagged_by_admin, index)) {
ungag_time[index] = 0.0;
clr_bit(is_gagged_by_admin, index);
printf_chat(ALL, print_team_default, "^4*^1 Администратор ^3%s ^1снял молчанку с ^3%s^1.", user_name[id], user_name[index]);
}
else {
gagtime_menu(id);
}
}
else {
printf_chat (id, print_team_default, PL_LEAVED);
}
}

menu_destroy(menu);
return PH;
}

gagtime_menu(id)
{
static gagtime_menu_id;

if (is_valid_client(id)) {
if (!gagtime_menu_id) {
gagtime_menu_id = menu_create ("yВыберите времени молчанки", "gagtime_menu_handler");
menu_setprop (gagtime_menu_id, MPROP_EXITNAME, MENU_PROP_LIST[EXITNAME]);

for (new i; i < sizeof GAG_TIME; ++i) {
formatex(item_name, charsmax(item_name), "%.0f минут", (GAG_TIME[i] / 60.0));
menu_additem (gagtime_menu_id, item_name);
}
}

#if AMXX_VERSION_NUM < 183
set_pdata_int (id, m_iMenu, MENU_OFF);
#endif
menu_display (id, gagtime_menu_id);
}

return PH;
}

public gagtime_menu_handler (id, menu, item)
{
if (item != MENU_EXIT) {
ungag_time[gag_data[id]] = get_gametime() + GAG_TIME[item];
set_bit(is_gagged_by_admin, gag_data[id]);
set_bit(is_gagged_chat, gag_data[id]);
printf_chat(ALL, print_team_default, "^4*^1 Администратор %s заткнул %s на^3 %.0f^1 минут.", user_name[id], user_name[gag_data[id]], (GAG_TIME[item] / 60.0));
}

return PH;
}

gag_vault(id, mode)
{
static Float: ctime, sys_time, ungag_systime, ungag_systime_str[11];

ctime = get_gametime();
sys_time = get_systime();

if (mode == LOAD) {
ungag_systime = nvault_get (fpv_gag, user_steamid[id]);

if (!ungag_systime) {
ungag_systime = nvault_get (fpv_gag, user_ip[id]);
}

if (ungag_systime > sys_time) {
set_bit(is_gagged_by_admin, id);
set_bit(is_gagged_chat, id);
ungag_time[id] = ctime + float(ungag_systime - sys_time);
}
}
else {
ungag_systime = floatround(ungag_time[id] - ctime) + sys_time;

if (ungag_systime > sys_time) {
num_to_str(ungag_systime, ungag_systime_str, charsmax(ungag_systime_str));
nvault_set (fpv_gag, user_steamid[id], ungag_systime_str);
nvault_set (fpv_gag, user_ip[id], ungag_systime_str);
}
}
}

mute_menu (id)
{
if (is_valid_client(id)) {
if (players_num < 2) {
printf_chat (id, print_team_default, "%s На сервере менее 2х игроков", CHAT_INFO_PREFIX);
return PH;
}

new mute_menu_id = menu_create ("yЗаглушить игрока","mute_menu_handler");

static mute_menu_callback_id;

if (!mute_menu_callback_id) {
mute_menu_callback_id = menu_makecallback ("mute_menu_callback");
}

menu_setprop (mute_menu_id, MPROP_BACKNAME, MENU_PROP_LIST[BACKNAME]);
menu_setprop (mute_menu_id, MPROP_NEXTNAME, MENU_PROP_LIST[NEXTNAME]);
menu_setprop (mute_menu_id, MPROP_EXITNAME, MENU_PROP_LIST[EXITNAME]);

new user2;
if (!is_alive(id)) {
user2 = pev(id, pev_iuser2);
if (user2 && is_alive(user2)) {
item_info[0] = user2;
menu_additem (mute_menu_id, user_name[user2], item_info, 0, mute_menu_callback_id);
}
}
for (new i = 1; i <= max_players; ++i){
if(is_connected(i) && i != id && i != user2){
item_info[0] = i;
menu_additem (mute_menu_id, user_name[i], item_info, 0, mute_menu_callback_id);
}
}

#if AMXX_VERSION_NUM < 183
set_pdata_int (id, m_iMenu, MENU_OFF);
#endif
menu_display (id, mute_menu_id);
}

return PH;
}

public mute_menu_callback (id, menu, item)
{
static access, callback;

item_status = ITEM_ENABLED;

if (item == 0) {
if (is_gagged[id] == -1) {
copy (item_name, charsmax(item_name), "Заглушить всех y[rВклy]^n");
}
else {
copy (item_name, charsmax(item_name), "Заглушить всех y[rВыклy]^n");
}
}
else {
menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);

if (get_bit(is_gagged[id], item_info[0])) {
formatex (item_name, charsmax(item_name), "%s y[r+y]", user_name[item_info[0]]);
item_status = ITEM_ENABLED;
}
}

menu_item_setname (menu, item, item_name);

return item_status;
}

public mute_menu_handler (id, menu, item)
{
static need_announce, Float: ctime, Float: next_announce_time[MAX_CLIENTS + 1];

ctime = get_gametime();

need_announce = (ctime > next_announce_time[id]) ? 1 : 0;

if (item != MENU_EXIT) {
if (item == 0) {
if (is_gagged[id] == -1) {
is_gagged[id] = 0;

need_announce && printf_chat(ALL, print_team_default, "%s Игрок ^3%s^1 написал^3 /mute^1 (^4слышит всех^1)", CHAT_INFO_PREFIX, user_name[id]);
}
else {
is_gagged[id] = -1;
need_announce && printf_chat(ALL, print_team_default, "%s Игрок ^3%s^1 написал^3 /mute^1 (^4не слышит никого^1)", CHAT_INFO_PREFIX, user_name[id]);
}
}
else {
static access, callback;
menu_item_getinfo (menu, item, access, item_info, charsmax(item_info), item_name, charsmax(item_name), callback);

gag_data[id] = item_info[0];

if (is_connected(gag_data[id])) {
if (get_bit(is_gagged[id], gag_data[id])) {
clr_bit(is_gagged[id], gag_data[id]);
need_announce && printf_chat(ALL, print_team_default, "%s^3 Игрок %s^1 написал^3 /mute^1 (^4слышит %s^1)", CHAT_INFO_PREFIX, user_name[id], user_name[gag_data[id]]);
}
else {
set_bit(is_gagged[id], gag_data[id]);
need_announce && printf_chat(ALL, print_team_default, "%s^3 Игрок %s^1 написал^3 /mute^1 (^4не слышит %s^1)", CHAT_INFO_PREFIX, user_name[id], user_name[gag_data[id]]);
}
}
else {
printf_chat (id, print_team_default, PL_LEAVED);
}
}

menu_destroy(menu);
mute_menu (id);
}
else {
menu_destroy(menu);
}

next_announce_time[id] = ctime + 3.0;
return PH;
}

public plugin_end()
{
if (fpv_gag != INVALID_HANDLE) {
nvault_prune(fpv_gag, 0, get_systime(MAX_GAGTIME_AGO));
nvault_close(fpv_gag);
}

set_pcvar_num(pcv_alltalk, sv_alltalk);
}

Author

Message

Member

sawled's Avatar

Old

07-12-2014

, 03:06

 

Compile error 017: undefined symbol «fm_set_user_health»

Reply With Quote

#1


PHP Code:



public message_health(msg_idmsg_destmsg_entity)

{

    
// Get player's health

    
static health

    health 
get_msg_arg_int(1)
// Don't bother

    
if (health 256) return;
// Check if we need to fix it

    
if (health 256 == 0)

        
fm_set_user_health(msg_entitypev(msg_entitypev_health) + 1)
// HUD can only show as much as 255 hp

    
set_msg_arg_int(1get_msg_argtype(1), 255)






Error line —

PHP Code:



fm_set_user_health(msg_entitypev(msg_entitypev_health) + 1




sawled is offline

Veteran Member

Eagle07's Avatar

Join Date: May 2014

Location: Morocco :D

Old

07-12-2014

, 03:09

 

Re: Compile error 017: undefined symbol «fm_set_user_health»

Reply With Quote

#2


you need include
add

PHP Code:



#include <fakemeta_util> 




__________________


Last edited by Eagle07; 07-12-2014 at 03:21.

Eagle07 is offline

Senior Member

Mario AR.'s Avatar

Join Date: May 2011

Location: Lima, Per�

Old

07-12-2014

, 03:17

 

Re: Compile error 017: undefined symbol «fm_set_user_health»

Reply With Quote

#3


Add:

PHP Code:



#define fm_set_user_health(%0,%1) set_pev(%0,pev_health,%1) 




Mario AR. is offline

Has a lovely bunch of coconuts

YamiKaitou's Avatar

Join Date: Apr 2006

Location: Texas

Old

07-12-2014

, 03:22

 

Re: Compile error 017: undefined symbol «fm_set_user_health»

Reply With Quote

#4


There is no reason to use fm_set_user_health when set_user_health works just fine

__________________

ProjectYami Laboratories

I do not browse the forums regularly anymore. If you need me for anything (asking questions or anything else), then PM me (be descriptive in your PM, message containing only a link to a thread will be ignored).

YamiKaitou is offline

Member

sawled's Avatar

Old

07-12-2014

, 03:35

 

Re: Compile error 017: undefined symbol «fm_set_user_health»

Reply With Quote

#5


Quote:

Originally Posted by Eagle07
View Post

you need include
add

PHP Code:



#include <fakemeta_util> 




It worked, thank you all

sawled is offline

Veteran Member

fysiks's Avatar

Join Date: Sep 2007

Location: Flatland, USA

Old

07-12-2014

, 03:38

 

Re: Compile error 017: undefined symbol «fm_set_user_health»

Reply With Quote

#6


You should use set_user_health().

__________________

fysiks is offline

Old
07-12-2014, 03:39

Eagle07

This message has been deleted by YamiKaitou.
Reason: pointless posts

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Error 017 undefined symbol isvalidvehicle
  • Error 017 undefined symbol isvalidclient
  • Error 017 undefined symbol idx
  • Error 017 undefined symbol http
  • Error 017 undefined symbol help

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии