Sign in to follow this  
Followers 0
odosenok

Система полета камерой

2 posts in this topic

Описание системы.

Система полета камерой представляет собой возможность перемещаться в пространстве игры по всем осям (X, Y, Z) путем нажатия кнопок на клавиатуре.

 

Подключение системы.

1. Система написана в отдельном файле - include. Вам необходимо скачать этот файл и добавить в папку, находящейся в следующей директории:

"..\pawno\include"

2. Затем Вам следует открыть свой игровой мод и в начале, после всех инклудов, дописать следующую строку:

#include <fly>

 

Работа с системой.

В систему полета камерой включены две функции:

1.

SetPlayerFlyStatus(playerid, status = 2)
/*
	playerid - ID игрока, которого Вы хотите "отправить" в режим полета
	status - режим полета*
    
    * предусмотрено три режима полета:
		CAMERA_MODE_NONE	(0) - выключить режим полета,
		CAMERA_MODE_FLY		(1) - включить режим полета,
		CAMERA_MODE_REVERSE	(2) - сменить режим на реверсивный
*/

2. 

IsPlayerFlying(playerid)
/*
	playerid - ID игрока, пребывание в состоянии полета которого Вы хотите проверить
	
	*данная функция возвращает:
		CAMERA_MODE_NONE	(0), если игрок не находится в состоянии полета,
		CAMERA_MODE_FLY		(1), если игрок находится в состоянии полета
	
*/

При помощи данных функций Вы можете управлять пребыванием игрока в режиме полета, а также получать информацию о том, "летает" ли игрок в тот или иной момент.

 

Особенности системы.

Системой полета предусмотрено, что игрок, выходящий из режима полета, появится именно там, где вышел. Так, если Вы покидаете режим полета, пребывая в озере, то появление игрока будет именно в этом озере.

 

Пример использования.

CMD:fly(playerid, params[])
{
	static const MSG_USE_CMD[] = !"» Usage the command: /fly [mode 0-2]";
	
	if(isnull(params))
		return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
	new mode;
	if(sscanf(params, "d", mode))
		return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
	else if(!(0 <= mode <= 2))
		return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
	
	SetPlayerFlyStatus(playerid, mode);
	return 1;
}
CMD:checkfly(playerid, params[])
{
	static const MSG_USE_CMD[] = !"» Usage the command: /checkfly [playerid]";
	
	if(isnull(params))
		return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
	new id;
	if(sscanf(params, "u", id))
		return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;
	else if(id == INVALID_PLAYER_ID)
		return SendClientMessage(playerid, -1, !"The player is not connected") & 0;
	
	static const status_fly[][] =
	{
		!"The player is not flying",
		!"The player is flying"
	};
	SendClientMessage(playerid, -1, status_fly[IsPlayerFlying(id)]);
	return 1
}

Авторское право.

Функции для получения позиции для перемещения камеры, само перемещение вырезано из разработки Norck.

В свою очередь я, @odosenok (Elrmrnt-Kritik), преобразовал данный код, создал более удобный интерфейс.

 

fly.inc

Share this post


Link to post
Share on other sites

Полезно, спасибо

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   You have pasted content with formatting.   Remove formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

Loading...
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Radmiz
      By Radmiz
      Добрый вечер, у меня образовалась проблема! Я уже как 1-2 месяца назад скачал этот мод, там было всё прекрасно но вдруг появилась проблема с маппингом типо он не удаляеться. Тоесть объекты были удалены а теперь как будто этого и не было вот скрины > https://yapx.ru/v/Kwrv1
    • _bogdan_
      By _bogdan_
      Добрый вечер, подскажите какой можно взять мод под основу. Сейчас на пабликах/видео ресурсах, везде рекламируют R*dmir rp. 
      Но все знают что мод багнутый. Хотелось бы узнать какие есть более менее годные игровые моды которые можно взять под основу.
      За ранее благодарен тем кто ответил.))