Вопросы

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

 

Спойлер

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

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

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

    • Aleksey98
      От Aleksey98
      Необходим человек: который сможет написать систему тюнинга!
      как на крупных проектах типа: Arizona и Radmir
      И еще требуется Мапперы на новый топовый проект!
      Связь : https://vk.com/id289498732
    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };