- 0
Войдите для возможности подписаться
Подписчики
0
Команда ( Богатый игрок )
Вопросы
Лучший ответ
Так, раз уж подтянуть знания.. Начнём по порядку... У тебя ошибки из-за цикла:
for(new i; i <= 500; i++);
После цикла точка с запятой не ставиться, либо фигурная скобка и выполнение кода, либо на этой же строке короткий код в одну строку.
Следующее: ты перебираешь игроков, рекомендую использовать цикл foreach, про него можно узнать в интернете, но если в двух словах: у тебя максимально не оптимизирован, ты даже не проверяешь на то, в онлайне человек или нет, у тебя будет выполняться 500 итераций, даже если сделаешь проверку, а юзая foreach, он будет выполнять столько проверок, сколько игроков на сервере, это же гораздо лучше!
Прикрепляю команду с использованием foreach, сам инклуд, надеюсь подключишь)
CMD:topmoney(playerid)
{
if(PI[playerid][pAdmin] < 1) return 1;
else if(AdminLogged[playerid] == false) return SendMess(playerid, MSG_YOU_NOT_LOGGED_AS_ADMIN);
new string[29+(-4+MAX_PLAYER_NAME)+1]; //отсюда в принципе и начинается..
foreach(new i: Player)
{
if(GetPlayerMoney(i) >= 100000 || PI[i][pBank] >= 100000 )
{
format(string, sizeof(string), "ID: %d | Ник: %s", i, PI[i][pName]);
ShowPlayerDialog(playerid,D_NULL,DIALOG_STYLE_MSGBOX,"Самый богатый игрок", string, "Закрыть","");
}
}
return 1;
}
Что я исправил: тебе не нужно вводить ид игрока, потому что тебе нужно узнать самого богатого игрока, я это убрал. Заменил обычный цикл на foreach, писал выше почему.
По поводу format: ты записываешь значение в переменную, задаёшь ей текст с какими-то значениями через эту функцию формат, потом, туда, где тебе нужно вывести форматированный текст, вместо "text", пишешь просто название переменной, которую форматировал, в данном случае string.
format(имя формат. переменной, размер(в основном юзаем sizeof имя формат. переменной), "текст, который задаём переменной", аргументы);
И вообще, команда у тебя не выбирает самого богатого игрока, она покажет игрока, первого попавшегося, у которого налом больше 100к или в банке больше 100к
А, и в формате, я заменил playerid(ид, кто вводит команду), на "i", ид типа самого богатого игрока, но логику твоей команды я тебе объяснил

Эта тема закрыта для публикации ответов.
Войдите для возможности подписаться
Подписчики
0
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
-
От lisicaf
Всех приветствую и заранее спасибо за любую оказанную помощь.
Суть: Аризона выпускает новое обновление в котором меняет CEF доната(скрин ниже), каким образом можно его скопировать и перенести к себе в мод Аризоны?
-
HAPKOMAH User 66
Решил немного подтянуть знания и для начала сделать что-нибудь незамысловатое. Решил сделать команду, которая показывает диалог: ID и Ник богатого игрока. Получил конечно же ошибки про компиляции. Некоторые поправил, но еще 2 осталось и что-то не получается их исправить. Поглядите что не так сделал
(Тут табуляция какая-то пьяная получилась.. На деле все ровно. вроде как )
Теперь немного о команде..
Тут я уже окончательно запутался и не понял где именно оставить текст "Самый богатый игрок...". Если кто объяснит - с меня плюсик
Ну и Ошибки при компиляции:
srp.pwn(33377) : error 036: empty statement
srp.pwn(33378) : error 017: undefined symbol "i"
Отредактировано пользователем HAPKOMAH
Поделиться сообщением
Ссылка на сообщение