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

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

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

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

Автоматическое смена вида игры

, при написании /cam - без меню
Статус пользователя STOMPER
сообщение 19.12.2014, 23:32
Сообщение #1


Стаж: 11 лет

Сообщений: 81
Благодарностей: 1
Полезность: 14

Чтобы когда игрок написал: /cam - сразу было быть от 3 лица
И когда снова /cam - обычный вид
Пожалуйста может кто нибудь так сделать ?

Код:
#include <amxmodx>
#include <engine>

#define VERSION "1.1.1"

// Change [CLAN-TAG] to your clan name / server name
new const prefix[] = "[CLAN-TAG] Camera Changer:"

// HasView = 1 for 3rd person etc.
new HasView[33]

// This is the cvar if the Camera changer is active or not.
new gCameraActive

public plugin_init()
{
// Plugin name, Version, Author.
register_plugin( "Camera Changer", VERSION, "Larcyn")

// Those 2 lines below are the commands that you use if you want to open the camera menu.
register_clcmd("say /camera", "CmdChoose")
register_clcmd("say /cam", "CmdChoose")

// Change this cvar if you want to disable the Camera menu
gCameraActive = register_cvar( "amx_cammenu", "1" ) // 0 Off, 1 On; Default 1
}

public CmdChoose(id)
{
// If the cvar amx_cammenu is set to 0 players can't open the menu.
if(get_pcvar_num(gCameraActive) != 0)
{
new viewmenu = menu_create( "\rCamera Chooser:", "ViewHandler")
menu_additem(viewmenu, "\yInformation", "1", 0)
menu_addblank(viewmenu, 0)
menu_additem(viewmenu, "\y3rd Person View", "2", 0)
menu_additem(viewmenu, "\yNormal View", "3", 0)
menu_additem(viewmenu, "\yDrug View", "4", 0)

menu_setprop(viewmenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, viewmenu, 0)
return PLUGIN_HANDLED
}
// If the camera menu is disabled, the message below will print to a client which wants to open the menu.
client_print(id, print_chat, "%s Camera changer is currently disabled.", prefix)
return PLUGIN_HANDLED
}

// Actions below
public ViewHandler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback

menu_item_getinfo( menu, item, access, data,5, iName, 63, callback );
new key = str_to_num(data)
switch(key)
{
case 1:
{
client_print(id, print_chat, "This server is using Camera Changer Version %s by Larcyn", VERSION)
CmdChoose(id)
return PLUGIN_HANDLED
}
case 2:
{
if( HasView[id] == 1)
{
client_print(id, print_chat, "Error! You already have 3rd person view!")
return PLUGIN_HANDLED
}

ResetFOV(id)
set_view(id, CAMERA_3RDPERSON)
client_print(id, print_chat, "%s Your view is successfully changed to 3rd person!", prefix)

HasView[id] = 1
}
case 3:
{
if( HasView[id] == 2)
{
client_print(id, print_chat, "Error! You already have normal view!")
return PLUGIN_HANDLED
}

ResetFOV(id)
set_view(id, CAMERA_NONE)
client_print(id, print_chat, "%s Your view is successfully changed back to normal!", prefix)

HasView[id] = 2
}
case 4:
{
if( HasView[id] == 3)
{
client_print(id, print_chat, "Error! You already have drug view!")
return PLUGIN_HANDLED
}

message_begin(MSG_ONE, get_user_msgid("SetFOV"), {0,0,0}, id)
write_byte(170)
message_end()

set_view(id, CAMERA_NONE)
client_print(id, print_chat, "%s Your view is successfully changed to drug view!", prefix)

HasView[id] = 3
}
}
return PLUGIN_HANDLED
}

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

// When player connect, it fixes so you got "normalview" on.
public client_putinserver(id)
{
HasView[id] = 2
}

// This model is needed for 3rd view, if you remove the lines below your server will crash when someone press 3rd view.
public plugin_precache()
{
precache_model("models/rpgrocket.mdl")
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1053\\ f0\\ fs16 \n\\ par }
*/
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя igor_ok
сообщение 19.12.2014, 23:38
Сообщение #2
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Сейчас сделаю

Отредактировал: igor_ok, - 19.12.2014, 23:52


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 19.12.2014, 23:52
Сообщение #3
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Если хочешь сообщение в чат можешь убрать.
А если хочешь чтобы когда используешь /cam это сообщение было видно в чате - удали return 1;

Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <engine>

#define PLUGIN "3D Cam"
#define VERSION "0.1"
#define AUTHOR "igor_ok"

new bool:Cam[33];

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

register_clcmd("say /cam", "func_cam");
}

public func_cam(id) {
Cam[id] = !Cam[id];
set_view(id, Cam[id]);
client_print(id, print_chat, "3D Camera %s", (Cam[id]) ? "On" : "Off");
return 1;
}

public client_disconnect(id) {
Cam[id] = false;
}


Отредактировал: igor_ok, - 19.12.2014, 23:52


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя STOMPER
сообщение 20.12.2014, 14:00
Сообщение #4


Стаж: 11 лет

Сообщений: 81
Благодарностей: 1
Полезность: 14

igor_ok, проверил работает но - когда пишешь /cam сервер перезапускается 1 раз. И после смены карты когда так же любой игрок напишет /cam тоже перезапускается .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STOMPER
сообщение 23.12.2014, 18:06
Сообщение #5


Стаж: 11 лет

Сообщений: 81
Благодарностей: 1
Полезность: 14

Никто не поможет ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 23.12.2014, 19:06
Сообщение #6
Стаж: 14 лет

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

Код:
#include <amxmodx>
#include <engine>

new bool:HasView[33]

public plugin_init()
register_clcmd("say /cam", "camera")

public plugin_precache()
precache_model("models/rpgrocket.mdl")

public client_putinserver(id)
HasView[id] = false

public camera(id) {
if(HasView[id] == true) {
resetfov(id)
set_view(id, CAMERA_NONE)

HasView[id] = false
}
else {
resetfov(id)
set_view(id, CAMERA_3RDPERSON)

HasView[id] = true
}
return PLUGIN_CONTINUE
}

public resetfov(id) {
message_begin(MSG_ONE, get_user_msgid("SetFOV"), {0,0,0}, id)
write_byte(90)
message_end()
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
binky
сообщение 23.12.2014, 19:13
Сообщение #7
Стаж: 12 лет

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

зачем в плагине модель?
public plugin_precache()
precache_model("models/rpgrocket.mdl")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STOMPER
сообщение 23.12.2014, 19:18
Сообщение #8


Стаж: 11 лет

Сообщений: 81
Благодарностей: 1
Полезность: 14

proff_q, спасибо огромное :) :) :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя proff_q
сообщение 23.12.2014, 19:18
Сообщение #9
Стаж: 14 лет

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

binky,
Чтобы не было
Цитата
сервер перезапускается 1 раз. И после смены карты когда так же любой игрок напишет /cam тоже перезапускается .
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
binky
сообщение 25.12.2014, 14:48
Сообщение #10
Стаж: 12 лет

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

Цитата(proff_q @ 23.12.2014, 20:18) *
binky,
Чтобы не было

как прекеш модели влияет на перезагрузку сервера?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: