Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/pos

Статус
В этой теме нельзя размещать новые ответы.

Vassasssin

Умник
Суть команды заключается в том , что введя команду /pos у нас появляется диалог в котором есть 3 функции

1) Сохранить координаты

2) Телепортироваться

3) Текущие координаты

Сначала встаем в нужное нам место , сохраняем координаты , и в любое время мы сможем там оказаться , достаточно выбрать Телепортироваться

Внимание , необходима БД !

Команда /pos

PHP:
if(strcmp(cmd, "/pos", true) == 0) 
    {
        ShowPlayerDialog(playerid,451,DIALOG_STYLE_LIST,"Координаты","Сохранить координаты\nТелепортироваться\nТекущие координаты","Выбор","Отмена");
	return 1;	  
    }

Добавляем в паблик OnDialogResponse

PHP:
if(dialogid == 451)
{
	if(response)
    {
	{switch(listitem)
	{
    case 0:
    {
    GetPlayerPos(playerid,PlayerInfo[playerid] [pPosX],PlayerInfo[playerid] [pPosY],PlayerInfo[playerid] [pPosZ]);
    SendClientMessage(playerid,0xFFFFFFFF, "Координаты сохранены");
    }
    case 1:
    {
		if(PlayerInfo[playerid] [pPosX] == 0)
		{
        SendClientMessage(playerid,0xFFFFFFFF, "Необходимо сохранить координаты");
        }
        else
        {
		SetPlayerPos(playerid,PlayerInfo[playerid] [pPosX],PlayerInfo[playerid] [pPosY],PlayerInfo[playerid] [pPosZ]);
		SendClientMessage(playerid,0xFFFFFFFF, "Вы телепортировались");
        }
    }
	case 2:
	{
        if(PlayerInfo[playerid] [pPosX] == 0)
        {
        SendClientMessage(playerid,0xFFFFFFFF, "Необходимо сохранить координаты");
        }
        else
        {
        SetPlayerCameraPos(playerid,PlayerInfo[playerid] [pPosX],PlayerInfo[playerid] [pPosY],PlayerInfo[playerid] [pPosZ]);
        SetPlayerCameraLookAt(playerid,PlayerInfo[playerid] [pPosX],PlayerInfo[playerid] [pPosY],PlayerInfo[playerid] [pPosZ]);
        Camera[playerid] = 1;
        SendClientMessage(playerid,0xFFFFFFFF, "Введите /exit , чтобы прекратить просмотр");
        }
    }

    }
    }
    }
}
Добавляем ко всем new

PHP:
new Camera[MAX_PLAYERS];
В паблик OnPlayerConnect

PHP:
Camera[playerid] = 0;
Добавляем в паблик OnPlayerCommandText

PHP:
    if (strcmp("/exit", cmdtext, true, 10) == 0) 
	{
                if(Camera[playerid] == 1)
                {
	            SetCameraBehindPlayer(playerid);
	            Camera[playerid] = 0;
	            return 1;
	            }
	      
		 
	}
Добавляем 3 переменные в enum , которые отвечают за координаты x,y,z

PHP:
enum pInfo {
Float:pPosX,
Float:pPosY,
Float:pPosZ
}
В паблик OnPlayerConnect обнуляем переменные до 0

PHP:
PlayerInfo[playerid] [pPosX] = 0;
PlayerInfo[playerid] [pPosY] = 0;
PlayerInfo[playerid] [pPosZ] = 0;
В сохранение данных игрока

PHP:
ini_setFloat(iniFile,"X",Player[playerid][pPosX]);
ini_setFloat(iniFile,"Y",Player[playerid][pPosY]);
ini_setFloat(iniFile,"Z",Player[playerid][pPosZ]);
В регистрацию

PHP:
ini_setFloat(iniFile,"X",Player[playerid][pPosX]);
ini_setFloat(iniFile,"Y",Player[playerid][pPosY]);
ini_setFloat(iniFile,"Z",Player[playerid][pPosZ]);
В авторизацию

PHP:
ini_getFloat(iniFile,"X",Player[playerid][pPosX]);
ini_getFloat(iniFile,"Y",Player[playerid][pPosY]);
ini_getFloat(iniFile,"Z",Player[playerid][pPosZ]);
Используется инклюд mxINI

Автор Vassasssin ( Я )

Данная тема предназначена для новичков :ay:

Вроде темы не видел похожей

Скриншот из игры
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу