Nesecitamos estos includes
#include <a_samp>
#include <zcmd>
Bueno es un "aporte"ya qué no lo explique,solo lo hice y lo aporte
#include <a_samp>
#include <zcmd>
- Spoiler:
Luego Definimos estos Colores
#define COLOR_GREY 0xE0D605FF
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_ORANGE 0xFF7F00FF
- Spoiler:
Luego Vamos a definir el dialogo,yo usaré el "99"Ustedés el qué tengan
#define DIALOG_LICORERIA 99//Aca el dialogo q quieran
Tambien agregamos:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
Vamos al Public OnGameModeInit y añadimos el Create3DTextLabel
Create3DTextLabel("/Comprarbebida\n {FFFFFF}para comprar un Trago",COLOR_ORANGE,1360.29,-1764.97,19.08,6.0,0); // Colocan sus propias cordenadas, y su mensaje etc....
Luego en OnDialogResponse
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_LICORERIA)
{
if(response)
{
if(listitem == 0) // cerveza
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);// la animacion que hace el user al comprar la bebida
ApplyAnimation(playerid,"VENDING","VEND_Drink_P",4.1,0,1,1,0,1);
GivePlayerMoney(playerid, - 10); //es el dinero que le quita al user
SendClientMessage(playerid, COLOR_YELLOW2, "Comprastes Cerveza Por $10");//es el mensaje q se le da al user la comprar la bebida
}
if(listitem == 1) // vodka
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_WINE);
GivePlayerMoney(playerid, - 12);
SendClientMessage(playerid, COLOR_YELLOW2, "Comprastes Vodka Por $12");
}
if(listitem == 2) // Whisky
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_WINE);
GivePlayerMoney(playerid, - 8);
SendClientMessage(playerid, COLOR_YELLOW2, "Comprastes Whisky Por $8");
}
if(listitem == 3) // agua
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_SPRUNK);
GivePlayerMoney(playerid, - 3);
SendClientMessage(playerid, COLOR_YELLOW2, "Comprastes Agua Por $3");
}
if(listitem == 4) // soda
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_SPRUNK);
GivePlayerMoney(playerid, - 5);
SendClientMessage(playerid, COLOR_YELLOW2, "Comprastes Soda Por $5");
}
if(listitem == 5) // pepsi
{
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_SPRUNK);
GivePlayerMoney(playerid, - 4);
SendClientMessage(playerid, COLOR_YELLOW2, "Comprastes Pepsi Por $4");
}
}
}
return 1;
}
En PlayerToPoint colocan:
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
Y por ultimo el Comando
zcmd(comprarbebida, playerid, params[]) //el comando
{
if(IsPlayerConnected(playerid))
{
if (PlayerToPoint(2, playerid,1360.29,-1764.97,19.08)) //donde tiene q estar para usar el comando.... recomiendo Cambiarlas
{
SendClientMessage(playerid, COLOR_GREY, "Vendedor Dice: ¿Que Bebida Desea?"); //mensaje q simula un Vendedor, recomiendo añadir NPC
ShowPlayerDialog(playerid, DIALOG_LICORERIA, DIALOG_STYLE_LIST, "Taberna","Cerveza[$10]\n Vodka [$12]\n Whiskey[$8] \n Agua[$3]\n Soda[$5]\n Pepsi[4$]", "Elegir", "");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " No estas En La Tienda De Bebidas !"); //mensaje si no esta en el lugar
}
return 1;
}
Bueno es un "aporte"ya qué no lo explique,solo lo hice y lo aporte
Última edición por Frank23 el Sáb Jun 08, 2013 6:31 pm, editado 1 vez