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

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

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

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

DesireBRO

Новичок
Smart: /veh & /delveh

Всем доброго времени суток!
Решил написать умную команду для создания машин которая не позволит "убить" сервер машинами.
​

Информация о команде:
Командный процессор: DC_CMD (с использованием sscanf2).
Оптимизация: Присутствует, но можно и лучше.


Особенности команды /veh:​
Код:
[B][CENTER][COLOR="#A52A2A"]1.[/COLOR] Создать можно только 1 машину.
[COLOR="#A52A2A"]2.[/COLOR] При повторном создании машины(если не удалена старая) - старая удаляется.
[COLOR="#A52A2A"]3.[/COLOR] Вы не спавнитесь в машине, она создается рядом.[/CENTER][/B]
Особенности команды /delveh:​
Код:
[B][CENTER][COLOR="#A52A2A"]1.[/COLOR] Не важно в машине вы или далеко от нее, машина удалится в любом случае.
[COLOR="#A52A2A"]2.[/COLOR] При дисконекте игрока - машина удаляется.
[/CENTER][/B]
Для добавления нескольких машин используйте стандартные /addveh и /dveh соответственно.​

Сами команды:​
Ко всем переменным добавьте new VehID[MAX_PLAYERS];​
PHP:
CMD:veh(playerid,params[])
{
	if(PlayerInfo[playerid][pAdmin] >= 3) // Тут ставим свою проверку
	new string[145];
	new Float:pX,Float:pY,Float:pZ;
	if(sscanf(params, "ddd", params[0],params[1],params[2])) return SendClientMessage(playerid, -1, "{BEBEBE}Использование: /veh [id машины] {цвет 1} {цвет 2}");
	{
		if(VehID[playerid] > 0)
		{
			DestroyVehicle(VehID[playerid]);
			SendClientMessage(playerid, -1, "{696969}[!] Предыдущая машина удалена т.к вы создали новую!");
			VehID[playerid] = 0;
		}
		if(params[1] > 126 || params[1] < 0 || params[2] > 126 || params[2] < 0) return SendClientMessage(playerid, -1, "ID цвета от 0 до 126!");
		GetPlayerPos(playerid,pX,pY,pZ);
		VehID[playerid] = CreateVehicle(params[0],pX+2,pY,pZ,0.0,1,1,0,0);
		format(string,sizeof(string),"{696969}[!] {1E90FF}Вы создали автомобиль №%d | CarID: %d.",params[0],VehID[playerid]);
		SendClientMessage(playerid,-1,string);
		ChangeVehicleColor(VehID[playerid],params[1],params[2]);
	}
	return 1;
}
PHP:
CMD:delveh(playerid)
{
	if(PlayerInfo[playerid][pAdmin] >= 3) // Тут ставим свою проверку
	if(VehID[playerid] > 0)
	{
		DestroyVehicle(VehID[playerid]);
		SendClientMessage(playerid,-1,"{696969}[!] Машина удалена!");
		VehID[playerid] = 0;
	}
	else SendClientMessage(playerid,-1,"{696969}[!] Вы не создавали машину!");
	return 1;
}
PHP:
CMD:addveh(playerid,params[])
{
	new string[145],CarID;
	new Float:pX,Float:pY,Float:pZ;
	if(sscanf(params, "ddd", params[0],params[1],params[2])) return SendClientMessage(playerid, -1, "{BEBEBE}Использование: /addveh [id машины] {цвет 1} {цвет 2}");
	{
		if(params[0] > 611 || params[0] < 400) return SendClientMessage(playerid, -1, "ID транспорта от 400 до 611!");
		if(params[1] > 126 || params[1] < 0 || params[2] > 126 || params[2] < 0) return SendClientMessage(playerid, -1, "ID цвета от 0 до 126!");
		GetPlayerPos(playerid,pX,pY,pZ);
		CarID = CreateVehicle(params[0],pX+2,pY,pZ,0.0,1,1,0,0);
		format(string,sizeof(string),"{696969}[!] {1E90FF}Вы создали автомобиль №%d.",params[0],VehID[playerid]);
		SendClientMessage(playerid,-1,string);
		ChangeVehicleColor(CarID,params[1],params[2]);
	}
	return 1;
}
PHP:
CMD:dveh(playerid)
{
	if(PlayerInfo[playerid][pAdmin] >= 6) // Тут ставим свою проверку
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
		if(GetPlayerVehicleID(playerid) == VehID[playerid]) return SendClientMessage(playerid,-1,"{BEBEBE}[!] Используйте: /delveh!");
		DestroyVehicle(GetPlayerVehicleID(playerid));
		SendClientMessage(playerid,-1,"{696969}[!] Машина удалена!");
	}
	else SendClientMessage(playerid,-1,"{696969}[!] Вы не за рулем машины!");
	return 1;
}
PHP:
	if(VehID[playerid] > 0)
	{
		DestroyVehicle(VehID[playerid]);
		VehID[playerid] = 0;
	}
Вот и все, автором команд являюсь Я, т.е #Meneses, всем спасибо.​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу