Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±

    По диалогу

    Приветствую всех, и у меня проблема как сделать так, что бы при нажатий открывался счет в диалоге и с ним можно было работать дальше (Снять деньги и т.д)
    http://rghost.ru/59444330.view

    Заранее спасибо!

  2. #2
    Аватар для Elaid
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.09.2014
    Адрес
    Киров [43]
    Сообщений
    93
    Репутация:
    0 ±
    Сделай ответ на диалог.
    Функция SetGameModeText определяет уникальность вашего мода :D (Evil School Boy)


    Иногда так хочется крикнуть: "Подручныый .." :с



  3. #3
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Цитата Сообщение от Elaid Посмотреть сообщение
    Сделай ответ на диалог.
    В смысле?

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #5
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Ну дак листемсу надо как то передать выбраны в диалоге счет, вот в чем проблема

  6. #6
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    С помощью PVar'ов, например.
    Выглядеть будет примерно так:
    PHP код:
    new items_count = [кол-во элементов в списке];
    SetPVarInt(playerid"bank_accounts_list__items"items_count);
    new 
    pvar_name[26];
    for(new 
    i=0i<items_count; ++i)
    {
        
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"i);
        
    SetPVarInt(playeridpvar_name, [номер счёта на i-той строке]);
    }
    ShowPlayerDialog(...); 
    Затем в OnDialogResponse:
    PHP код:
    new items_count GetPVarInt(playerid"bank_accounts_list__items")
    if(!(
    <= listitem items_count))
        return 
    1// подмена номера выбранного пункта в списке (возможно, сейчас таких читов ещё нет, но перестраховаться не помешает)
    new pvar_name[26];
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"listitem);
    new 
    bank_account_id GetPVarInt(playeridpvar_name);
    for(new 
    i=0i<items_count; ++i)
    {
        
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"i);
        
    DeletePVar(playeridpvar_name);
    }
    // дальше Ваши действия, ID банковского счёта будет в переменной bank_account_id 
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  7. #7
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    С помощью PVar'ов, например.
    Выглядеть будет примерно так:
    PHP код:
    new items_count = [кол-во элементов в списке];
    SetPVarInt(playerid"bank_accounts_list__items"items_count);
    new 
    pvar_name[26];
    for(new 
    i=0i<items_count; ++i)
    {
        
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"i);
        
    SetPVarInt(playeridpvar_name, [номер счёта на i-той строке]);
    }
    ShowPlayerDialog(...); 
    Затем в OnDialogResponse:
    PHP код:
    new items_count GetPVarInt(playerid"bank_accounts_list__items")
    if(!(
    <= listitem items_count))
        return 
    1// подмена номера выбранного пункта в списке (возможно, сейчас таких читов ещё нет, но перестраховаться не помешает)
    new pvar_name[26];
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"listitem);
    new 
    bank_account_id GetPVarInt(playeridpvar_name);
    for(new 
    i=0i<items_count; ++i)
    {
        
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"i);
        
    DeletePVar(playeridpvar_name);
    }
    // дальше Ваши действия, ID банковского счёта будет в переменной bank_account_id 
    PHP код:
    forward bank_score(playerid);
    public 
    bank_score(playerid)
    {
        new 
    rowsfieldsstr[200];
        
    cache_get_data(rowsfields);
        if(
    rows)
        {
            static 
    window_title[] = "{FFAA00}Номер счета \t Вледелец счета \t Название счета";
            new 
    text_in_dialog[500], name_score[MAX_PLAYERS];
            for(new 
    rrowsr++)
            {
                
    cache_get_field_content(r"expense_holder"pInfo[r][pName], mysql_connect_ID24);
                
    cache_get_field_content(r"expense_name"name_score[r], mysql_connect_ID50);
                new 
    ID_score cache_get_field_content_int(r"ID_Expense"mysql_connect_ID);
                
    format(strsizeof str"%d \t %s \t %s",  ID_scorename_scorepInfo[r][pName]);
                
    strcat(text_in_dialogstr);
                
    strcat(text_in_dialog,"\n");
            }
            
    ShowPlayerDialog(playeriddOpenHolderDIALOG_STYLE_LISTwindow_titletext_in_dialog"Выход""");
        }

    Думаю цикл не надо?
    P.S: rows возвращает количество найденных по запросу ячеек

  8. #8
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Сделал вот так вот:
    PHP код:
    forward bank_score(playerid);
    public 
    bank_score(playerid)
    {
        new 
    rowsfieldsstr[200];
        
    cache_get_data(rowsfields);
        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 
    rrowsr++)
            {
                
    cache_get_field_content(r"expense_holder"pInfo[r][pName], mysql_connect_ID24);
                
    cache_get_field_content(r"expense_name"name_score[r], mysql_connect_ID50);
                new 
    ID_score cache_get_field_content_int(r"ID_Expense"mysql_connect_ID);
                
    format(strsizeof str"%d \t %s \t %s",  ID_scorename_scorepInfo[r][pName]);
                
    strcat(text_in_dialogstr);
                
    strcat(text_in_dialog,"\n");
                
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"r);
                
    SetPVarInt(playeridpvar_namer);
            }
            
    ShowPlayerDialog(playeriddOpenHolderDIALOG_STYLE_LISTwindow_titletext_in_dialog"Выход""");
        }

    PHP код:
                case dOpenHolder:
                {
                    new 
    items_count GetPVarInt(playerid"bank_accounts_list__items");
                    if(!(
    <= listitem items_count))
                        return 
    1// подмена номера выбранного пункта в списке (возможно, сейчас таких читов ещё нет, но перестраховаться не помешает)
                    
    new pvar_name[26];
                    
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"listitem);
                    new 
    bank_account_id GetPVarInt(playeridpvar_name);
                    for(new 
    i=0i<items_count; ++i)
                    {
                        
    format(pvar_namesizeof(pvar_name), "bank_accounts_list__%d"i);
                        
    DeletePVar(playeridpvar_name);
                    }
                    
    printf("bank_account_id: %d"bank_account_id);

                } 
    И как я понял по логированию будет возвращать ID нажатой кнопки (листем), да?
    Но а как теперь продолжить работать счетом например, снять с него?
    Просто если работать с select`om то надо хотя бы передать ID выбранного счета, но как?

  9. #9
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Ещё раз посмотрите мой пост выше. Там было сказано записывать в PVar'ы номер столбца в таблице (r)? Или может всё-таки номер банковского счёта?
    В отрывке для OnDialogResponse также указано, в какой переменной будет номер счёта. Просто внимательно прочтите пост.

    И да, забыл написать, PVar bank_accounts_list__items тоже нужно удалять в OnDialogResponse.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  10. #10
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Все понял, van love Daniel Cortez

    Но наверное, надо поставить ограничение на создание счетов, видь есть ограничение на символов в диалоге, и если так то сколько счетов можно будет поставить?
    Или у Вас есть какой то вариант, кроме страниц? (Не хочу их делать)

    И есть ли какие нибудь примичание по коду, во общее?

    Заранее спасибо
    Последний раз редактировалось Lars Keller; 09.12.2014 в 16:58.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •