Доброе времени суток, пользователи Pro-Pawn.Ru
Вот, первый раз с оптимизацией создал команду /callsign
Описание команды:
Данная команда добавляет для полицейского крузера маркировку.
Сойдет для RP серверов.
Ко всем инклудам:
PHP код:
#include dc_cmd
#tryinclude sscanf2
Ко всем переменным:
PHP код:
new Text3D: call_sign_text[MAX_VEHICLES];
И к другим командам:
PHP код:
CMD:callsign(playerid, params[])
{
new
nick[20]
;
if GetPVarInt(playerid, "callsign_create") *then // Если "callsign_create" равно одному, то:
{
SendClientMessage(playerid, 0xFF000055, !"[ ВЫ УДАЛИЛИ МАРКИРОВКУ АВТОМОБИЛЯ ]"); // отправляем сообщение игроку
Delete3DTextLabel(Text3D: call_sign_text); // удаляем 3д текст
return SetPVarInt(playerid, "callsign_create", 0); // удаляем пвар
}
if(sscanf(params, "s[20]", nick))
return SendClientMessage(playerid, -1, !"/callsign number1-nickname-number2");
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 596
|| GetVehicleModel(GetPlayerVehicleID(playerid)) != 597
|| GetVehicleModel(GetPlayerVehicleID(playerid)) != 598) // если игрок не сидит в машине под указанном ID (596, 597, 598), то:
return SendClientMessage(playerid, 0xFF000055, !"[ ВЫ НЕ СИДИТЕ В ПОЛИЦЕЙСКОЙ МАШИНЕ ]"); // отправляем сообщение игроку
new
number[2],
nickname[14]
;
sscanf(nick, "p<->s[1]s[14]s[1]", number[0], nickname[14], number[0]); // разделяем написанное в команде
static const fmt_str[] = !"{ffffff}%s-%s-%s";
new string[sizeof fmt_str + (-2 + 14)];
format(string, sizeof string, fmt_str, number[0], nickname[14], number[0]);
call_sign_text[GetPlayerVehicleID(playerid)] = Create3DTextLabel(string, 0x0082E666, 0.0, 0.0, 0.0, 10.0, GetPlayerVirtualWorld(playerid), 1); // создаем 3д текст
Attach3DTextLabelToVehicle(Text3D: call_sign_text[GetPlayerVehicleID(playerid)], GetPlayerVehicleID, -2.0, -1.0, 0.0); // прикрепляем 3д текст к машине
return SetPVarInt(playerid, "callsign_create", 1); // устанавливаем пвар
}