• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Неправильный выбор в диалоге

Статус
В этой теме нельзя размещать новые ответы.

Den4ik-Den

Изучающий
Пользователь
Регистрация
23 Ноя 2014
Сообщения
127
Лучшие ответы
0
Репутация
3
Здравствуйте. Я создаю систему подразделений как на дрп( не реклама), но у меня возникла проблема. Когда я выбираю определенное подразделение, оно неправильно передается в переменную, а позже, неправильно выгружает из базы данных.
Вот скриншот действия команды:
На первом скриншоте сама команда, на втором я пытался выдать подразделение DD и результат выдало не тот, на третьем и четвертом история такая же.
Вот код команды:
PHP:
CMD:division(playerid,params[])
{
	new 
		id, 
		DA[7], 
		DO[32],
		string[680],
		stringM[90], 
		organizacia = 1;
	if(sscanf(params,"u",id)) return SendClientMessage(playerid, -1,"[Информация] Используйте: /division (ID - игрока/Ник)");
	if(!IsPlayerLogged[id]) return false;
	SetPVarInt(playerid,"divID",id);
	#define orgN PlayerInfo[playerid][pMember]
	if(orgN == 1) organizacia = 1;
	format(stringM, sizeof(stringM), "SELECT * FROM `divisions` WHERE `IDorg` = '%d' ORDER BY `ID`", organizacia);
	new Cache:result = mysql_query(mysql, stringM);
	new DN = cache_get_row_count(mysql);
	if(DN == 0) return SendClientMessage(playerid, -1,"Подразделений нет");
	format(string, sizeof(string), "{FF6347}1.{ffffff} Отсутствие подразделения\n");
	for(new i,count; i < DN; i ++)
	{
		dialog_listitem_values[playerid][count] = cache_get_row_int(i, 0, mysql);
		cache_get_row(i, 2, DA, mysql);
		cache_get_row(i, 3, DO, mysql);
		//dialog_listitem_values[playerid][count] = division_id;
        count++;
		format(string, sizeof(string), "%s{FF6347}%d. {ffffff}%s %s\n", string,i+2, DO,DA);
	}
	cache_delete(result, mysql);
	if(!ShowPlayerDialogEx(playerid, 9668, 2, "{F2C934}Смена подразделения", string, "Выбор", "Назад"))SendClientMessage(playerid, COLOR_GREY, "Недоступно в данный момент.");
	return 1;
}
Вот код диалога:
PHP:
case 9668:
		{
			if(response)
			{
				new idDiv[MAX_PLAYERS];
				new divIDs = GetPVarInt(playerid,"divID"),
					DA[7];
				if(listitem == 0) {
					SendClientMessage(playerid,-1,"подразделение убрано");
					SetString(PlayerInfo[divIDs][Division],"");
				}
				else
				{
					idDiv[playerid] = dialog_listitem_values[playerid][listitem];
					//new stringM[90];
					//format(stringM, sizeof(stringM), "SELECT `DA` FROM `divisions` ORDER BY `ID`");
					new Cache:result = mysql_query(mysql, "SELECT `DA` FROM `divisions` ORDER BY `ID`");
					cache_get_row(idDiv[playerid],0,DA,mysql);
					SetString(PlayerInfo[divIDs][Division],DA);
					format(string,sizeof(string),"Вы выдали подразделение %s, ID - %d",DA,idDiv[playerid]);
					SendClientMessage(playerid,COLOR_RED,string);
					cache_delete(result, mysql);
					//format(string,sizeof(string),"дорабатывается. ид выбранного подразделения %d",dialog_listitem_values[playerid][listitem-1]);

					//SendClientMessage(playerid,COLOR_RED,string);
				}
				DeletePVar(playerid,"divID");
			}
		}
Вот скриншот таблицы подразделений:
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу