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

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

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

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

Помощь по плагину

Статус пользователя CityTomsk
сообщение 23.3.2015, 7:39
Сообщение #1
Стаж: 15 лет

Сообщений: 127
Благодарностей: 15
Полезность: < 0

Есть плагин Knife RR

Есть проблема, те кто заходят в течении 5-10 секунд за команду у них 35хп, а те кто позже, у них 100хп.
Как сделать првоерку или подправить плагин чтобы у всех было 35хп не зависимо когда игрок зашел?

Скрытый текст
Код
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

// *** customizable parameters
#define RESTART_AFTER           // comment to disable restart round after warmup end
#define KNIFE_ROUND_ONLY      // uncomment to enable knife warmup round only
#define _35HP_FOR_KNIFE_ROUND // uncomment to enable 35 hp during knife round
// *** end of customizable parameters

#define TT 1
#define CT 2

new giRoundCounter
new gMsgStatusIconReg, gMsgStatusIcon, gMsgCurWeapon
new HamHook:g_iHhCBasePlayerSpawn, HamHook:g_iHhCBasePlayerPreThink
new bool:gbWarmupActive

#if defined RESTART_AFTER
new bool:gbIgnoreRestart
#endif

// offsets
#define m_fClientMapZone 235
#define MAPZONE_BUYZONE ( 1<<0 )

enum {
   ROUND_NONE,
   ROUND_KNIFE,
   ROUND_PISTOL
}

const m_iJoinedState = 121
const m_iMenu = 205

const MENU_CHOOSEAPPEARANCE = 3
const STATE_PICKINGCLASS = 4

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

   register_event( "TextMsg", "EventNewGame", "a", "2=#Game_will_restart_in", "2=#Game_Commencing" )
   register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" )
   register_event( "CurWeapon", "EventCurWeapon", "be", "1=1", "2!29" )    // specified, call if is send to alive player only

   register_logevent( "EventRoundEnd", 2, "1=Round_End" )

   gMsgStatusIcon = get_user_msgid( "StatusIcon" )
   gMsgCurWeapon = get_user_msgid( "CurWeapon" )

   DisableHamForward( g_iHhCBasePlayerSpawn = RegisterHam( Ham_Spawn, "player", "OnCBasePlayer_Spawn_Post", 1 ) )

   DisableHamForward( g_iHhCBasePlayerPreThink = RegisterHam( Ham_Player_PreThink, "player", "OnCBasePlayer_PreThink_Post", 1 ) )

   register_clcmd( "menuselect", "ClCmd_MenuSelect_JoinClass" )
   register_clcmd( "joinclass", "ClCmd_MenuSelect_JoinClass" )
}

public EventNewGame() {
#if defined RESTART_AFTER
   if( gbIgnoreRestart ) {
      // it is planned
      gbIgnoreRestart = false
      return
   }
#endif

   if( !gbWarmupActive ) {
      // we don't have active 'hooks' for now
      gMsgStatusIconReg = register_message( gMsgStatusIcon, "MessageStatusIcon" )
      EnableHamForward( g_iHhCBasePlayerSpawn )
      gbWarmupActive = true
   }

   giRoundCounter = ROUND_NONE
}

public EventNewRound() {
   if( !gbWarmupActive )
      return

   giRoundCounter++
}

public OnCBasePlayer_Spawn_Post(id) {
   if( !is_user_alive(id) )
      return

   switch( giRoundCounter ) {
#if defined _35HP_FOR_KNIFE_ROUND
      case ROUND_KNIFE : set_pev( id, pev_health, 35.0 )
#endif
      case ROUND_PISTOL: {
         switch( get_user_team(id) ) {
            case TT: cs_set_user_bpammo( id, CSW_GLOCK18, 120 )
            case CT: cs_set_user_bpammo( id, CSW_USP, 100 )
         }
      }
   }
}

public EventCurWeapon(id) {
   if( !gbWarmupActive )
      return

   switch( giRoundCounter ) {
      case ROUND_KNIFE : {
         if( read_data(2) /* weapon id */ != CSW_C4 )
            SetKnife(id)
      }
      case ROUND_PISTOL: {
         switch( read_data(2) ) {
            case CSW_GLOCK18, CSW_USP, CSW_C4 : return
         }
         SetKnife(id)
      }
   }
}

SetKnife(id) {
   engclient_cmd( id, "weapon_knife" )

   // update info about weapon
   emessage_begin( MSG_ONE, gMsgCurWeapon, _, id )
   ewrite_byte(1) // active
   ewrite_byte(CSW_KNIFE) // weapon
   ewrite_byte(-1) // clip
   emessage_end()
}

public MessageStatusIcon( msgid, dest, receiver ) {    // Exolent[jNr]'s code
   // check if status is to be shown
   if( get_msg_arg_int(1) ) {
      static const buyzone[] = "buyzone"

      // grab what icon is being shown
      new icon[ sizeof( buyzone ) + 1 ]
      get_msg_arg_string( 2, icon, charsmax(icon) )

      // check if buyzone icon
      if( !strcmp( icon, buyzone ) ) {
         // remove player's buyzone bit for the map zones
         set_pdata_int( receiver, m_fClientMapZone, get_pdata_int( receiver, m_fClientMapZone ) &~ MAPZONE_BUYZONE )
         // block buyzone icon
         return PLUGIN_HANDLED
      }
   }

   return PLUGIN_CONTINUE
}

public EventRoundEnd() {
   if( !gbWarmupActive )
      return

   // remember: Round_End is fired right after Game_Commencing too
   switch( giRoundCounter ) {
      case ROUND_NONE: return
#if !defined KNIFE_ROUND_ONLY
      case ROUND_KNIFE : return
#endif
   }

   gbWarmupActive = false
   unregister_message( gMsgStatusIcon, gMsgStatusIconReg )
   DisableHamForward( g_iHhCBasePlayerSpawn )

#if defined RESTART_AFTER
   gbIgnoreRestart = true
   set_cvar_num( "sv_restart", 4 )
#endif
}

public ClCmd_MenuSelect_JoinClass(id) {
   if( !gbWarmupActive )
      return

   if( get_pdata_int(id, m_iMenu) == MENU_CHOOSEAPPEARANCE && get_pdata_int(id, m_iJoinedState) == STATE_PICKINGCLASS )
      EnableHamForward( g_iHhCBasePlayerPreThink )
}

public OnCBasePlayer_PreThink_Post(id) {
   DisableHamForward( g_iHhCBasePlayerPreThink )
   if( !is_user_alive(id) )
      ExecuteHam( Ham_Spawn, id )
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя CityTomsk
сообщение 25.3.2015, 8:02
Сообщение #2
Стаж: 15 лет

Сообщений: 127
Благодарностей: 15
Полезность: < 0

Актуально, есть желающие помочь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 25.3.2015, 9:37
Сообщение #3
Стаж: 14 лет

Сообщений: 357
Благодарностей: 263
Полезность: 804

Найди в плагине строчку set_pev(id, pev_health ...
Скопируй ее и вставь после SetKnife(id) {
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: