|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
Установка FOV по команде
|
|
| HoRRoR | Дата: Пятница, 02.05.2008, 16:49:25 | Сообщение # 1 |
 Полковник
Группа: Скриптеры
Сообщений: 181
Статус: Не в сети
| 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
Статус: Не в сети
| Quote (HoRRoR) значит комманда клиентская, и на других не влияет. Если уж так, то зделай себе бинды К примеру alias "+zoom" "Команда 130" alias "-zoom" "Команда 90" bind "MOUSE2" "+zoom" Под словом "Команда" подразумевается команда, отвечающая за смену FOV
|
| |
|
|
| HoRRoR | Дата: Пятница, 02.05.2008, 22:46:20 | Сообщение # 3 |
 Полковник
Группа: Скриптеры
Сообщений: 181
Статус: Не в сети
| нипомогает надо плагин перепесать, а я не скриптер =/
|
| |
|
|
| marikcool | Дата: Суббота, 03.05.2008, 05:59:23 | Сообщение # 4 |
|
Подполковник
Группа: Пользователи
Сообщений: 139
Статус: Не в сети
| думал небудет работать >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
Статус: Не в сети
| 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
Статус: Не в сети
| не работало потому что не компилировалось (пробел втисался):
|
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |