Вопросы

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

 

Спойлер

CMD:lmenu(playerid)
{
	if(!PlayerInfo[playerid][pLeader]) return true;
	switch(PlayerInfo[playerid][pLeader])
	{
		case 12,15,17,18,13: return SPD(playerid, 8383, DIALOG_STYLE_LIST, "{FFCC00}Меню лидера банды","{FFFFFF}1. Оффлайн список игроков\n2. Спавн транспорта организации","Принять","Выход");
		case 23,1,4,7,10,16,19,22,24,21,25: return SPD(playerid, 8383, DIALOG_STYLE_LIST, "{FFCC00}Меню лидера:","{FFFFFF}1. Оффлайн список игроков","Принять","Выход");
		case 5,6,14: return SPD(playerid,5873,DIALOG_STYLE_LIST,"{FFCC00}Меню притона","{FFFFFF}1. Нанять нового работника\n2. Уволить работника\n3. Информация о притоне\n4. Оффлайн список игроков", "Далее","Отмена");
		case 26: return SPD(playerid, 9659, DIALOG_STYLE_LIST,"{FFCC00}Меню правительства:","{FFFFFF}1. Оффлайн список игроков\n2. Управление экономикой","Принять","Выход");
	}
	return true;
}

 

Спойлер

case 8383:
		{
			if(!response) return true;
			switch(listitem)
			{
			case 0:
				{
				    new string[164];
					mysql_format(connects,string, MAX_STR,"SELECT `pLevel`,`pMember`,pRank,`age`,`Name`,pGetonDate,`id` FROM `accounts` WHERE `pMember` = '%d'",PlayerInfo[playerid][pMember]);
					mysql_tquery(connects,string, "offmember", "dd",playerid,0);
				}
			case 1:
				{
					if(GetPVarInt(playerid, #spawn_gettime) > gettime()) return error(playerid, "Спавнить авто можно только с интервалом две минуты!");
					if(PlayerInfo[playerid][pLeader] == 12)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= ballascar[0] && i <= ballascar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 13)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= vagoscar[0] && i <= vagoscar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 15)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= grovecar[0] && i <= grovecar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 17)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= coronoscar[0] && i <= coronoscar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 18)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= rifacar[0] && i <= rifacar[1]) SetVehicleToRespawn(i);
					}
					new string[100];
					format(string, 100, "Лидер организации %s зареспавнил весь незанятый транспорт Вашей организации!", PlayerInfo[playerid][pNames]);
					SendFamilyMessage(PlayerInfo[playerid][pMember], COLOR_BLUE, string);
					SetPVarInt(playerid, #spawn_gettime, gettime()+120);
				}
			}
		}

 

Спойлер

publics: offmember(playerid,page)
{
	new f,d;
	cache_get_data(f,d);
	if(!f) return true;
	new nicks[24],lastvhod[30],name[50],rank,level,fraction,id_acc;
	new string[2048];
	StringName[StringList] = -1, StringList = 0, DeletePVar(playerid, #name_string);
	format(string, sizeof(string),"{FFFFFF}Имя Фамилия\t{FFFFFF}Звание/Ранг\t{FFFFFF}Возраст\t{FFFFFF}Последний вход\n{FFCC00}Перейти на следующую страницу\nПерейти на предыдущую страницу{FFFFFF}\n");
	new	get = page*15;
 	for(new i = get; i < f; i++)
	{
	    if(i > page*15+14) break;
		cache_get_field_content(i, "Name", nicks, connects, sizeof ( nicks ));
		id_acc = cache_get_field_content_int(i, "id", connects);
		fraction = cache_get_field_content_int(i, "pMember", connects);
		rank = cache_get_field_content_int(i, "pRank", connects);
		level = cache_get_field_content_int(i, "age", connects);
		cache_get_field_content(i, "pGetonDate", lastvhod, connects, sizeof ( lastvhod ));
		StringName[StringList] = id_acc, StringList++;
		format(string,sizeof(string), "%s%d. %s\t[{FFCC00}%s(%d){FFFFFF}]\t[{FFCC00}%d {FFFFFF}лет/год(-а)]\t[{FFCC00}%s{FFFFFF}]\n",string,i+1,nicks,PlayerRank[fraction-1][rank-1],rank,level,lastvhod);
	}
	SetPVarInt(playerid, #page_str, page+1);
	format(name, sizeof(name), "{FFCC00}Страница номер: %d", GetPVarInt(playerid, #page_str));
	SPD(playerid, 758, DIALOG_STYLE_TABLIST_HEADERS, name, string, "Принять", "Отмена");
	return true;
}

 

Спойлер

case 758:
		{
			if(!response) return DeletePVar(playerid, #page_str);
			new link = listitem, string[MAX_STR];
			if(link == 0 || link == 1)
			{
				new page;
				if(!link) page = GetPVarInt(playerid, #page_str);
				else if(link == 1) page = GetPVarInt(playerid, #page_str)-2;
				if(link == 1 && page == -1) return error(playerid, "Страниц больше нет!");
				mysql_format(connects,string, MAX_STR,"SELECT `pLevel`,`pMember`,pRank,`age`,`Name`,pGetonDate,`id` FROM `accounts` WHERE `pMember` = '%d'",PlayerInfo[playerid][pMember]);
				mysql_tquery(connects,string, "offmember", "dd",playerid,page);
			}
			if(link >= 2)
			{
				StringList = link-2;
				mysql_format(connects,string, MAX_STR,"SELECT `Name`,`pGetonDate`,`pRank`,`pMember` FROM `accounts` WHERE `id` = '%d'",StringName[StringList]);
				mysql_tquery(connects,string, "offstats", "dd", playerid,StringName[StringList]);
			}
		}

 

 

Отредактировано пользователем Andy

Поделиться сообщением


Ссылка на сообщение

6 ответов на этот вопрос

  • 0

Не забывай про оператор break;
 

case 8383:
		{
			if(!response) return true;
			switch(listitem)
			{
			case 0:
				{
				    new string[164];
					mysql_format(connects,string, MAX_STR,"SELECT `pLevel`,`pMember`,pRank,`age`,`Name`,pGetonDate,`id` FROM `accounts` WHERE `pMember` = '%d'",PlayerInfo[playerid][pMember]);
					mysql_tquery(connects,string, "offmember", "dd",playerid,0);
                    break;
				}
			case 1:
				{
					if(GetPVarInt(playerid, #spawn_gettime) > gettime()) return error(playerid, "Спавнить авто можно только с интервалом две минуты!");
					if(PlayerInfo[playerid][pLeader] == 12)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= ballascar[0] && i <= ballascar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 13)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= vagoscar[0] && i <= vagoscar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 15)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= grovecar[0] && i <= grovecar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 17)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= coronoscar[0] && i <= coronoscar[1]) SetVehicleToRespawn(i);
					}
					if(PlayerInfo[playerid][pLeader] == 18)
					{
						forveh(i) if(!IsVehicleOccupied1(i) && i >= rifacar[0] && i <= rifacar[1]) SetVehicleToRespawn(i);
					}
					new string[100];
					format(string, 100, "Лидер организации %s зареспавнил весь незанятый транспорт Вашей организации!", PlayerInfo[playerid][pNames]);
					SendFamilyMessage(PlayerInfo[playerid][pMember], COLOR_BLUE, string);
					SetPVarInt(playerid, #spawn_gettime, gettime()+120);
                    break;
				}
			}
		}

табуляция сбилась, подправь чуть сам уже

Отредактировано пользователем #byte

Поделиться сообщением


Ссылка на сообщение
  • 0
1 час назад, Andy сказал:

@#byte не помогло ;(

Это и не должно помочь)
Дело у тебя в проверке, скорее не правильно реализована

 

case 758 прокомментируй.
 

Отредактировано пользователем #byte

Поделиться сообщением


Ссылка на сообщение
  • 0
2 часа назад, #byte сказал:

Не забывай про оператор break;

В PAWN он только для циклов

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST 

29 минут назад, DEST сказал:

В PAWN он только для циклов

В Pawn давно уже не обитаю. Исходил из логики "Си" языка.
По сути выход из области видимости case здесь тоже должен работать (я про break)
Ибо если break не поставить он продолжит исполнять инструкции из других кейсов в области видимости этого switch

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@#byte в Pawn это не так, можете сами проверить. Как только он находит совпадающий case, он заканчивает выполнение switch на нем. 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • gooding
      От gooding


      Скачать файл ELITE RP | МОД БОНУСНОГО ПРОЕКТА
      Доброго времени суток, уважаемые читатели, я выставил на продажу мод ELITE RP !
      Что же в этом моде уникального?
      - Работы из реальной жизни. (Яндекс Еда  CDEK  Инкассатор)
      - Кланы. (Тиктокеры, Блоггеры, Хамы, Министры, Звери, Сосиски, Сладкие, Ублюдки, Цари и Прокуроры)
      - Радужный, Мигающий клист.
      - Донат-плюшки.
      - Неон на автомобиль, Supreme-наклейка.
      - Брони-транспорт.
      - Кейсы. (SILVER, MEGA, SUPER)
      - ДМ-зона.
      - Эксклюзивные аксессуары.
      - Lamborgini Gold.
      - Новые мафии. (ОПГ)
      - Привилегии для машины. (10.000 HP, телепортация личного транспорта)
      - Система банкоматов.
      - Таксопарки. (VIP-класса и Business)
      - Уникальная система управления личным транспортом. (/cars)
      - Новая система казино.
      - Свой маппинг.
      И многое другое!

      Мод будет дополняться!
      Добавил gooding Добавлено 20.04.2024 Категория Моды Автор gooding  
    • tivan666ban
      От tivan666ban
      Скажите пожалуйста почему этот код(знаю что ещё не допиленный) 
      выдаёт эти ошибки