Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7
  1. #1
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±

    Создание текста на объектах

    При вводе команды, появляется только объект, но без текста. Как создать текст?

    Код:
    CMD:newtext(playerid)
    {
        new Float:pX,Float:pY,Float:pZ;
        GetPlayerPos(playerid,Float:pX,Float:pY,Float:pZ);
    	new objectid = CreateDynamicObject(19353, Float:pX+3, Float:pY, Float:pZ, 0.0, 0.0, 0.0, 0, 0, -1, 200);
    	SetDynamicObjectMaterialText(objectid, 0, "{FF0000}Text", OBJECT_MATERIAL_SIZE_256x128, "Arial", 24, 1, 0xFFFFFFFF, 0, 0);
    	return 1;
    }
    streamer.inc
      Открыть/закрыть
    Код:
    /*
     * Copyright (C) 2014 Incognito
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    native SetDynamicObjectMaterialText(objectid, materialindex, const text[], materialsize = OBJECT_MATERIAL_SIZE_256x128, const fontface[] = "Arial", fontsize = 24, bold = 1, fontcolor = 0xFFFFFFFF, backcolor = 0, textalignment = 0);

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

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

  3. Пользователь сказал cпасибо:
    Jackal (20.11.2015)
  4. #3
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    В первую очередь проверьте, виден ли текст при таких же настройках (размер материала, шрифт, текст, размер шрифта, etc., цвет) на обычном объекте, а не на динамическом. Если на обычных объектах текст виден, а на динамических нет, то это баг стримера и вполне возможно, что его уже исправили в самой последней версии.
    Попробовал ещё двумя способами, результата также нет.

    1] Обычный объект:
    Код:
    CMD:newtext(playerid)
    {
        new Float:pX,Float:pY,Float:pZ;
        GetPlayerPos(playerid,Float:pX,Float:pY,Float:pZ);
        new objectid = CreateObject(19353, Float:pX+3,Float:pY,Float:pZ, 0.000000, 0.000000, 0.000000);
    	SetDynamicObjectMaterialText(objectid, 0, "{FF0000}Text", OBJECT_MATERIAL_SIZE_256x128, "Arial", 24, 1, 0xFFFFFFFF, 0, 0);
    	return 1;
    }
    2] Обычная функция:
    Код:
    CMD:newtext(playerid)
    {
        new Float:pX,Float:pY,Float:pZ;
        GetPlayerPos(playerid,Float:pX,Float:pY,Float:pZ);
        new objectid = CreateObject(19353, Float:pX+3,Float:pY,Float:pZ, 0.000000, 0.000000, 0.000000);
        SetObjectMaterialText(objectid, "Text", 0, OBJECT_MATERIAL_SIZE_256x128, "Arial", 24, 1, 0xFFFF0000, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
    	return 1;
    }

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

    Статус
    Оффлайн
    Регистрация
    27.11.2013
    Адрес
    Нижневартовск
    Сообщений
    256
    Репутация:
    63 ±
    PHP код:
    CMD:newtext(playerid)
    {
        new 
    Float:pX,Float:pY,Float:pZ;
        
    GetPlayerPos(playerid,pX,pY,pZ);
        new 
    objectid CreateDynamicObject(19353pX+3pYpZ0.00.00.000, -1200);
        
    SetDynamicObjectMaterialText(objectid0"{FF0000}Text"OBJECT_MATERIAL_SIZE_256x128"Arial"2410xFFFFFFFF00);
        return 
    1;

    А если так?

  6. Пользователь сказал cпасибо:
    Jackal (20.11.2015)
  7. #5
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Цитата Сообщение от Mazzilla Посмотреть сообщение
    PHP код:
    CMD:newtext(playerid)
    {
        new 
    Float:pX,Float:pY,Float:pZ;
        
    GetPlayerPos(playerid,pX,pY,pZ);
        new 
    objectid CreateDynamicObject(19353pX+3pYpZ0.00.00.000, -1200);
        
    SetDynamicObjectMaterialText(objectid0"{FF0000}Text"OBJECT_MATERIAL_SIZE_256x128"Arial"2410xFFFFFFFF00);
        return 
    1;

    А если так?
    Спасибо, конечно, за участие, но нет, не помогло...

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Сверил порядок аргументов с теми, что в статье на SA:MP wiki (SetObjectMaterialText), вроде бы всё сходится.
    Скорее всего, объект просто не использует ту часть текстуры, на которой вы наносите текст. Попробуйте нанести текст по центру текстуры. Например, можно вставить в начало текста несколько символов переноса строки или поменять выравнивание текста (OBJECT_MATERIAL_TEXT_ALIGN_CENTER последним параметром в SetObjectMaterialText). Либо может помочь смена ID материала (3-й аргумент).
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. Пользователь сказал cпасибо:
    Jackal (22.11.2015)
  10. #7
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Сверил порядок аргументов с теми, что в статье на SA:MP wiki (SetObjectMaterialText), вроде бы всё сходится.
    Скорее всего, объект просто не использует ту часть текстуры, на которой вы наносите текст. Попробуйте нанести текст по центру текстуры. Например, можно вставить в начало текста несколько символов переноса строки или поменять выравнивание текста (OBJECT_MATERIAL_TEXT_ALIGN_CENTER последним параметром в SetObjectMaterialText). Либо может помочь смена ID материала (3-й аргумент).
    Всё перепробовал, разные индексы, объекты, переносы строки, выравнивание по центру... результат один и тот же - при вводе команды, создается только объект и всё, текста нет.

 

 

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

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

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

Ваши права

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