По умолчанию в Counter-Strike zoom имеют всего несколько винтовок. Но с помощью данной функции зум можно сделать для любого оружия!
Инфо из cstrike.inc:
/* Zoom type enum. Used for get/set_user_zoom() natives.
*/
enum
{
CS_RESET_ZOOM = 0, // Reset any zoom blocking (when using this type, mode has no effect)
CS_SET_NO_ZOOM, // Disable any sort of zoom (ie: to disable zoom in all weapons use this with mode=0)
CS_SET_FIRST_ZOOM, // Set first zoom (awp style)
CS_SET_SECOND_ZOOM, // Set second zoom (awp style)
CS_SET_AUGSG552_ZOOM, // Set aug/sg552 zoom style
};
/* Sets a weapon zoom type on a player, any zoom type will work for all weapons, so you can even set an awp zoom to pistols :D
* The 2nd param has to be one of the above zoom types in the enum. Mode can only be 0 or 1.
* If mode=0 (blocking mode), the user will be forced to use the zoom type set by the native, and wont be able to change it (even by changing weapon)
* until the native resets the zoom with CS_RESET_ZOOM.
* If mode=1 the user will be able to restore back to a normal view by changing weapon.
*/
native cs_set_user_zoom(index, type, mode);
Синтаксис:
cs_set_user_zoom ( index, type, mode )
- index - id игрока которому устанавливается zoom
- type - Тип зума:
- CS_RESET_ZOOM - Блокирование использование зума ( у меня не получилось, просто сбрасывается зум и все.)
- CS_SET_NO_ZOOM - Без оптического прицела
- CS_SET_FIRST_ZOOM - Увеличение 1 ( стиль awp)
- CS_SET_SECOND_ZOOM- Увеличение 2 ( стиль awp)
- CS_SET_AUGSG552_ZOOM - Зум в стиле aug/sg552
- CS_RESET_ZOOM - Блокирование использование зума ( у меня не получилось, просто сбрасывается зум и все.)
- mode - Если поставить 1 то пользователь сможет изменять зум, если 0 то не сможет.
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define PLUGIN "[cstrike.inc] cs_set_user_zoom"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /z1","zoom1")
register_clcmd("say /z2","zoom2")
register_clcmd("say /z3","zoom3")
register_clcmd("say /z4","zoom4")
register_clcmd("say /z5","zoom5")
}
public zoom1on(id){
cs_set_user_zoom(id,CS_RESET_ZOOM,1)
}
public zoom2(id){
cs_set_user_zoom(id,CS_SET_NO_ZOOM,1)
}
public zoom3(id){
cs_set_user_zoom(id,CS_SET_FIRST_ZOOM,1)
}
public zoom4(id){
cs_set_user_zoom(id,CS_SET_SECOND_ZOOM,1)
}
public zoom5(id){
cs_set_user_zoom(id,CS_SET_AUGSG552_ZOOM,1)
}
Описание:
Как вы понимаете, сейчас я вас отправлю на сервер и попрошу использовать команды say /z*, где в место звездочек цифры от 1 до 5.
И вы сами посмотрите что происходит в результате работы функции.
Комментариев к коду так же не вижу смысла делать, больно уж все просто.
Только обращу внимание на необходимость проверки валидности индекса игрока.