Открыт ли диалог?
#1

Приветствую, вопрос таков, как можно узнать, открыто ли в текущий момент у игрока какое-либо диалоговое окно?
Reply
#2

Вы можете проверять, не было ли закрыто показанное вами окно (show - запоминаем ид, response - обнуляем). Если читом его свернут/откроют (или что-то вроде того), то вы это не узнаете.
Reply
#3

Лови:
Code:
stock SPD(playerid, dialogid, style, caption[], info[], button1[], button2[])
{
	ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
	SetPVarInt(playerid, "DialogShown", 1);
	return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	SetPVarInt(playerid, "DialogShown", 0);
        return true;
}
if(GetPVarInt(playerid, "DialogShown")) - проверка на то, что открыт ли диалог
Reply
#4

Quote:
Originally Posted by Daea
View Post
Лови:
Code:
stock SPD(playerid, dialogid, style, caption[], info[], button1[], button2[])
{
	ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
	SetPVarInt(playerid, "DialogShown", 1);
	return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	SetPVarInt(playerid, "DialogShown", 0);
        return true;
}
if(GetPVarInt(playerid, "DialogShown")) - проверка на то, что открыт ли диалог
Прочтите предыдущий пост внимательно!

Топикстартеру, этот способ не проверяет на открытый диалог.
Reply
#5

Ну давайте перечитаем..."как можно узнать, открыто ли в текущий момент у игрока какое-либо диалоговое окно?" >>> "открыто ли какое-либо диалоговое окно" >>> КАКОЕ-ЛИБО!
Все так ведь...
Так что этот способ работает так, как надо...
К тому же, этот способ встречается в IpleoMax, и работает нормально...
Reply
#6

Quote:
Originally Posted by Daea
View Post
Ну давайте перечитаем..."как можно узнать, открыто ли в текущий момент у игрока какое-либо диалоговое окно?" >>> "открыто ли какое-либо диалоговое окно" >>> КАКОЕ-ЛИБО!
Все так ведь...
Так что этот способ работает так, как надо...
К тому же, этот способ встречается в IpleoMax, и работает нормально...
Этот способ позволяет проверить показали ли вы игроку диалог и выполнил ли он его, но не позволяет проверить открыт ли он у него потому что:
Quote:
Originally Posted by stabker
View Post
Если читом его свернут/откроют (или что-то вроде того), то вы это не узнаете.
Reply
#7

Хорошо, признаю свою ошибку, НО тем не менее, он просил решение, я дал решение...
Reply
#8

Code:
stock SPD(playerid, dialogid, style, caption[], info[], button1[], button2[])
{
	ShowPlayerDialog(playerid, random(1000), style, caption, info, button1, button2);
	SetPVarInt(playerid, "DialogShown", dialogid);
	return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	dialogid = GetPVarInt(playerid, "DialogShown");
        DeletePVar(playerid, "DialogShown");
        return true;
}
А еще лучше так. Во первых можно ид диалога узнать, во вторых читом нельзя будет подменить/несколько раз использовать диалог
Reply
#9

Спасибо всем отписавшимся.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)