samp.directory
← Scripts y librerías

Open-GTO/mselect

Model Select with previews

Librería★ 4actualizado ene 2019MITPawnsampctl
Abrir en GitHub

Instalar con sampctl

sampctl package install Open-GTO/mselect

Ejecútalo en la carpeta de tu proyecto. sampctl descarga el paquete y sus dependencias.

Depende de 1 paquete

Usado por 1 paquete

README.md

mselect

Model Select with previews. Text Draw's style based on Text Draw's from vspawner script by Kye.

Screens

Skin selection:

Functions

Show created MSelect
MSelect_Show(playerid, function[])
Open MSelect
MSelect_Open(playerid, function[], items_array[], items_count, bool:list_loop = MSELECT_DEF_LIST_LOOP,
      header[] = "", button[] = MSELECT_DEF_BUTTON_TEXT,
      button_next[] = MSELECT_DEF_BUTTON_NEXT, button_prev[] = MSELECT_DEF_BUTTON_PREV,
      Float:pos_x = MSELECT_DEF_POS_X, Float:pos_y = MSELECT_DEF_POS_Y,
      Float:button_width = MSELECT_DEF_BUTTON_WIDTH, Float:button_height = MSELECT_DEF_BUTTON_HEIGHT,
      Float:page_button_width = MSELECT_DEF_PBUTTON_WIDTH, Float:page_button_height = MSELECT_DEF_PBUTTON_HEIGHT,
      Float:item_width = MSELECT_DEF_ITEM_WIDTH, Float:item_height = MSELECT_DEF_ITEM_HEIGHT,
      Float:rot_x = MSELECT_DEF_ROT_X, Float:rot_y = MSELECT_DEF_ROT_Y, Float:rot_z = MSELECT_DEF_ROT_Z,
      Float:zoom = MSELECT_DEF_ZOOM, Float:background_padding = MSELECT_DEF_BG_PADDING,
      Float:item_padding = MSELECT_DEF_ITEM_PADDING, Float:button_padding = MSELECT_DEF_BUTTON_PADDING,
      Float:header_padding = MSELECT_DEF_HEADER_PADDING, Float:page_padding = MSELECT_DEF_PAGE_PADDING,
      select_color = MSELECT_DEF_SELECT_COLOR,
      items_bg_colors[MSELECT_MAX_ITEMS] = {MSELECT_DEF_ITEMS_BG_COLOR, ...},
      dialog_bg_color = MSELECT_DEF_DIALOG_BG_COLOR,
      header_fg_color = MSELECT_DEF_HEADER_FG_COLOR,
      page_fg_color = MSELECT_DEF_PAGE_FG_COLOR,
      button_fg_color = MSELECT_DEF_BUTTON_FG_COLOR,
      button_bg_color = MSELECT_DEF_BUTTON_BG_COLOR)
Close MSelect
MSelect_Close(playerid);
Is MSelect opened
MSelect_IsOpen(playerid);

Callbacks

Each MSelect has its own handler function, it looks as follows:

MSelectResponse:example_ms(playerid, MSelectType:response, itemid, itemvalue[])
{
    return 1;
}

This function is called when a user interacts with MSelect.

MSelectType can have these values:

  • MSelect_None
  • MSelect_Item
  • MSelect_Button
  • MSelect_ButtonNext
  • MSelect_ButtonPrev
  • MSelect_Cancel

Defines

DirectiveDefault valueCan be redefined
MSELECT_MAX_ITEMS100yes
MSELECT_MAX_ITEMS_PER_LINE7yes
MSELECT_MAX_ITEMS_LINES3yes
MSELECT_DEF_LIST_LOOPfalseyes
MSELECT_DEF_BUTTON_TEXT"Cancel"yes
MSELECT_DEF_BUTTON_NEXT">>"yes
MSELECT_DEF_BUTTON_PREV"<<"yes
MSELECT_DEF_POS_X85.0yes
MSELECT_DEF_POS_Y130.0yes
MSELECT_DEF_BUTTON_WIDTH60.0yes
MSELECT_DEF_BUTTON_HEIGHT13.0yes
MSELECT_DEF_PBUTTON_WIDTH30.0yes
MSELECT_DEF_PBUTTON_HEIGHT13.0yes
MSELECT_DEF_ITEM_WIDTH60.0yes
MSELECT_DEF_ITEM_HEIGHT70.0yes
MSELECT_DEF_ROT_X0.0yes
MSELECT_DEF_ROT_Y0.0yes
MSELECT_DEF_ROT_Z0.0yes
MSELECT_DEF_ZOOM1.0yes
MSELECT_DEF_BG_PADDING20.0yes
MSELECT_DEF_ITEM_PADDING2.0yes
MSELECT_DEF_BUTTON_PADDING5.0yes
MSELECT_DEF_SELECT_COLOR0xAAAAAAFFyes
MSELECT_DEF_ITEMS_BG_COLOR0x55555599yes
MSELECT_DEF_DIALOG_BG_COLOR0x00000099yes
MSELECT_DEF_HEADER_FG_COLOR0xDDDDDDDDyes
MSELECT_DEF_PAGE_FG_COLOR0xDDDDDDDDyes
MSELECT_DEF_BUTTON_FG_COLOR0x888888FFyes
MSELECT_DEF_BUTTON_BG_COLOR0x000000CCyes
MSELECT_DEF_HEADER_PADDING3.0yes
MSELECT_DEF_PAGE_PADDING3.0yes
MSELECT_MAX_ITEMS_ON_LIST(MSELECT_MAX_ITEMS_PER_LINE * MSELECT_MAX_ITEMS_LINES)no
MSELECT_MAX_FUNCTION_NAME31no
MSELECT_INVALID_MODEL_ID-1no

Usage

The system provides the ability to create a function to open Model Selection window, this is useful when multiple calls window:

MSelectCreate:example_ms(playerid)
{
	static
		items_array[311] = {MSELECT_INVALID_MODEL_ID, ...},
		items_count = 0;

	if (items_count == 0) {
		for (new i = 0; i <= sizeof(items_array); i++) {
			if (i == 74) {
				continue;
			}

			items_array[items_count] = i;
			items_count++;
		}
	}

	MSelect_Open(playerid, MSelect:example_ms, items_array, items_count, .header = "Header");
}

MSelectResponse:example_ms(playerid, MSelectType:response, itemid, modelid)
{
	new string[144];
	format(string, sizeof(string), "ID: %d | Type: %d | Item: %d | Model: %d",
	       playerid, _:response, itemid, modelid);
	SendClientMessage(playerid, -1, string);
	return 1;
}

And you should use MSelect_Show to open created MSelect:

MSelect_Show(playerid, MSelect:example_ms);

Of course you can not use the system, you can do everything without MSelectCreate.

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