samp.directory
← Scripts y librerías

imshooter/pawn-plus-td-array-data

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

Librería★ 1actualizado ene 2026Sin licenciaPawn
Abrir en GitHub

Este repositorio no tiene archivo de licencia. Se puede leer, pero eso por sí solo no da permiso para reutilizarlo.

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;
}

Esta página se genera con lo que GitHub publica sobre el repositorio. samp.directory no aloja el código. Informar de un problema con esta ficha