Merlin
Умник
Эти команды пойдут для new.pwn модов " Проверено "
/givemoney
Команда выдаёт игроку деньги.
Сторонние функции:
strtok
/skin
/givegun
/sethp
/veh
/ban
/givemoney
Команда выдаёт игроку деньги.
Сторонние функции:
strtok
PHP:
if(!strcmp(tmp, "/givemoney", true, 10))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /givemoney [playerid] [amount]");
return true;
}
new gid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /givemoney [playerid] [amount]");
return true;
}
new amount = strval(tmp);
GivePlayerMoney(gid, amount);
new str[106], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
GetPlayerName(gid, name2, MAX_PLAYER_NAME);
format(str, 106, "%s (%d) выдал игроку %s (%d) количество денег: $%d.", name, playerid, name2, gid, amount);
SendClientMessageToAll(0xFF0000FF, str);
return true;
}
PHP:
if(!strcmp(cmdtext, "/skin", true, 5))
{
if(!cmdtext[5])
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /skin [skinid]");
return true;
}
new skinid = strval(cmdtext[6]);
if(!(0 <= skinid <= 299))
{
SendClientMessage(playerid, 0xFF0000FF, "Такого скина не существует.");
return true;
}
SetPlayerSkin(playerid, skinid);
new str[32];
format(str, 32, "Вы сменили ваш скин на ID: %d.", skinid);
SendClientMessage(playerid, 0xFF0000FF, str);
return true;
}
PHP:
if(!strcmp(tmp, "/givegun", true, 8))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /givegun [playerid] [weaponid] [ammo]");
return true;
}
new gid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /givegun [playerid] [weaponid] [ammo]");
return true;
}
new weaponid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /givegun [playerid] [weaponid] [ammo]");
return true;
}
if(weaponid > 47 || weaponid < 1 || (19 <= weaponid <= 21))
{
SendClientMessage(playerid, 0xFF0000FF, "Такого оружия не существует.");
return true;
}
new ammo = strval(tmp);
GivePlayerWeapon(gid, weaponid, ammo);
new str[131], weapname[30], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
GetPlayerName(gid, name2, MAX_PLAYER_NAME);
GetWeaponName(weaponid, weapname, 30);
format(str, 131, "%s (%d) выдал игроку %s (%d) оружие: %s (%d). [Боезапас: %d].", name, playerid, name2, gid, weapname, weaponid, ammo);
SendClientMessageToAll(0xFF0000FF, str);
return true;
}
PHP:
if(!strcmp(tmp, "/sethp", true, 6))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /sethp [playerid] [amount]");
return true;
}
new gid = strval(tmp);
if(!IsPlayerConnected(gid))
{
SendClientMessage(playerid, 0xFF0000FF, "Такого игрока нет на сервере.");
return true;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /sethp [playerid] [amount]");
return true;
}
new amount = strval(tmp);
if(!(0 <= amount <= 100))
{
SendClientMessage(playerid, 0xFF0000FF, "Количество здоровья от 0 до 100.");
return true;
}
SetPlayerHealth(gid, amount);
new str[121], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
GetPlayerName(gid, name2, MAX_PLAYER_NAME);
format(str, 121, "%s (%d) установил игроку %s (%d) количество здоровья: %d.", name, playerid, name2, gid, amount);
SendClientMessageToAll(0xFF0000FF, str);
return true;
}
PHP:
if(!strcmp(cmdtext, "/veh", true, 4))
{
if(!cmdtext[4])
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /veh [vehicleid]");
return true;
}
new modelid = strval(cmdtext[5]);
if(!(400 <= modelid <= 611))
{
SendClientMessage(playerid, 0xFF0000FF, "Такого транспорта не существует.");
return true;
}
new Float: pos[4];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
GetPlayerFacingAngle(playerid, pos[3]);
new vehicleid = CreateVehicle(modelid, pos[0], pos[1], pos[2], pos[3], -1, -1, -1);
PutPlayerInVehicle(playerid, vehicleid, 0);
new str[54];
format(str, 54, "Вы создали транспортное средство с ID'ом модели: %d.", modelid);
SendClientMessage(playerid, 0xFF0000FF, str);
return true;
}
PHP:
if(!strcmp(cmdtext, "/ban", true, 4))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /ban [playerid] [reason]");
return true;
}
new gid = strval(tmp);
if(!IsPlayerConnected(gid))
{
SendClientMessage(playerid, 0xFF0000FF, "Такого игрока нет на сервере.");
return true;
}
if(!cmdtext[idx])
{
SendClientMessage(playerid, 0xFF0000FF, "Используйте: /ban [playerid] [reason]");
return true;
}
new str[121], name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
GetPlayerName(gid, name2, MAX_PLAYER_NAME);
strmid(cmdtext[idx], cmdtext[idx], 1, strlen(cmdtext[idx]), strlen(cmdtext[idx]) + 1); // Удалим пробел в самом начале причины бана
format(str, 121, "%s (%d) забанил %s (%d) по причине: %s", name, playerid, name2, gid, cmdtext[idx]);
SendClientMessageToAll(0xFF0000FF, str);
Ban(gid);
return true;
}
Можно было полностью использовать функцию strtok, но в причине бана будет всего лишь одно слово, например, если причина бана: Speed Hack, - то игрок будет забанен с причиной: Speed. Можно использовать и другую функцию: strrest, но это лишнее.
