den4is
Ученик
Добрый день пользователи форума! Решил выложить команду из своего мода.
Суть команды выдать всем игрокам на сервере бонусные деньги и уровень.
И вариант для стандартного командного процессора без sscanf и foreach
Вроде не видел на форуме такой команды, если есть то просьба не писать что было.
Суть команды выдать всем игрокам на сервере бонусные деньги и уровень.
PHP:
CMD:givebonusall(playerid, params[])
{
switch(Pi[playerid][pAdmin]) {
case 0..8: return true;//игроки с 0,1,2,3,4,5,6,7,8 уровнем админки не могут использовать команду
}
if(sscanf(params, "dd", params[0], params[1]))
return SendClientMessage(playerid, 0x38383DFF, "Введите: /givebonusall [money] [level] (если уровень = 0 то бонус только деньги)");
if(params[0] < 0 || params[1] < 0)
return SendClientMessage(playerid, 0x38383DFF, "[Ошибка]: число должно быть больше 0!");
foreach(Player, i) {
if(!IsPlayerConnected(i)) continue;
if(params[1] == 0) { //если level равен 0, то выдаём только деньги
static const bon[]= "Вы получили бонус от администрации в размере %d$";
new str1[sizeof(bon)+11];
format(str1, sizeof(str1), bon, params[0]);
SendClientMessage(i, 0xE4C317FF, str1);
GivePlayerMoney(i, params[0]);
Pi[i][pCash] += params[0];//менять на своё
}
else {
static const bon[]= "Вы получили бонус от администрации в размере %d$ и ваш игровой уровень увеличен на %d";
new str1[sizeof(bon)+15];
format(str1, sizeof(str1), bon, params[0], params[1]);
SendClientMessage(i, 0xE4C317FF, str1);
GivePlayerMoney(i, params[0]);
Pi[i][pCash] += params[0];//менять на своё
Pi[i][pLevel] += params[1];//менять на своё
SetPlayerScore(i, Pi[i][pLevel]);
}
}
return true;
}
PHP:
if(strcmp(cmd, "/givebonusall", true) == 0) {
switch(Pi[playerid][pAdmin]) {
case 0..8: return true;
}
tmp = strtok(cmdtext, idx);
new money = strval(tmp);
tmp = strtok(cmdtext, idx);
new level = strval(tmp);
if(!strlen(tmp))
return SendClientMessage(playerid, 0x38383DFF, "Введите: /givebonusall [money] [level] (если уровень = 0 то бонус только деньги)");
if(money < 0 || level < 0)
return SendClientMessage(playerid, 0x38383DFF, "[Ошибка]: число должно быть больше 0!");
for(new i = GetMaxPlayers()-1; i != -1; i--) {
if(!IsPlayerConnected(i)) continue;
if(level == 0) {
static const bon[]= "Вы получили бонус от администрации в размере %d$";
new str1[sizeof(bon)+11];
format(str1, sizeof(str1), bon, money);
SendClientMessage(i, 0xE4C317FF, str1);
GivePlayerMoney(i, money);
Pi[i][pCash] += money;
}
else {
static const bon[]= "Вы получили бонус от администрации в размере %d$ и ваш игровой уровень увеличен на %d";
new str1[sizeof(bon)+15];
format(str1, sizeof(str1), bon, money, level);
SendClientMessage(i, 0xE4C317FF, str1);
GivePlayerMoney(i, money);
Pi[i][pCash] += money;
Pi[i][pLevel] += level;
SetPlayerScore(i, Pi[i][pLevel]);
}
}
return true;
}
Последнее редактирование:
