#pragma
Компетентный
Не так давно я начал изучать pawn скриптинг, и вот наконец решил что то смастерить))
Делал чисто для себя но решил всё таки выкласть, возможно даже кому-то и пригодиться О_о
Команды используют DC_CMD + sscanf2
Делал чисто для себя но решил всё таки выкласть, возможно даже кому-то и пригодиться О_о
Команды используют DC_CMD + sscanf2
[HR][/HR]
PHP:
CMD:pay(playerid, params[])
{
extract params -> new targetid, cash; else
return SendClientMessage(playerid, -1, "Используйте /pay [id] [сумма]");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Человек не найден!");
if(cash < 1 || cash > 100000)
return SendClientMessage(playerid, -1, "Нельзя передать меньше 1$ и больше 100000$.");
if(p_info[playerid][p_cash] < cash)
return SendClientMessage(playerid, -1, "У вас нет столько денег.");
if(targetid == INVALID_PLAYER_ID)
return SendClientMessage(playerid, -1, "Вы не можете передать деньги себе.");
p_info[targetid][p_cash] += cash;
p_info[playerid][p_cash] -= cash;
static const
fmt_str[] = "Вы передали игроку %s[%d], %d$",
fmt_str1[] = "Вы получили от игрока %d$ от %s[%d]";
new str[sizeof fmt_str + MAX_PLAYER_NAME (- 6 + 11)];
format(str, sizeof(str), fmt_str, p_info[targetid][p_name], targetid, cash);
SendClientMessage(playerid, -1, str);
format(str, sizeof(str), fmt_str1, cash, p_info[playerid][p_name], playerid);
SendClientMessage(targetid, -1, str);
SetPlayerChatBubble(playerid, "Достал бумажник и передал деньги", COLOR_PURPLE, 30.0, 10000);
return true;
}
PHP:
CMD:eject(playerid, params[])
{
if(!IsPlayerInAnyVehicle(playerid))
return SendClientMessage(playerid, -1, "Вы должны быть в транспорте!");
extract params -> new targetid; else
return SendClientMessage(playerid, -1, "Используйте: /eject [id]");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Игрок не найден!");
if(targetid == playerid)
return SendClientMessage(playerid, -1, "Вы не можете выкинуть из машины себя!");
static const
fmt_str[] = "Вы выкинули из машины %s",
fmt_str1[] = "%s выкинул вас из машины";
new str[sizeof fmt_str + MAX_PLAYER_NAME (- 2)];
format(str, sizeof(str), fmt_str, p_info[targetid][p_name]);
SendClientMessage(playerid, -1, str);
format(str, sizeof(str), fmt_str1, p_info[playerid][p_name]);
SendClientMessage(targetid, -1, str);
RemovePlayerFromVehicle(targetid);
TogglePlayerControllable(targetid, true);
return true;
}
PHP:
CMD:try(playerid, params[])
{
extract params -> new string:message[82]; else
return SendClientMessage(playerid, -1, "Используйте: /try [сообщение]");
static const
fmt_str[] = "* %s %s | %s";
new str[sizeof fmt_str + MAX_PLAYER_NAME (- 3 + 82 + 9)];
format(str, sizeof(str), fmt_str, p_info[playerid][p_name], message, (random(2)) ? ("Неудачно") : ("Удачно"));
OnPlayerDistanceChat(playerid, 10.0, str, -1);
return true;
}
PHP:
CMD:me(playerid, params[])
{
extract params -> new string:message[82]; else
return SendClientMessage(playerid, -1, "Используйте: /me [сообщение]");
static const
fmt_str[] = "* %s %s";
new str[sizeof fmt_str + MAX_PLAYER_NAME (- 2 + 82)];
format(str, sizeof(str), fmt_str, p_info[playerid][p_name], message);
OnPlayerDistanceChat(playerid, 10.0, str, COLOR_PURPLE);
return true;
}
PHP:
CMD:do(playerid, params[])
{
extract params -> new string:message[100]; else
return SendClientMessage(playerid, -1, "Используйте: /do [сообщение]");
static const
fmt_str[] = "* %s (%s)";
new str[sizeof fmt_str + MAX_PLAYER_NAME (- 2 + 100)];
format(str, sizeof(str), fmt_str, message, p_info[playerid][p_name]);
OnPlayerDistanceChat(playerid, 10.0, str, -1);
return true;
}
PHP:
CMD:n(playerid, params[])
{
extract params -> new string:message[100]; else
return SendClientMessage(playerid, -1, "Используйте: /n [сообщение]");
static const
fmt_str[] = "- (( %s[%d]: %s ))";
new str[sizeof fmt_str + MAX_PLAYER_NAME (- 3 + 110)];
format(str, sizeof(str), fmt_str, p_info[playerid][p_name], playerid, message);
OnPlayerDistanceChat(playerid, 10.0, str, -1);
return true;
}
PHP:
CMD:clearchat(playerid, params[])
{
// Проверка на админа
for(new i = 0; i < 10; i++) SendClientMessageToAll(-1, "");
SendClientMessageToAll(-1, "Чат очищен администрацией!");
return true;
}
Не забываем поменять переменную p_info[playerid][p_name] и p_info[playerid][p_cash] на свою.
PHP:
stock OnPlayerDistanceChat(playerid, Float:range, string[], color)
{
new
Float: position[3], Float:radius;
GetPlayerPos(playerid, position[0], position[1], position[2]);
foreach(new i: Player)
{
if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
{
radius = GetPlayerDistanceFromPoint(i, position[0], position[1], position[2]);
if(radius < range/16) SendClientMessage(i, color, string);
else if(radius < range/8) SendClientMessage(i, color, string);
else if(radius < range/4) SendClientMessage(i, color, string);
else if(radius < range/2) SendClientMessage(i, color, string);
else if(radius < range) SendClientMessage(i, color, string);
}
}
return true;
}
Последнее редактирование:
