PDA

Просмотр полной версии : [Вопрос] По диалогу DIALOG_STYLE_TABLIST



BadPawn
20.01.2016, 09:03
Всем привет ребят.
Решил сделать на сервере 'Личную анкету', в которую входит: Имя, Фамилия, Пол, Возраст, Страна Регион, Населенный пункт, E-mail.

С выводом в диалог, т.е. открывается диалоговое окно АНКЕТЫ, далее нажимаю например на Фамилию(ввожу), нажимаю ОК и вывод текста в диалог, который на скрине во 2-м столбце ( [НЕТ ДАННЫХ] ).
http://s020.radikal.ru/i702/1601/38/2b809ffbcfe0.png


2-й вопрос, по той же системе, которая на скрине. Ввожу имя, возвращаюсь на диалог анкеты(появилось имя), но захожу в фамилия, ввожу и возвращается одна фамилия, без имени. Покажите пожалуйста, как это сделать на каком нибудь мелком примере. Я знаю, как сохранить 1 значение, но 2. :) еще не встречался с таким, что бы научиться.)

[ForD]
20.01.2016, 09:10
Всем привет ребят.
Решил сделать на сервере 'Личную анкету', в которую входит: Имя, Фамилия, Пол, Возраст, Страна Регион, Населенный пункт, E-mail.

С выводом в диалог, т.е. открывается диалоговое окно АНКЕТЫ, далее нажимаю например на Фамилию(ввожу), нажимаю ОК и вывод текста в диалог, который на скрине во 2-м столбце ( [НЕТ ДАННЫХ] ).
http://s020.radikal.ru/i702/1601/38/2b809ffbcfe0.png


2-й вопрос, по той же системе, которая на скрине. Ввожу имя, возвращаюсь на диалог анкеты(появилось имя), но захожу в фамилия, ввожу и возвращается одна фамилия, без имени. Покажите пожалуйста, как это сделать на каком нибудь мелком примере. Я знаю, как сохранить 1 значение, но 2. :) еще не встречался с таким, что бы научиться.)

А по примеру 1-го то не пробовал сделать? Суть же вроде одна,а ощущение что для этого вы делаете зачем-то разные системы..

BadPawn
20.01.2016, 09:33
О, ребят, можно для сохранения имени например использовать PVarString?

- - - Добавлено - - -


;67994']А по примеру 1-го то не пробовал сделать? Суть же вроде одна,а ощущение что для этого вы делаете зачем-то разные системы..

Суть задумки: для восстановления акка в случае утери. При регистрации не вариант, по себе знаю. Долгая регистрация заставляет вводить /q :DDD

я вывожу текст с помощью inputtext с диалога, во втором диалоге inputtext будет равен другому значению, поэтому никак.

DeimoS
20.01.2016, 10:31
О, ребят, можно для сохранения имени например использовать PVarString?

А что мешало просто взять и попробовать? ;) Или обязательно нужно было услышать: "да, можно"? Естественно у тебя данные будут перезаписывать друг друга. Записывай её в pVar, а как всё запишешь, переноси в базу данных (или куда ты собрался её записывать), а pVar удаляй. И потом уже, при случае, выводи её из базы данных и показывай игроку.

Fantom
20.01.2016, 10:37
О, ребят, можно для сохранения имени например использовать PVarString?


да, можно

pVar впринципе можешь и не удалять

BadPawn
20.01.2016, 17:25
Как это долго, и интересно было. ))))

Тему закройте пж, всем спасибо.

BadPawn
20.01.2016, 18:40
GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age")

Ребят, как объединить все 4 пвара и вывести их в виде: %i.%i.%i (%i) (11.11.1993 (22)). В диалоге.

Нужно объединить в переменную: ageank

DeimoS
20.01.2016, 19:50
pVar впринципе можешь и не удалять

Если значения pVar больше не используются в коде, их лучше удалить -_- Не надо такой чуши больше писать, хорошо?



GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age")

Ребят, как объединить все 4 пвара и вывести их в виде: %i.%i.%i (%i) (11.11.1993 (22)). В диалоге.

Нужно объединить в переменную: ageank
ageank - массив или обычная переменная?

BadPawn
20.01.2016, 19:54
Массив.

new ageank[16];

DeimoS
20.01.2016, 22:47
Ну, собстно, если особо не заморачиваться, то

format(ageank, sizeof(ageank), "%i.%i.%i (%i)", GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age"));

BadPawn
21.01.2016, 07:08
нет, тут дело в другом. )))) сейчас покажу)



f(stringer, "{FFFF00}Имя\t[%s]\n{FFFF00}Фамилия\t[%s]\n{FFFF00}Пол\t[%s]\n{FFFF00}Возраст\t[{33CC00}%i.%i.%i(%i){FFFFFF}]\n{FFFF00}E-mail\t[%s]\n", nameank, surank, floorank, GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age"), mailank);


ShowPlayerDialog(playerid, d_playermenuform, DST, "[RP]PERFECTWORLD: Анкета", stringer, "Выбрать", "Отмена");

Дело все в том, что загружается не только дата рождения. Если я введу например первым дату рождения, то в следующие диалоги с именем, фамилией и т.д. нужно будет загружать эту дату.

Данные загружаются по типу: nameank, surank, floorank, ageank(наша дата и возраст), mailank. Собственно вот. )

- - - Добавлено - - -

Попробовал, опять такая же бредня, что и была((((

http://s017.radikal.ru/i442/1601/31/50266b2f8656.png

А если напишу отдельно все, то выведет нормально дату рождения и возраст.


new year, month, day;
getdate(year, month, day);
new Age = year - GetPVarInt(playerid, "gdyeah");
if(GetPVarInt(playerid, "gdmonth") > month)
{
Age -= 1;
}
else if(GetPVarInt(playerid, "gdmonth") == month && GetPVarInt(playerid, "gdday") > day)
{
Age -= 1;
}
SetPVarInt(playerid, "Age", Age);
GetPVarString(playerid, "NameAnketa", nameank, 16);
GetPVarString(playerid, "SurAnketa", surank, 16);
GetPVarString(playerid, "FloorAnketa", floorank, 16);
GetPVarString(playerid, "MailAnketa", mailank, 16);
f(ageank, "%i.%i.%i (%i)", GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age"));
f(stringer, "{FFFF00}Имя\t[%s]\n{FFFF00}Фамилия\t[%s]\n{FFFF00}Пол\t[%s]\n{FFFF00}Возраст\t[{33CC00}%i.%i.%i(%i){FFFFFF}]\n{FFFF00}E-mail\t[%s]\n", nameank, surank, floorank, ageank, mailank);
ShowPlayerDialog(playerid, d_playermenuform, DST, "[RP]PERFECTWORLD: Анкета", stringer, "Выбрать", "Отмена");

Вот сам код. Мож тут че не так

DeimoS
21.01.2016, 10:26
Сделай логирование и скинь данные сюда

f(stringer, "{FFFF00}Имя\t[%s]\n{FFFF00}Фамилия\t[%s]\n{FFFF00}Пол\t[%s]\n{FFFF00}Возраст\t[{33CC00}%i.%i.%i(%i){FFFFFF}]\n{FFFF00}E-mail\t[%s]\n", nameank, surank, floorank, GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age"), mailank);
printf("%s", stringer);
printf("%i.%i.%i(%i) - %d.%d.%d(%d)", GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age"), GetPVarInt(playerid, "gdday"), GetPVarInt(playerid, "gdmonth"), GetPVarInt(playerid, "gdyeah"), GetPVarInt(playerid, "Age"));

SliM
21.01.2016, 10:31
new
player_form [MAX_PLAYERS] [7] [MAX_PLAYER_NAME];

//в диалоге, к примеру кликаем на фамилию
SetPVarInt (playerid, "listitem", listitem); // = 1 запишем номер строки на которую кликнули в пвар

//в следующем диалоге
player_form [MAX_PLAYERS] [GetPVarInt (playerid, "listitem")] [0] = EOS;//очищаем, для случая если редактирует и тд
strcat (player_form [playerid] [GetPVarInt (playerid, "listitem")], inputtext);

player_form [playerid] [1] = фамилия игрока

//в диалоге кликаем на населенный пункт
SetPVarInt (playerid, "listitem", listitem); // = 5

//в следующем диалоге
player_form [playerid] [GetPVarInt (playerid, "listitem")] [0] = EOS;//очищаем, для случая если редактирует и тд
strcat (player_form [playerid] [GetPVarInt (playerid, "listitem")], inputtext);

player_form [playerid] [5] = населенный пункт

это очень, грубый вариант, написанный в браузере. вместо массива можно использовать и PVar:


//в диалоге, к примеру кликаем на фамилию
SetPVarInt (playerid, "listitem", listitem); // = 1

//в следующем диалоге
new
pvar_id [16];
format (pvar_id, 16, "pvar%i", GetPVarInt (playerid, "listitem")); //result pvar1
SetPVarString (playerid, pvar_id, inputtext);

GetPVarString (playerid, "pvar1", array, len) = фамилия игрока

как то так сделал бы я, а скорее всего, сразу записывал-бы результат в бд без массивов и пваров и при необходимости показывал, как было сказано выше.