shape1
shape2
shape3
shape4
shape7
shape8

Slap с выбором высоты.


Статус
Закрыто для дальнейших ответов.

Kostyaev

Магистр
Пользователь
19.07.2014
1 123
274
0
26
Доброго времени суток форумчане.

Представляю вашему вниманию команду /slap с выбором высоты.

И так:

В самое начало добавим форвард:

forward SetPlayerSlap(playerid,typeid);
Для тех у кого стоит sscanf :

В public OnPlayerCommandText:

if(strcmp(cmd, "/slap", true) == 0)
{
if(!IsPlayerConnected(playerid)) return true;
if(sscanf(params, "ii", params[0],params[1])) return SendClientMessage(playerid,-1,"Ошибка команды : Введите [ID][Высота]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,-1,"Данный игрок не подключен.");
return SetPlayerSlap(params[0],params[1]);
}

Для тех у кого utils :

В public OnPlayerCommandText:

if(strcmp(cmd, "/slap", true) == 0)
{
new type[2];
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Ошибка команды : Введите [ID][Высота]");
type[0] = strval(strtok(cmdtext, idx)); type[1] = strval(strtok(cmdtext, idx));
if(!IsPlayerConnected(playerid)) return true;
if(!IsPlayerConnected(player)) return true;
return SetPlayerSlap(type[0],type[1]);
}

В конец мода ставим этот паблик:

public SetPlayerSlap(playerid,typeid)
{
new Float:sPOS[3]; new str[128];
GetPlayerPos(playerid, sPOS[0], sPOS[1], sPOS[2]); SetPlayerPos(playerid, sPOS[0], sPOS[1], sPOS[2]+typeid);
format(str,128,"Игрок %s был слэпнут на расстояние %i метров вверх",GetPlayerNameEx(playerid),typeid); SendClientMessageToAll(-1,str);
return true;
}

Добавим ещё определение имён :

В конец мода ставим этот сток:

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

На этом всё.

АвторTrateus (Александр Киселёв)

 
Последнее редактирование модератором:

MADDD

Освоившийся
Пользователь
02.03.2015
181
25
0
27
К чему такой большей код ?

Код:
	if(strcmp(cmd, "/slap", true) == 0)
	{
		if(PlayerInfo[playerid][pAdm] < 2) return SendClientMessage(playerid, COLOR_GRAD2, "Ты не можешь использовать эту команду.");
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используй: /slap [ID/Ник] [Высота]");
		new playa, Float:shealth, Float:slx, Float:sly, Float:slz;
		playa = ReturnUser(tmp);
		tmp = strtok(cmdtext, idx);
		chislo = strval(tmp);
		if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используй: /slap [ID/Ник] [Высота]");
		if(!IsPlayerConnected(playa)) return NoPlayerConnect;
		if(playa == INVALID_PLAYER_ID) return NetotID;
		GetPlayerHealth(playa, shealth);
		SetPlayerHealth(playa, shealth-5);
		GetPlayerPos(playa, slx, sly, slz);
		SetPlayerPos(playa, slx, sly, chislo);
		return 1;
	}
Автор: MADDD
 
Последнее редактирование модератором:
A

Amfy

Гость
Гость
MADDD, а не так случайно?

Код:
SetPlayerPos(playa, slx, sly, slz+chislo);
 
Статус
Закрыто для дальнейших ответов.