[Include] [0.3X] mSelection 1.1 R3
#1

This is only a translation of the english topic!!
ORIGINAL English Topic: https://sampforum.blast.hk/showthread.php?tid=407045


mSelection(Para: SA-MP 0.3x en adelante)

Este include aсade la posibilidad de crear un menъ Model Preview(funciуn agregada en samp 0.3x) con muy, pero muy pocas lineas de codigo.

Actualizaciones
- 1.1 R3
Arreglado un bug de bloqueo en OnPlayerClick(Player)TextDraw
El menъ de selecciуn se cerraba inmediatamente, en versiones anteriores si se usaba/mostraba en OnDialogResponse.

- 1.1 R2
Arreglado el bug al presionar ESC

- 1.1
Arreglado el bug al presionar ESC
Aсadido menъ dinбmico para los jugadores
Aсadido al menъ, el botуn "cancel"

- 1.0 R3:
Arreglado un bug al usar ShowModelSelectionMenu en OnPlayerModelSelection

- 1.0 R2:
Aсadido la posibilidad de usar ShowModelSelectionMenu en OnPlayerModelSelection

Resumen general

pawn Код:
// para salir del menu (estбtico y para las lista de jugadores)
HideModelSelectionMenu(playerid)
//lista estбticas
LoadModelSelectionMenu(f_name[])
ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

forward OnPlayerModelSelection(playerid, response, listid, modelid);
//lista dinбmica para los jugadores
ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

forward OnPlayerModelSelectionEx(playerid, response, extraid, modelid);
  • LoadModelSlectionMenu(f_name[])
    Carga el contenido del menъ de un archivo y devuelve el listid.
    1. f_name[]: Nombre del archivo de la lista en su carpeta scriptfiles
    2. retorna: El ID de la lista
    Archivo:
    Cada lнnea tiene que ser algo asн: IdModelo xRot yRot zRot Zoom (Los que estan en rojo son opcionales, no es necesario aсadirlos)

    Ejemplo de Infernus ID 411:
    Код:
    411
    411 180.0
    411 0.0 180.0
    411 0.0 0.0 180.0
    411 0.0 0.0 0.0 1.0
    Todos, los 4 ejemplos son posibles y mostrarбn un Infernus con un conjunto de diferentes rotaciones.

    Ejemplo de todos los aviones: aviones.txt
    Код:
    460 16.0 0.0 -55.0
    476 16.0 0.0 -55.0
    511 16.0 0.0 -55.0
    512 16.0 0.0 -55.0
    513 16.0 0.0 -55.0
    519 16.0 0.0 -55.0
    520 16.0 0.0 -55.0
    553 16.0 0.0 -55.0
    577 16.0 0.0 -55.0
    592 16.0 0.0 -55.0
    593 16.0 0.0 -55.0
    Nota:
    Si varios modelos utilizan la misma informaciуn de rotaciуn/zoom entonces la informaciуn sуlo se guardara una vez para ahorrar memoria.(Por ejemplo, si 100 vehнculos tienen la misma rotaciуn sуlo necesitarбn una rotaciуn para ser guardada)

  • HideModelSelectionMenu(playerid)
    Oculta el menъ al jugador.
    1. playerid: ID del jugador
    2. retorna: nada

  • ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)
    Muestra el menъ al jugador.
    1. playerid: ID del jugador
    2. ListID: El ID de la lista/menъ que se mostrara
    3. header_test[]: Titulo de la lista/menъ
    4. dialogBGcolor(opcional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*1)
    5. previewBGcolor(opcional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*2)
    6. tdSelectionColor(opcional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*3)
    7. retorna: 1 si tuvo йxito, 0 si fallу


  • OnPlayerModelSelection(playerid, response, listid, modelid)
    Se llama cuando un jugador selecciona un modelo o presionando ESC
    1. playerid: ID del jugador
    2. response: 1 = Un modelo fue seleccionado, 0 = Cancelado - (ESC)
    3. listid: El ID de la lista
    4. modelid: Modelo seleccionado

  • ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)
    Muestra el menъ al jugador.
    1. playerid: ID del jugador
    2. items_array[]: Array del item que se muestra
    3. item_amount: Cantidad de items en items_array[] (Por ejemplo: item_amount = 3 seria items_array[0-2])
    4. header_test[]: Titulo de la lista/menъ
    5. extraid: ID extra que se le pasa a OnPlayerModelSelectionEx despuйs de la selecciуn
    6. Xrot: Rotaciуn X para las vistas previas
    7. Yrot: Rotaciуn Y para las vistas previas
    8. Zrot: Rotaciуn Z para las vistas previas
    9. mZoom: Zoom para la vista previa
    10. dialogBGcolor(optional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*1)
    11. previewBGcolor(optional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*2)
    12. tdSelectionColor(optional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*3)
    13. returns: 1 si tuvo йxito, 0 si fallу


  • OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
    Se llama cuando un jugador selecciona un modelo o presionando ESC
    1. playerid: ID del jugador
    2. response: 1 = Un modelo fue seleccionado, 0 = Cancelado - (ESC)
    3. extraid: El ID extra usado en ShowModelSelectionMenuEx
    4. modelid: Modelo seleccionado
Ejemplo de Scripts

Ejemplo #1 Lista Estatica
Scriptfiles: aviones.txt - skins.txt
pawn Код:
#include <a_samp>
#include <mSelection>

new listadeaviones = mS_INVALID_LISTID;
new listadeskins = mS_INVALID_LISTID;
public OnFilterScriptInit()
{
    listadeaviones = LoadModelSelectionMenu("aviones.txt");
    listadeskins = LoadModelSelectionMenu("skins.txt");
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/avion", true) == 0)
    {
        ShowModelSelectionMenu(playerid, listadeaviones, "->Aviones<-");
        return 1;
    }
    if(strcmp(cmdtext, "/cambiarskin", true) == 0)
    {
        ShowModelSelectionMenu(playerid, listadeskins, "Seleccionar Skin");
        return 1;
    }
    return 0;
}

public OnPlayerModelSelection(playerid, response, listid, modelid)
{
    if(listid == listadeaviones)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, "Aviуn Spawnedo");
            new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1);
        }
        else SendClientMessage(playerid, 0xFF0000FF, "Canceledo la selecciуn de aviуn");
        return 1;
    }
    if(listid == listadeskins)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, "Skin Cambiado");
            SetPlayerSkin(playerid, modelid);
        }
        else SendClientMessage(playerid, 0xFF0000FF, "Canceledo la selecciуn de skin");
        return 1;
    }
    return 1;
}
Ejemplo #2 Lista dinбmica para jugadores
pawn Код:
#include <a_samp>
#include <mSelection>

#define MENU_TRAILER 1

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/seleccionetrailerparavehiculo", true) == 0)
    {
        new coches[15];
        coches[0] = 435;
        coches[1] = 450;
        coches[2] = 569;
        coches[3] = 570;
        coches[4] = 584;
        coches[5] = 590;
        coches[6] = 591;
        coches[7] = 606;
        coches[8] = 607;
        coches[9] = 608;
        coches[10] = 610;
        coches[11] = 611;
        ShowModelSelectionMenuEx(playerid, coches, 12, "Seleccionar Trailer", MENU_TRAILER, 16.0, 0.0, -55.0);
        return 1;
    }
    return 0;
}

public OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
{
    if(extraid == MENU_TRAILER)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, "Trailer Spawnedo");
            new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1);
        }
        else SendClientMessage(playerid, 0xFF0000FF, "Canceledo la selecciуn de Trailer");
    }
    return 1;
}
Agradecimientos a:
Kye: por crear vspawner.pwn


Descargas:
Include+Example Script+Scriptfiles

Creditos:
D0erfler: Creador del mSelection y del post original.
Dreyfuz: Traduccion del post en ingles al espaсol.

Post's:
En Ingles
En Aleman
En Espaсol
Reply


Messages In This Thread
[0.3X] mSelection 1.1 R3 - by Dreyfuz - 17.04.2013, 15:59
Respuesta: [0.3X] mSelection 1.1 R3 - by OTACON - 17.04.2013, 16:04
Respuesta: [0.3X] mSelection 1.1 R3 - by xSDx - 17.04.2013, 16:05
Respuesta: [0.3X] mSelection 1.1 R3 - by Dreyfuz - 17.04.2013, 16:17
Respuesta: [0.3X] mSelection 1.1 R3 - by JordanR - 17.04.2013, 21:50
Respuesta: [0.3X] mSelection 1.1 R3 - by Dreyfuz - 17.04.2013, 21:56
Re: [0.3X] mSelection 1.1 R3 - by Leososa - 14.09.2013, 19:58

Forum Jump:


Users browsing this thread: 1 Guest(s)