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

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

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

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

/givebonusall

Статус
В этой теме нельзя размещать новые ответы.

den4is

Ученик
Добрый день пользователи форума! Решил выложить команду из своего мода.
Суть команды выдать всем игрокам на сервере бонусные деньги и уровень.

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;
}
И вариант для стандартного командного процессора без sscanf и foreach
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;
}
Вроде не видел на форуме такой команды, если есть то просьба не писать что было.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу