Вопросы

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

 

Спойлер

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 пользователей онлайн

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

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

    • KAIF
      От KAIF


      Скачать файл GTA RolePlay-МОД,СБОРКА
      !!!!!ВСЕГО ОДНА КОПИЯ!!!! 
      Единственный мод GTA RP.
       
      Фракции:
      Правительство
      ГИБДД
      Полиция Южного
      ФСБ
      ЦГБ-А
      Автошкола
      Китайская мафия
      Русская Мафия
      Итальянская Мафия
      Американская Мафия
      Чеченская Мафия
      ВВС
      МЧС
      ОПГ Тяп-Ляп
      ОПГ Хади-Такташ
      СМИ Южного
      ФСИН
      В комплекте идёт СБОРКА И МОД.
      Единственный мод GTA RP.
      Добавил KAIF Добавлено 01.01.2024 Категория Моды Автор Aleksandr  
    • gooding
      От gooding
      Доброго времени суток! Я выложил на продажу игровой мод RedRow RolePlay!
       
      17 ТИТУЛОВ, 14 КОСТЮМОВ (КАМЕРМЭН, ФЕЯ, СИ-ДЖЕЙ, ДЭДПУЛ, СПАНЧ БОБ, НИНДЗЯ, ДЕД МОРОЗ и другие!),
      BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS, Rolls-Royce Phantom! Система рулетки  (Исправлена, теперь не выпадает одно и то же),
      Автопарки Фракций (FBI и банд), МОД ОПТИМИЗИРОВАЛИ под ИГРУ, ДОБАВИЛИ НОВЫЙ АНТИЧИТ (Latest Nex-AC) и АНТИЧИТ настроен. Проделано много работы (Над модом работали полгода) и исправили множество багов.
       
      Что было добавлено?
      1. 17 титулов,
      2. 14 костюмов,
      3. Эксклюзивный транспорт (SandKing, Rolls-Royce Phantom, BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS).
      4. Автопарк ФБР и всех банд.
      5. Новый анти-чит.
      6. Оптимизация игрового мода.
      7. Премиум и уникальные возможности для владельцев Премиума.
      8. Команда /bonus, где можно получить бесплатно Red Coins.
      9. За АКТИВ даются Red Coins!
      10. Рестарт сервера в 5:00 по МСК.
      11. Радужный клист.
      12. Уникальный тюнинг для эксклюзивных машин и ускорение.
      13. Новая система банка.
      14. Исправлено множество багов.
      15. Новый маппинг.
    • Redmondd
      От Redmondd
      Хочу сделать команду /gpsoff, которая убирает метку