Run time error 10 native error native disablehamforward

[HAMSANDWICH] Invalid HamHook handle. Scripting Help
Author

Message

Senior Member

proffs's Avatar

Old

03-12-2014

, 10:21

 

[HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#1


I am getting this error from server logs:

Code:

L 03/12/2014 - 12:35:42: [HAMSANDWICH] Invalid HamHook handle.
L 03/12/2014 - 12:35:42: [AMXX] Displaying debug trace (plugin "now.amxx")
L 03/12/2014 - 12:35:42: [AMXX] Run time error 10: native error (native "DisableHamForward")
L 03/12/2014 - 12:35:42: [AMXX]    [0] now.sma::StopGame (line 2256)
L 03/12/2014 - 12:35:42: [AMXX]    [1] now.sma::LogEvent_RoundEnd (line 889)

PHP Code:



register_logevent"LogEvent_RoundEnd",     2"1=Round_End"     );

    
RegisterHamHam_Killed"player""Fwd_PlayerKilled"); 




PHP Code:



if(runningStatus)

            {

                
runningStatus 0

                
                unregister_forward

(FM_SetModelintSetModel)

                
unregister_forward(FM_CmdStartintCmdStart)

                
unregister_forward(FM_UpdateClientDataintCliendData)

                
unregister_forward(FM_TouchintTouch)

                
DisableHamForward(Forward_Killed);

                
DisableHamForward(Forward_TakeDamage);

                
unregister_forward(FM_TouchForward_Touch2);

                
unregister_forward(FM_PlayerPreThinkForward_PlayerPreThink);

                
unregister_forward(FM_AddToFullPackForward_Toggle0);

                
                for (new 

1<= g_pbcounta++)

                {

                    if (
g_pbstatus[a] != 0)

                    {

                        
paint_reset(g_paintballs[a]+1000);

                    }

                }

            } 




PHP Code:



public LogEvent_RoundEnd()

{    

    
StopGame();

    
    new 

players[32], num;

    
get_playersplayersnum"a" );

    
    for( new 

0numi++ )

    
show_menu00"^n");

    




What Am I doing wrong?

proffs is offline

AMX Mod X Plugin Approver

Arkshine's Avatar

Old

03-12-2014

, 10:25

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#2


I don’t see Forward_Killed/Forward_TakeDamage set.

__________________


Last edited by Arkshine; 03-12-2014 at 10:25.

Arkshine is offline

Senior Member

proffs's Avatar

Old

03-12-2014

, 11:17

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#3


PHP Code:



new     Forward_Touch2,
    
HamHook:Forward_Killed,
    
HamHook:Forward_TakeDamage,
    
Forward_PlayerPreThink,
    
Forward_Toggle 




PHP Code:



EnableHamForward(Forward_Killed)
EnableHamForward(Forward_TakeDamage





Last edited by proffs; 03-12-2014 at 11:17.

proffs is offline

AMX Mod X Plugin Approver

Arkshine's Avatar

Old

03-12-2014

, 11:22

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#4


Forward_Killed/Forward_TakeDamage are not set. You create the variables, but default value is 0, empty so. You are supposed to filled these variables with RegisterHam return value, otherwise how you can expect the module to know?

__________________

Arkshine is offline

Senior Member

proffs's Avatar

Old

03-12-2014

, 12:32

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#5


Quote:

Originally Posted by Arkshine
View Post

Forward_Killed/Forward_TakeDamage are not set. You create the variables, but default value is 0, empty so. You are supposed to filled these variables with RegisterHam return value, otherwise how you can expect the module to know?

So I need to return it?
I dont get a shit, sorry.
Can you move this to request section and help me with it?
Thanks

proffs is offline

AMX Mod X Plugin Approver

Arkshine's Avatar

Old

03-12-2014

, 12:41

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#6


Forward_Killed = RegisterHam( Ham_Killed, «player», «Fwd_PlayerKilled», 1 );

Forward_Killed will contain an handle which can be used with EnableHamForward().

What you were doing was creating empty variable, so basically doing EnableHamForward(0) ; do you think module will be able to know what forward you’re talking about?

__________________


Last edited by Arkshine; 03-12-2014 at 12:43.

Arkshine is offline

Senior Member

proffs's Avatar

Old

03-12-2014

, 13:01

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#7


Quote:

Originally Posted by Arkshine
View Post

Forward_Killed = RegisterHam( Ham_Killed, «player», «Fwd_PlayerKilled», 1 );

Forward_Killed will contain an handle which can be used with EnableHamForward().

What you were doing was creating empty variable, so basically doing EnableHamForward(0) ; do you think module will be able to know what forward you’re talking about?

So I should remove the all of the variables
and have

PHP Code:



Forward_Killed RegisterHamHam_Killed"player""Fwd_PlayerKilled"); 




in plugin unit? So the module knows what Forward I am trying to enable?

proffs is offline

Veteran Member

ConnorMcLeod's Avatar

Join Date: Jul 2006

Location: France (95)

Old

03-12-2014

, 16:48

 

Re: [HAMSANDWICH] Invalid HamHook handle.

Reply With Quote

#8


If there is a public function Fwd_PlayerKilled in code and if you want to use it as a callback of function CBasePlayer::Killed, you need to set it using RegisterHam(Ham_Killed, «player», «Fwd_PlayerKilled», 0 or 1)

Once this is done, consider EnableHamForward and DisableHamForward as additional features.

__________________

ConnorMcLeod is offline

#1

slow

    Новичок

  • Пользователь
  • Pip

  • 7 сообщений

Отправлено 05 Июнь 2014 — 23:55

Здравствуйте, помогите пожалуйста решить проблему, вот логи:

L 06/06/2014 — 00:14:54: [AMXX] Displaying debug trace (plugin «zp_addon_supplybox_v1.1.amxx»)

L 06/06/2014 — 00:14:54: [AMXX] Run time error 10: native error (native «zp_force_buy_extra_item»)

L 06/06/2014 — 00:14:54: [AMXX]    [0] zp_addon_supplybox_v1.1.sma::fw_supplybox_touch (line 345)

L 06/06/2014 — 00:14:54: [ZP] Invalid extra item id (-1)

L 06/06/2014 — 00:30:24: [AMXX] Displaying debug trace (plugin «zp_addon_supplybox_v1.1.amxx»)

L 06/06/2014 — 00:30:24: [AMXX] Run time error 10: native error (native «zp_force_buy_extra_item»)

L 06/06/2014 — 00:30:24: [AMXX]    [0] zp_addon_supplybox_v1.1.sma::fw_supplybox_touch (line 345)

L 06/06/2014 — 00:33:21: [FUN] Invalid player 1

Код:

Нужная часть кода:

public show_supplybox_help()
{
	for(new i = 0; i < get_maxplayers(); i++)
	{
		if(is_user_alive(i) && is_user_connected(i) && !zp_get_user_zombie(i))
			client_print(i, print_center, "Вы видите припасы на экране!")
	}
}

Сообщение отредактировал slow: 06 Июнь 2014 — 12:27

  • Наверх


#2


BaHeK

BaHeK

    Пользователь

  • Модератор
  • 324 сообщений

Отправлено 06 Июнь 2014 — 20:10

  • Наверх


#3


slow

slow

    Новичок

  • Пользователь
  • Pip

  • 7 сообщений

Отправлено 06 Июнь 2014 — 21:11

Я могу ошибаться, но там же есть проверка на подключение игрока.

А как сделать проверку на валидность, я не понял.

Прошу помощи.

Сообщение отредактировал slow: 06 Июнь 2014 — 21:13

  • Наверх


#4


nox904

Отправлено 06 Июнь 2014 — 23:26

)=

Прикрепленные файлы

Сообщение отредактировал nox904: 06 Июнь 2014 — 23:31

  • Наверх


#5


slow

slow

    Новичок

  • Пользователь
  • Pip

  • 7 сообщений

Отправлено 07 Июнь 2014 — 12:29

Я читал это, писал выше, что не понял, и по этому прошу помощи.

  • Наверх


#6


Nizami

Nizami

    Новичок

  • Пользователь
  • Pip

  • 2 сообщений

Отправлено 30 Январь 2017 — 18:13

у меня тоже такой тиме ерор

  • Наверх


Содержание

  1. Run time error 10 native error native registerhookchain
  2. Run time error 10 native error native registerhookchain
  3. Izmayl7
  4. Run time error 10 native error native registerhookchain
  5. Run time error 10 native error native registerhookchain
  6. JailBreak Extreme : [AMXX] Run time error 10: native error
  7. JailBreak Extreme : [AMXX] Run time error 10: native error

Run time error 10 native error native registerhookchain

Hi everyone!
I searched a lot before doing this Thread.
The problem is forward hook_cvar_change() not working.
I used RH_Cvar_DirectSet from ReAPI, It doesn’t work either.

hook_cvar_change(): I changed the value in cvar, I don’t see any message:

This message appears when a server is activated:

// Global Variables.
new g_pCvar_iValue

// Forward called after server activation.
public plugin_init ()
<
// Load plugin.
register_plugin ( «[ZE] Set Rendering» , «1.0» , «z0h1r-LK» )

// Hook Chains.
RegisterHookChain ( RH_Cvar_DirectSet , «fw_Cvar_DirectSet_Post» , 1 )

// Cvars.
g_pCvar_iValue = register_cvar ( «amx_value» , «1» )
hook_cvar_change ( g_pCvar_iValue , «fw_CvarChange_Post» )
>

// Forward called when change value from cvar «amx_value».
public fw_CvarChange_Post ( pCvar , const szOldVal [], const szNewVal [])
<
// Print message on server console.
server_print ( «[AMXX] cvar: %d | old value: %s | new value: %s» , pCvar , szOldVal , szNewVal )
>

// Hook called when change value in any cvar.
public fw_Cvar_DirectSet_Post ( pCvar , const szVal [])
<
// Print message on server console.
server_print ( «[ReAPI] cvar: %d | value: %d» , pCvar , szVal )
>

I use:
OS: Windows
AMX Mod X v1.10.0.5461
ReAPI v5.21.0.252-dev
MetaMod-R v1.3.0.86
ReHLDS v3.10.0.759

Источник

Run time error 10 native error native registerhookchain

Доброго всем времени суток. Установил Ultimate Chats Control от неугомона (последняя версия). Вроде бы сделал все по инструкции. Меню мута и гага открываются, но после ничего не происходит. Жму на ники — меню просто пропадает. Прошу помощи у светлых и благородных умов разобраться, где я накосячил

upd: забыл вытянуть еще одну строку из логов. Полная ошибка выглядит так:

regamedll качал из этого сайта. cs.co кинул в dlls, конфиг в cstrike. Почему сервер его не видит — не знаю.
аналогично с reapi. Стоят последние версии.

upd: наткнулся на решение, может кому пригодится.

1. удалить строчку gamedll dlls/cs.so из конфига addons/metamod/config.ini

2. в папке cstrike/dlls/ из файлов касающиеся к gamedll оставить только cs.so

Izmayl7

Доброго всем времени суток. Установил Ultimate Chats Control от неугомона (последняя версия). Вроде бы сделал все по инструкции. Меню мута и гага открываются, но после ничего не происходит. Жму на ники — меню просто пропадает. Прошу помощи у светлых и благородных умов разобраться, где я накосячил

upd: забыл вытянуть еще одну строку из логов. Полная ошибка выглядит так:

regamedll качал из этого сайта. cs.co кинул в dlls, конфиг в cstrike. Почему сервер его не видит — не знаю.
аналогично с reapi. Стоят последние версии.

upd: наткнулся на решение, может кому пригодится.

Источник

Run time error 10 native error native registerhookchain

Something bad ,please help

[CSTRIKE] Invalid player 1
[AMXX] Displaying debug trace (plugin «alien.amxx»)
[AMXX] Run time error 10: native error (native «cs_get_user_team»)
[AMXX] [0] alien.sma::Spawn (line 30)

#define PLUGIN «Starts creating aliens vs predators»
#define VERSION «1.0»
#define AUTHOR «xbatista»

///This is alien///
new bool : alien [ 33 ]
new CvarZoomVision , CvarAlphaValue , MsgSetFOV

public plugin_init ()
<
register_plugin ( PLUGIN , VERSION , AUTHOR )

CvarZoomVision = register_cvar ( «alien_vision» , «120» )
CvarAlphaValue = register_cvar ( «alien_alpha» , «50» )

////spawn////
RegisterHam ( Ham_Spawn , «player» , «Spawn» , 1 )

MsgSetFOV = get_user_msgid ( «SetFOV» )
>
public Spawn ( id )
<
new CsTeams : team = cs_get_user_team ( id ) // Getting team
// new clip, ammo, wpnid = get_user_weapon(id, clip, ammo)

if ( team == CS_TEAM_T ) // Alien
<
set_user_health ( id , 500 )
screen_alien ( id )

// if ( wpnid == CSW_KNIFE )
// <
// set_pev(id, pev_viewmodel2, «models/alienknife.mdl»)
// >
cs_set_user_model ( id , «alien» ) // Set model Alien
alien [ id ] = true // If team terror then true
>
else if ( team == CS_TEAM_CT ) // Predator
<
set_user_health ( id , 400 )
/// if ( wpnid == CSW_KNIFE )
// <
// set_pev(id, pev_viewmodel2, «models/predatorknife.mdl»)
// >
alien [ id ] = false // If team ct false,is predator
cs_set_user_model ( id , «predator» ) // Set model Predator
>
>
public plugin_precache ()
<
precache_model ( «models/player/alien/alien.mdl» )
precache_model ( «models/player/predator/predator.mdl» )
precache_model ( «models/predatorknife.mdl» )
precache_model ( «models/alienknife.mdl» )
>
public Fadex ( index , red , green , blue , alpha )
<
message_begin ( MSG_ONE_UNRELIABLE , get_user_msgid ( «ScreenFade» ),< 0 , 0 , 0 >, index );
write_short ( 6 10 );
write_short ( 5 10 );
write_short ( 1 12 );
write_byte ( red );
write_byte ( green );
write_byte ( blue );
write_byte ( alpha );
message_end ();
>
public screen_alien ( id )
<
// Prevent cvar from being set too low
new Zoom = get_pcvar_num ( CvarZoomVision )

if ( Zoom 100 )
<
Zoom = 100
set_cvar_num ( «alien_vision» , Zoom )
>

// Set Zoom
message_begin ( MSG_ONE , MsgSetFOV , < 0 , 0 , 0 >, id )
write_byte ( Zoom )
message_end ()

// Set once before loop task
Fadex ( id , 0 , 255 , 0 , 170 );
set_user_rendering ( id , kRenderFxGlowShell , 0 , 0 , 0 , kRenderTransAlpha , get_pcvar_num ( CvarAlphaValue ))
>

Источник

Run time error 10 native error native registerhookchain

[N][E][M][E][C] писал(а): Самое интересное, с контры делают помойку. Ледяной шар и т.д. От сюда я считаю кс и пропала.

JailBreak Extreme : [AMXX] Run time error 10: native error

Модератор: liFe iS GoOD

  • Список форумовAMX Mod XВопросы по AMXX и его плагинам

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела «Болтовня».
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

JailBreak Extreme : [AMXX] Run time error 10: native error

data » 30 дек 2011, 22:17

#define TASK_STATUS 2487000
#define TASK_FREEDAY 2487100
#define TASK_ROUND 2487200
#define TASK_HELP 2487300
#define TASK_SAFETIME 2487400
#define TASK_FREEEND 2487500
#define TEAM_MENU «#Team_Select_Spect»
#define TEAM_MENU2 «#Team_Select_Spect»
#define HUD_DELAY Float:4.0
#define CELL_RADIUS Float:200.0

new gp_PrecacheSpawn
new gp_PrecacheKeyValue

new gp_CrowbarMax
new gp_CrowbarMul
new gp_TeamRatio
new gp_CtMax
new gp_BoxMax
new gp_TalkMode
new gp_VoiceBlock
new gp_RetryTime
new gp_RoundMax
new gp_ButtonShoot
new gp_SimonSteps
new gp_SimonRandom
new gp_GlowModels
new gp_AutoLastresquest
new gp_LastRequest
new gp_Motd
new gp_SpectRounds
new gp_NosimonRounds
new gp_AutoOpen
new gp_TeamChange

new g_MaxClients
new g_MsgStatusText
new g_MsgStatusIcon
new g_MsgVGUIMenu
new g_MsgShowMenu
new g_MsgClCorpse
new g_MsgMOTD

new gc_TalkMode
new gc_VoiceBlock
new gc_SimonSteps
new gc_ButtonShoot
new Float : gc_CrowbarMul

// Precache
new const _FistModels [][] = < «models/p_bknuckles.mdl» , «models/v_by_ssss.mdl» >
new const _CrowbarModels [][] = < «models/p_crowbar.mdl» , «models/v_crowbar.mdl» >
new const _FistSounds [][] = < «weapons/cbar_hitbod2.wav» , «weapons/cbar_hitbod1.wav» , «weapons/bullet_hit1.wav» , «weapons/bullet_hit2.wav» >
new const _RemoveEntities [][] = <
«func_hostage_rescue» , «info_hostage_rescue» , «func_bomb_target» , «info_bomb_target» ,
«hostage_entity» , «info_vip_start» , «func_vip_safetyzone» , «func_escapezone»
>

// Reasons
new const g_Reasons [][] = <
«» ,
«JBE_PRISONER_REASON_1» ,
«JBE_PRISONER_REASON_2» ,
«JBE_PRISONER_REASON_3» ,
«JBE_PRISONER_REASON_4» ,
«JBE_PRISONER_REASON_5» ,
«JBE_PRISONER_REASON_6»
>

// Colors: 0:Simon / 1:Freeday / 2:CT Duel / 3:TT Duel
new const g_Colors [][ 3 ] = < < 0 , 255 , 255 >, < 0 , 255 , 0 >, < 0 , 0 , 255 >, < 255 , 42 , 0 >>

new CsTeams : g_PlayerTeam [ 33 ]
new Float : g_SimonRandom
new Trie : g_CellManagers
new g_HelpText [ 512 ]
new g_JailDay
new g_PlayerJoin
new g_PlayerReason [ 33 ]
new g_PlayerSpect [ 33 ]
new g_PlayerSimon [ 33 ]
new g_PlayerNomic
new g_PlayerWanted
new g_PlayerCrowbar
new g_PlayerRevolt
new g_PlayerHelp
new g_PlayerFreeday
new g_PlayerLast
new g_FreedayAuto
new g_FreedayNext
new g_TeamCount [ CsTeams ]
new g_TeamAlive [ CsTeams ]
new g_BoxStarted
new g_CrowbarCount
new g_Simon
new g_SimonAllowed
new g_SimonTalking
new g_SimonVoice
new g_RoundStarted
new g_LastDenied
new g_Freeday
new g_BlockWeapons
new g_RoundEnd
new g_Duel
new g_DuelA
new g_DuelB
new g_SafeTime
new g_Buttons [ 10 ]

public plugin_init ()
<
unregister_forward ( FM_Spawn , gp_PrecacheSpawn )
unregister_forward ( FM_KeyValue , gp_PrecacheKeyValue )

register_plugin ( PLUGIN_NAME , PLUGIN_VERSION , PLUGIN_AUTHOR )
register_cvar ( PLUGIN_CVAR , PLUGIN_VERSION , FCVAR_SERVER | FCVAR_SPONLY )

register_dictionary ( «jbextreme.txt» )

g_MsgStatusText = get_user_msgid ( «StatusText» )
g_MsgStatusIcon = get_user_msgid ( «StatusIcon» )
g_MsgVGUIMenu = get_user_msgid ( «VGUIMenu» )
g_MsgShowMenu = get_user_msgid ( «ShowMenu» )
g_MsgMOTD = get_user_msgid ( «MOTD» )
g_MsgClCorpse = get_user_msgid ( «ClCorpse» )

register_message ( g_MsgStatusText , «msg_statustext» )
register_message ( g_MsgStatusIcon , «msg_statusicon» )
register_message ( g_MsgVGUIMenu , «msg_vguimenu» )
register_message ( g_MsgShowMenu , «msg_showmenu» )
register_message ( g_MsgMOTD , «msg_motd» )
register_message ( g_MsgClCorpse , «msg_clcorpse» )

register_event ( «CurWeapon» , «current_weapon» , «be» , «1=1» , «2=29» )
register_event ( «StatusValue» , «player_status» , «be» , «1=2» , «2!0» )
register_event ( «StatusValue» , «player_status» , «be» , «1=1» , «2=0» )

register_impulse ( 100 , «impulse_100» )

RegisterHam ( Ham_Spawn , «player» , «player_spawn» , 1 )
RegisterHam ( Ham_TakeDamage , «player» , «player_damage» )
RegisterHam ( Ham_TraceAttack , «player» , «player_attack» )
RegisterHam ( Ham_TraceAttack , «func_button» , «button_attack» )
RegisterHam ( Ham_Killed , «player» , «player_killed» , 1 )
RegisterHam ( Ham_Touch , «weapon_hegrenade» , «player_touchweapon» )
RegisterHam ( Ham_Touch , «weaponbox» , «player_touchweapon» )
RegisterHam ( Ham_Touch , «armoury_entity» , «player_touchweapon» )

register_forward ( FM_SetClientKeyValue , «set_client_kv» )
register_forward ( FM_EmitSound , «sound_emit» )
register_forward ( FM_Voice_SetClientListening , «voice_listening» )
register_forward ( FM_CmdStart , «player_cmdstart» , 1 )

register_logevent ( «round_end» , 2 , «1=Round_End» )
register_logevent ( «round_first» , 2 , «0=World triggered» , «1&Restart_Round_» )
register_logevent ( «round_first» , 2 , «0=World triggered» , «1=Game_Commencing» )
register_logevent ( «round_start» , 2 , «0=World triggered» , «1=Round_Start» )

register_menucmd ( register_menuid ( TEAM_MENU ), 51 , «team_select» )
register_menucmd ( register_menuid ( TEAM_MENU2 ), 51 , «team_select» )

register_clcmd ( «jointeam» , «cmd_jointeam» )
register_clcmd ( «joinclass» , «cmd_joinclass» )
register_clcmd ( «+simonvoice» , «cmd_voiceon» )
register_clcmd ( «-simonvoice» , «cmd_voiceoff» )

register_clcmd ( «say /fd» , «cmd_freeday» )
register_clcmd ( «say /freeday» , «cmd_freeday» )
register_clcmd ( «say /day» , «cmd_freeday» )
register_clcmd ( «say /lr» , «cmd_lastrequest» )
register_clcmd ( «say /lastrequest» , «cmd_lastrequest» )
register_clcmd ( «say /duel» , «cmd_lastrequest» )
register_clcmd ( «say /simon» , «cmd_simon» )
register_clcmd ( «say /open» , «cmd_open» )
register_clcmd ( «say /nomic» , «cmd_nomic» )
register_clcmd ( «say /box» , «cmd_box» )
register_clcmd ( «say /help» , «cmd_help» )

register_clcmd ( «jbe_freeday» , «adm_freeday» , ADMIN_RESERVATION )

gp_GlowModels = register_cvar ( «jbe_glowmodels» , «1» )
gp_SimonSteps = register_cvar ( «jbe_simonsteps» , «0» )
gp_CrowbarMul = register_cvar ( «jbe_crowbarmultiplier» , «25.0» )
gp_CrowbarMax = register_cvar ( «jbe_maxcrowbar» , «0» )
gp_TeamRatio = register_cvar ( «jbe_teamratio» , «3» )
gp_TeamChange = register_cvar ( «jbe_teamchange» , «0» ) // 0-disable team change for tt / 1-enable team change
gp_CtMax = register_cvar ( «jbe_maxct» , «5» )
gp_BoxMax = register_cvar ( «jbe_boxmax» , «12» )
gp_RetryTime = register_cvar ( «jbe_retrytime» , «17.0» )
gp_RoundMax = register_cvar ( «jbe_freedayround» , «360.0» )
gp_AutoLastresquest = register_cvar ( «jbe_autolastrequest» , «1» )
gp_LastRequest = register_cvar ( «jbe_lastrequest» , «1» )
gp_Motd = register_cvar ( «jbe_motd» , «1» )
gp_SpectRounds = register_cvar ( «jbe_spectrounds» , «3» )
gp_NosimonRounds = register_cvar ( «jbe_nosimonrounds» , «7» )
gp_SimonRandom = register_cvar ( «jbe_randomsimon» , «0» )
gp_AutoOpen = register_cvar ( «jbe_autoopen» , «1» )
gp_TalkMode = register_cvar ( «jbe_talkmode» , «2» ) // 0-alltak / 1-tt talk / 2-tt no talk
gp_VoiceBlock = register_cvar ( «jbe_blockvoice» , «0» ) // 0-dont block / 1-block voicerecord / 2-block voicerecord except simon
gp_ButtonShoot = register_cvar ( «jbe_buttonshoot» , «0» ) // 0-standard / 1-func_button shoots!

g_MaxClients = get_global_int ( GL_maxClients )

for ( new i = 0 ; i sizeof ( g_HudSync ); i ++)
g_HudSync [ i ][ _hudsync ] = CreateHudSyncObj ()

formatex ( g_HelpText , charsmax ( g_HelpText ), «%L^n^n%L^n^n%L^n^n%L» ,
LANG_SERVER , «JBE_HELP_TITLE» ,
LANG_SERVER , «JBE_HELP_BINDS» ,
LANG_SERVER , «JBE_HELP_GUARD_CMDS» ,
LANG_SERVER , «JBE_HELP_PRISONER_CMDS» )

setup_buttons ()
>

public plugin_precache ()
<
static i
precache_model ( «models/player/jail_ssss/jail_ssss.mdl» )
precache_model ( «models/player/jail_ssss_/jail_ssssT.mdl» )

for ( i = 0 ; i sizeof ( _FistModels ); i ++)
precache_model ( _FistModels [ i ])

for ( i = 0 ; i sizeof ( _CrowbarModels ); i ++)
precache_model ( _CrowbarModels [ i ])

for ( i = 0 ; i sizeof ( _FistSounds ); i ++)
precache_sound ( _FistSounds [ i ])

precache_sound ( «jailB_ssss/duelka.wav» )
precache_sound ( «jailB_ssss/brass_bell_C.wav» )

g_CellManagers = TrieCreate ()
gp_PrecacheSpawn = register_forward ( FM_Spawn , «precache_spawn» , 1 )
gp_PrecacheKeyValue = register_forward ( FM_KeyValue , «precache_keyvalue» , 1 )
>

public precache_spawn ( ent )
<
if ( is_valid_ent ( ent ))
<
static szClass [ 33 ]
entity_get_string ( ent , EV_SZ_classname , szClass , sizeof ( szClass ))
for ( new i = 0 ; i sizeof ( _RemoveEntities ); i ++)
if ( equal ( szClass , _RemoveEntities [ i ]))
remove_entity ( ent )
>
>

public precache_keyvalue ( ent , kvd_handle )
<
static info [ 32 ]
if (! is_valid_ent ( ent ))
return FMRES_IGNORED

get_kvd ( kvd_handle , KV_ClassName , info , charsmax ( info ))
if (! equal ( info , «multi_manager» ))
return FMRES_IGNORED

get_kvd ( kvd_handle , KV_KeyName , info , charsmax ( info ))
TrieSetCell ( g_CellManagers , info , ent )
return FMRES_IGNORED
>

public client_putinserver ( id )
<
clear_bit ( g_PlayerJoin , id )
clear_bit ( g_PlayerHelp , id )
clear_bit ( g_PlayerCrowbar , id )
clear_bit ( g_PlayerNomic , id )
clear_bit ( g_PlayerWanted , id )
clear_bit ( g_SimonTalking , id )
clear_bit ( g_SimonVoice , id )
g_PlayerSpect [ id ] = 0
g_PlayerSimon [ id ] = 0
>

public client_disconnect ( id )
<
if ( g_Simon == id )
<
g_Simon = 0
ClearSyncHud ( 0 , g_HudSync [ 2 ][ _hudsync ])
player_hudmessage ( 0 , 2 , 5.0 , _ , «%L» , LANG_SERVER , «JBE_SIMON_HASGONE» )
>
else if ( g_PlayerLast == id || ( g_Duel && ( id == g_DuelA || id == g_DuelB )))
<
g_Duel = 0
g_DuelA = 0
g_DuelB = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
>
team_count ()
>

public client_PostThink ( id )
<
if ( id != g_Simon || ! gc_SimonSteps || ! is_user_alive ( id ) ||
!( entity_get_int ( id , EV_INT_flags ) & FL_ONGROUND ) || entity_get_int ( id , EV_ENT_groundentity ))
return PLUGIN_CONTINUE

static Float : origin [ 3 ]
static Float : last [ 3 ]

entity_get_vector ( id , EV_VEC_origin , origin )
if ( get_distance_f ( origin , last ) 32.0 )
<
return PLUGIN_CONTINUE
>

vec_copy ( origin , last )
if ( entity_get_int ( id , EV_INT_bInDuck ))
origin [ 2 ] -= 18.0
else
origin [ 2 ] -= 36.0

message_begin ( MSG_BROADCAST , SVC_TEMPENTITY , < 0 , 0 , 0 >, 0 )
write_byte ( TE_WORLDDECAL )
write_coord ( floatround ( origin [ 0 ]))
write_coord ( floatround ( origin [ 1 ]))
write_coord ( floatround ( origin [ 2 ]))
write_byte ( 105 )
message_end ()

public msg_statustext ( msgid , dest , id )
<
return PLUGIN_HANDLED
>

public msg_statusicon ( msgid , dest , id )
<
static icon [ 5 ]
get_msg_arg_string ( 2 , icon , charsmax ( icon ))
if ( icon [ 0 ] == ‘b’ && icon [ 2 ] == ‘y’ && icon [ 3 ] == ‘z’ )
<
set_pdata_int ( id , 235 , get_pdata_int ( id , 235 ) &

( 1 0 ))
return PLUGIN_HANDLED
>

public msg_vguimenu ( msgid , dest , id )
<
static msgarg1
static CsTeams : team

msgarg1 = get_msg_arg_int ( 1 )
if ( msgarg1 == 2 )
<
team = cs_get_user_team ( id )
if (( team == CS_TEAM_T ) && ! is_user_admin ( id ) && ( is_user_alive ( id ) || ! get_pcvar_num ( gp_TeamChange )))
<
client_print ( id , print_center , «%L» , LANG_SERVER , «JBE_TEAM_CANTCHANGE» )
return PLUGIN_HANDLED
>
show_menu ( id , 51 , TEAM_MENU , — 1 )
return PLUGIN_HANDLED
>

public msg_showmenu ( msgid , dest , id )
<
static msgarg1 , roundloop
static CsTeams : team
msgarg1 = get_msg_arg_int ( 1 )

if ( msgarg1 != 531 && msgarg1 != 563 )
return PLUGIN_CONTINUE

roundloop = floatround ( get_pcvar_float ( gp_RetryTime ) / 2 )
team = cs_get_user_team ( id )

if ( team == CS_TEAM_T )
<
if (! is_user_admin ( id ) && ( is_user_alive ( id ) || ( g_RoundStarted >= roundloop ) || ! get_pcvar_num ( gp_TeamChange )))
<
client_print ( id , print_center , «%L» , LANG_SERVER , «JBE_TEAM_CANTCHANGE» )
return PLUGIN_HANDLED
>
else
<
show_menu ( id , 51 , TEAM_MENU , — 1 )
return PLUGIN_HANDLED
>
>
else
<
show_menu ( id , 51 , TEAM_MENU , — 1 )
return PLUGIN_HANDLED
>

public msg_motd ( msgid , dest , id )
<
if ( get_pcvar_num ( gp_Motd ))
return PLUGIN_HANDLED

public msg_clcorpse ( msgid , dest , id )
<
return PLUGIN_HANDLED
>

public current_weapon ( id )
<
if (! is_user_alive ( id ))
return PLUGIN_CONTINUE

if ( get_bit ( g_PlayerCrowbar , id ))
<
set_pev ( id , pev_viewmodel2 , _CrowbarModels [ 1 ])
set_pev ( id , pev_weaponmodel2 , _CrowbarModels [ 0 ])
>
else
<
set_pev ( id , pev_viewmodel2 , _FistModels [ 1 ])
set_pev ( id , pev_weaponmodel2 , _FistModels [ 0 ])
>
return PLUGIN_CONTINUE
>

public player_status ( id )
<
static type , player , CsTeams : team , name [ 32 ], health
type = read_data ( 1 )
player = read_data ( 2 )
switch ( type )
<
case ( 1 ):
<
ClearSyncHud ( id , g_HudSync [ 1 ][ _hudsync ])
>
case ( 2 ):
<
team = cs_get_user_team ( player )
if (( team != CS_TEAM_T ) && ( team != CS_TEAM_CT ))
return PLUGIN_HANDLED

health = get_user_health ( player )
get_user_name ( player , name , charsmax ( name ))
player_hudmessage ( id , 4 , 2.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER ,
( team == CS_TEAM_T ) ? «JBE_PRISONER_STATUS» : «JBE_GUARD_STATUS» , name , health )
>
>

return PLUGIN_HANDLED
>

public impulse_100 ( id )
<
if ( cs_get_user_team ( id ) == CS_TEAM_T )
return PLUGIN_HANDLED

public player_spawn ( id )
<
static CsTeams : team

if (! is_user_connected ( id ))
return HAM_IGNORED

set_pdata_float ( id , m_fNextHudTextArgsGameTime , get_gametime () + 999999.0 )
player_strip_weapons ( id )
if ( g_RoundEnd )
<
g_RoundEnd = 0
g_JailDay ++
>

set_user_rendering ( id , kRenderFxNone , 0 , 0 , 0 , kRenderNormal , 0 )

clear_bit ( g_PlayerCrowbar , id )
clear_bit ( g_PlayerWanted , id )
team = cs_get_user_team ( id )

switch ( team )
<
case ( CS_TEAM_T ):
<
g_PlayerLast = 0
if (! g_PlayerReason [ id ])
g_PlayerReason [ id ] = random_num ( 1 , 6 )

player_hudmessage ( id , 0 , 5.0 , < 255 , 0 , 255 >, «%L %L» , LANG_SERVER , «JBE_PRISONER_REASON» ,
LANG_SERVER , g_Reasons [ g_PlayerReason [ id ]])

set_user_info ( id , «model» , «jail_ssss» )
entity_set_int ( id , EV_INT_body , 2 )
if ( is_freeday () || get_bit ( g_FreedayAuto , id ))
<
freeday_set ( 0 , id )
clear_bit ( g_FreedayAuto , id )
>
else
<
entity_set_int ( id , EV_INT_skin , random_num ( 0 , 5 ))
>

if ( g_CrowbarCount get_pcvar_num ( gp_CrowbarMax ))
<
if ( random_num ( 0 , g_MaxClients ) > ( g_MaxClients / 2 ))
<
g_CrowbarCount ++
set_bit ( g_PlayerCrowbar , id )
>
>
cs_set_user_armor ( id , 0 , CS_ARMOR_NONE )
>
case ( CS_TEAM_CT ):
<
g_PlayerSimon [ id ]++
set_user_info ( id , «model» , «jail_ssss» )
entity_set_int ( id , EV_INT_body , 3 )
cs_set_user_armor ( id , 100 , CS_ARMOR_VESTHELM )
>
>
first_join ( id )
return HAM_IGNORED
>

public player_damage ( victim , ent , attacker , Float : damage , bits )
<
if (! is_user_connected ( victim ) || ! is_user_connected ( attacker ) || victim == attacker )
return HAM_IGNORED

switch ( g_Duel )
<
case ( 0 ):
<
if ( attacker == ent && get_user_weapon ( attacker ) == CSW_KNIFE && get_bit ( g_PlayerCrowbar , attacker ) && cs_get_user_team ( victim ) != CS_TEAM_T )
<
SetHamParamFloat ( 4 , damage * gc_CrowbarMul )
return HAM_OVERRIDE
>
>
case ( 2 ):
<
if ( attacker != g_PlayerLast )
return HAM_SUPERCEDE
>
default :
<
if (( victim == g_DuelA && attacker == g_DuelB ) || ( victim == g_DuelB && attacker == g_DuelA ))
return HAM_IGNORED

public player_attack ( victim , attacker , Float : damage , Float : direction [ 3 ], tracehandle , damagebits )
<
static CsTeams : vteam , CsTeams : ateam
if (! is_user_connected ( victim ) || ! is_user_connected ( attacker ) || victim == attacker )
return HAM_IGNORED

vteam = cs_get_user_team ( victim )
ateam = cs_get_user_team ( attacker )

if ( ateam == CS_TEAM_CT && vteam == CS_TEAM_CT )
return HAM_SUPERCEDE

switch ( g_Duel )
<
case ( 0 ):
<
if ( ateam == CS_TEAM_CT && vteam == CS_TEAM_T )
<
if ( get_bit ( g_PlayerRevolt , victim ))
<
clear_bit ( g_PlayerRevolt , victim )
hud_status ( 0 )
>
return HAM_IGNORED
>
>
case ( 2 ):
<
if ( attacker != g_PlayerLast )
return HAM_SUPERCEDE
>
default :
<
if (( victim == g_DuelA && attacker == g_DuelB ) || ( victim == g_DuelB && attacker == g_DuelA ))
return HAM_IGNORED

if ( ateam == CS_TEAM_T && vteam == CS_TEAM_T && ! g_BoxStarted )
return HAM_SUPERCEDE

if ( ateam == CS_TEAM_T && vteam == CS_TEAM_CT )
<
if (! g_PlayerRevolt )
revolt_start ()

set_bit ( g_PlayerRevolt , attacker )
>

public button_attack ( button , id , Float : damage , Float : direction [ 3 ], tracehandle , damagebits )
<
if ( is_valid_ent ( button ) && gc_ButtonShoot )
<
ExecuteHamB ( Ham_Use , button , id , 0 , 2 , 1.0 )
entity_set_float ( button , EV_FL_frame , 0.0 )
>

public player_killed ( victim , attacker , shouldgib )
<
static CsTeams : vteam , CsTeams : kteam
if (!( 0 attacker g_MaxClients ) || ! is_user_connected ( attacker ))
kteam = CS_TEAM_UNASSIGNED
else
kteam = cs_get_user_team ( attacker )

vteam = cs_get_user_team ( victim )
if ( g_Simon == victim )
<
g_Simon = 0
ClearSyncHud ( 0 , g_HudSync [ 2 ][ _hudsync ])
player_hudmessage ( 0 , 2 , 5.0 , _ , «%L» , LANG_SERVER , «JBE_SIMON_KILLED» )
>

