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

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

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

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

Ограбление игрока

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

AррLe

Новичок
Здравствуйте.

Думаю команда хорошая, пойдёт как на РП так и на ДМ...

Команда написана на ZCMD + SSCANF2.

В команде встроены все необходимые проверки, остальные добавите "на ваш вкус" :)

Вот собственно сама команда:

PHP:
cmd(rob,playerid, params[])
{
	if(sscanf(params,"d",params[0])) return SendClientMessage(playerid, -1, "Используй: /rob [id]");
	if(!IsPlayerConnected(params[0])) return SendClientMessage( playerid, -1, "Игрок не подключен!");
	if(GetPlayerState(params[0])!= PLAYER_STATE_ONFOOT || GetPlayerState(playerid)!= PLAYER_STATE_ONFOOT) return  SendClientMessage( playerid, -1, "Грабить можно только быдучи пиешеходом.");
	if(params[0] == playerid) return SendClientMessage(playerid, -1, "Нельзя грабить самого себя!");
	if(GetDistanceBetweenPlayers(playerid, params[0]) > 2) return SendClientMessage(playerid, -1, "Вы слишком далеко!");
	if(GetPlayerMoney(params[0]) <= 500) return SendClientMessage(playerid, -1, "У него и так мало денег.");
	new summa = (GetPlayerMoney(params[0]) / 100), String[256];
	GivePlayerMoney(params[0], -summa); GivePlayerMoney(playerid, summa);
	format(String, sizeof String, "Игрок: %s ограблен игроком: %s, на сумму: %d",PlayerName(params[0]),PlayerName(playerid),summa);
	SendClientMessageToAll(-1,String);
	return true;
}
Теперь ф-и:

Ф-я определяющая расстояние между игроков:

PHP:
stock GetDistanceBetweenPlayers(playerid, playerid2)
{
	new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z, Float:tmpdis;
	GetPlayerPos(playerid,x1,y1,z1); GetPlayerPos(playerid2,x2,y2,z2);
	tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
	return floatround(tmpdis);
}
И ф-я определения ник-нейма игрока:

PHP:
PlayerName(playerid)
{
	new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
	return name;
}
---

Если кто не понял: игроку, который грабит, дадим деньги вот так: узнаем сколько денег у того кого грабим, разделим на 100 и результат дадим грабителю :)

---

Автор: InFlueNce a.k.a AppLe a.k.a Я :)

Ф-и "выдрал" из разных источников.

Распространение данного кода свободное при условии указания автора!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу