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

UpdateDynamic3DTextLabelText не обновляет текст

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

Frolgen

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

Под основу переименования бизнеса была взята функция
C++:
            if(!response) return show_dialog(playerid, d_family_hall, DIALOG_STYLE_LIST, !""scm_dialog"Архив семей", !"Создать семью\nПереименовать семью\nСписок семей", !"Выбрать", !"Закрыть");
            if(p_info[playerid][money] < 750000) return show_dialog(playerid, d_family_rename, DIALOG_STYLE_INPUT, !""scm_dialog"Переименование семьи", !""c_white"Стоимость внесения информационных поправок в архив составляет "c_green"750.000$\n"c_white"Введите новое название своей семьи:", !"Далее", !"Назад");
            if(p_info[playerid][family] == 0) return SendClientMessage(playerid, col_white, !""scm_error"Вы не состоите в семье.");
            if(strlen(inputtext) < 2 || strlen(inputtext) > 68) return show_dialog(playerid, d_family_rename, DIALOG_STYLE_INPUT, !""scm_dialog"Переименование семьи", !""c_grey"Название семьи не может быть менее 2 символов или превышать 68 символов\n"c_white"Стоимость внесения информационных поправок в архив составляет "c_green"750.000$\n"c_white"Введите новое название своей семьи:", !"Далее", !"Назад");
            if(is_text_invalid(inputtext) || is_russian_text(inputtext)) return show_dialog(playerid, d_family_rename, DIALOG_STYLE_INPUT, !""scm_dialog"Переименование семьи", !""c_grey"Название семьи содержит некорректные символы\n"c_white"Стоимость внесения информационных поправок в архив составляет "c_green"750.000$\n"c_white"Введите новое название своей семьи:", !"Далее", !"Назад");
            if(find_family_name(inputtext)) return show_dialog(playerid, d_family_rename, DIALOG_STYLE_INPUT, !""scm_dialog"Переименование семьи", !""c_grey"Название уже занято другой семьёй\n"c_white"Стоимость внесения информационных поправок в архив составляет "c_green"750.000$\n"c_white"Введите новое название своей семьи:", !"Далее", !"Назад");

            new family_id = p_info[playerid][family], query_string[120];
            mysql_format(sql_connection, query_string, sizeof(query_string), "UPDATE `family` SET `fam_name`='%e' WHERE `fam_id`='%d' LIMIT 1", inputtext, family_id);
            mysql_query(sql_connection, query_string);

            give_money(playerid, -750000);
            insert_money_log(playerid, INVALID_PLAYER_ID, -750000, "изменение названия семьи");

            format(family_info[family_id - 1][fam_name], 68, inputtext);

            foreach(new i: family_players[family_id])
            {
                if(p_info[i][family] != p_info[playerid][family]) continue;

                new text_string[95];
                format(text_string, sizeof(text_string), "{%s}%s "c_white"Family", family_info[family_id - 1][fam_chat_color], family_info[family_id - 1][fam_name]);
                UpdateDynamic3DTextLabelText(p_info[i][family_text], -1, text_string);
            }

            new text_string[95];
            format(text_string, sizeof(text_string), ""scm_info"Вы успешно переименовали семью: "c_gold"%s", family_info[family_id - 1][fam_name]);
            SendClientMessage(playerid, col_white, text_string);
Вот что получилось у меня(для бизнеса):
C++:
            if(p_info[playerid][money] < 750000) return show_dialog(playerid, d_biz_rename, DIALOG_STYLE_INPUT, !""scm_dialog"Переименование бизнеса", !""c_white"Стоимость внесения информационных поправок в архив составляет "c_green"750.000$\n"c_white"Введите новое название своего бизнеса:", !"Далее", !"Назад");
            if(p_info[playerid][business] == -1) return SendClientMessage(playerid, col_white, !""scm_error"Вы не состоите в семье.");
            if(strlen(inputtext) < 7 || strlen(inputtext) > 32) return show_dialog(playerid, d_biz_rename, DIALOG_STYLE_INPUT, !""scm_dialog"Переименование бизнеса", !""c_grey"Название бизнеса не может быть менее 7 символов или превышать 100 символов\n"c_white"Стоимость внесения информационных поправок в архив штата: "c_green"750.000$\n"c_white"Введите новое название своего бизнеса:", !"Далее", !"Назад");

            new bizplayers = p_info[playerid][business],query_string[512];
            mysql_format(sql_connection, query_string, sizeof(query_string), "UPDATE `businesses` SET `b_name`='%e' WHERE `b_id`='%d' LIMIT 1", inputtext, bizplayers);
            mysql_query(sql_connection, query_string);
            
            format(b_info[bizplayers -1][b_name], 100, inputtext);

            if ( b_info [ bizplayers ] [ b_type ] == bizz_type_bar || b_info [ bizplayers ] [ b_type ] == bizz_type_pharm || b_info [ bizplayers ] [ b_type ] == bizz_type_electronic || b_info [ bizplayers ] [ b_type ] == bizz_type_club || b_info [ bizplayers ] [ b_type ] == bizz_type_cafe || b_info [ bizplayers ] [ b_type ] == bizz_type_shop || b_info [ bizplayers ] [ b_type ] == bizz_type_clothes || b_info [ bizplayers ] [ b_type ] == bizz_type_carshop)
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Владелец: "c_white"%s\n"c_grey"Цена: "c_white"%d$\n"c_grey"Контроль: "c_white"%s\n"c_grey"Состояние: "c_white"%s",
                b_types [ b_info [ bizplayers ] [ b_type ] ], b_info [ bizplayers ] [ b_id ],b_info [ bizplayers ] [ b_name ], b_info [ bizplayers ] [ b_owner_name ], b_info [ bizplayers ] [ b_price ], mafia_owner_name [ b_info [ bizplayers ] [ b_mafia ] - 1 ], ( ! b_info [ bizplayers ] [ b_close ]) ? ("{1a9616}Открыт") : ("{e11010}Закрыт") ) ;
                UpdateDynamic3DTextLabelText ( b_info [ bizplayers ] [ b_label ], -1, query_string ) ;
            }
            else if ( b_info [ bizplayers ] [ b_type ] == bizz_type_gas )
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Владелец: "c_white"%s\n"c_grey"Цена: "c_white"%d$\n"c_grey"Контроль:"c_white" %s\n"c_grey"Состояние: "c_white"%s",
                b_types [ b_info [ bizplayers ] [ b_type ] ], b_info [ bizplayers ] [ b_id ],b_info [ bizplayers ] [ b_name ], b_info [ bizplayers ] [ b_owner_name ], b_info [ bizplayers ] [ b_price ], mafia_owner_name [ b_info [ bizplayers ] [ b_mafia ] - 1 ], ( ! b_info [ bizplayers ] [ b_close ]) ? ("{1a9616}Открыто") : ("{e11010}Закрыто") ) ;
                UpdateDynamic3DTextLabelText ( b_info [ bizplayers ] [ b_label ], -1, query_string ) ;
            }
            else if ( b_info [ bizplayers ] [ b_type ] == bizz_type_ammo )
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Владелец: "c_white"%s\n"c_grey"Цена: "c_white"%d$\n"c_grey"Семья: "c_white"%s\n"c_grey"Состояние: "c_white"%s",
                b_types [ b_info [ bizplayers ] [ b_type ] ], b_info [ bizplayers ] [ b_id ],b_info [ bizplayers ] [ b_name ], b_info [ bizplayers ] [ b_owner_name ], b_info [ bizplayers ] [ b_price ], family_info[b_info[bizplayers][b_family] - 1][fam_name], ( ! b_info [ bizplayers ] [ b_close ]) ? ("{1a9616}Открыт") : ("{e11010}Закрыт") ) ;
                UpdateDynamic3DTextLabelText ( b_info [ bizplayers ] [ b_label ], -1, query_string ) ;
            }
            else if ( b_info [ bizplayers ] [ b_type ] == bizz_type_tune )
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Владелец: "c_white"%s\n"c_grey"Цена: "c_white"%d$\n"c_grey"Контроль: "c_white"%s\n"c_grey"Состояние: "c_white"%s",
                b_types [ b_info [ bizplayers ] [ b_type ] ], b_info [ bizplayers ] [ b_id ],b_info [ bizplayers ] [ b_name ], b_info [ bizplayers ] [ b_owner_name ], mafia_owner_name [ b_info [ bizplayers ] [ b_mafia ] - 1 ], ( ! b_info [ bizplayers ] [ b_close ]) ? ("{1a9616}Открыт") : ("{e11010}Закрыт") ) ;
                UpdateDynamic3DTextLabelText ( b_info [ bizplayers ] [ b_label ], -1, query_string ) ;
            }
            give_money(playerid, -750000);
            insert_money_log(playerid, INVALID_PLAYER_ID, -750000, "изменение названия бизнеса");

            
            new text_string[150];
            format(text_string, sizeof(text_string), ""scm_info"Вы успешно переименовали бизнес. Новое название: "c_gold"%s", b_info[bizplayers - 1][b_name]);
            SendClientMessage(playerid, col_white, text_string);
            format(text_string, sizeof(text_string), ""scm_info"Изменения вступят в силу после рестарта (4:00 мск)");
            SendClientMessage(playerid, col_white, text_string);
Грубо говоря оно работает, но оно обновляет название только в статистике персонажа, и статистике бизнеса. Но не 3D текст
У меня есть вопрос что значит format(b_info[bizplayers -1][b_name], 100, inputtext); я вообще не понимаю, но оно играет насколько я понимаю важную роль если я поменяю [bizplayers -1] на [bizplayers] то оно не обновит название бизнеса в статистике, но все обновится в бд и после рестарта будет указанное название.
Еще одно но, название можно обновить после продажи бизнеса, и текст названия обновляется.
Код продажи:
C++:
            if ( ! response )return show_dialog ( playerid, d_bpanel_sell, DIALOG_STYLE_LIST, ""c_server"Продажа бизнеса", "Продать игроку\nПродать государству", "Выбрать", "Назад" ) ;
            new b = p_info [ playerid ] [ business ] - 1 ;
            new _b_sell_price = b_info [ p_info [ playerid ] [ business ] - 1 ] [ b_price ] - floatround ( b_info [ p_info [ playerid ] [ business ] - 1 ] [ b_close ] / 10 ) ;
            GetPlayerName ( playerid, b_info [ b ][ b_owner_name ], MAX_PLAYER_NAME ) ;
            b_info [ b ][ b_owner_inc ] = -1;

            //give_money ( playerid, _b_sell_price [ business ] [ b_price ] / 2 ) ;

            give_money ( playerid, _b_sell_price / 2) ;
            insert_money_log ( playerid, INVALID_PLAYER_ID, _b_sell_price / 2, "продажа бизнеса" ) ;

             SendClientMessage ( playerid, col_white, ""c_green"* "c_white"Вы успешно продали бизнес." ) ;

            PlayerPlaySound ( playerid, 1052, 0.0, 0.0, 0.0 ) ;
            new query_string [ 512 + MAX_PLAYER_NAME + 1 ];
            format ( query_string, 136,"UPDATE `businesses` SET `b_owner_inc` = '-1', `b_owner_name` = 'The State' WHERE `b_id` = '%d' LIMIT 1", b_info [ b ] [ b_id ] ) ;
            mysql_tquery ( sql_connection, query_string ) ;

            p_info [ playerid ] [ business ] = -1 ;
            update_int_sql ( playerid, "u_business", p_info [ playerid ] [ business ] ) ;

            if ( b_info [ b ] [ b_type ] == bizz_type_bar || b_info [ b ] [ b_type ] == bizz_type_club || b_info [ b ] [ b_type ] == bizz_type_cafe || b_info [ b ] [ b_type ] == bizz_type_pharm || b_info [ b ] [ b_type ] == bizz_type_electronic || b_info [ b ] [ b_type ] == bizz_type_shop || b_info [ b ] [ b_type ] == bizz_type_clothes || b_info [ b ] [ b_type ] == bizz_type_carshop)
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Цена: "c_white"%d$\n"c_grey"Контроль: "c_white"%s\n"c_grey"Бизнес продаётся", b_types [ b_info [ b ] [ b_type ] ], b_info [ b ] [ b_id ],b_info [ b ] [ b_name ], b_info [ b ] [ b_price ], mafia_owner_name [ b_info [ b ] [ b_mafia ] - 1 ] ) ;
                UpdateDynamic3DTextLabelText ( b_info [ b ] [ b_label ], -1, query_string ) ;
            }

            else if ( b_info [ b ] [ b_type ] == bizz_type_gas )
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Стоимость: "c_white"%d$\n"c_grey"Контроль: "c_white"%s\n"c_grey"Бизнес продаётся (/buygas)", b_types [ b_info [ b ] [ b_type ] ], b_info [ b ] [ b_id ],b_info [ b ] [ b_name ], b_info [ b ] [ b_price ], mafia_owner_name [ b_info [ b ] [ b_mafia ] - 1 ] ) ;
                UpdateDynamic3DTextLabelText ( b_info [ b ] [ b_label ], -1, query_string ) ;
            }
            else if ( b_info [ b ] [ b_type ] == bizz_type_ammo )
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Цена: "c_white"%d$\n"c_grey"Семья: "c_white"%s\n"c_grey"Бизнес продаётся", b_types [ b_info [ b ] [ b_type ] ], b_info [ b ] [ b_id ],b_info [ b ] [ b_name ], b_info [ b ] [ b_price ], family_info[b_info[b][b_family] - 1][fam_name] ) ;
                UpdateDynamic3DTextLabelText ( b_info [ b ] [ b_label ], -1, query_string ) ;
            }
            else if ( b_info [ b ] [ b_type ] == bizz_type_tune )
            {
                format ( query_string, sizeof ( query_string ), ""c_server"%s (№%d)\n"c_grey"Название: {c8ee0e}%s\n"c_grey"Стоимость: "c_white"%d$\n"c_grey"Контроль: "c_white"%s\n"c_grey"Автостанция продаётся (/buytune)", b_types [ b_info [ b ] [ b_type ] ], b_info [ b ] [ b_id ],b_info [ b ] [ b_name ], b_info [ b ] [ b_price ], mafia_owner_name [ b_info [ b ] [ b_mafia ] - 1 ] ) ;
                UpdateDynamic3DTextLabelText ( b_info [ b ] [ b_label ], -1, query_string ) ;
            }
            
        }
Я так и сяк пытался, не понимаю почему так.
Подскажите что я делаю не так, только попроще, я блин шарю не сильно.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу