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



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

    • misha_makilov
      By misha_makilov


      Просмотр файла Arizona RP | Nike
      1. Система каршеринга (Полностью написана с 0 и готова).
      2. Система дрифта. (Написана с 0, не доделан магазин аксессуаров).
      3. Система заточек, а так же улучшения на них, как на аризоне рп, по типу больше хп или урона. (Система готова до конца)
      4. Динамическая система казино, казино работает как бизнес, можно добавить несколько казино и управлять ими, в них можно менять цены на все, что имеет цену в самом казино (Полностью написана с 0 и готова).
      5. Система для слетов бизнесов и домов, можно выставить через сколько он слетит (Полностью написана с 0 и готова).
      6. Система люкс каров (Полностью написана с 0 и готова, даже с таймеров, но необходим плагин на машины)
      7. Полностью был оптимизирован весь мод, а так же подправлен код + убраны все ошибки связанные с БД
      8. Исправлены все возможные баги, который находили игроки на Arizona Nike и мною.
      9. Система урона с заточенными аксессуарами. (Копия оригинальной аризоны рп)
      10. Смена текста у организаций на стенде. (Копия оригинальной аризоны рп)
      11. Начата разработка системы майнинга (Система будет не много другой, не как на оригинальной аризоне)
      12. Сайт с логами, с небольшими переделками.
       
      Обзор мода - https://www.youtube.com/watch?v=MrQ6tFQsD2o
       
      Цена данного мода 800 рублей + еженедельная подписка навсегда(включает в себя еженедельные обновления)

      Для получения сайта с логами, обратитесь сюда - https://vk.com/jenyahuntwill (Необходимо предоставить док-ва, что вы купили данный мод)
      Добавил misha_makilov Добавлено 29.05.2021 Категория Моды Автор Mayota_Nebr  
    • glvde.
      By glvde.
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

      Не исключено, что есть баги. Каждую неделю выходит багофикс.
      Всем спасибо за внимание.
    • glvde.
      By glvde.


      Просмотр файла Arizona RolePlay | Paige
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

      Не исключено, что есть баги. Каждую неделю выходит багофикс.
      Всем спасибо за внимание.
      Добавил glvde. Добавлено 16.06.2021 Категория Моды Автор glvde.  
    • Человек-редиска
      By Редиска
      ПОМОГИТЕ!!!!!!!!
      НЕ СОХРАНЯЮТСЯ НОМЕРА НА АВТО.
      ПОЛУЧАЮ НОМЕРА, А ОНИ ПРОПАДАЮТ ПОСЛЕ ПОЛУЧЕНИЯ.
      ТО ЕСТЬ, КОГДА ПРОПИСЫВАЮ КОМАНДУ /FIXCAR И ВЫБЕРАЮ ВЫГРУЗИТЬ А ПОТОМ ЗАГРУЗИТЬ.
      ТО НОМЕРОВ УЖЕ НЕТУ, ТУПО ПРОПАЛИ!
      ЗАХОДИЛ В БД ТАМ ОНИ ПОЯВЛЯЮТСЯ, А НА АВТО ПОЧЕМУ ТО НЕ ОТОБРАЖАЮТСЯ.
      ПОТОМ Я РЕШИЛ ЗАЙТИ В ТАБЛИЦУ ПОД НАЗВАНИЕМ OWNABLE_CARS ТАМ Я УВИДЕЛ СТРОКУ C_NUMBERS
      В ЭТОМ СТРОКЕ Я ПРОПИСАЛ СВОЁ ИМЯ, ПОТОМ ЗАШЁЛ В ИГРУ, ЗАГРУЖАЮ АВТО И ЕСТЬ НОМЕРА.
      А ТО ЧТО У МЕНЯ ЕСТЬ ЕЩЁ ОДНА ТАБЛИЦА ПОД НАЗВАНИЕМ OWNABLE_NUMBERS.
      ТАМ У МЕНЯ ТОЛЬКО НОМЕРА ПОЯВЛЯЮТСЯ И ВСЁ. ТОЕСТЬ ОНИ НЕ ПРИВЯЗЫВАЮТСЯ К АВТО КОРОЧЕ ВОТ И ВСЁ!!!!!!
      ПОМОГИТЕ УЖЕ ПОЖАЛУЙСТА СРОЧНО НУЖНО.