Рекомендованные сообщения



3 posts in this topic

Решил немного подтянуть знания и для начала сделать что-нибудь незамысловатое. Решил сделать команду, которая показывает диалог: ID и Ник богатого игрока. Получил конечно же ошибки про компиляции. Некоторые поправил, но еще 2 осталось и что-то не получается их исправить. Поглядите что не так сделал

Спойлер

CMD:topmoney(playerid, params[])
{
	if(PI[playerid][pAdmin] < 1) return 1;
	else if(AdminLogged[playerid] == false) return SendMess(playerid, MSG_YOU_NOT_LOGGED_AS_ADMIN);
	else if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "{FFFFFF}Введите: /topmoney");
	new string[29+(-4+MAX_PLAYER_NAME)+1]; //отсюда в принципе и начинается..
	for(new i; i <= 500; i++);
    if(GetPlayerMoney(i) >= 100000 || PI[i][pBank] >= 100000 )
	{
	    format(string, sizeof(string), "Самый богатый игрок","%d ID | Ник: %s", playerid, PI[playerid][pName]);
	    ShowPlayerDialog(playerid,D_NULL,DIALOG_STYLE_MSGBOX,"Самый богатый игрок","%d ID | Ник: %s","Окей","");
    }
	return 1;
}

 

(Тут табуляция какая-то пьяная получилась.. На деле все ровно. вроде как )

 

Теперь немного о команде..

		format(string, sizeof(string), "Самый богатый игрок","%d ID | Ник: %s", playerid, PI[playerid][pName]);
	    ShowPlayerDialog(playerid,D_NULL,DIALOG_STYLE_MSGBOX,"Самый богатый игрок","%d ID | Ник: %s","Окей","");

Тут я уже окончательно запутался и не понял где именно оставить текст "Самый богатый игрок...". Если кто объяснит - с меня плюсик :)

 

Ну и Ошибки при компиляции:

Спойлер

srp.pwn(33377) : error 036: empty statement

srp.pwn(33378) : error 017: undefined symbol "i"

 

Строчка 33377: for(new i; i <= 500; i++);
Строчка 33378: if(GetPlayerMoney(i) >= 100000 || PI[i][pBank] >= 100000 )

 

Edited by HAPKOMAH

Share this post


Link to post
Share on other sites

Так, раз уж подтянуть знания.. Начнём по порядку... У тебя ошибки из-за цикла: 

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", ид типа самого богатого игрока, но логику твоей команды я тебе объяснил

Share this post


Link to post
Share on other sites

@SCRIPTMAN Большое спасибо за то, что откликнулись и разобрали все.

Все скомпилировалось и работает. Сейчас буду разбираться во всём.

Некоторые моменты:

- Изначально планировалось, что бы показывало вообще самого богатого игрока, пусть он и в оффлайн. Но, как я понял, это немного по другому придется делать. Ну да ладно

- Я не придумал, как написать, что бы выводило игрока, у которого больше всего денег и решил пока сделать условие в >100к

Ещё раз спасибо :)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • _bogdan_
      By _bogdan_
      Слив игрового мода "Frendly RolePlay"
      Просмотр файла Frendly RolePlay.                           
      Хранение данных(версия MySQL): R39-6
      Командный процессор: DC_CMD
      Кол-во строк в игровом моде: 54348
      Анти-чит: (AntiCheat(Frendly RP).
      Автор: Неизвестно.
      Клиент: SA-MP 0.3.7-R2 с картой CR-MP.
      База данных  находится в папке с файлами.
       
      P.S - В папке с игровым модом, будет ссылка на игровую сборку.
       
      Добавил _bogdan_ Добавлено 19.10.2021 Категория Моды Автор Неизвестно.  
      UP: Залил базу данных.
    • _bogdan_
      By _bogdan_
      Frendly RolePlay.                           
      Хранение данных(версия MySQL): R39-6
      Командный процессор: DC_CMD
      Кол-во строк в игровом моде: 54348
      Анти-чит: (AntiCheat(Frendly RP).
      Автор: Неизвестно.
      Клиент: SA-MP 0.3.7-R2 с картой CR-MP.
      База данных  находится в папке с файлами.
       
      P.S - В папке с игровым модом, будет ссылка на игровую сборку.
       
    • Zerno303
      By Zerno303


      Просмотр файла Продажа мода Race RP.
      -------------------------------------------------------------------------------------------------------------------
      ВАЖНО!
      Перед покупкой лучше спросите лишний раз, чем потом кидать претензии в мою сторону!
      -------------------------------------------------------------------------------------------------------------------
      Доброго времени суток! Этот мод подойдёт по основу и даже под открытие.
      9 уровней админки.
      Лидерки: Мэрия, ГУВД, УГИБДД, ФСБ, Больница, Автошкола, Южная ОПГ, Арзамасская ОПГ, Армия, Лыткаринская ОПГ, Батыревская ОПГ,, RECORD FM и Спецназ.
      Работы: Городской склад, Шахта, Лесопилка и Автомеханик.
      crmp 0.3e
      Мод без сборки(Сборка не нужна). 
      Мод-пак есть. Если понадобится пишите в лс.
      Добавил Zerno303 Добавлено 16.10.2021 Категория Моды Автор Zerno303  
    • Zerno303
      By Zerno303
      -------------------------------------------------------------------------------------------------------------------
      ВАЖНО!
      Перед покупкой лучше спросите лишний раз, чем потом кидать претензии в мою сторону!
      -------------------------------------------------------------------------------------------------------------------
      Доброго времени суток! Этот мод подойдёт по основу и даже под открытие.
      9 уровней админки.
      Лидерки: Мэрия, ГУВД, УГИБДД, ФСБ, Больница, Автошкола, Южная ОПГ, Арзамасская ОПГ, Армия, Лыткаринская ОПГ, Батыревская ОПГ,, RECORD FM и Спецназ.
      Работы: Городской склад, Шахта, Лесопилка и Автомеханик.
      crmp 0.3e
      Мод без сборки(Сборка не нужна). 
      Мод-пак есть. Если понадобится пишите в лс.
    • panda1999
      By panda1999
      Публикация В Google Play
      Публикация приложения в Google Play Market на мой аккаунт разработчика.

      Имею большой опыт в публикации различных приложений и сервисов. Помогу пройти модерацию приложения.

      По статистике приложения проходят модерацию в течение 2-х (двух) дней после публикации.

      Это важно! Я, как владелец аккаунта Google Play Developer, вправе удалить приложение со своего аккаунта без ведома уведомления заказчика, если приложение или связанные с ним любые ресурсы будут нарушать правила Google Play, а также, если на приложение будет оставлено более трёх отрицательных отзывов, которые указывают на не правомерную деятельность приложения или любых связанных с ним ресурсами.

      ЕСЛИ У ВАС возникнут ЛЮБЫЕ вопросы пишите!

      С радостью проконсультирую!))

      Нужно для заказа:
      1. Файл приложения в формате . aab.

      С августа 2021 года все приложения в Google Play будут публиковаться в формате Android App Bundle (AAB) вместо старого APK.

      2. Название приложения (макс. длина текста 50 символов).

      3. Краткое описание (макс. длина текста 80 символов).

      4. Полное описание приложения (макс. длина текста 4000 символов).

      5. Значок приложения.

      PNG или JPEG

      512х512 пкс

      До 1 Мб

      6. Картинка для описания.

      PNG или JPEG

      1024x500 пкс

      До 1 Мб

      7. Скриншоты 2-8 шт.
      Принимаем QIWI
      Принимаем Карта банка.
      Если вас заинтересовало, обращайтесь ко мне в л\с. Вконтакте