switch ( g_Duel )
<
case ( 0 ):
<
switch ( vteam )
<
case ( CS_TEAM_CT ):
<
if ( kteam == CS_TEAM_T && ! get_bit ( g_PlayerWanted , attacker ))
<
set_bit ( g_PlayerWanted , attacker )
entity_set_int ( attacker , EV_INT_skin , 7 )
if ( get_pcvar_num ( gp_GlowModels ))
player_glow ( attacker , g_Colors [ 3 ])
>
>
case ( CS_TEAM_T ):
<
clear_bit ( g_PlayerRevolt , victim )
clear_bit ( g_PlayerWanted , victim )
>
>
>
default :
<
if ( g_Duel != 2 && ( attacker == g_DuelA || attacker == g_DuelB ))
<
set_user_rendering ( victim , kRenderFxNone , 0 , 0 , 0 , kRenderNormal , 0 )
set_user_rendering ( attacker , kRenderFxNone , 0 , 0 , 0 , kRenderNormal , 0 )
g_Duel = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_PlayerLast = 0
team_count ()
>
>
>
hud_status ( 0 )
return HAM_IGNORED
>

public player_touchweapon ( id , ent )
<
static model [ 32 ], class [ 32 ]
if ( g_BlockWeapons )
return HAM_SUPERCEDE

if ( is_valid_ent ( id ) && g_Duel != 6 && is_user_alive ( ent ) && cs_get_user_team ( ent ) == CS_TEAM_CT )
<
entity_get_string ( id , EV_SZ_model , model , charsmax ( model ))
if ( model [ 7 ] == ‘w’ && model [ 9 ] == ‘h’ && model [ 10 ] == ‘e’ && model [ 11 ] == ‘g’ )
<
entity_get_string ( id , EV_SZ_classname , class , charsmax (class))
if ( equal (class, «weapon_hegrenade» ))
remove_entity ( id )

public set_client_kv ( id , const info [], const key [])
<
if ( equal ( key , «model» ))
return FMRES_SUPERCEDE

public sound_emit ( id , channel , sample [])
<
if ( is_user_alive ( id ) && equal ( sample , «weapons/knife_» , 14 ))
<
switch ( sample [ 17 ])
<
case ( ‘b’ ):
<
emit_sound ( id , CHAN_WEAPON , «weapons/cbar_hitbod2.wav» , 1.0 , ATTN_NORM , 0 , PITCH_NORM )
>
case ( ‘w’ ):
<
emit_sound ( id , CHAN_WEAPON , «weapons/cbar_hitbod1.wav» , 1.0 , ATTN_NORM , 0 , PITCH_LOW )
>
case ( ‘1’ , ‘2’ ):
<
emit_sound ( id , CHAN_WEAPON , «weapons/bullet_hit2.wav» , random_float ( 0.5 , 1.0 ), ATTN_NORM , 0 , PITCH_NORM )
>
>
return FMRES_SUPERCEDE
>
return FMRES_IGNORED
>

public voice_listening ( receiver , sender , bool : listen )
<
if (( receiver == sender ))
return FMRES_IGNORED

if ( is_user_admin ( sender ))
<
engfunc ( EngFunc_SetClientListening , receiver , sender , true )
return FMRES_SUPERCEDE
>

switch ( gc_VoiceBlock )
<
case ( 2 ):
<
if (( sender != g_Simon ) && (! get_bit ( g_SimonVoice , sender ) && gc_VoiceBlock ))
<
engfunc ( EngFunc_SetClientListening , receiver , sender , false )
return FMRES_SUPERCEDE
>
>
case ( 1 ):
<
if (! get_bit ( g_SimonVoice , sender ) && gc_VoiceBlock )
<
engfunc ( EngFunc_SetClientListening , receiver , sender , false )
return FMRES_SUPERCEDE
>
>
>
if (! is_user_alive ( sender ))
<
engfunc ( EngFunc_SetClientListening , receiver , sender , false )
return FMRES_SUPERCEDE
>

if ( sender == g_Simon )
<
engfunc ( EngFunc_SetClientListening , receiver , sender , true )
return FMRES_SUPERCEDE
>

if ( g_SimonTalking && ( sender != g_Simon ))
<
listen = false
>
else
<
static CsTeams : steam
steam = cs_get_user_team ( sender )
switch ( gc_TalkMode )
<
case ( 2 ):
<
listen = ( steam == CS_TEAM_CT )
>
case ( 1 ):
<
listen = ( steam == CS_TEAM_CT || steam == CS_TEAM_T )
>
>
>

engfunc ( EngFunc_SetClientListening , receiver , sender , listen )
return FMRES_SUPERCEDE
>

public player_cmdstart ( id , uc , random )
<
if ( is_user_alive ( id ) && g_Duel > 3 )
<
cs_set_user_bpammo ( id , _Duel [ g_Duel — 4 ][ _csw ], 1 )
>
>

public round_first ()
<
g_JailDay = 0
for ( new i = 1 ; i g_MaxClients ; i ++)
g_PlayerSimon [ i ] = 0

set_cvar_num ( «sv_alltalk» , 1 )
set_cvar_num ( «mp_roundtime» , 5 )
set_cvar_num ( «mp_limitteams» , 0 )
set_cvar_num ( «mp_autoteambalance» , 0 )
set_cvar_num ( «mp_tkpunish» , 0 )
set_cvar_num ( «mp_friendlyfire» , 1 )
round_end ()
>

public round_end ()
<
static CsTeams : team
static maxnosimon , spectrounds
g_SafeTime = 0
g_PlayerRevolt = 0
g_PlayerFreeday = 0
g_PlayerLast = 0
g_BoxStarted = 0
g_CrowbarCount = 0
g_Simon = 0
g_SimonAllowed = 0
g_RoundStarted = 0
g_LastDenied = 0
g_BlockWeapons = 0
g_TeamCount [ CS_TEAM_T ] = 0
g_TeamCount [ CS_TEAM_CT ] = 0
g_Freeday = 0
g_FreedayNext = ( random_num ( 0 , 99 ) >= 95 )
g_RoundEnd = 1
g_Duel = 0

remove_task ( TASK_STATUS )
remove_task ( TASK_FREEDAY )
remove_task ( TASK_FREEEND )
remove_task ( TASK_ROUND )
maxnosimon = get_pcvar_num ( gp_NosimonRounds )
spectrounds = get_pcvar_num ( gp_SpectRounds )
for ( new i = 1 ; i g_MaxClients ; i ++)
<
if (! is_user_connected ( i ))
continue

menu_cancel ( i )
team = cs_get_user_team ( i )
player_strip_weapons ( i )
switch ( team )
<
case ( CS_TEAM_CT ):
<
if ( g_PlayerSimon [ i ] > maxnosimon )
<
cmd_nomic ( i )
>
>
case ( CS_TEAM_SPECTATOR , CS_TEAM_UNASSIGNED ):
<
g_PlayerSpect [ i ]++
if ( g_PlayerSpect [ i ] > spectrounds )
<
client_cmd ( i , «disconnect» )
server_print ( «[ssss] Razyedeni za afk v spectorah #%i» , i )
>
else
<
show_menu ( i , 51 , TEAM_MENU , — 1 )
>
>
>
>
for ( new i = 0 ; i sizeof ( g_HudSync ); i ++)
ClearSyncHud ( 0 , g_HudSync [ i ][ _hudsync ])

public round_start ()
<
if ( g_RoundEnd )
return

team_count ()
if (! g_Simon && is_freeday ())
<
g_Freeday = 1
emit_sound ( 0 , CHAN_AUTO , «jailB_ssss/brass_bell_C.wav» , 1.0 , ATTN_NORM , 0 , PITCH_NORM )
check_freeday ( TASK_FREEDAY )
>
else
<
set_task ( 60.0 , «check_freeday» , TASK_FREEDAY )
>
set_task ( HUD_DELAY , «hud_status» , TASK_STATUS , _ , _ , «b» )
set_task ( get_pcvar_float ( gp_RetryTime ) + 1.0 , «safe_time» , TASK_SAFETIME )
set_task ( 300.0 , «freeday_end» , TASK_FREEDAY )
g_SimonRandom = get_pcvar_num ( gp_SimonRandom ) ? random_float ( 15.0 , 45.0 ) : 0.0
g_SimonAllowed = 1
g_FreedayNext = 0
>

public cmd_jointeam ( id )
<
return PLUGIN_HANDLED
>

public cmd_joinclass ( id )
<
return PLUGIN_HANDLED
>

public cmd_voiceon ( id )
<
client_cmd ( id , «+voicerecord» )
set_bit ( g_SimonVoice , id )
if ( g_Simon == id || is_user_admin ( id ))
set_bit ( g_SimonTalking , id )

public cmd_voiceoff ( id )
<
client_cmd ( id , «-voicerecord» )
clear_bit ( g_SimonVoice , id )
if ( g_Simon == id || is_user_admin ( id ))
clear_bit ( g_SimonTalking , id )

public cmd_simon ( id )
<
static CsTeams : team , name [ 32 ]
if (! is_user_connected ( id ))
return PLUGIN_HANDLED

team = cs_get_user_team ( id )
if ( g_SimonAllowed && ! g_Freeday && is_user_alive ( id ) && team == CS_TEAM_CT && ! g_Simon )
<
g_Simon = id
get_user_name ( id , name , charsmax ( name ))
entity_set_int ( id , EV_INT_body , 1 )
g_PlayerSimon [ id ]—

hud_status ( 0 )
>
return PLUGIN_HANDLED
>

public cmd_open ( id )
<
if ( id == g_Simon )
jail_open ()

public cmd_nomic ( id )
<
static CsTeams : team
team = cs_get_user_team ( id )
if ( team == CS_TEAM_CT )
<
server_print ( «JBE Transfered guard to prisoners team client #%i» , id )
if ( g_Simon == id )
<
g_Simon = 0
player_hudmessage ( 0 , 2 , 5.0 , _ , «%L» , LANG_SERVER , «JBE_SIMON_TRANSFERED» )
>
if (! is_user_admin ( id ))
set_bit ( g_PlayerNomic , id )

user_silentkill ( id )
cs_set_user_team ( id , CS_TEAM_T )
>
return PLUGIN_HANDLED
>

public cmd_box ( id )
<
static i
if (( id 0 ) || ( is_user_alive ( id ) && g_Simon == id ))
<
if ( g_TeamAlive [ CS_TEAM_T ] get_pcvar_num ( gp_BoxMax ) && g_TeamAlive [ CS_TEAM_T ] > 1 )
<
for ( i = 1 ; i g_MaxClients ; i ++)
if ( is_user_alive ( i ) && cs_get_user_team ( i ) == CS_TEAM_T )
set_user_health ( i , 100 )

set_cvar_num ( «mp_tkpunish» , 0 )
set_cvar_num ( «mp_friendlyfire» , 1 )
g_BoxStarted = 1
player_hudmessage ( 0 , 1 , 3.0 , _ , «%L» , LANG_SERVER , «JBE_GUARD_BOX» )
>
else
<
player_hudmessage ( id , 1 , 3.0 , _ , «%L» , LANG_SERVER , «JBE_GUARD_CANTBOX» )
>
>
return PLUGIN_HANDLED
>

public cmd_help ( id )
<
if ( id > g_MaxClients )
id -= TASK_HELP

remove_task ( TASK_HELP + id )
switch ( get_bit ( g_PlayerHelp , id ))
<
case ( 0 ):
<
set_bit ( g_PlayerHelp , id )
player_hudmessage ( id , 7 , 15.0 , < 230 , 100 , 10 >, «%s» , g_HelpText )
set_task ( 15.0 , «cmd_help» , TASK_HELP + id )
>
default :
<
clear_bit ( g_PlayerHelp , id )
ClearSyncHud ( id , g_HudSync [ 7 ][ _hudsync ])
>
>
>

public cmd_freeday ( id )
<
static menu , menuname [ 32 ], option [ 64 ]
if (! is_freeday () && (( is_user_alive ( id ) && g_Simon == id )))
<
formatex ( menuname , charsmax ( menuname ), «%L» , LANG_SERVER , «JBE_MENU_FREEDAY» )
menu = menu_create ( menuname , «freeday_choice» )

formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_FREEDAY_PLAYER» )
menu_additem ( menu , option , «1» , 0 )

formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_FREEDAY_ALL» )
menu_additem ( menu , option , «2» , 0 )

menu_display ( id , menu )
>
else <
client_print ( id , print_chat , «Р’С‹ РЅРµ Саймон!» )
>
return PLUGIN_HANDLED
>

public cmd_freeday_player ( id )
<
if (( is_user_alive ( id ) && g_Simon == id ))
menu_players ( id , CS_TEAM_T , id , 1 , «freeday_select» , «%L» , LANG_SERVER , «JBE_MENU_FREEDAY» )

public cmd_lastrequest ( id )
<
static i , num [ 5 ], menu , menuname [ 32 ], option [ 64 ]
if (! get_pcvar_num ( gp_LastRequest ) || g_LastDenied || id != g_PlayerLast || g_RoundEnd || ! is_user_alive ( id ))
return PLUGIN_CONTINUE

formatex ( menuname , charsmax ( menuname ), «%L» , LANG_SERVER , «JBE_MENU_LASTREQ» )
menu = menu_create ( menuname , «lastrequest_select» )

formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_LASTREQ_OPT1» )
menu_additem ( menu , option , «1» , 0 )

formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_LASTREQ_OPT2» )
menu_additem ( menu , option , «2» , 0 )

formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_LASTREQ_OPT3» )
menu_additem ( menu , option , «3» , 0 )

for ( i = 0 ; i sizeof ( _Duel ); i ++)
<
num_to_str ( i + 4 , num , charsmax ( num ))
formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , _Duel [ i ][ _opt ])
menu_additem ( menu , option , num , 0 )
>

menu_display ( id , menu )
return PLUGIN_CONTINUE
>

public adm_freeday ( id )
<
static player , user [ 32 ]
if (! is_user_admin ( id ))
return PLUGIN_CONTINUE

read_argv ( 1 , user , charsmax ( user ))
player = cmd_target ( id , user , 2 )
if ( is_user_connected ( player ) && cs_get_user_team ( player ) == CS_TEAM_T )
<
freeday_set ( id , player )
>
return PLUGIN_HANDLED
>

public team_select ( id , key )
<
static CsTeams : team , roundloop , admin

roundloop = get_pcvar_num ( gp_RetryTime ) / 2
team = cs_get_user_team ( id )
admin = is_user_admin ( id )
team_count ()

if (! admin && ( team == CS_TEAM_UNASSIGNED ) && ( g_RoundStarted >= roundloop ) && g_TeamCount [ CS_TEAM_CT ] && g_TeamCount [ CS_TEAM_T ] && ! is_user_alive ( id ))
<
team_join ( id , CS_TEAM_SPECTATOR )
client_print ( id , print_center , «%L» , LANG_SERVER , «JBE_TEAM_CANTJOIN» )
return PLUGIN_HANDLED
>

switch ( key )
<
case ( 0 ):
<
if ( team == CS_TEAM_T )
return PLUGIN_HANDLED

g_PlayerReason [ id ] = random_num ( 1 , 6 )

team_join ( id , CS_TEAM_T )
>
case ( 1 ):
<
if ( team == CS_TEAM_CT || (! admin && get_bit ( g_PlayerNomic , id )))
return PLUGIN_HANDLED

if ( g_TeamCount [ CS_TEAM_CT ] ctcount_allowed () || admin )
team_join ( id , CS_TEAM_CT )
else
client_print ( id , print_center , «%L» , LANG_SERVER , «JBE_TEAM_CTFULL» )
>
case ( 5 ):
<
user_silentkill ( id )
team_join ( id , CS_TEAM_SPECTATOR )
>
>
return PLUGIN_HANDLED
>

public team_join ( id , CsTeams : team )
<
static restore , vgui , msgblock

restore = get_pdata_int ( id , m_iVGUI )
vgui = restore & ( 1 0 )
if ( vgui )
set_pdata_int ( id , m_iVGUI , restore &

switch ( team )
<
case CS_TEAM_SPECTATOR :
<
msgblock = get_msg_block ( g_MsgShowMenu )
set_msg_block ( g_MsgShowMenu , BLOCK_ONCE )
dllfunc ( DLLFunc_ClientPutInServer , id )
set_msg_block ( g_MsgShowMenu , msgblock )
set_pdata_int ( id , m_fGameHUDInitialized , 1 )
engclient_cmd ( id , «jointeam» , «6» )
>
case CS_TEAM_T , CS_TEAM_CT :
<
msgblock = get_msg_block ( g_MsgShowMenu )
set_msg_block ( g_MsgShowMenu , BLOCK_ONCE )
engclient_cmd ( id , «jointeam» , ( team == CS_TEAM_CT ) ? «2» : «1» )
engclient_cmd ( id , «joinclass» , «1» )
set_msg_block ( g_MsgShowMenu , msgblock )
g_PlayerSpect [ id ] = 0
>
>

if ( vgui )
set_pdata_int ( id , m_iVGUI , restore )
>

public team_count ()
<
static CsTeams : team , last
g_TeamCount [ CS_TEAM_UNASSIGNED ] = 0
g_TeamCount [ CS_TEAM_T ] = 0
g_TeamCount [ CS_TEAM_CT ] = 0
g_TeamCount [ CS_TEAM_SPECTATOR ] = 0
g_TeamAlive [ CS_TEAM_UNASSIGNED ] = 0
g_TeamAlive [ CS_TEAM_T ] = 0
g_TeamAlive [ CS_TEAM_CT ] = 0
g_TeamAlive [ CS_TEAM_SPECTATOR ] = 0
for ( new i = 1 ; i g_MaxClients ; i ++)
<
if ( is_user_connected ( i ))
<
team = cs_get_user_team ( i )
g_TeamCount [ team ]++
g_PlayerTeam [ i ] = team
if ( is_user_alive ( i ))
<
g_TeamAlive [ team ]++
if ( team == CS_TEAM_T )
last = i
>
>
else
<
g_PlayerTeam [ i ] = CS_TEAM_UNASSIGNED
>
>
if ( g_TeamAlive [ CS_TEAM_T ] == 1 )
<
if ( last != g_PlayerLast && g_SafeTime )
<
prisoner_last ( last )
>
>
else
<
if ( g_Duel || g_DuelA || g_DuelB )
<
if ( is_user_alive ( g_DuelA ))
<
set_user_rendering ( g_DuelA , kRenderFxNone , 0 , 0 , 0 , kRenderNormal , 0 )
player_strip_weapons ( g_DuelA )
>

if ( is_user_alive ( g_DuelB ))
<
set_user_rendering ( g_DuelB , kRenderFxNone , 0 , 0 , 0 , kRenderNormal , 0 )
player_strip_weapons ( g_DuelB )
>

>
g_PlayerLast = 0
g_DuelA = 0
g_DuelB = 0
g_Duel = 0
>
>

public revolt_start ()
<
client_cmd ( 0 , «speak ambience/siren» )
set_task ( 8.0 , «stop_sound» )
hud_status ( 0 )
>

public stop_sound ( task )
<
client_cmd ( 0 , «stopsound» )
>

public hud_status ( task )
<
static i , n
new name [ 32 ], szStatus [ 64 ], wanted [ 1024 ]

if ( g_RoundStarted ( get_pcvar_num ( gp_RetryTime ) / 2 ))
g_RoundStarted ++

if (! g_Freeday && ! g_Simon && g_SimonAllowed && ( 0.0 g_SimonRandom get_gametime ()))
<
cmd_simon ( random_num ( 1 , g_MaxClients ))
>

n = 0
formatex ( wanted , charsmax ( wanted ), «%L» , LANG_SERVER , «JBE_PRISONER_WANTED» )
n = strlen ( wanted )
for ( i = 0 ; i g_MaxClients ; i ++)
<
if ( get_bit ( g_PlayerWanted , i ) && is_user_alive ( i ) && n charsmax ( wanted ))
<
get_user_name ( i , name , charsmax ( name ))
n += copy ( wanted [ n ], charsmax ( wanted ) — n , «^n^t» )
n += copy ( wanted [ n ], charsmax ( wanted ) — n , name )
>
>

team_count ()
formatex ( szStatus , charsmax ( szStatus ), «%L» , LANG_SERVER , «JBE_STATUS» , g_TeamAlive [ CS_TEAM_T ], g_TeamCount [ CS_TEAM_T ])
message_begin ( MSG_BROADCAST , get_user_msgid ( «StatusText» ), < 0 , 0 , 0 >, 0 )
write_byte ( 0 )
write_string ( szStatus )
message_end ()

if ( g_Simon )
<
get_user_name ( g_Simon , name , charsmax ( name ))
player_hudmessage ( 0 , 2 , HUD_DELAY + 1.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_SIMON_FOLLOW» , name )
>
else if ( g_Freeday )
<
player_hudmessage ( 0 , 2 , HUD_DELAY + 1.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_STATUS_FREEDAY» )
>

if ( g_PlayerWanted )
player_hudmessage ( 0 , 3 , HUD_DELAY + 1.0 , < 255 , 25 , 50 >, «%s» , wanted )
else if ( g_PlayerRevolt )
player_hudmessage ( 0 , 3 , HUD_DELAY + 1.0 , < 255 , 25 , 50 >, «%L» , LANG_SERVER , «JBE_PRISONER_REVOLT» )

player_hudmessage ( 0 , 5 , HUD_DELAY + 1.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_STATUS_DAY» , g_JailDay )

gc_TalkMode = get_pcvar_num ( gp_TalkMode )
gc_VoiceBlock = get_pcvar_num ( gp_VoiceBlock )
gc_SimonSteps = get_pcvar_num ( gp_SimonSteps )
gc_ButtonShoot = get_pcvar_num ( gp_ButtonShoot )
gc_CrowbarMul = get_pcvar_float ( gp_CrowbarMul )

public safe_time ( task )
<
g_SafeTime = 1
>

public check_freeday ( task )
<
static Float : roundmax , i
if (! g_Simon && ! g_PlayerLast )
<
g_Freeday = 1
hud_status ( 0 )
roundmax = get_pcvar_float ( gp_RoundMax )
if ( roundmax > 0.0 )
<
for ( i = 1 ; i g_MaxClients ; i ++)
<
if ( is_user_alive ( i ) && cs_get_user_team ( i ) == CS_TEAM_T )
freeday_set ( 0 , i )
>
emit_sound ( 0 , CHAN_AUTO , «jailB_ssss/brass_bell_C.wav» , 1.0 , ATTN_NORM , 0 , PITCH_NORM )
player_hudmessage ( 0 , 8 , 3.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_STATUS_ENDTIMER» , floatround ( roundmax — 60.0 ))
remove_task ( TASK_ROUND )
set_task ( roundmax — 60.0 , «check_end» , TASK_ROUND )
>
>

if ( get_pcvar_num ( gp_AutoOpen ))
jail_open ()
>

public freeday_end ( task )
<
if ( g_Freeday || g_PlayerFreeday )
<
emit_sound ( 0 , CHAN_AUTO , «jailB_ssss/brass_bell_C.wav» , 1.0 , ATTN_NORM , 0 , PITCH_NORM )
player_hudmessage ( 0 , 8 , 3.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_STATUS_ENDFREEDAY» )
>
>

public check_end ( task )
<
team_count ()
for ( new i = 1 ; i g_MaxClients ; i ++)
<
if ( g_PlayerTeam [ i ] == CS_TEAM_T && is_user_alive ( i ))
<
user_silentkill ( i )
cs_set_user_deaths ( i , get_user_deaths ( i ) — 1 )
>
>
for ( new i = 1 ; i g_MaxClients ; i ++)
<
if ( g_PlayerTeam [ i ] == CS_TEAM_CT && is_user_alive ( i ))
<
user_silentkill ( i )
cs_set_user_deaths ( i , get_user_deaths ( i ) — 1 )
>
>
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_STATUS_ROUNDEND» )
>

public prisoner_last ( id )
<
static name [ 32 ], Float : roundmax
if ( is_user_alive ( id ) && cs_get_user_team ( id ) == CS_TEAM_T )
<
roundmax = get_pcvar_float ( gp_RoundMax )
get_user_name ( id , name , charsmax ( name ))
g_PlayerLast = id
player_hudmessage ( 0 , 6 , 5.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_PRISONER_LAST» , name )
remove_task ( TASK_ROUND )
if ( roundmax > 0.0 )
<
player_hudmessage ( 0 , 8 , 3.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_STATUS_ENDTIMER» , floatround ( roundmax — 60.0 ))
set_task ( roundmax — 60.0 , «check_end» , TASK_ROUND )
>
if (( g_TeamAlive [ CS_TEAM_CT ] > 0 ) && get_pcvar_num ( gp_AutoLastresquest ))
cmd_lastrequest ( id )
>
>

public freeday_select ( id , menu , item )
<
if ( item == MENU_EXIT )
<
menu_destroy ( menu )
return PLUGIN_HANDLED
>

static dst [ 32 ], data [ 5 ], player , access , callback

menu_item_getinfo ( menu , item , access , data , charsmax ( data ), dst , charsmax ( dst ), callback )
player = str_to_num ( data )
freeday_set ( id , player )
return PLUGIN_HANDLED
>

public duel_knives ( id , menu , item )
<
if ( item == MENU_EXIT )
<
menu_destroy ( menu )
g_LastDenied = 0
return PLUGIN_HANDLED
>

static dst [ 32 ], data [ 5 ], access , callback , option [ 128 ], player , src [ 32 ]

menu_item_getinfo ( menu , item , access , data , charsmax ( data ), dst , charsmax ( dst ), callback )
get_user_name ( id , src , charsmax ( src ))
player = str_to_num ( data )
formatex ( option , charsmax ( option ), «%L^n%L» , LANG_SERVER , «JBE_MENU_LASTREQ_SEL3» , src , LANG_SERVER , «JBE_MENU_DUEL_SEL» , src , dst )
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, option )

g_DuelA = id
clear_bit ( g_PlayerCrowbar , id )
player_strip_weapons ( id )
player_glow ( id , g_Colors [ 3 ])
set_user_health ( id , 100 )

g_DuelB = player
player_strip_weapons ( player )
player_glow ( player , g_Colors [ 2 ])
set_user_health ( player , 100 )
g_BlockWeapons = 1
return PLUGIN_HANDLED
>

public duel_guns ( id , menu , item )
<
if (!( 4 g_Duel 7 ))
return PLUGIN_HANDLED

if ( item == MENU_EXIT )
<
menu_destroy ( menu )
g_LastDenied = 0
g_Duel = 0
return PLUGIN_HANDLED
>

static gun , dst [ 32 ], data [ 5 ], access , callback , option [ 128 ], player , src [ 32 ]

menu_item_getinfo ( menu , item , access , data , charsmax ( data ), dst , charsmax ( dst ), callback )
get_user_name ( id , src , charsmax ( src ))
player = str_to_num ( data )
formatex ( option , charsmax ( option ), «%L^n%L» , LANG_SERVER , _Duel [ g_Duel — 4 ][ _sel ], src , LANG_SERVER , «JBE_MENU_DUEL_SEL» , src , dst )
emit_sound ( 0 , CHAN_AUTO , «jailB_ssss/duelka.wav» , 1.0 , ATTN_NORM , 0 , PITCH_NORM )
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, option )

g_DuelA = id
clear_bit ( g_PlayerCrowbar , id )
player_strip_weapons ( id )
gun = give_item ( id , _Duel [ g_Duel — 4 ][ _entname ])
cs_set_weapon_ammo ( gun , 1 )
set_user_health ( id , 100 )
player_glow ( id , g_Colors [ 3 ])

g_DuelB = player
player_strip_weapons ( player )
gun = give_item ( player , _Duel [ g_Duel — 4 ][ _entname ])
cs_set_weapon_ammo ( gun , 1 )
set_user_health ( player , 100 )
player_glow ( player , g_Colors [ 2 ])

g_BlockWeapons = 1
return PLUGIN_HANDLED
>

public freeday_choice ( id , menu , item )
<
if ( item == MENU_EXIT )
<
menu_destroy ( menu )
return PLUGIN_HANDLED
>

static dst [ 32 ], data [ 5 ], access , callback

menu_item_getinfo ( menu , item , access , data , charsmax ( data ), dst , charsmax ( dst ), callback )
menu_destroy ( menu )
get_user_name ( id , dst , charsmax ( dst ))
switch ( data [ 0 ])
<
case ( ‘1’ ):
<
cmd_freeday_player ( id )
>
case ( ‘2’ ):
<
if (( id == g_Simon ) || is_user_admin ( id ))
<
g_Simon = 0
get_user_name ( id , dst , charsmax ( dst ))
client_print ( 0 , print_chat , «%s дал всем свободный день! гуляем. » , dst )
server_print ( «JBE Client %i gives freeday for everyone» , id )
check_freeday ( TASK_FREEDAY )
>
>
>
return PLUGIN_HANDLED
>

public lastrequest_select ( id , menu , item )
<
if ( item == MENU_EXIT )
<
menu_destroy ( menu )
return PLUGIN_HANDLED
>

static i , dst [ 32 ], data [ 5 ], access , callback , option [ 64 ]

menu_item_getinfo ( menu , item , access , data , charsmax ( data ), dst , charsmax ( dst ), callback )
get_user_name ( id , dst , charsmax ( dst ))
switch ( data [ 0 ])
<
case ( ‘1’ ):
<
formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_LASTREQ_SEL1» , dst )
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, option )
set_bit ( g_FreedayAuto , id )
user_silentkill ( id )
>
case ( ‘2’ ):
<
formatex ( option , charsmax ( option ), «%L» , LANG_SERVER , «JBE_MENU_LASTREQ_SEL2» , dst )
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, option )
g_Duel = 2
player_strip_weapons_all ()
i = random_num ( 0 , sizeof ( _WeaponsFree ) — 1 )
give_item ( id , _WeaponsFree [ i ])
g_BlockWeapons = 1
cs_set_user_bpammo ( id , _WeaponsFreeCSW [ i ], _WeaponsFreeAmmo [ i ])
>
case ( ‘3’ ):
<
g_Duel = 3
menu_players ( id , CS_TEAM_CT , 0 , 1 , «duel_knives» , «%L» , LANG_SERVER , «JBE_MENU_DUEL» )
>
default :
<
g_Duel = str_to_num ( data )
menu_players ( id , CS_TEAM_CT , 0 , 1 , «duel_guns» , «%L» , LANG_SERVER , «JBE_MENU_DUEL» )
>
>
g_LastDenied = 1
menu_destroy ( menu )
return PLUGIN_HANDLED
>

public setup_buttons ()
<
new ent [ 3 ]
new Float : origin [ 3 ]
new info [ 32 ]
new pos

while (( pos sizeof ( g_Buttons )) && ( ent [ 0 ] = engfunc ( EngFunc_FindEntityByString , ent [ 0 ], «classname» , «info_player_deathmatch» )))
<
pev ( ent [ 0 ], pev_origin , origin )
while (( ent [ 1 ] = engfunc ( EngFunc_FindEntityInSphere , ent [ 1 ], origin , CELL_RADIUS )))
<
if (! is_valid_ent ( ent [ 1 ]))
continue

entity_get_string ( ent [ 1 ], EV_SZ_classname , info , charsmax ( info ))
if (! equal ( info , «func_door» ))
continue

entity_get_string ( ent [ 1 ], EV_SZ_targetname , info , charsmax ( info ))
if (! info [ 0 ])
continue

if ( TrieKeyExists ( g_CellManagers , info ))
<
TrieGetCell ( g_CellManagers , info , ent [ 2 ])
>
else
<
ent [ 2 ] = engfunc ( EngFunc_FindEntityByString , 0 , «target» , info )
>

if ( is_valid_ent ( ent [ 2 ]) && ( in_array ( ent [ 2 ], g_Buttons , sizeof ( g_Buttons )) 0 ))
<
g_Buttons [ pos ] = ent [ 2 ]
pos ++
break
>
>
>
TrieDestroy ( g_CellManagers )
>

stock in_array ( needle , data [], size )
<
for ( new i = 0 ; i size ; i ++)
<
if ( data [ i ] == needle )
return i
>
return — 1
>

stock freeday_set ( id , player )
<
static src [ 32 ], dst [ 32 ]
get_user_name ( player , dst , charsmax ( dst ))

if ( is_user_alive ( player ) && ! get_bit ( g_PlayerWanted , player ))
<
set_bit ( g_PlayerFreeday , player )
entity_set_int ( player , EV_INT_skin , 6 )
if ( get_pcvar_num ( gp_GlowModels ))
player_glow ( player , g_Colors [ 1 ])

if ( 0 id g_MaxClients )
<
get_user_name ( id , src , charsmax ( src ))
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_GUARD_FREEDAYGIVE» , src , dst )
>
else if (! is_freeday ())
<
player_hudmessage ( 0 , 6 , 3.0 , < 0 , 255 , 0 >, «%L» , LANG_SERVER , «JBE_PRISONER_HASFREEDAY» , dst )
>
>
>

stock first_join ( id )
<
if (! get_bit ( g_PlayerJoin , id ))
<
set_bit ( g_PlayerJoin , id )
clear_bit ( g_PlayerHelp , id )
set_task ( 5.0 , «cmd_help» , TASK_HELP + id )
>
>

stock ctcount_allowed ()
<
static count
count = (( g_TeamCount [ CS_TEAM_T ] + g_TeamCount [ CS_TEAM_CT ]) / get_pcvar_num ( gp_TeamRatio ))
if ( count 2 )
count = 2
else if ( count > get_pcvar_num ( gp_CtMax ))
count = get_pcvar_num ( gp_CtMax )

stock player_hudmessage ( id , hudid , Float : time = 0.0 , color [ 3 ] = < 0 , 255 , 0 >, msg [], any . )
<
static text [ 512 ], Float : x , Float : y
x = g_HudSync [ hudid ][ _x ]
y = g_HudSync [ hudid ][ _y ]

if ( time > 0 )
set_hudmessage ( color [ 0 ], color [ 1 ], color [ 2 ], x , y , 0 , 0.00 , time , 0.00 , 0.00 )
else
set_hudmessage ( color [ 0 ], color [ 1 ], color [ 2 ], x , y , 0 , 0.00 , g_HudSync [ hudid ][ _time ], 0.00 , 0.00 )

vformat ( text , charsmax ( text ), msg , 6 )
ShowSyncHudMsg ( id , g_HudSync [ hudid ][ _hudsync ], text )
>

stock menu_players ( id , CsTeams : team , skip , alive , callback [], title [], any . )
<
static i , name [ 32 ], num [ 5 ], menu , menuname [ 32 ]
vformat ( menuname , charsmax ( menuname ), title , 7 )
menu = menu_create ( menuname , callback )
for ( i = 1 ; i g_MaxClients ; i ++)
<
if (! is_user_connected ( i ) || ( alive && ! is_user_alive ( i )) || ( skip == i ))
continue

if (!( team == CS_TEAM_T || team == CS_TEAM_CT ) || (( team == CS_TEAM_T || team == CS_TEAM_CT ) && ( cs_get_user_team ( i ) == team )))
<
get_user_name ( i , name , charsmax ( name ))
num_to_str ( i , num , charsmax ( num ))
menu_additem ( menu , name , num , 0 )
>
>
menu_display ( id , menu )
>

stock player_glow ( id , color [ 3 ], amount = 40 )
<
set_user_rendering ( id , kRenderFxGlowShell , color [ 0 ], color [ 1 ], color [ 2 ], kRenderNormal , amount )
>

stock player_strip_weapons ( id )
<
strip_user_weapons ( id )
give_item ( id , «weapon_knife» )
set_pdata_int ( id , m_iPrimaryWeapon , 0 )
>

stock player_strip_weapons_all ()
<
for ( new i = 1 ; i g_MaxClients ; i ++)
<
if ( is_user_alive ( i ))
<
player_strip_weapons ( i )
>
>
>

stock is_freeday ()
<
return ( g_FreedayNext || g_Freeday || ( g_JailDay == 1 ))
>

public jail_open ()
<
static i
for ( i = 0 ; i sizeof ( g_Buttons ); i ++)
<
if ( g_Buttons [ i ])
<
ExecuteHamB ( Ham_Use , g_Buttons [ i ], 0 , 0 , 1 , 1.0 )
entity_set_float ( g_Buttons [ i ], EV_FL_frame , 0.0 )
>
>
>

Код: Выделить всё L 01/01/2012 — 17:15:59: [FUN] Invalid player 8
L 01/01/2012 — 17:15:59: [AMXX] Displaying debug trace (plugin «jbextreme.amxx»)
L 01/01/2012 — 17:15:59: [AMXX] Run time error 10: native error (native «strip_user_weapons»)
L 01/01/2012 — 17:15:59: [AMXX] [0] jbextreme.sma::player_strip_weapons (line 1790)
L 01/01/2012 — 17:15:59: [AMXX] [1] jbextreme.sma::duel_guns (line 1557)

[L 01/02/2012 — 03:36:56: [FUN] Player out of range (0)
L 01/02/2012 — 03:36:56: [AMXX] Displaying debug trace (plugin «jbextreme.amxx»)
L 01/02/2012 — 03:36:56: [AMXX] Run time error 10: native error (native «set_user_rendering»)
L 01/02/2012 — 03:36:56: [AMXX] [0] jbextreme.sma::player_killed (line 737)

L 01/04/2012 — 21:30:22: [CSTRIKE] Invalid player 32
L 01/04/2012 — 21:30:22: [AMXX] Displaying debug trace (plugin «jbextreme.amxx»)
L 01/04/2012 — 21:30:22: [AMXX] Run time error 10: native error (native «cs_get_user_team»)
L 01/04/2012 — 21:30:22: [AMXX] [0] jbextreme.sma::player_status (line 508)

L 01/06/2012 — 00:22:37: [CSTRIKE] Non-player entity -1 out of range
L 01/06/2012 — 00:22:37: [AMXX] Displaying debug trace (plugin «jbextreme.amxx»)
L 01/06/2012 — 00:22:37: [AMXX] Run time error 10: native error (native «cs_set_weapon_ammo»)
L 01/06/2012 — 00:22:37: [AMXX] [0] jbextreme.sma::duel_guns (line 1559)

L 01/09/2012 — 00:51:47: [CSTRIKE] Non-player entity -1 out of range
L 01/09/2012 — 00:51:47: [AMXX] Displaying debug trace (plugin «jbextreme.amxx»)
L 01/09/2012 — 00:51:47: [AMXX] Run time error 10: native error (native «cs_set_weapon_ammo»)
L 01/09/2012 — 00:51:47: [AMXX] [0] jbextreme.sma::duel_guns (line 1552)

код большой(
ниже буду ошибки выкладывать!

Источник

Понравилась статья? Поделить с друзьями:
  • Run time error 91 swplus
  • Run time adodb error
  • Run time error 91 object variable not set excel vba
  • Run this application has encountered a critical error wow
  • Run time error 91 excel object variable or with block variable not set