Русское сообщество по скриптингу

prookreedz Run time error 10: native error

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

prookreedz Run time error 10: native error

Сообщение cart3r » 10 фев 2017, 13:56

Здравствуйте.
Перешел на ReHLDS
сборка 48/1.1.2.7/Stdio 1029 secure
ReGameDLL не ставил (с ним сразу крашится сервер)

Так Же перешел на Reamxmodx v7
Лог:

Код: Выделить всё
[AMXX] Displaying debug trace (plugin "prokreedz.amxx", version "unknown")
[AMXX] Run time error 10: native error (native "ShowSyncHudMsg")
[AMXX] [0] prokreedz.sma::kz_hud_message (line 1512)
[AMXX] [1] prokreedz.sma::curweapon (line 633)

строчка

Код: Выделить всё
1511 set_hudmessage(str_to_num®str_to_num(g), str_to_num(b), -1.00.9000.02.00.01.0, -1);
1512 ShowSyncHudMsg(idhud_messagemsg); 

Код: Выделить всё
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <colorchat>
#include <fakemeta>
#include <hamsandwich>
  
#define KZ_LEVEL ADMIN_KICK 
#define MAX_ENTITYS 900+15*32
 
#define SCOREATTRIB_NONE    0
#define SCOREATTRIB_DEAD    ( 1 << 0 )
#define SCOREATTRIB_BOMB    ( 1 << 1 )
#define SCOREATTRIB_VIP  ( 1 << 2 )
 
#if cellbits == 32
   #define OFFSET_BUYZONE 235
#else
   #define OFFSET_BUYZONE 268
#endif
 
new g_iPlayers[32], g_iNumg_iPlayer
new const g_szAliveFlags[] = "a"
#define RefreshPlayersList()    get_players(g_iPlayers, g_iNum, g_szAliveFlags) 
 
new const FL_ONGROUND2 = ( FL_ONGROUND FL_PARTIALGROUND FL_INWATER |  FL_CONVEYOR FL_FLOAT )
new const 
KZ_TOP15_DIR[] = "addons/amxmodx/configs/kz/top15"
new const KZ_DIR[] = "addons/amxmodx/configs/kz"
new const KZ_STARTFILE[] = "start.ini"
new const KZ_STARTFILE_TEMP[] = "temp_start.ini"
 
new Float:Pro_Times[24]
new 
Pro_AuthIDS[24][32]
new 
Pro_Names[24][32]
new 
Pro_Date[24][32]
new 
Float:Noob_Tiempos[24]
new 
Noob_AuthIDS[24][32]
new 
Noob_Names[24][32]
new 
Noob_Date[24][32]
new 
Noob_CheckPoints[24]
new 
Noob_GoChecks[24]
 
new 
Float:Checkpoints[33][2][3]
new 
Float:timer_time[33]
new 
Float:g_pausetime[33]
new 
Float:antihookcheat[33]
new 
Float:SpecLoc[33][3]
new 
Float:PauseOrigin[33][3]
new 
Float:SavedStart[33][3]
new 
hookorigin[33][3]
new 
Float:DefaultStartPos[3]
 
new 
bool:g_bCpAlternate[33]
new 
bool:timer_started[33]
new 
bool:IsPaused[33]
new 
bool:firstspawn[33]
new 
bool:canusehook[33]
new 
bool:ishooked[33]
new 
bool:NightVisionUse[33]
new 
bool:HealsOnMap
new bool:gViewInvisible[33]
new 
bool:gMarkedInvisible[33] = { true, ...};
new 
bool:gWaterInvisible[33]
new 
bool:gWaterEntity[MAX_ENTITYS]
new 
bool:gWaterFound
new bool:DefaultStart
new bool:AutoStart[33]
 
new 
Trie:g_tStarts
new Trie:g_tStops;
 
new 
checknumbers[33]
new 
gochecknumbers[33]
new 
g_WeaponUsed[33]
new 
ShowTime[33]
 
new 
kz_checkpoints
new kz_godmode
new kz_cheatdetect
new kz_spawn_mainmenu
new kz_show_timer
new kz_chatorhud
new kz_hud_color
new hud_message
new kz_other_weapons
new kz_maxspeedmsg
new kz_drop_weapons
new kz_remove_drops
new kz_strip_other_weapons
new kz_reload_weapons
new kz_use_radio
new kz_hook_prize
new kz_hook_sound
new kz_hook_speed
new kz_pause
new kz_nvg
new kz_nvg_colors
new kz_vip
new kz_respawn_ct
new kz_semiclip
new kz_spec_saves
new kz_save_autostart
new kz_showtime_start
new MaxPlayers
 
new const other_top_weapons[8] = 
{
   
CSW_SCOUTCSW_P90CSW_FAMASCSW_SG552,
   
CSW_M4A1CSW_M249CSW_AK47CSW_AWP
}
 
// Sprites
new Sbeam 0
  
// ================================================================================
=================
  
public 
plugin_init()
{
   
register_plugin("ProKreedz","2.0y","p4ddY & Diggz & nucLeaR")
 
   
kz_checkpoints register_cvar("kz_checkpoints","1")
   
kz_godmode register_cvar("kz_godmode","1")
   
kz_cheatdetect register_cvar("kz_cheatdetect","1")
   
kz_spawn_mainmenu register_cvar("kz_spawn_mainmenu""1")
   
kz_show_timer register_cvar("kz_show_timer""1")
   
kz_chatorhud register_cvar("kz_chatorhud""2"
   
kz_hud_color register_cvar("kz_hud_color""87 221 12")
   
kz_other_weapons register_cvar("kz_other_weapons","1"
   
kz_drop_weapons register_cvar("kz_drop_weapons""0")
   
kz_remove_drops register_cvar("kz_remove_drops""1")
   
kz_strip_other_weapons register_cvar("kz_strip_other_weapons""1")
   
kz_reload_weapons register_cvar("kz_reload_weapons""0")
   
kz_maxspeedmsg register_cvar("kz_maxspeedmsg","1")
   
kz_hook_prize register_cvar("kz_hook_prize","1")
   
kz_hook_sound register_cvar("kz_hook_sound","1")
   
kz_hook_speed register_cvar("kz_hook_speed""300.0")
   
kz_use_radio register_cvar("kz_use_radio""0")
   
kz_pause register_cvar("kz_pause""1")
   
kz_nvg register_cvar("kz_nvg","1")
   
kz_nvg_colors register_cvar("kz_nvg_colors","5 0 255")
   
kz_vip register_cvar("kz_vip","1")
   
kz_respawn_ct register_cvar("kz_respawn_ct""1")
   
kz_semiclip register_cvar("kz_semiclip""1")
   
kz_spec_saves register_cvar("kz_spec_saves""1")
   
kz_save_autostart register_cvar("kz_save_autostart""1")
   
kz_showtime_start register_cvar("kz_showtime_start""2")
 
 
   
register_clcmd("say .kreedz","kz_menu")
   
register_clcmd("say /kreedz","kz_menu")
   
register_clcmd("say .menu","kz_menu")
   
register_clcmd("say /menu","kz_menu")
 
   
register_clcmd("say /timer""ShowTimer_Menu" )
   
register_clcmd"say_team /timer""ShowTimer_Menu" );
   
register_clcmd("say /showtimer""ShowTimer_Menu")
     
   
register_clcmd("cp","CheckPoint")
   
register_clcmd("/cp","CheckPoint")
   
register_clcmd(".cp","CheckPoint")
   
register_clcmd("say /cp","CheckPoint")
   
register_clcmd("say /checkpoint","CheckPoint")
 
   
register_clcmd("tp","GoCheck")
   
register_clcmd("/tp","GoCheck")
   
register_clcmd(".tp","GoCheck")
   
register_clcmd("say /tp""GoCheck")
   
register_clcmd("say /teleport""GoCheck")
 
   
register_clcmd("gc","GoCheck")
   
register_clcmd("/gc","GoCheck")
   
register_clcmd(".gc","GoCheck")
   
register_clcmd("say /gc""GoCheck")
   
register_clcmd("say /gocheck""GoCheck")
 
   
register_clcmd("stuck","Stuck")
   
register_clcmd("/stuck","Stuck")
   
register_clcmd(".stuck""Stuck")
   
register_clcmd("say .stuck","Stuck")
   
register_clcmd("say /stuck","Stuck")
 
   
register_clcmd("say .reset","reset_checkpoints")
   
register_clcmd("say /reset","reset_checkpoints")
     
   
register_clcmd("say .noclip","noclip")
   
register_clcmd("say /noclip","noclip")
   
register_clcmd("say /nc","noclip")
 
   
register_clcmd("say /spec","ct")
   
register_clcmd("say /ct","ct")
   
register_clcmd("say /pause""Pause")
 
   
register_clcmd("say /invis""InvisMenu")
   
register_clcmd("say /winvis""cmdWaterInvisible")
   
register_clcmd("say /pinvis""cmdInvisible")
     
   
register_concmd("kz_hook","give_hook"KZ_LEVEL"<name|#userid|steamid|@ALL> <on/off>")
   
register_concmd("nightvision","ToggleNVG")
 
   
register_clcmd("say .top15","top15menu")
   
register_clcmd("say /top15","top15menu")
   
register_clcmd("say .top10","top15menu")
   
register_clcmd("say /top10","top15menu")
   
register_clcmd("say .noob10","NoobTop_show")
   
register_clcmd("say /noob10","NoobTop_show")
   
register_clcmd("say .noob15","NoobTop_show")
   
register_clcmd("say /noob15","NoobTop_show")
   
register_clcmd("say .nub10","NoobTop_show")
   
register_clcmd("say /nub10","NoobTop_show")
   
register_clcmd("say .nub15","NoobTop_show")
   
register_clcmd("say /nub15","NoobTop_show")
   
register_clcmd("say .pro10","ProTop_show")
   
register_clcmd("say /pro10","ProTop_show")
   
register_clcmd("say .pro15","ProTop_show")
   
register_clcmd("say /pro15","ProTop_show")
     
   
register_clcmd("say /weapons","weapons")
   
register_clcmd("say /scout""cmdScout")   
   
register_clcmd("say /usp""cmdUsp")
   
register_clcmd("say /knife""cmdUsp")
 
   
register_clcmd("say /start""goStart");
   
register_clcmd("/start""goStart");
   
register_clcmd("say /respawn""goStart");
   
register_clcmd("/respawn""goStart");
   
register_clcmd("say /setstart""setStart"KZ_LEVEL"")
 
   
register_clcmd("+hook","hook_on",KZ_LEVEL)
   
register_clcmd("-hook","hook_off",KZ_LEVEL)
 
   
register_event("ResetHUD","resethud","be")
   
register_event("CurWeapon","curweapon","be")
   
register_event"StatusValue""EventStatusValue""b""1>0""2>0" );
 
   
register_forward(FM_StartFrame"fw_StartFrame")
   
register_forward(FM_AddToFullPack"FM_client_AddToFullPack_Post"1
 
   
RegisterHamHam_Player_PreThink"player""Ham_CBasePlayer_PreThink_Post"1
   
RegisterHamHam_Use"func_button""fwdUse"0)
   
RegisterHamHam_Killed"player""Ham_CBasePlayer_Killed_Post"1)
   
RegisterHamHam_Spawn"weaponbox""FwdSpawnWeaponbox")
   
RegisterHamHam_Spawn"player""FwdHamPlayerSpawn")
   
RegisterHamHam_Touch"weaponbox""GroundWeapon_Touch"
 
   
register_messageget_user_msgid"ScoreAttrib" ), "MessageScoreAttrib" )
   
register_messageget_user_msgid"StatusIcon" ), "msgStatusIcon" );
 
   
hud_message CreateHudSyncObj()
   
MaxPlayers get_maxplayers()
   
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
   
set_task(0.5,"timer_task",2000,"",0,"ab")   
 
   if( !
dir_exists(KZ_DIR) )
      
mkdir(KZ_DIR)
 
   if( !
dir_exists(KZ_TOP15_DIR) )
      
mkdir(KZ_TOP15_DIR)
     
   new 
kreedz_cfg[128]
   
formatex(kreedz_cfg,128,"%s/kreedz.cfg",KZ_DIR)
         
   if( 
file_existskreedz_cfg ) )
   {
      
server_exec()
      
server_cmd("exec %s",kreedz_cfg)
   }
 
   
g_tStarts TrieCreate( )
   
g_tStops  TrieCreate( )
 
   new const 
szStarts[ ][ ] =
   {
      
"counter_start""clockstartbutton""firsttimerelay""but_start""counter_start_button",
      
"multi_start""timer_startbutton""start_timer_emi""gogogo"
   
}
 
   new const 
szStops[ ][ ]  =
   {
      
"counter_off""clockstopbutton""clockstop""but_stop""counter_stop_button",
      
"multi_stop""stop_counter""m_counter_end_emi"
   
}
 
   for( new 
0sizeof szStartsi++ )
      
TrieSetCellg_tStartsszStarts], )
    
   for( new 
0sizeof szStopsi++ )
      
TrieSetCellg_tStopsszStops], )
}
  
public 
plugin_end( )
{
   
TrieDestroyg_tStarts )
   
TrieDestroyg_tStops )
}
 
public 
plugin_precache()
{
   
RegisterHamHam_Spawn"func_door""FwdHamDoorSpawn")
   
precache_sound("weapons/xbow_hit2.wav")
   
Sbeam precache_model("sprites/laserbeam.spr")
}
 
public 
plugin_cfg()
{
 
   for (new 
15; ++i)
   {
      
Pro_Times[i] = 999999999.00000;
      
Noob_Tiempos[i] = 999999999.00000;
   }
 
   
read_pro15()
   
read_Noob15()
 
   new 
startcheck[100], data[256], mapname[64], map[64], x[13], y[13], z[13];
   
get_mapnamemapname63)
   
formatex(startcheck99"%s/%s"KZ_DIRKZ_STARTFILE)
   new 
fopen(startcheck"rt" )
   while( !
feof) )
   {
      
fgetsfdatasizeof data )
      
parsedatamap63x12y12z12)
          
      if( 
equalimapmapname ) )
      {
         
DefaultStartPos[0] = str_to_float(x)
         
DefaultStartPos[1] = str_to_float(y)
         
DefaultStartPos[2] = str_to_float(z)
          
         
DefaultStart true
         
break;
      }
   }
   
fclose(f)
 
   new 
ent = -1;
   while( ( 
ent engfunc(EngFunc_FindEntityByStringent"classname""func_water") ) != )
   {
      if( !
gWaterFound )
      {
         
gWaterFound true;
      }
 
      
gWaterEntity[ent] = true;
   }
    
   
ent = -1;
   while( ( 
ent engfunc(EngFunc_FindEntityByStringent"classname""func_illusionary") ) != )
   {
      if( 
peventpev_skin ) ==  CONTENTS_WATER )
      {
         if( !
gWaterFound )
         {
            
gWaterFound true;
         }
    
         
gWaterEntity[ent] = true;
      }
   }
    
   
ent = -1;
   while( ( 
ent engfunc(EngFunc_FindEntityByStringent"classname""func_conveyor") ) != )
   {
      if( 
peventpev_spawnflags ) == )
      {
         if( !
gWaterFound )
         {
            
gWaterFound true;
         }
    
         
gWaterEntity[ent] = true;
      }
   }
}
// ================================================================================
=================
// Global Functions
// ================================================================================
=================
 
public 
Pause(id)
{
   if (
get_pcvar_num(kz_pause) == 0)
   {   
      
kz_hud_message(id"Пауза недоступна")
      return 
PLUGIN_HANDLED
   
}
 
   if(! 
timer_started[id])
   {
      
kz_hud_message(id"Таймер недоступен")
      return 
PLUGIN_HANDLED
   
}
    
   if(! 
is_user_alive(id) )
   {
      
kz_hud_message(id"Вы мертвы")
      return 
PLUGIN_HANDLED
   
}
 
 
   if( ( 
pevidpev_flags ) & FL_ONGROUND2  ) )
   {
      if(!
IsPaused[id]) 
      {
         
g_pausetime[id] =   thetime() - timer_time[id]
         
timer_time[id] = 0.0
         IsPaused
[id] = true
         kz_hud_message
(id"Таймер приостановлен")
         
set_pev(idpev_flagspev(idpev_flags) | FL_FROZEN)
         
pev(idpev_originPauseOrigin[id])
      }
      else
      {
         
timer_time[id] = thetime() - g_pausetime[id] + timer_time[id]
         
IsPaused[id] = false
         kz_hud_message
(id"Таймер возобновлен")
         
set_pev(idpev_flagspev(idpev_flags) & ~FL_FROZEN)
      }
   }
   else
      
kz_hud_message(id"Вы должны быть на поверхности")
 
   return 
PLUGIN_HANDLED
}
 
public 
timer_task()
{
   for(new 
i=1;i<=MaxPlayers;i++)
   {
      if ( 
get_pcvar_num(kz_show_timer) == )
      {
         if (
is_user_alive(i))
         {
            if( 
is_user_connected(i) && timer_started[i])
            {
               new 
Float:kreedztime thetime() - (IsPaused[i] ? thetime() - g_pausetime[i] : timer_time[i])
 
               if( 
ShowTime[i] == )
               {
                  new 
colors[12], r[4], g[4], b[4];
                  new 
imin floatround(kreedztime 60.0,floatround_floor)
                  new 
isec floatround(kreedztime imin 60.0,floatround_floor)
                  
get_pcvar_string(kz_hud_colorcolors11)
                  
parse(colorsr3g3b4)
                   
                  
set_hudmessage(str_to_num®str_to_num(g), str_to_num(b), 0.400.1000.01.00.00.01)   
                  
show_hudmessage(i"Время: %02d:%02d  | С.: %d | П.: %d ",iminisec,checknumbers[i], gochecknumbers[i]) 
               }
               else
               if( 
ShowTime[i] == )
               {
                  
kz_showtime_roundtime(ifloatround(kreedztime))
               }
            }
         }
         else
         {
            new 
specmode pev(ipev_iuser1)
            if(
specmode == || specmode == 4)
            {
               new 
target pev(ipev_iuser2)
               if(
target != i)
                  if(
is_user_alive(target) && timer_started[target])
                  {
                     new 
name[32], colors[12], r[4], g[4], b[4];
                     
get_user_name (targetname31)
 
                     new 
Float:kreedztime thetime() - (IsPaused[target] ? thetime() - g_pausetime[target] : timer_time[target])
                     new 
imin floatround(kreedztime 60.0,floatround_floor)
                     new 
isec floatround(kreedztime imin 60.0,floatround_floor)
 
                     
get_pcvar_string(kz_hud_colorcolors11)
                     
parse(colorsr3g3b4)
 
                     
set_hudmessage(str_to_num®str_to_num(g), str_to_num(b), 0.400.1000.01.00.00.01)
                     
show_hudmessage(i"Время: %02d:%02d  | C.: %d | П.: %d %s ",iminisecchecknumbers[target], gochecknumbers[target], IsPaused[target] ? "| *Paused*" "")    
                  }
            }
         }
      }
   }
}
 
// ============================ Block Commands ================================
 
public client_command(id)
{
   static 
szCmd[13]
   
read_argv(0szCmd12)
    
   static const 
commands_block[][] =
   {
      
"radio1""radio2""radio3",
      
"coverme""takepoint""holdpos",
      
"regroup""followme""takingfire",
      
"go""fallback""sticktog",
      
"getinpos""stormfront""report",
      
"roger""enemyspot""needbackup",
      
"sectorclear""inposition""reportingin",
      
"getout""negative""enemydown",
      
"chooseteam""jointeam 1"
   
}
       
   static const 
drop_weapons[][] =
   {   
      
"drop"
   
}
    
   if (
get_pcvar_num(kz_use_radio) == 0)
      for ( new 
sizeofcommands_block ) ; i++ )
      {
         if(
equal(szCmdcommands_block[i]))
         return 
PLUGIN_HANDLED;
      }
   else
      return 
PLUGIN_CONTINUE   
 
   
if (get_pcvar_num(kz_drop_weapons) == 0)
      for ( new 
sizeofdrop_weapons ) ; i++ )
      {
         if(
equal(szCmddrop_weapons[i]))
         return 
PLUGIN_HANDLED
      
}
   else
      return 
PLUGIN_CONTINUE   
 
   
return PLUGIN_CONTINUE
}
 
public 
msgStatusIcon( const iMsgId, const iMsgDest, const iPlayer )
{
   static 
szMsg];
   
get_msg_arg_string2szMsg);
 
   if( 
equalszMsg"buyzone" ) )
   {
      
set_pdata_intiPlayerOFFSET_BUYZONEget_pdata_intiPlayerOFFSET_BUYZONE ) & ~( 1<<) )
      return 
PLUGIN_HANDLED
   
}
   return 
PLUGIN_CONTINUE
}
 
public 
CmdRespawn(id)
{
   if ( 
get_user_team(id) == 
      return 
PLUGIN_HANDLED
   
else
      
ExecuteHamB(Ham_CS_RoundRespawnid)
 
   return 
PLUGIN_HANDLED
}
 
public 
ct(id)
{
   new 
CsTeams:team cs_get_user_team(id)
   if (
team == CS_TEAM_CT
   {
      if( !( 
pevidpev_flags ) & FL_ONGROUND2 ) && timer_started[id] ) 
         return 
PLUGIN_HANDLED
 
      
if (get_pcvar_num(kz_spec_saves) == 1)
      {
         
pev(idpev_originSpecLoc[id])
 
         if ( 
timer_started[id] )
         {
            if ( 
IsPaused[id] )
               
Pause(id)
 
            
g_pausetime[id] =   thetime() - timer_time[id]
            
timer_time[id] = 0.0
            ColorChat
(idGREEN"[XJ]^x01 Таймер приостановлен.")
         }
      }
 
      if(
gViewInvisible[id])
         
gViewInvisible[id] = false  
 
      cs_set_user_team
(id,CS_TEAM_SPECTATOR)
      
set_pev(idpev_solidSOLID_NOT)
      
set_pev(idpev_movetypeMOVETYPE_FLY)
      
set_pev(idpev_effectsEF_NODRAW)
      
set_pev(idpev_deadflagDEAD_DEAD)
   }
   else
   {
      
cs_set_user_team(id,CS_TEAM_CT)
      
set_pev(idpev_effects0)
      
set_pev(idpev_movetypeMOVETYPE_WALK)
      
set_pev(idpev_deadflagDEAD_NO)
      
set_pev(idpev_takedamageDAMAGE_AIM)
      
CmdRespawn(id)
      
fm_give_item(id,"weapon_knife")
      
fm_give_item(id,"weapon_usp"
      
fm_give_item(id,"weapon_usp"
      
fm_give_item(id,"weapon_usp"
 
      if (
get_pcvar_num(kz_spec_saves) == 1)
      {
         
set_pev(idpev_originSpecLoc[id])
         if ( 
timer_started [id] )
            
timer_time[id] = thetime() - g_pausetime[id] + timer_time[id]
      }
   }
   return 
PLUGIN_HANDLED
}
 
 
//=================== Weapons ==============
public curweapon(id)
{
   new 
WeaponNum read_data(2)
   new 
WeaponActive read_data(1)
 
    if ((
WeaponNum != g_WeaponUsed[id]) && WeaponActive)  // if weapon has changed and its the active weapon continue
   
{
      
g_WeaponUsed[id] = WeaponNum
   
      
if(get_pcvar_num(kz_maxspeedmsg) == 1)
      {
         new 
clipammospeed
          
switch(get_user_weapon(id,clip,ammo))
         {
            case 
CSW_SCOUTspeed 260
            
case CSW_C4CSW_P228CSW_MAC10CSW_MP5NAVYCSW_USPCSW_TMPCSW_FLASHBANGCSW_DEAGLECSW_GLOCK18CSW_SMOKEGRENADECSW_ELITECSW_FIVESEVENCSW_UMP45CSW_HEGRENADECSW_KNIFE:   speed 250
            
case CSW_P90:   speed 245
            
case CSW_XM1014CSW_AUGCSW_GALILCSW_FAMASspeed 240
            
case CSW_SG552:  speed 235
            
case CSW_M3CSW_M4A1:   speed230
            
case CSW_AK47:   speed 221
            
case CSW_M249:   speed 220
            
case CSW_G3SG1CSW_SG550CSW_AWPspeed 210           
            
}
         
kz_hud_message(id,"Скорость с этим оружием %d u/s",speed)
      }
   }
  
   return 
PLUGIN_HANDLED
}
  
public 
weapons(id)
{
   if (!
timer_started[id])
   {
      if(
get_pcvar_num(kz_other_weapons) == 1)
      {   
         if(
is_user_alive(id))
         {
         new 
bool:weaponsgiven
         
if(!user_has_weapon(id,CSW_KNIFE))
            
fm_give_item(id,"weapon_knife")
         if(!
user_has_weapon(id,CSW_USP)) {
            
fm_give_item(id,"weapon_usp")
            }   
         if(!
user_has_weapon(id,CSW_SCOUT)) {
            
fm_give_item(id"weapon_scout")
            
weaponsgiven true
            
}
         if(!
user_has_weapon(id,CSW_P90)) {
            
fm_give_item(id"weapon_p90")
            
weaponsgiven true
            
}
         if(!
user_has_weapon(id,CSW_FAMAS)) {
            
fm_give_item(id"weapon_famas")
            
weaponsgiven true
         
}
         if(!
user_has_weapon(id,CSW_SG552)) {
            
fm_give_item(id"weapon_sg552")
            
weaponsgiven true
            
}
         if(!
user_has_weapon(id,CSW_M4A1)) {
            
fm_give_item(id"weapon_m4a1")
            
weaponsgiven true
            
}
         if(!
user_has_weapon(id,CSW_M249)) {
            
fm_give_item(id"weapon_m249")
            
weaponsgiven true
         
}
         if(!
user_has_weapon(id,CSW_AK47)) {
            
fm_give_item(id"weapon_ak47")
            
weaponsgiven true
         
}
         if(!
user_has_weapon(id,CSW_AWP)) {
            
fm_give_item(id"weapon_awp")
            
weaponsgiven true
         
}
         if(
weaponsgiven)
            
kz_hud_message(id"Вам дали оружия с разной скоростью")
         }
         else
            
kz_hud_message(id"Вы мертвы")
        }
      else
         
kz_hud_message(id"Разное оружие недоступно")
   }
   else
      
kz_hud_message(id"Недоступно во время прохождения.Напиши /reset в чате")
  
   return 
PLUGIN_HANDLED
}
 
 
// ========================= Scout =======================
public cmdScout(id)
{
   
fm_give_item(id,"weapon_scout")
    
   return 
PLUGIN_HANDLED
}
 
public 
cmdUsp(id)
{
   
fm_give_item(id,"weapon_usp")
   
fm_give_item(id,"weapon_knife")
    
   return 
PLUGIN_HANDLED
}
 
// ========================== Start location =================
 
public goStart(id)
{
   if( !
is_user_aliveid ) )
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Вы мертвы")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Вы мертвы")
 
      return 
PLUGIN_HANDLED
   
}
 
   if (
IsPaused[id])
   {
      
kz_hud_message(id"Недоступно во время паузы")
      return 
PLUGIN_HANDLED
   
}
 
   if(
get_pcvar_num(kz_save_autostart) == && AutoStart [id] )
   {
      
set_pev(idpev_velocityFloat:{0.00.00.0})
      
set_pevidpev_flagspev(idpev_flags) | FL_DUCKING )
      
set_pev(idpev_originSavedStart [id] )
 
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Вы перемещены на старт.")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Вы перемещены на старт")
   }
   else if ( 
DefaultStart )
   {
      
set_pev(idpev_velocityFloat:{0.00.00.0})
      
set_pev(idpev_originDefaultStartPos)
   }
   else
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 На этой карте нет старта")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"На этой карте нет старта")
 
      
CmdRespawn(id)
       }
 
   return 
PLUGIN_HANDLED
}
 
public 
setStart(id)
{
   if (! (
get_user_flagsid ) & KZ_LEVEL ))
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 У вас нет прав")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id" У вас нет прав")
          
      return 
PLUGIN_HANDLED
   
}
     
   new 
Float:origin[3], mapname[64]
   
get_mapname(mapname63)
   
pev(idpev_originorigin)
   
kz_set_start(mapnameorigin)
   
AutoStart[id] = false;
   
ColorChat(idGREEN"[XJ]^x01 Нажмите старт на этой карте.")
    
   return 
PLUGIN_HANDLED
}
 
// ========= Respawn CT if dies ========
 
public Ham_CBasePlayer_Killed_Post(id
{
   if(
get_pcvar_num(kz_respawn_ct) == 1)
   {
      if( 
get_pdata_int(id114) == )
      {
         
set_pev(idpev_deadflagDEAD_RESPAWNABLE)
            
fm_set_user_deaths(id0)
         
fm_set_user_frags(id0)
      }
   }
}
 
 
// =============================  NightVision ================================================
 
public ToggleNVG(id
{
 
   if(
get_pcvar_num(kz_nvg) == 0)
   return 
PLUGIN_CONTINUE;
    
   if ( 
NightVisionUse[id]  || !is_user_alive(id) )
      
StopNVG(id
   else
      
StartNVG(id
 
   return 
PLUGIN_HANDLED;
}
 
public 
StartNVG(id
{
   
   
emit_sound(id,CHAN_ITEM,"items/nvg_on.wav",1.0,ATTN_NORM,0,PITCH_NORM
    
   
set_task(0.1,"RunNVG",id+111111,_,_,"b"
    
   
NightVisionUse[id] = true
    
   return 
PLUGIN_HANDLED
}
 
public 
StopNVG(id
{
   
emit_sound(id,CHAN_ITEM,"items/nvg_off.wav",1.0,ATTN_NORM,0,PITCH_NORM
 
   
remove_task(id+111111
    
   
NightVisionUse[id] = false
 
   return 
PLUGIN_HANDLED;
}
 
 
public 
RunNVG(taskid
{
   new 
id taskid 111111
   
   
if (!is_user_alive(id)) return
    
   new 
origin[3
   
get_user_origin(id,origin,3)
    
   new 
color[17];
   
get_pcvar_string(kz_nvg_colors,color,16);
    
   new 
iRed[5], iGreen[7], iBlue[5]
   
parse(color,iRed,4,iGreen ,6,iBlue,4)
    
   
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id)
   
write_byte(TE_DLIGHT)
   
write_coord(origin[0]) 
   
write_coord(origin[1]) 
   
write_coord(origin[2]) 
   
write_byte(80)
   
write_byte(str_to_num(iRed)) 
   
write_byte(str_to_num(iGreen)) 
   
write_byte(str_to_num(iBlue))
   
write_byte(2)
   
write_byte(0
   
message_end()
}
 
// ============================ Hook ==============================================================
 
public give_hook(id)
{
   if (!(  
get_user_flagsid ) & KZ_LEVEL ))
      return 
PLUGIN_HANDLED
 
   
new szarg1[32], szarg2[8], bool:mode
   read_argv
(1,szarg1,32)
   
read_argv(2,szarg2,32)
   if(
equal(szarg2,"on"))
      
mode true
       
   
if(equal(szarg1,"@ALL"))
   {
      for(new 
i=1;i<=MaxPlayers;i++)
      {
         if(
is_user_connected(i) && is_user_alive(i))
         {
            
canusehook[i] = mode
            
if(mode)
            {
               
ColorChat(iGREEN"[XJ]^x01 Веревка доступна, используйте bind с +hook ")
            }
         }
      }
   }
   else
   {
      new 
pid find_player("bl",szarg1);
      if(
pid 0)
      {
         
canusehook[pid] = mode
         
if(mode)
         {
            
ColorChat(pidGREEN"[XJ]^x01 Веревка доступна, используйте bind с +hook")
         }
      }
   }
    
   return 
PLUGIN_HANDLED
}
 
// ================================================================================
=================
 
public 
hook_on(id)
{
   if( !
canusehook[id] && !(  get_user_flagsid ) & KZ_LEVEL ) || !is_user_alive(id) )
      return 
PLUGIN_HANDLED
 
   
if (IsPaused[id])
   {
      
kz_hud_message(id"Недоступно во время паузы")
      return 
PLUGIN_HANDLED
   
}
    
   
detect_cheat(id,"Hook")
   
get_user_origin(id,hookorigin[id],3)
   
ishooked[id] = true
   antihookcheat
[id] = thetime()
    
   if (
get_pcvar_num(kz_hook_sound) == 1)
   
emit_sound(id,CHAN_STATIC,"weapons/xbow_hit2.wav",1.0,ATTN_NORM,0,PITCH_NORM)
 
   
set_task(0.1,"hook_task",id,"",0,"ab")
   
hook_task(id)
    
   return 
PLUGIN_HANDLED
}
 
// ================================================================================
=================
 
public 
hook_off(id)
{
   
remove_hook(id)
    
   return 
PLUGIN_HANDLED
}
 
// ================================================================================
=================
 
public 
hook_task(id)
{
   if(!
is_user_connected(id) || !is_user_alive(id))
      
remove_hook(id)
    
   
remove_beam(id)
   
draw_hook(id)
    
   new 
origin[3], Float:velocity[3]
   
get_user_origin(id,origin)
   new 
distance get_distance(hookorigin[id],origin)
   
velocity[0] = (hookorigin[id][0] - origin[0]) * (2.0 get_pcvar_num(kz_hook_speed) / distance)
   
velocity[1] = (hookorigin[id][1] - origin[1]) * (2.0 get_pcvar_num(kz_hook_speed) / distance)
   
velocity[2] = (hookorigin[id][2] - origin[2]) * (2.0 get_pcvar_num(kz_hook_speed) / distance)
       
   
set_pev(id,pev_velocity,velocity)
}
 
// ================================================================================
=================
 
public 
draw_hook(id)
{
   
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
   
write_byte(1)            // TE_BEAMENTPOINT
   
write_short(id)            // entid
   
write_coord(hookorigin[id][0])      // origin
   
write_coord(hookorigin[id][1])      // origin
   
write_coord(hookorigin[id][2])      // origin
   
write_short(Sbeam)         // sprite index
   
write_byte(0)            // start frame
   
write_byte(0)            // framerate
   
write_byte(random_num(1,100))      // life
   
write_byte(random_num(1,20))      // width
   
write_byte(random_num(1,0))      // noise               
   
write_byte(random_num(1,255))      // r
   
write_byte(random_num(1,255))      // g
   
write_byte(random_num(1,255))      // b
   
write_byte(random_num(1,500))      // brightness
   
write_byte(random_num(1,200))      // speed
   
message_end()
}
 
public 
remove_hook(id)
{
   if(
task_exists(id))
      
remove_task(id)
   
remove_beam(id)
   
ishooked[id] = false
}
 
public 
remove_beam(id)
{
   
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
   
write_byte(99// TE_KILLBEAM
   
write_short(id)
   
message_end()
}
 
public 
EventStatusValue( const id )
{
          
   new 
szMessage34 ], Targetaux
   get_user_aiming
(idTargetaux)
   
formatexszMessage33"1 %s: %%p2"get_user_flagsTarget ) & KZ_LEVEL "VIP" "Player" )
          
   
message_beginMSG_ONE_UNRELIABLEget_user_msgid"StatusText" ) , _id )
   
write_byte)
   
write_stringszMessage )
   
message_end( )
}
 
//============================ VIP In ScoreBoard =================================================
 
public MessageScoreAttribiMsgIDiDestiReceiver )
{
   if( 
get_pcvar_num(kz_vip) )
   {
      new 
iPlayer get_msg_arg_int)
      if( 
is_user_connectediPlayer ) && ( get_user_flagsiPlayer ) & KZ_LEVEL ) )
      {
         
set_msg_arg_int2ARG_BYTEis_user_aliveiPlayer ) ? SCOREATTRIB_VIP SCOREATTRIB_DEAD );
      }
   }
}  
 
  
 
// ================================================================================
=================
  
public 
detect_cheat(id,reason[]) // I saw this feature in kz_multiplugin :o

    if(
timer_started[id] && get_pcvar_num(kz_cheatdetect) == 1
    {
   if (
get_pcvar_num(kz_chatorhud) == 1)
      
ColorChat(idGREEN"[XJ]^x01 %s обнаружен. Таймер обнуляется",reason)
   else if (
get_pcvar_num(kz_chatorhud) == 2)
      
kz_hud_message(id"%s обнаружен. Таймер обнуляется",reason)
   
timer_started[id] = false
    
}
}
  
// ================================================================================
=================
// Cmds
// ================================================================================
=================
 
public 
CheckPoint(id)
{
   if(
get_pcvar_num(kz_checkpoints) == 1)
   {
 
      if( !
is_user_aliveid ) )
      {
         if (
get_pcvar_num(kz_chatorhud) == 1)
            
ColorChat(idGREEN"[XJ]^x01Вы мертвы")
         else if (
get_pcvar_num(kz_chatorhud) == 2)
            
kz_hud_message(id"Вы мертвы")
 
         return 
PLUGIN_HANDLED
      
}
 
      if( !( 
pevidpev_flags ) & FL_ONGROUND2 ) )
      {
         if (
get_pcvar_num(kz_chatorhud) == 1)
            
ColorChat(idGREEN"[XJ]^x01 Недоступно в полете")
         else if (
get_pcvar_num(kz_chatorhud) == 2)
            
kz_hud_message(id"Недоступно в полете")
 
         return 
PLUGIN_HANDLED
      
}
       
      if( 
IsPaused[id] )
      {
         if (
get_pcvar_num(kz_chatorhud) == )
            
ColorChat(idGREEN"[XJ]^x01 Недоступно во время пауза")
         else if (
get_pcvar_num(kz_chatorhud) == 2)
            
kz_hud_message(id"Недоступно во время пауза")
          
         return 
PLUGIN_HANDLED
      
}
       
      
pev(idpev_originCheckpoints[id][g_bCpAlternate[id] ? 0])
      
g_bCpAlternate[id] = !g_bCpAlternate[id]
      
checknumbers[id]++
 
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Сохранение #%d создано",checknumbers[id])
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Сохранение #%d",checknumbers[id])
    
   }
   else
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Сохранение недоступно")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id" Сохранение недоступно")
   }
 
   return 
PLUGIN_HANDLED
}
 
public 
GoCheck(id
{
   if( !
is_user_aliveid ) )
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Вы мертвы.")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Вы мертвы")
 
      return 
PLUGIN_HANDLED
   
}
 
   if( 
checknumbers[id] == 0  
   {
      if (
get_pcvar_num(kz_chatorhud) == )
         
ColorChat(idGREEN"[XJ]^x01 У вас нет сохранений")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"У вас нет сохранений")
      return 
PLUGIN_HANDLED
   
}
 
   if( 
IsPaused[id] )
   {
      if (
get_pcvar_num(kz_chatorhud) == )
         
ColorChat(idGREEN"[XJ]^x01 Недоступно во время пауза")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Недоступно во время пауза")
          
      return 
PLUGIN_HANDLED
   
}
    
   
set_pevidpev_velocityFloat:{0.00.00.0} );
   
set_pevidpev_flagspev(idpev_flags) | FL_DUCKING );
   
set_pevidpev_fuser20.0 );
   
engfuncEngFunc_SetSizeid, {-16.0, -16.0, -18.0 }, { 16.016.018.0 } );
   
set_pev(idpev_originCheckpointsid ][ !g_bCpAlternate[id] ] )
 
   
gochecknumbers[id]++
   if (
get_pcvar_num(kz_chatorhud) == 1)
      
ColorChat(idGREEN"[XJ]^x01 Перемещение #%d",gochecknumbers[id])
   else if (
get_pcvar_num(kz_chatorhud) == 2)
      
kz_hud_message(id"Перемещение #%d",gochecknumbers[id])
    
   return 
PLUGIN_HANDLED
}
 
public 
Stuck(id)
{
   if( !
is_user_aliveid ) )
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Вы мертвы")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Вы мертвы")
 
      return 
PLUGIN_HANDLED
   
}
 
   if( 
checknumbers[id] < 
   {
      if (
get_pcvar_num(kz_chatorhud) == )
         
ColorChat(idGREEN"[XJ]^x01 У вас нет сохранений")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"У вас нет сохранений")
      return 
PLUGIN_HANDLED
   
}
 
   
set_pevidpev_velocityFloat:{0.00.00.0} );
   
set_pevidpev_flagspev(idpev_flags) | FL_DUCKING );
   
set_pevidpev_fuser20.0 );
   
engfuncEngFunc_SetSizeid, {-16.0, -16.0, -18.0 }, { 16.016.018.0 } );
   
set_pev(idpev_originCheckpoints[id][g_bCpAlternate[id]] )
 
   
g_bCpAlternate[id] = !g_bCpAlternate[id];
    
   
gochecknumbers[id]++
   if (
get_pcvar_num(kz_chatorhud) == 1)
      
ColorChat(idGREEN"[XJ]^x01 Перемещение #%d",gochecknumbers[id])
   else if (
get_pcvar_num(kz_chatorhud) == 2)
      
kz_hud_message(id"Перемещение #%d",gochecknumbers[id])
    
   return 
PLUGIN_HANDLED;
}
  
// ================================================================================
=================
  
public 
reset_checkpoints(id
{
   
checknumbers[id] = 0
   gochecknumbers
[id] = 0
   timer_started
[id] = false
   timer_time
[id] = 0.0
   
if (get_pcvar_num(kz_show_timer) == && ShowTime[id] == 2)
      
kz_showtime_roundtime(id0)
 
   return 
PLUGIN_HANDLED
}
 
//===== Invis =======
 
public cmdInvisible(id)
{
   if(!
gViewInvisible[id])
   {
      
gViewInvisible[id] = true
      
if (get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Игроки ^x03 не отображаются^x01")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Игроки не отображаются")
   }
    
   else
   {
      
gViewInvisible[id] = false
      
if (get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 Игроки^x03 отображаюся^x01")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"Игроки отображаюся")
   }
 
   return 
PLUGIN_HANDLED
}
 
public 
cmdWaterInvisible(id)
{
   if( 
gWaterFound )
   {
      if(!
gWaterInvisible[id])
      {
         
gWaterInvisible[id] = true
         
if (get_pcvar_num(kz_chatorhud) == 1)
            
ColorChat(idGREEN"[XJ]^x01 Вода^x03 не отображается^x01")
         else if (
get_pcvar_num(kz_chatorhud) == 2)
            
kz_hud_message(id"Вода не отображается")
      }
      else
      {
         
gWaterInvisible[id] = false
         
if (get_pcvar_num(kz_chatorhud) == 1)
            
ColorChat(idGREEN"[XJ]^x01 Вода^x03 отображается^x01")
         else if (
get_pcvar_num(kz_chatorhud) == 2)
            
kz_hud_message(id"Вода отображается")
      }
   }
   else
   {
      if (
get_pcvar_num(kz_chatorhud) == 1)
         
ColorChat(idGREEN"[XJ]^x01 На карте нет воды.")
      else if (
get_pcvar_num(kz_chatorhud) == 2)
         
kz_hud_message(id"На карте нет воды")
   }
 
   return 
PLUGIN_HANDLED
}
 
public 
FM_client_AddToFullPack_Post(eseenthosthostflagsplayerpSet

   if( 
player )
   {
      if (
get_pcvar_num(kz_semiclip) == 1)
      {
         if ( 
host != ent && get_orig_retval() && is_user_alive(host) ) 
             { 
            
set_es(esES_SolidSOLID_NOT)
            
set_es(esES_RenderModekRenderTransAlpha)
            
set_es(esES_RenderAmt85)
         } 
      }
      if(
gMarkedInvisible[ent] && gViewInvisible[host])
      {
            
set_es(esES_RenderModekRenderTransTexture)
         
set_es(esES_RenderAmt0)
         
set_es(esES_Origin, { 999999999.0999999999.0999999999.0 } )
      }
   }
   else if( 
gWaterInvisible[host] && gWaterEntity[ent] )
   {
      
set_es(esES_Effectsget_esesES_Effects ) | EF_NODRAW )
   }
 
   if( 
get_pcvar_num(kz_godmode) == )
      
fm_set_user_godmode(host,1)
   else
      
fm_set_user_godmode(host,0)
    
   return 
FMRES_IGNORED

 
public 
Ham_CBasePlayer_PreThink_Post(id

   if( !
is_user_alive(id) ) 
   { 
      return
   } 
 
   
RefreshPlayersList() 
 
   if (
get_pcvar_num(kz_semiclip) == 1)
   {
      for(new 
0i<g_iNumi++) 
      { 
         
g_iPlayer g_iPlayers[i
         if( 
id != g_iPlayer 
         { 
            
set_pev(g_iPlayerpev_solidSOLID_NOT
         } 
      } 
   }

 
public 
client_PostThink(id

   if( !
is_user_alive(id) ) 
      return
 
   
RefreshPlayersList() 
 
   if (
get_pcvar_num(kz_semiclip) == 1)
      for(new 
0i<g_iNumi++) 
         { 
             
g_iPlayer g_iPlayers[i
           if( 
g_iPlayer != id 
            
set_pev(g_iPlayerpev_solidSOLID_SLIDEBOX
         } 

 
//================================================================================
=================
  
public 
noclip(id)
{
   if(
read_argc() == || read_argc() == 2)
   {
      
fm_set_user_noclip(id,fm_get_user_noclip(id) == 1)
      if(
fm_get_user_noclip(id) == 1)
         
detect_cheat(id,"Noclip")
   }
     
   return 
PLUGIN_HANDLED
}
  
// ================================================================================
=================
 
stock kz_set_start(const map[], Float:origin[3])
{
   new 
realfile[128], tempfile[128], formatorigin[50]
   
formatex(realfile127"%s/%s"KZ_DIRKZ_STARTFILE)
   
formatex(tempfile127"%s/%s"KZ_DIRKZ_STARTFILE_TEMP)
   
formatex(formatorigin49"%f %f %f"origin[0], origin[1], origin[2])
    
   
DefaultStartPos origin
   DefaultStart 
true
    
   
new file fopen(tempfile"wt")
   new 
vault fopen(realfile"rt")
    
   new 
data[128], key[64]
   new 
bool:replaced false
    
   
while( !feof(vault) )
   {
      
fgets(vaultdata127)
      
parse(datakey63)
       
      if( 
equal(keymap) && !replaced )
      {
         
fprintf(file"%s %s^n"mapformatorigin)
          
         
replaced true
      
}
      else
      {
         
fputs(filedata)
      }
   }
    
   if( !
replaced )
   {
      
fprintf(file"%s %s^n"mapformatorigin)
   }
    
   
fclose(file)
   
fclose(vault)
    
   
delete_file(realfile)
   while( !
rename_file(tempfilerealfile1) ) {}
}
 
stock _fm_set_entity_flags(indexflagonoff)
{
   new 
flags pev(indexpev_flags)
   if ((
flags flag) > 0)
      return 
onoff == set_pev(indexpev_flagsflags flag)
   else
      return 
onoff == set_pev(indexpev_flagsflags flag)
  
   return 
0
}
 
stock fm_set_user_deaths(indexdeaths
{
    
set_pdata_int(index444deaths5)
}
 
stock Float:thetime()
{
   return 
get_gametime()
}
 
stock fm_set_user_frags(indexfrags)
{
   
set_pev indexpev_fragsfloat(frags) )
  
   return 
1
}
 
stock fm_give_item(index, const item[])
{
   if (!
equal(item"weapon_"7) && !equal(item"ammo_"5) && !equal(item"item_"5) && !equal(item"tf_weapon_"10))
      return 
0;
 
   new 
ent fm_create_entity(item);
   if (!
pev_valid(ent))
      return 
0;
 
   new 
Float:origin[3];
   
pev(indexpev_originorigin);
   
set_pev(entpev_originorigin);
   
set_pev(entpev_spawnflagspev(entpev_spawnflags) | SF_NORESPAWN);
   
dllfunc(DLLFunc_Spawnent);
 
   new 
save pev(entpev_solid);
   
dllfunc(DLLFunc_Touchentindex);
   if (
pev(entpev_solid) != save)
      return 
ent;
 
   
engfunc(EngFunc_RemoveEntityent);
 
   return -
1;
}
 
stock fm_create_entity(const classname[])
   return 
engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocStringclassname))
 
stock fm_strip_user_weapons(index
{
   new 
ent fm_create_entity("player_weaponstrip");
   if( !
pev_valid(ent) )
      return 
0;
    
   
set_pev(entpev_ownerindex)
   
dllfunc(DLLFunc_Spawnent);
   
dllfunc(DLLFunc_Useentindex);
   
engfunc(EngFunc_RemoveEntityent);
 
   return 
1;
}
 
stock fm_set_user_godmode(indexgodmode 0
{
   
set_pev(indexpev_takedamagegodmode == 0.0 2.0)
 
   return 
1;
}
 
stock fm_set_user_noclip(indexnoclip 0
{
   
set_pev(indexpev_movetypenoclip == MOVETYPE_NOCLIP MOVETYPE_WALK);
 
   return 
1;
}
 
stock fm_get_user_noclip(index)
{
   return (
pev(indexpev_movetype) == MOVETYPE_NOCLIP )
 
}
 
stock kz_showtime_roundtime(idtime)
{
   if( 
is_user_connected(id) )
   {
      
message_begin(MSG_ONE_UNRELIABLEget_user_msgid"RoundTime" ), _id);
      
write_short(time 1);
      
message_end();
   }
}
 
stock kz_hud_message(id, const message[], {Float,Sql,Result,_}:...)
{
   static 
msg[192], colors[12], r[4], g[4], b[4];
   
vformat(msg191message3);
    
   
get_pcvar_string(kz_hud_colorcolors11)
   
parse(colorsr3g3b4)
    
   
set_hudmessage(str_to_num®str_to_num(g), str_to_num(b), -1.00.9000.02.00.01.0, -1);
   
ShowSyncHudMsg(idhud_messagemsg);
    
}
 
public 
FwdSpawnWeaponboxiEntity )
{
   if(
get_pcvar_num(kz_remove_drops) == 1)
   {
      
set_peviEntitypev_flagsFL_KILLME )
      
dllfuncDLLFunc_ThinkiEntity )
   }
    
   return 
HAM_IGNORED
}
 
public 
FwdHamDoorSpawniEntity )
{
   static const 
szNull[ ] = "common/null.wav";
    
   new 
Float:flDamage;
   
peviEntitypev_dmgflDamage );
    
   if( 
flDamage < -999.0 ) {
      
set_peviEntitypev_noise1szNull );
      
set_peviEntitypev_noise2szNull );
      
set_peviEntitypev_noise3szNull );
       
      if( !
HealsOnMap )
         
HealsOnMap true
   
}
}
 
public 
FwdHamPlayerSpawnid )
{
   if( !
is_user_aliveid ) )
      return;
 
   if( 
HealsOnMap )
      
set_pevidpev_health50175.0 )
       
   if( 
IsPaused[id] )
   {
      
set_pev(idpev_flagspev(idpev_flags) | FL_FROZEN)
      
set_pev(idpev_originPauseOrigin[id])
   }
}
 
public 
GroundWeapon_Touch(iWeaponid)
{
   if( 
is_user_alive(id) && timer_started[id] )   
      return 
HAM_SUPERCEDE
 
   
return HAM_IGNORED
}
  
// ================================================================================
=================
// Events / Forwards
// ================================================================================
=================
  
public 
resethud(id)
{
   if( !
user_has_weapon(id,CSW_KNIFE) )
      
fm_give_itemid,"weapon_knife" )
 
   if(
firstspawn[id])
   {
      
ColorChat(idGREEN"[XJ]^x01 Приветствуем вас на нашем ^x03 KZ Server^x01")
      
ColorChat(idGREEN"[XJ]^x01 На этом сервере установлен ^x03 Prokreedz mod^x01")
 
      if(
get_pcvar_num(kz_checkpoints) == 0)
         
ColorChat(idGREEN"[XJ]^x01 Сохранение недоступно")
 
      if(
get_pcvar_num(kz_spawn_mainmenu) == 1)
         
kz_menu (id)
   }
   
firstspawn[id] = false
 
   
return HAM_IGNORED
}
  
//================================================================================
=================
  
public 
client_disconnect(id)
{
   
checknumbers[id] = 0
   gochecknumbers
[id] = 0
   antihookcheat
[id] = 0.0
   timer_started
[id] = false
   ShowTime
[id] = get_pcvar_num(kz_showtime_start)
   
firstspawn[id] = true
   NightVisionUse
[id] = false
   IsPaused
[id] = false
   remove_hook
(id)
}
  
public 
client_putinserver(id)
{
   
checknumbers[id] = 0
   gochecknumbers
[id] = 0
   antihookcheat
[id] = 0.0
   timer_started
[id] = false
   ShowTime
[id] = get_pcvar_num(kz_showtime_start)
   
firstspawn[id] = true
   NightVisionUse
[id] = false
   IsPaused
[id] = false
   remove_hook
(id)
}
  
// ================================================================================
=================
// Menu
// ================================================================================
=================
 
 
public 
kz_menu(id)
{
   new 
menu menu_create("\yГлавное меню\w""MenuHandler")
   
menu_setprop(menuMPROP_PERPAGE0)  
 
   new 
msgcheck[64], msggocheck[64], msgpause[64]
   
formatex(msgcheck63"Сохранение - \y#%i"checknumbers[id])
   
formatex(msggocheck63"Перемещение - \y#%i",  gochecknumbers[id])
   
formatex(msgpause63"Пауза - %s^n"IsPaused[id] ? "\yВкл." "\rВыкл." )
    
   
menu_additemmenumsgcheck"1" )
   
menu_additemmenumsggocheck"2" )
   
menu_additemmenu"Top 15^n""3")
   
menu_additemmenu"На старт""4")
   
menu_additemmenu"Таймер меню""5" )
   
menu_additemmenumsgpause"6" )
   
menu_additemmenu"Меню отображений""7" )
   
menu_additemmenu"В наблюдение""8" )
   
menu_additemmenu"Рестарт^n""9")
   
menu_additemmenu"Выход""*" )
    
   
menu_display(idmenu0)
   return 
PLUGIN_HANDLED 
}
 
public 
MenuHandler(id menuitem)
{
   if( 
item == MENU_EXIT ) {
      
menu_destroy(menu)
      return 
PLUGIN_HANDLED
   
}
     
   new 
data[6], name[32]
   new 
accesscallback
    
   menu_item_getinfo
(menuitemaccessdata5__callback)
     
   new 
key str_to_num(data)
   
get_user_name(idname31
 
   switch(
key) {
      case 
1:{
         
CheckPoint(id)
         
kz_menu(id)
      }
      case 
2:{
         
GoCheck(id)
         
kz_menu(id)
      }
      case 
3:{
         
top15menu(id)
      }
      case 
4:{
         
goStart(id)
         
kz_menu(id)
      }
      case 
5:{
         
ShowTimer_Menu(id)
      }
      case 
6:{
         
Pause(id)
         
kz_menu(id)
      }
      case 
7:{
         
InvisMenu(id)
      }
      case 
8:{
         
ct(id)
          
      }
      case 
9:{
         
reset_checkpoints(id)
         
kz_menu(id)
      }
      case 
'*':{
      }
   }
 
   return 
PLUGIN_HANDLED
}
 
public 
InvisMenu(id)
{
   new 
menu menu_create("\yМеню отображений\w""InvisMenuHandler")
   new 
msginvis[64], msgwaterinvis[64]
    
   
formatex(msginvis63"Игроки - %s",  gViewInvisible[id] ? "\yВкл." "\rВыкл." )
   
formatex(msgwaterinvis63"Вода - %s^n^n"gWaterInvisible[id] ? "\yВкл." "\rВыкл." )
    
   
menu_additemmenumsginvis"1" )
   
menu_additemmenumsgwaterinvis"2" )
 
   
menu_display(idmenu0)
   return 
PLUGIN_HANDLED 
}
 
public 
InvisMenuHandler (idmenuitem)
{
   if( 
item == MENU_EXIT )
   {
      
menu_destroy(menu)
      return 
PLUGIN_HANDLED
   
}
     
   new 
data[6]
   new 
accesscallback
    
   menu_item_getinfo
(menuitemaccessdata5__callback)
     
   new 
key str_to_num(data)
 
   switch(
key)
   {
 
      case 
1:
      {
         
cmdInvisible(id)
         
InvisMenu(id)
      }
      case 
2:
      {
         
cmdWaterInvisible(id)
         
InvisMenu(id)
      }
      case 
9:
      {
         
show_menu(id,0,"")
      }
   }
   return 
PLUGIN_HANDLED
}
 
public 
ShowTimer_Menu(id)
{
   if (
get_pcvar_num(kz_show_timer) == )
   {
      
kz_hud_message(id"Показ таймера недоступен")
      return 
PLUGIN_HANDLED
   
}
   else
   {
      new 
menu menu_create("\yТаймер меню\w""TimerHandler")
 
      new 
roundtimer[64], hudtimer[64], notimer[64];
    
      
formatex(roundtimer63"Round таймер %s"ShowTime[id] == "\y x" "" )
      
formatex(hudtimer63"HUD таймер %s"ShowTime[id] == "\y x" "" )
      
formatex(notimer63"Без таймера %s^n"ShowTime[id] == "\y x" "" )
    
      
menu_additemmenuroundtimer"1" )
      
menu_additemmenuhudtimer"2" )
      
menu_additemmenunotimer"3" )
      
menu_additemmenu"Главное меню""4" )
 
      
menu_display(idmenu0)
      return 
PLUGIN_HANDLED 
   
}
 
   return 
PLUGIN_HANDLED
}
 
public 
TimerHandler (idmenuitem)
{
   if( 
item == MENU_EXIT )
   {
      
menu_destroy(menu)
      return 
PLUGIN_HANDLED
   
}
     
   new 
data[6]
   new 
accesscallback
    
   menu_item_getinfo
(menuitemaccessdata5__callback)
     
   new 
key str_to_num(data)
 
   switch(
key)
   {
 
      case 
1:
      {
         
ShowTime[id]= 2
         ShowTimer_Menu
(id)
      }
      case 
2:
      {
         
ShowTime[id]= 1
         ShowTimer_Menu
(id)
         if (
timer_started[id])
            
kz_showtime_roundtime(id0)
      }
      case 
3:
      {
         
ShowTime[id]= 0
         ShowTimer_Menu
(id)
         if (
timer_started[id])
            
kz_showtime_roundtime(id0)
      }
      case 
4:
      {
         
kz_menu(id)
      }
      case 
9:
      {
         
show_menu(id,0,"")
      }
   }
   return 
PLUGIN_HANDLED
}
 
public 
top15menu(id)
{
   new 
menu menu_create("\r\yTop15 \w""top15handler")
   
menu_additem(menu"\wPro 15""1"0)
   
menu_additem(menu"\wNoob 15^n^n""2"0)
   
menu_additem(menu"\wГлавное меню""5"0)
    
   
menu_display(idmenu0);
    
   return 
PLUGIN_HANDLED;
}
 
public 
top15handler(idmenuitem)
{
   if(
item == MENU_EXIT)
   {
      
menu_destroy(menu)
      return 
PLUGIN_HANDLED
   
}
    
   new 
data[6], iName[64]
   new 
iaccesscallback
    
   menu_item_getinfo
(menuitemiaccessdata,5iName63callback)
    
   new 
key str_to_num(data);
    
   switch(
key)
   {
      case 
1:
      {
         
ProTop_show(id)
      }
      case 
2:
      {
         
NoobTop_show(id)
      }
      case 
5:
      {
         
kz_menu(id)
      }
      case 
9:
      {
         
show_menu(id,0,"")
      }
   }
    
   return 
PLUGIN_HANDLED;
}
 
// ================================================================================
=================
 
// 
// Timersystem
// ================================================================================
=================
public 
fwdUse(entid)
{
   if( !
ent || id 32 )
   {
      return 
HAM_IGNORED;
   }
    
   if( !
is_user_alive(id) )
   {
      return 
HAM_IGNORED;
   }
    
   new 
name[32]
   
get_user_name(idname31)
    
   new 
szTarget32 ];
   
pev(entpev_targetszTarget31);
    
   if( 
TrieKeyExistsg_tStartsszTarget ) )
   {
 
      if ( 
thetime() - antihookcheat[id] < 3.0 )
      {   
         
kz_hud_messageid"Вы можете использовать веревку спустя 3 секунды" );
         return 
PLUGIN_HANDLED
      
}
 
      if ( 
reset_checkpoints(id) && !timer_started[id]  )
      {
         
start_climb(id)
          
         if(
get_pcvar_num(kz_strip_other_weapons) == 1)
            for(new 
08i++)   
               if( 
user_has_weapon(idother_top_weapons[i])  )
               {
                  
fm_strip_user_weapons(id)
                  
fm_give_item(id,"weapon_knife")
                  
fm_give_item(id,"weapon_usp")
                  
set_pdata_int(id382245)
               }
 
         if( 
pev(idpev_health) < 100 )
            
set_pev(idpev_health100.0)
 
         
pev(idpev_originSavedStart[id])
         if(
get_pcvar_num(kz_save_autostart) == 1)
            
AutoStart[id] = true;
 
         if( !
DefaultStart )
         {
            new 
mapname[64]
            
get_mapnamemapname63)
            
kz_set_start(mapnameSavedStart[id])
            
ColorChat(idGREEN"[XJ]^x01 Найдена стартовая точка.")
         }
 
         
remove_hook(id)
      }
       
   }
    
   if( 
TrieKeyExistsg_tStopsszTarget ) )
   {
      if( 
timer_started[id] )
      {
         
finish_climb(id)
 
         if(
get_pcvar_num(kz_hook_prize) == && !canusehook[id])
         {
            
canusehook[id] = true
            ColorChat
(idGREEN"[XJ]^x01 Веревка доступна, используйте bind с +hook")
         }
      }
      else
         
kz_hud_message(id"Вы должны нажать кнопку старта")
 
      }
   return 
HAM_IGNORED
}
 
public 
start_climb(id)
{
   if (
get_pcvar_num(kz_chatorhud) == 1)
      
ColorChat(idGREEN"[XJ]^x01 Таймер включен.")
   else
      
kz_hud_message(id"Таймер включен")
 
   if (
get_pcvar_num(kz_reload_weapons) == 1)
   {
      
fm_strip_user_weapons(id)
      
fm_give_item(id,"weapon_knife")
      
fm_give_item(id,"weapon_usp"
   }
 
   if (
ShowTime[id] == 2)
      
kz_showtime_roundtime(id0)
   
set_pev(idpev_gravity1.0);
   
set_pev(idpev_movetypeMOVETYPE_WALK)
   
reset_checkpoints(id)
   
IsPaused[id] = false
   timer_started
[id] = true
   timer_time
[id] = thetime()
}
 
 
public 
finish_climb(id)
{
   if (!
is_user_alive (id))
   {
      return;
   }
 
   new 
Floattime
   time 
thetime() - timer_time[id]
   
show_finish_message(idtime)
   
timer_started[id] = false
 
   
if (gochecknumbers[id] == &&  !user_has_weapon(id,CSW_SCOUT) )
      
ProTop_update(idtime)
 
   if (
gochecknumbers[id] > || user_has_weapon(id,CSW_SCOUT) )
      
NoobTop_update(idtimechecknumbers[id], gochecknumbers[id])
 
}
 
public 
show_finish_message(idFloat:kreedztime)
{
   new 
name[32]
   new 
imin,isec,ims
   get_user_name
(idname31)
   
kreedztime thetime() - timer_time[id]
   
imin floatround(kreedztime 60.0floatround_floor)
   
isec floatround(kreedztime imin 60.0,floatround_floor)
   
ims floatround( ( kreedztime - ( imin 60.0 isec ) ) * 100.0floatround_floor )
    
   
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 закончил карту за^x04 %02i:%02i.%02i ^x01(%d С:%d, %d П:%d) %s!",name,imin,isec,ims,checknumbers[id],checknumbers[id] == "" "s",gochecknumbers[id],gochecknumbers[id] == "" "s"user_has_weapon(id,CSW_SCOUT) ? "^x03using scout""")
}
 
//==========================================================
 
public ProTop_update(idFloat:time)
{
   new 
authid[32], name[32], thetime[32];
   
get_user_name(idname31);
   
get_user_authid(idauthid31);
   
get_time(" %d/%m/%Y "thetime31);
   new 
bool:Is_in_pro15
   Is_in_pro15 
false
    
   
for(new 015i++)
   {
      if( 
equali(Pro_AuthIDS[i], authid) )
      {
         
Is_in_pro15 true
      
}
   }
    
   for (new 
015i++)
   {
      new 
Float:protiempo Pro_Times[i]
       
      if( 
time Pro_Times[i])
      {
         new 
pos i
          
         
while( !equal(Pro_AuthIDS[pos], authid) && pos 15 )
         {
            
pos++;
         }
          
         for (new 
posij--)
         {
            
formatex(Pro_AuthIDS[j], 31Pro_AuthIDS[j-1]);
            
formatex(Pro_Names[j], 31Pro_Names[j-1]);
            
formatex(Pro_Date[j], 31Pro_Date[j-1])
            
Pro_Times[j] = Pro_Times[j-1];
         }
          
         
formatex(Pro_AuthIDS[i], 31authid);
         
formatex(Pro_Names[i], 31name);
         
formatex(Pro_Date[i], 31thetime)
         
Pro_Times[i] = time
          
         
//No olvidarse !! Aca poner para que lo Grabe :D
         
save_pro15()
          
         if( 
Is_in_pro15 )
         {
 
            if( 
time protiempo )
            {
                
               if( (
1) == 1)
               {
                  
client_cmd(0"spk woop");
                  
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас^x03 первый^x01 в ^x04Pro 15^x01" name);
               }
               else
               {
                  
client_cmd(0"spk buttons/bell1");
                  
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01сейчас на^x03 %d^x01 месте в ^x04Pro 15^x01" name , (i+1));
               }
            }   
         }
         else
         {
            if( (
1) == 1)
            {
               
client_cmd(0"spk woop");
               
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас^x03 первый^x01 в ^x04Pro 15^x01" name);
            }
            else
            {
               
client_cmd(0"spk buttons/bell1");
               
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас на^x03 %d^x01 месте в ^x04Pro 15^x01" name , (i+1));
            }
         }
          
         return;
      }
 
      if( 
equali(Pro_AuthIDS[i], authid) )
      {
         if( 
time protiempo )
         {
            return;
         }
      }
       
   }
}
 
public 
save_pro15()
{
   new 
mapname[33], profile[128]
   
get_mapname(mapname32)
   
formatex(profile127"%s/pro_%s.cfg"KZ_TOP15_DIRmapname)
    
   if( 
file_exists(profile) )
   {
      
delete_file(profile)
   }
    
   new 
Data[256];
   new 
fopen(profile"at")
    
   for(new 
015i++)
   {
      
formatex(Data255"^"%.2f^"   ^"%s^"   ^"%s^"   ^"%s^"^n"Pro_Times[i], Pro_AuthIDS[i], Pro_Names[i], Pro_Date[i])
      
fputs(fData)
   }
   
fclose(f);
}
 
public 
read_pro15()
{
   new 
mapname[33], profile[128], prodata[256]
   
get_mapname(mapname32)
   
formatex(profile127"%s/pro_%s.cfg"KZ_TOP15_DIRmapname)
    
   new 
fopen(profile"rt" )
   new 
0
   
while( !feof(f) && 16)
   {
      
fgets(fprodata255)
      new 
totime[25]
      
parse(prodatatotime24Pro_AuthIDS[i], 31Pro_Names[i], 31Pro_Date[i], 31)
      
Pro_Times[i] = str_to_float(totime)
      
i++;
   }
   
fclose(f)
}
 
//================================================================================
==================
 
public 
NoobTop_update(idFloat:timecheckpointsgochecks
{
   new 
authid[32], name[32], thetime[32];
   
get_user_name(idname31);
   
get_user_authid(idauthid31);
   
get_time(" %d/%m/%Y "thetime31);
   new 
bool:Is_in_noob15
   Is_in_noob15 
false
    
   
for(new 015i++)
   {
      if( 
equali(Noob_AuthIDS[i], authid) )
      {
         
Is_in_noob15 true
      
}
   }
    
   for (new 
015i++)
   {
 
      new 
Float:noobtiempo Noob_Tiempos[i]
       
      if( 
time Noob_Tiempos[i])
      {
         new 
pos i
          
         
while( !equal(Noob_AuthIDS[pos], authid) && pos 15 )
         {
            
pos++;
         }
          
         for (new 
posij--)
         {
            
formatex(Noob_AuthIDS[j], 31Noob_AuthIDS[j-1]);
            
formatex(Noob_Names[j], 31Noob_Names[j-1]);
            
formatex(Noob_Date[j], 31Noob_Date[j-1])
            
Noob_Tiempos[j] = Noob_Tiempos[j-1]
            
Noob_CheckPoints[j] = Noob_CheckPoints[j-1]
            
Noob_GoChecks[j] = Noob_GoChecks[j-1]
         }
          
         
formatex(Noob_AuthIDS[i], 31authid);
         
formatex(Noob_Names[i], 31name);
         
formatex(Noob_Date[i], 31thetime)
         
Noob_Tiempos[i] = time
         Noob_CheckPoints
[i] = checkpoints
         Noob_GoChecks
[i] = gochecks
          
         save_Noob15
()
          
         if( 
Is_in_noob15 )
         {
 
            if( 
time noobtiempo )
            {   
               if( (
1) == 1)
               {
                  
client_cmd(0"spk woop")
                  
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас^x03 первый^x01 в ^x04Noob 15^x01" name);
               }
               else
               {
                  
client_cmd(0"spk buttons/bell1")
                  
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас на^x03 %d^x01 месте в ^x04Noob 15^x01" name , (i+1));
               }
            }   
         }
         else
         {
            if( (
1) == 1)
            {
               
client_cmd(0"spk woop");
               
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас^x03 первый^x01 в ^x04Noob 15^x01" name);
            }
            else
            {
               
client_cmd(0"spk buttons/bell1");
               
ColorChat(0GREEN"[XJ]^x01^x03 %s^x01 сейчас на^x03 %d^x01 месте в ^x04Noob 15^x01" name , (i+1));
            }
         }
          
         return;
      }
 
      if( 
equali(Noob_AuthIDS[i], authid) )
      {
         if( 
time noobtiempo )
         {
            return;
         }
      }
       
   }
}
 
public 
save_Noob15()
{
   new 
mapname[33], profile[128]
   
get_mapname(mapname32)
   
formatex(profile127"%s/Noob_%s.cfg"KZ_TOP15_DIRmapname)
    
   if( 
file_exists(profile) )
   {
      
delete_file(profile)
   }
    
   new 
Data[256];
   new 
fopen(profile"at")
    
   for(new 
015i++)
   {
      
formatex(Data255"^"%.2f^"   ^"%s^"   ^"%s^"   ^"%i^"   ^"%i^"   ^"%s^" ^n"Noob_Tiempos[i], Noob_AuthIDS[i], Noob_Names[i],Noob_CheckPoints[i], Noob_GoChecks[i],Noob_Date[i])
      
fputs(fData)
   }
   
fclose(f);
}
 
public 
read_Noob15()
{
   new 
mapname[33], profile[128], prodata[256]
   
get_mapname(mapname32)
   
formatex(profile127"%s/Noob_%s.cfg"KZ_TOP15_DIRmapname)
    
   new 
fopen(profile"rt" )
   new 
0
   
while( !feof(f) && 16)
   {
      
fgets(fprodata255)
      new 
totime[25], checks[5], gochecks[5]
      
parse(prodatatotime24Noob_AuthIDS[i], 31Noob_Names[i], 31,  checks4gochecks4Noob_Date[i], 31)
      
Noob_Tiempos[i] = str_to_float(totime)
      
Noob_CheckPoints[i] = str_to_num(checks)
      
Noob_GoChecks[i] = str_to_num(gochecks)
      
i++;
   }
   
fclose(f)
}
 
 
//================================================================================
==================
 
 
public 
ProTop_show(id)
{      
   new  
buffer[2048], lenname[32]
 
   
len formatex(buffer2047"<meta charset=UTF-8><meta charset=UTF-8><body bgcolor=#000000><table width=100%% cellpadding=2 cellspacing=0 border=0>")
   
len += formatex(buffer[len], 2047-len"<tr  align=center bgcolor=#52697B><th width=5%%> # <th width=30%% align=left> Jumper <th  width=25%%> Время <th width=20%%> Дата ")
       
   for (new 
015i++) 
   {   
      
name Pro_Names[i]
       
      if( 
Pro_Times[i] > 9999999.0 
      {
         
len += formatex(buffer[len], 2047-len"<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s", ((i%2)==0) ? " bgcolor=#FFFFFF" " bgcolor=#A8A8A8", (i+1), """""")
      }
 
      else
      {
         new 
minutosFloat:segundos
         minutos 
floatround(Pro_Times[i], floatround_floor)/60
         segundos 
Pro_Times[i] - (60*minutos)
 
         
len += formatex(buffer[len], 2047-len"<tr align=center%s><td> %d <td align=left> %s <td> %02d:%s%.2f <td> %s", ((i%2)==0) ? " bgcolor=#FFFFFF" " bgcolor=#A8A8A8", (i+1), Pro_Names[i], minutossegundos 10 "0" ""segundosPro_Date[i])
 
      }
   }
 
   
len += formatex(buffer[len], 2047-len"</table></body>")
       
   
show_motd(idbuffer"Pro15 Jumpers")
 
   return 
PLUGIN_HANDLED
}
 
public 
NoobTop_show(id)
{
   new 
buffer[2048], name[32], len
 
   len 
formatex(buffer2047"<meta charset=UTF-8><meta charset=UTF-8><body bgcolor=#000000><table width=100%% cellpadding=2 cellspacing=0 border=0>")
   
len += formatex(buffer[len], 2047-len"<tr  align=center bgcolor=#52697B><th width=5%%> # <th width=25%% align=left> Jumper <th  width=20%%> Время  <th width=15%%> Сохранений <th width=15%%> Перемещений <th width=20%%> Дата ")
       
   for (new 
015i++) 
   {      
      if( 
Noob_Tiempos[i] > 9999999.0 
      {
         
len += formatex(buffer[len], 2047-len"<tr align=center%s><td> %d <td align=left> %s <td> %s <td> %s <td> %s <td> %s", ((i%2)==0) ? " bgcolor=#FFFFFF" " bgcolor=#A8A8A8", (i+1), """""""""")
      }
 
      else
      {
         
name Noob_Names[i]
         new 
minutosFloat:segundos
         minutos 
floatround(Noob_Tiempos[i], floatround_floor)/60
         segundos 
Noob_Tiempos[i] - (60*minutos)
          
         
len += formatex(buffer[len], 2047-len"<tr align=center%s><td> %d <td align=left> %s <td> %02d:%s%.2f <td> %d <td> %d <td> %s", ((i%2)==0) ? " bgcolor=#FFFFFF" " bgcolor=#A8A8A8", (i+1), Noob_Names[i], minutossegundos 10 "0" ""segundosNoob_CheckPoints[i], Noob_GoChecks[i], Noob_Date[i])
      }
   }
    
   
len += formatex(buffer[len], 2047-len"</table></body>")
       
   
show_motd(idbuffer"Noob15 Jumpers")
 
   return 
PLUGIN_HANDLED
}
 
 
// You reached the end of file
// This plugin was made by p4ddY :)
// This plugin was edited by nucLeaR
// Version 2.0y 
Аватара пользователя
cart3r
 
Сообщения: 21
Зарегистрирован: 05 фев 2012, 15:56
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: prookreedz Run time error 10: native error

Сообщение Subb98 » 10 фев 2017, 14:10

Для начала, замените строку 1524 на:

Код: Выделить всё
set_hudmessage(str_to_num®str_to_num(g), str_to_num(b), -1.00.9000.02.00.01.0, -1); 

>>

Код: Выделить всё
set_hudmessage(str_to_num(r), str_to_num(g), str_to_num(b), -1.00.9000.02.00.01.0, -1); 
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: prookreedz Run time error 10: native error

Сообщение cart3r » 10 фев 2017, 14:25

Subb98 писал(а):Для начала, замените строку 1524 на:

Код: Выделить всё
set_hudmessage(str_to_num®, str_to_num(g), str_to_num(b), -1.0, 0.90, 0, 0.0, 2.0, 0.0, 1.0, -1); 

>>

Код: Выделить всё
set_hudmessage(str_to_num(r), str_to_num(g), str_to_num(b), -1.0, 0.90, 0, 0.0, 2.0, 0.0, 1.0, -1); 


В плагине прописанно str_to_num(r). Видимо при копировании сюд, почемуто заменилась на ®
Аватара пользователя
cart3r
 
Сообщения: 21
Зарегистрирован: 05 фев 2012, 15:56
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

Re: prookreedz Run time error 10: native error

Сообщение cart3r » 10 фев 2017, 19:23

Решил вопрос тем что, скачал чистую сборку Valve и пересобрал на ней сервер, установил rehlds, regamedll, reamxx и ошибка пропала.
Аватара пользователя
cart3r
 
Сообщения: 21
Зарегистрирован: 05 фев 2012, 15:56
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15