17.04.2013, 15:59
(
Последний раз редактировалось d0; 23.04.2013 в 21:52.
)
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
Ejemplo #1 Lista Estatica
Scriptfiles: aviones.txt - skins.txt
Ejemplo #2 Lista dinбmica para jugadores
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
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.
- f_name[]: Nombre del archivo de la lista en su carpeta scriptfiles
- retorna: El ID de la lista
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
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
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.
- playerid: ID del jugador
- retorna: nada
- ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)
Muestra el menъ al jugador.
- playerid: ID del jugador
- ListID: El ID de la lista/menъ que se mostrara
- header_test[]: Titulo de la lista/menъ
- dialogBGcolor(opcional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*1)
- previewBGcolor(opcional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*2)
- tdSelectionColor(opcional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*3)
- retorna: 1 si tuvo йxito, 0 si fallу
- OnPlayerModelSelection(playerid, response, listid, modelid)
Se llama cuando un jugador selecciona un modelo o presionando ESC
- playerid: ID del jugador
- response: 1 = Un modelo fue seleccionado, 0 = Cancelado - (ESC)
- listid: El ID de la lista
- 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.
- playerid: ID del jugador
- items_array[]: Array del item que se muestra
- item_amount: Cantidad de items en items_array[] (Por ejemplo: item_amount = 3 seria items_array[0-2])
- header_test[]: Titulo de la lista/menъ
- extraid: ID extra que se le pasa a OnPlayerModelSelectionEx despuйs de la selecciуn
- Xrot: Rotaciуn X para las vistas previas
- Yrot: Rotaciуn Y para las vistas previas
- Zrot: Rotaciуn Z para las vistas previas
- mZoom: Zoom para la vista previa
- dialogBGcolor(optional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*1)
- previewBGcolor(optional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*2)
- tdSelectionColor(optional): Para cambiar el color. Mira la foto de abajo para saber que cambiaras de color (*3)
- returns: 1 si tuvo йxito, 0 si fallу
- OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
Se llama cuando un jugador selecciona un modelo o presionando ESC
- playerid: ID del jugador
- response: 1 = Un modelo fue seleccionado, 0 = Cancelado - (ESC)
- extraid: El ID extra usado en ShowModelSelectionMenuEx
- modelid: Modelo seleccionado
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;
}
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;
}
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