Приветствую всех, и у меня проблема как сделать так, что бы при нажатий открывался счет в диалоге и с ним можно было работать дальше (Снять деньги и т.д)
http://rghost.ru/59444330.view
Заранее спасибо!
Приветствую всех, и у меня проблема как сделать так, что бы при нажатий открывался счет в диалоге и с ним можно было работать дальше (Снять деньги и т.д)
http://rghost.ru/59444330.view
Заранее спасибо!
Сделай ответ на диалог.
Функция SetGameModeText определяет уникальность вашего мода :D (Evil School Boy)
Иногда так хочется крикнуть: "Подручныый .." :с
Просто оставлю это здесь:
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
С помощью PVar'ов, например.
Выглядеть будет примерно так:
Затем в OnDialogResponse:PHP код:
new items_count = [кол-во элементов в списке];
SetPVarInt(playerid, "bank_accounts_list__items", items_count);
new pvar_name[26];
for(new i=0; i<items_count; ++i)
{
format(pvar_name, sizeof(pvar_name), "bank_accounts_list__%d", i);
SetPVarInt(playerid, pvar_name, [номер счёта на i-той строке]);
}
ShowPlayerDialog(...);
PHP код:
new items_count = GetPVarInt(playerid, "bank_accounts_list__items")
if(!(0 <= listitem < items_count))
return 1; // подмена номера выбранного пункта в списке (возможно, сейчас таких читов ещё нет, но перестраховаться не помешает)
new pvar_name[26];
format(pvar_name, sizeof(pvar_name), "bank_accounts_list__%d", listitem);
new bank_account_id = GetPVarInt(playerid, pvar_name);
for(new i=0; i<items_count; ++i)
{
format(pvar_name, sizeof(pvar_name), "bank_accounts_list__%d", i);
DeletePVar(playerid, pvar_name);
}
// дальше Ваши действия, ID банковского счёта будет в переменной bank_account_id
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Думаю цикл не надо?PHP код:
forward bank_score(playerid);
public bank_score(playerid)
{
new rows, fields, str[200];
cache_get_data(rows, fields);
if(rows)
{
static window_title[] = "{FFAA00}Номер счета \t Вледелец счета \t Название счета";
new text_in_dialog[500], name_score[MAX_PLAYERS];
for(new r; r < rows; r++)
{
cache_get_field_content(r, "expense_holder", pInfo[r][pName], mysql_connect_ID, 24);
cache_get_field_content(r, "expense_name", name_score[r], mysql_connect_ID, 50);
new ID_score = cache_get_field_content_int(r, "ID_Expense", mysql_connect_ID);
format(str, sizeof str, "%d \t %s \t %s", ID_score, name_score, pInfo[r][pName]);
strcat(text_in_dialog, str);
strcat(text_in_dialog,"\n");
}
ShowPlayerDialog(playerid, dOpenHolder, DIALOG_STYLE_LIST, window_title, text_in_dialog, "Выход", "");
}
}
P.S: rows возвращает количество найденных по запросу ячеек
Сделал вот так вот:
PHP код:
forward bank_score(playerid);
public bank_score(playerid)
{
new rows, fields, str[200];
cache_get_data(rows, fields);
if(rows)
{
static window_title[] = "{FFAA00}Номер счета \t Вледелец счета \t Название счета";
new text_in_dialog[500], name_score[MAX_PLAYERS];
SetPVarInt(playerid, "bank_accounts_list__items", rows);
new pvar_name[26];
for(new r; r < rows; r++)
{
cache_get_field_content(r, "expense_holder", pInfo[r][pName], mysql_connect_ID, 24);
cache_get_field_content(r, "expense_name", name_score[r], mysql_connect_ID, 50);
new ID_score = cache_get_field_content_int(r, "ID_Expense", mysql_connect_ID);
format(str, sizeof str, "%d \t %s \t %s", ID_score, name_score, pInfo[r][pName]);
strcat(text_in_dialog, str);
strcat(text_in_dialog,"\n");
format(pvar_name, sizeof(pvar_name), "bank_accounts_list__%d", r);
SetPVarInt(playerid, pvar_name, r);
}
ShowPlayerDialog(playerid, dOpenHolder, DIALOG_STYLE_LIST, window_title, text_in_dialog, "Выход", "");
}
}
И как я понял по логированию будет возвращать ID нажатой кнопки (листем), да?PHP код:
case dOpenHolder:
{
new items_count = GetPVarInt(playerid, "bank_accounts_list__items");
if(!(0 <= listitem < items_count))
return 1; // подмена номера выбранного пункта в списке (возможно, сейчас таких читов ещё нет, но перестраховаться не помешает)
new pvar_name[26];
format(pvar_name, sizeof(pvar_name), "bank_accounts_list__%d", listitem);
new bank_account_id = GetPVarInt(playerid, pvar_name);
for(new i=0; i<items_count; ++i)
{
format(pvar_name, sizeof(pvar_name), "bank_accounts_list__%d", i);
DeletePVar(playerid, pvar_name);
}
printf("bank_account_id: %d", bank_account_id);
}
Но а как теперь продолжить работать счетом например, снять с него?
Просто если работать с select`om то надо хотя бы передать ID выбранного счета, но как?
Ещё раз посмотрите мой пост выше. Там было сказано записывать в PVar'ы номер столбца в таблице (r)? Или может всё-таки номер банковского счёта?
В отрывке для OnDialogResponse также указано, в какой переменной будет номер счёта. Просто внимательно прочтите пост.
И да, забыл написать, PVar bank_accounts_list__items тоже нужно удалять в OnDialogResponse.
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Все понял, van love Daniel Cortez
Но наверное, надо поставить ограничение на создание счетов, видь есть ограничение на символов в диалоге, и если так то сколько счетов можно будет поставить?
Или у Вас есть какой то вариант, кроме страниц? (Не хочу их делать)
И есть ли какие нибудь примичание по коду, во общее?
Заранее спасибо
Последний раз редактировалось Lars Keller; 09.12.2014 в 16:58.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)