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



Не найдено.

7 posts in this topic

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

 

Спойлер

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]);
			}
		}

 

 

Edited by Andy

Share this post


Link to post
Share on other sites

Не забывай про оператор 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;
				}
			}
		}

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

Edited by #byte

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 час назад, Andy сказал:

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

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

 

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

Edited by #byte

Share this post


Link to post
Share on other sites
2 часа назад, #byte сказал:

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

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

Share this post


Link to post
Share on other sites

@DEST 

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

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

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

 

Share this post


Link to post
Share on other sites

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

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

    • Dworkin
      By Dworkin
      Привет. Мне тяжело дается понимание строк в pawn из за не динамических массивов.
      #include enum pInfo { pRangName[25] } new players[MAX_PLAYERS][pInfo]; new string[20]; main() { format(string, sizeof(string), "Салага"); printf(string); players[0][pRangName] = string; } выдает ошибку "error 047: array sizes do not match, or destination array is too small" на строку "players[0][pRangName] = string;"
      Я понимаю что в ошибке говорится что размер не совпадает, но не могу понять как это сделать в павне