Форум Pawn.Wiki - Воплоти мечту в реальность!: помогите с варнингом - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
помогите с варнингом

#1
Пользователь офлайн   liquidosich 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Система чата DM сервера, при входе на локацию цвет ника меняется.

D:\Revex DM\Mod — копия\gamemodes\revex.pwn(332) : warning 213: tag mismatch
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.


public OnPlayerText(playerid, text[])
{
    if (login_check[playerid] == false)
    {
        SendClientMessage(playerid, 0xFFA500FF, "Вы не авторизованы.");
        return 0;
    }
    if (isAFK[playerid])
    {
        SendClientMessage(playerid, 0xFF0000FF, "Вы в AFK и не можете отправлять сообщения.");
        return 0;
    }

    new color = 0xFFFFFFFF; // белый по умолчанию
    if (dmPlayerVW[playerid] != 0)
    {
        color = 0x8B0000FF; // тёмно-красный, если в DM зоне
    }

    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));

    new msg[144];
    format(msg, sizeof(msg), "[%d] %s", playerid, text);

    for (new i = 0; i < MAX_PLAYERS; i++)
    {
        if (IsPlayerConnected(i))
        {
            SendClientMessage(i, color, msg); // тут используем цвет color
        }
    }

    if (IsPlayerConnected(playerid))
    {
        if (IsValidDynamic3DTextLabel(g_chatLabel[playerid]))
        {
			DestroyDynamic3DTextLabel(g_chatLabel[playerid]);
        }

        g_chatLabel[playerid] = CreateDynamic3DTextLabel(msg, color, 0.0, 0.0, 0.7, 15.0, playerid, true, -1, -1, playerid, 30.0);
        SetTimerEx("ClearChatLabel", 5000, false, "i", playerid);
    }
    return 0; // чтобы стандартное сообщение не дублировалось
}


строка с ошибкой

g_chatLabel[playerid] = CreateDynamic3DTextLabel(msg, color, 0.0, 0.0, 0.7, 15.0, playerid, true, -1, -1, playerid, 30.0);


forward ClearChatLabel(playeridid);
public ClearChatLabel(playeridid)
{
    if(g_chatLabel[playeridid] != Text3D:INVALID_3DTEXT_ID)
    {
        Delete3DTextLabel(g_chatLabel[playeridid]);
        g_chatLabel[playeridid] = Text3D:INVALID_3DTEXT_ID;
    }
    return 1;
}

0

#2
Пользователь офлайн   FARADAY 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
CreateDynamic3DTextLabel( const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_3D_TEXT_LABEL_SD, areaid = -1, priority = 0 )



Из этого следует что сейчас attachedvehicle = true, а interiorid = 30.0

Если хочешь задать параметры, можно делать так:

g_chatLabel[playerid] = CreateDynamic3DTextLabel(msg, color, 0.0, 0.0, 0.7, 15.0, playerid, INVALID_VEHICLE_ID,  .worldid = -1, .interiorid = -1, .playerid = playerid, .streamdistance = 30.0);

1

#3
Пользователь офлайн   liquidosich 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияFARADAY (20 июня 2025 - 22:09) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Спасибо большое!)
0

#4
Пользователь офлайн   liquidosich 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Тут такая же проблема вылезла..

public OnPlayerText(playerid, text[])
{
    if (login_check[playerid] == false)
    {
        SendClientMessage(playerid, 0xFFA500FF, "Вы не авторизованы.");
        return 0;
    }

    new color = 0xFFFFFFFF; // белый
    if (dmPlayerVW[playerid] != 0)
    {
        color = 0x8B0000FF; // тёмно-красный
    }

    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));

    new msg[144];
    format(msg, sizeof(msg), "%s(%d): {FFFFFF}%s", name, playerid, text);

    // Получаем позицию игрока
    new Float:px, Float:py, Float:pz;
    GetPlayerPos(playerid, px, py, pz);

    // Отправляем сообщение игрокам рядом (в радиусе 20 м)
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
        if (IsPlayerConnected(i))
        {
            new Float:ix, Float:iy, Float:iz;
            GetPlayerPos(i, ix, iy, iz);

            if (GetDistanceBetweenCoords(px, py, pz, ix, iy, iz) <= 20.0)
            {
                SendClientMessage(i, color, msg);
            }
        }
    }

    // Показываем текст над головой игрока (виден всем)
    if (IsPlayerConnected(playerid))
    {
        if (IsValidDynamic3DTextLabel(g_chatLabel[playerid]))
        {
            DestroyDynamic3DTextLabel(g_chatLabel[playerid]);
        }

        pz += 1.0; // немного выше головы

        g_chatLabel[playerid] = CreateDynamic3DTextLabel(
            msg,
            color,
            px, py, pz,
            30.0, // расстояние отображения
            INVALID_PLAYER_ID,
            INVALID_VEHICLE_ID,
            -1, -1,
            INVALID_PLAYER_ID, // <<< текст виден всем
            30.0
        );

        SetTimerEx("ClearChatLabel", 5000, false, "i", playerid);
    }

    return 0;
}


Ошибка тут

        g_chatLabel[playerid] = CreateDynamic3DTextLabel(
            msg,
            color,
            px, py, pz,
            30.0, // расстояние отображения
            INVALID_PLAYER_ID,
            INVALID_VEHICLE_ID,
            -1, -1,
            INVALID_PLAYER_ID, // <<< текст виден всем
            30.0
        );

0

#5
Пользователь офлайн   FARADAY 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
пропустил .testlos = 0,
0

#6
Пользователь офлайн   liquidosich 

  • Новичок
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияFARADAY (20 июня 2025 - 22:59) писал:

пропустил .testlos = 0,

пасибки
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика