AMX MOD X
Вторник, 06.01.2026, 15:41:56



Приветствую Вас Гость | RSS
[ Главная ] [ Установка FOV по команде - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: AlMod, slogic  
Установка FOV по команде
HoRRoRДата: Пятница, 02.05.2008, 16:49:25 | Сообщение # 1
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
FOV - это зум или радиус обзора в игре. По умолчанию он равен 90, если число меньше - то изображение увеличивается, если больше, то получается эффект вытянутости. мне нужно, чтоб по одной консольной команде FOV устанавливался на 130, по другой - на 90

значит комманда клиентская, и на других не влияет.

пробовал делать на основе плагина "зум для всех оружий" - не получилось.

Code

#include <amxmodx>
#include <amxmisc>

new gmsgSetFov, foved[33], oldweap[33], lastinv[33]
//----------------------------------------------------------------------------------------
public plugin_init() {
  register_plugin("ZoomGuns", "1.0", "OneEyed")
  if(!cvar_exists("zoom_on"))
   register_cvar("zoom_on","1")
  if(!cvar_exists("zoom_delay"))
   register_cvar("zoom_delay","0.4 ")
  if(!cvar_exists("zoom_pistol"))
   register_cvar("zoom_pistol","65")
  if(!cvar_exists("zoom_shotgun"))
   register_cvar("zoom_shotgun" ,"60")
  if(!cvar_exists("zoom_submachinegun"))
   register_cvar("zoom_submachinegun","50")
  if(!cvar_exists("zoom_rifleone"))
   register_ cvar("zoom_rifleone","45")
  if(!cvar_exists("zoom_rifletwo"))
   register_cvar("zoom_rifletwo","50")
  if(!cvar_exists("zoom_machinegun"))
   r egister_cvar("zoom_machinegun","55")
  if(!cvar_exists("zoom_speed"))
   register_cvar("zoom_speed","130")
    
  register_clcmd("aaafova","s etFov(id,130)")
  register_clcmd("aaafovb","setFov(id,90)")    //added this so console doesn't whine
   
  register_clcmd("say","handle_say") // Newbie help (credits to KRoTaL on this method)
  register_event("CurWeapon", "Switched", "be")  
  gmsgSetFov = get_user_msgid("SetFOV")
}
//----------------------------------------------------------------------------------------
public zoom_help(id) {
  client_print(id, print_chat, "If you want to use the zoom feature, ^n")
  client_print(id, print_chat, "Open your console and write: bind ^"key^" ^"+zoom^"")
  return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------
public handle_say(id) {
  new said[192]
  read_args(said,192)
  remove_quotes(said)
  if( (containi(said, "zoom") != -1) )  
   zoom_help(id)
  return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------
public client_putinserver(id) foved[id] = 0
//----------------------------------------------------------------------------------------
public null(id) return PLUGIN_HANDLED/*..HAX..*/
//----------------------------------------------------------------------------------------
//Hack so they cant use the fov for getting crosshair on (sniper guns) when no scoped-----
public Switched(id) {
  if(!get_cvar_num("zoom_on"))
   return PLUGIN_HANDLED
    
  new weapon, clip, ammo
  weapon = get_user_weapon(id,clip,ammo)
   
  lastinv[id] = checkWeap(weapon)
  if(foved[id] && oldweap[id] != weapon) {
   new fovargs[2]
   fovargs[0] = id
   fovargs[1] = 0
   setFov(fovargs)
   if(lastinv[id]) {
    lastinv[id] = 0
    client_cmd(id,"lastinv")
    set_task(0.01,"lastInv",id)
   }
  }
  return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------
public lastInv(id)  
  client_cmd(id,"lastinv")
//End hack--------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
public checkWeap(weap) {
  if(weap == CSW_AWP || weap == CSW_SCOUT || weap == CSW_SG550 || weap == CSW_G3SG1 )
   return 1
  return 0
}
//----------------------------------------------------------------------------------------
public zoomIn(id) {
  if(!get_cvar_num("zoom_on"))
   return PLUGIN_HANDLED

  new weapon, clip, ammo
  weapon = get_user_weapon(id,clip,ammo)

  if(foved[id] == 1 ) {
   makeFov(id,0)
   return PLUGIN_HANDLED
  }
   
  if(weapon == CSW_VEST)
   makeFov(id,130)
  else  
   makeFov(id,130)
   
  oldweap[id] = weapon
  return PLUGIN_HANDLED  
}
//----------------------------------------------------------------------------------------
public makeFov(id,amt) {
  new args[2]
  args[0] = id
  args[1] = amt
  if(get_cvar_float("zoom_delay") > 0.0)
   set_task(get_cvar_float("zoom_delay"),"setFov",4321,args,2)
  else
   setFov(args)
}
//----------------------------------------------------------------------------------------
public setFov(args[]) {
  new id = args[0], amt = args[1]
  message_begin(MSG_ONE,gmsgSetFov,{0,0,0},id)
  write_byte(amt)
  message_end()
  if(amt > 0 && amt != 90)
   foved[id] = 1
  else
   foved[id] = 0

}
//----------------------------------------------------------------------------------------
 
SVДата: Пятница, 02.05.2008, 17:18:18 | Сообщение # 2
Подполковник
Группа: Пользователи
Сообщений: 106
Репутация: 1
Статус: Не в сети
Quote (HoRRoR)
значит комманда клиентская, и на других не влияет.

Если уж так, то зделай себе бинды
К примеру
alias "+zoom" "Команда 130"
alias "-zoom" "Команда 90"
bind "MOUSE2" "+zoom"

Под словом "Команда" подразумевается команда, отвечающая за смену FOV


 
HoRRoRДата: Пятница, 02.05.2008, 22:46:20 | Сообщение # 3
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
нипомогает
надо плагин перепесать, а я не скриптер =/
 
marikcoolДата: Суббота, 03.05.2008, 05:59:23 | Сообщение # 4
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 1
Статус: Не в сети
думал небудет работать >90, а все работает)) прикольно.

Code
#include <amxmodx>

public plugin_init()
{
    register_plugin("fov_test","0.1","marikcool")
    register_clcmd("fov1","fov1")    
      register_clcmd("fov2","fov2")
}  

p ublic fov1(id)
{
    message_begin(MSG_ONE,get_user_msgid("SetFOV"),{0,0,0},id)    
    write_byte(130)    
    message_end()
    return PLUGIN_HANDLED
}

public fov2(id)
{
    message_begin(MSG_ONE,get_user_msgid("SetFOV"),{0,0,0},id)    
    write_byte(90)    
    message_end()    
    return PLUGIN_HANDLED
}

вот код, команда fov1 - вытягивает, fov2 - в дефаулт кидает

Сообщение отредактировал marikcool - Суббота, 03.05.2008, 06:10:33
 
HoRRoRДата: Суббота, 03.05.2008, 19:45:00 | Сообщение # 5
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
marikcool, спс

Добавлено (2008-05-03, 7:38 Pm)
---------------------------------------------
но не работает =(
(амхх - 1.8.0, компилил как одтельный плагин)

Добавлено (2008-05-03, 7:45 Pm)
---------------------------------------------
вставил код в другой плагин - заработало - спс ))

 
slogicДата: Пятница, 09.05.2008, 23:55:08 | Сообщение # 6
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
не работало потому что не компилировалось (пробел втисался):
Code
p ublic fov1(id)
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026