Перейти к содержанию
Авторизация  
#Trateus

Полное управление координатами игрока.

Рекомендуемые сообщения

#Trateus

Доброго времени суток.

Опять от безделья чтото да наколякал  :) 

Крч новый подгон. Управление коордами.

И так ид сторон :

0 : Вверх
1 : Вниз
2 : Влево
3 : Вправо.

И так суть команды :

Вы можете перемещать любого игрока на своё расстояние.

 

Начнём команду вписывать в мод :

Создаём #forward : #forward SetPlayerConsumPosition(playerid, using, typeid);

Далее вставляем саму команду в public OnPlayerCommandTex()

 

Для sscanf'щиков :)  :

if(strcmp(cmd, "/setpos", true) == 0)
{
if(!IsPlayerConnected(playerid)) return true;
//if(Player[playerid][pAdmin] < 3) return true; // Проверка на админку
if(sscanf(params, "iii", params[0],params[1],params[2])) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]");
return SetPlayerConsumPosition(params[0],params[1],params[2]);
} 

Для простых процессеров :

if(strcmp(cmd, "/setpos", true) == 0)
{
new TYPE[3]; cmd = strtok(cmdtext, idx);
if(!IsPlayerConnected(playerid)) return true;
if(!strlen(cmd)) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]");
TYPE[0] = strval(cmd); cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]");
TYPE[1] = strval(cmd); cmd = strtok(cmdtext, idx);
if(!strlen(cmd)) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Сторона][Радиус]");
TYPE[2] = strval(cmd);
return SetPlayerConsumPosition(TYPE[0],TYPE[1],TYPE[2]);
} 

И в конец мода создай сток и кэллбек :

public SetPlayerConsumPosition(playerid,using,typeid)
{
new Float:POS[3] ,str[50], string[128];  GetPlayerPos(playerid,POS[0],POS[1],POS[2]); // Узнаём координаты.
switch(using)
{
case 0: SetPlayerPos(playerid, POS[0], POS[1], POS[2]+typeid), str = ("вверх"); // Суммируем полученные координаты
case 1: SetPlayerPos(playerid, POS[0], POS[1], POS[2]-typeid), str = ("ввниз"); // Суммируем полученные координаты
case 2: SetPlayerPos(playerid, POS[0], POS[1]-typeid, POS[2]), str = ("влево"); // Суммируем полученные координаты
case 3: SetPlayerPos(playerid, POS[0], POS[1]+typeid, POS[2]), str = ("вправо"); // Суммируем полученные координаты
}
format(string,128,"- %s был перемешенны на %i %s",GetPlayerNameEx(playerid),typeid,str);
return SendClientMessage(playerid,-1,string);
}

И сток для определения имён :

stock GetPlayerNameEx(playerid)
{
new pname[MAX_PLAYER_NAME]; new i;
GetPlayerName(playerid,pname,sizeof(pname));
GPNXLABEL: i = strfind(pname,"_",true);
if(i != (-1)) pname[i] = ' ';
if(strfind(pname,"_",true)>-1)goto GPNXLABEL;
return pname;
} 

Вот и всё.

Автор : Trateus

Изменено пользователем #Trateus
  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Smolin

Поправил заголовок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
John_Smith

Тема закрыта. Нет активности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.