samp.directory
← Скрипты и библиотеки

imshooter/pawn-plus-td-array-data

TextDraw Array Data provides functions for adding, retrieving, and checking extra data in a TextDraw for use elsewhere.

Библиотека★ 1обновлён янв. 2026 г.Без лицензииPawn
Открыть на GitHub

В этом репозитории нет файла лицензии. Код открыт для чтения, но само по себе это не даёт права использовать его.

README.md

Using

Include in your code and begin using the library:

#include <td-array-data>

Functions

  • bool:IsValidTextDrawArrayData(Text:textid)
  • bool:TextDrawHasArrayData(Text:textid)
  • bool:TextDrawSetArrayData(Text:textid, const data[], size = sizeof (data))
  • bool:TextDrawGetArrayData(Text:textid, data[], size = sizeof (data))
  • bool:IsValidPlayerTextDrawArrayData(playerid, PlayerText:textid)
  • bool:PlayerTextDrawHasArrayData(playerid, PlayerText:textid)
  • bool:PlayerTextDrawSetArrayData(playerid, PlayerText:textid, const data[], size = sizeof (data))
  • bool:PlayerTextDrawGetArrayData(playerid, PlayerText:textid, data[], size = sizeof (data))

Example

#define MAX_INVENTORY_SLOTS (50)

enum {
    E_TEXT_DRAW_ARRAY_CELL_INVENTORY
};

static enum _:E_TEXT_DRAW_ARRAY_DATA {
    E_TEXT_DRAW_ARRAY_CELL,
    E_TEXT_DRAW_ARRAY_EXTRA_ID
};

static
    Text:gBoxTextID[MAX_INVENTORY_SLOTS] = { INVALID_TEXT_DRAW, ... }
;

CreateTextDraws() {
    new
        data[E_TEXT_DRAW_ARRAY_DATA]
    ;

    for (new i; i != MAX_INVENTORY_SLOTS; ++i) {
        gBoxTextID[i] = TextDrawCreate(...);
        TextDrawTextSize(...);
        TextDrawColour(...);
        TextDrawFont(gBoxTextID[i], TEXT_DRAW_FONT_SPRITE_DRAW);
        TextDrawSetSelectable(gBoxTextID[i], true);

        data[E_TEXT_DRAW_ARRAY_CELL] = E_TEXT_DRAW_ARRAY_CELL_INVENTORY;
        data[E_TEXT_DRAW_ARRAY_EXTRA_ID] = i;

        TextDrawSetArrayData(gBoxTextID[i], data);
    }
}

public OnPlayerClickTextDraw(playerid, Text:clickedid) {
    if (TextDrawHasArrayData(clickedid)) {
        new
            data[E_TEXT_DRAW_ARRAY_DATA]
        ;

        TextDrawGetArrayData(clickedid, data);

        if (data[E_TEXT_DRAW_ARRAY_CELL] == E_TEXT_DRAW_ARRAY_CELL_INVENTORY) {
            SendClientMessage(playerid, -1, "Extra ID: %i", data[E_TEXT_DRAW_ARRAY_EXTRA_ID]);
        }
    }
    
    return 1;
}

Страница собрана из того, что GitHub публикует о репозитории. samp.directory не хранит этот код. Сообщить о проблеме с этой записью