їCуmo creo un comando para dar monedas especiales?
#5

Veamos, supongamos que tъ tienes un sistema de casas y bueno, le aсades nueva variable a su enumerador (valga la redundancia como lo tengas), por ejemplo. (Hice un pequeсo esterotipo de sistema de casas para explicar):

pawn Код:
enum HousesEnum
{
    hPrecio,
    Float:hX,
    Float:hY,
    Float:hZ
};
static const HousesInfo[][HousesEnum] =
{
    // Coins que cuesta - X, Y, Z ..
    {7, 0.0, 0.0, 0.0},
    {14, 0.0, 0.0, 0.0},
    {75, 0.0, 0.0, 0.0},
    {34, 0.0, 0.0, 0.0},
    {73, 0.0, 0.0, 0.0}
};
Como podrбs ver, he puesto 4 variables, Precio, X, Y, Z .. Ahora, el precio en este caso serнan las coins que cuestan (lo puse al azar), ahora veamos, el sistema de coins no serнan mбs que variables, si tъ gustas puedes usar estas y hacer guardarlas en tu guiуn.

Defines una nueva variable:

pawn Код:
new
    pCoins[MAX_PLAYERS];
y bueno, para que sea mбs "ordenado" puedes crear funciones para hacer las funciones de obtener los coins que tiene un jugador u darlos, por ejemplo:

pawn Код:
GetPlayerCoins(playerid)
    return (pCoins[playerid]);

SetPlayerCoins(playerid, monto){
    if(!IsPlayerConnected(playerid))
        return 0;

    pCoins[playerid] = monto;
    return 1;
}
Ahora, supongamos que tu comando de comprar casas es asн, nada mбs serнa aсadir una de las funciones que declaramos arriba (sin embargo declara esta funciуn que te pondrй para que sea mejor obtener cuando un jugador estб cerca de una casa)

pawn Код:
Get_NearHouse(playerid)
{
    for(new i; i < sizeof(HousesInfo); i++)
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, HousesInfo[i][hX], HousesInfo[i][hY], HousesInfo[i][hZ]))
        {
            return i;
        }
    }
    return -1;
}
El comando serнa asн:

pawn Код:
CMD:comprarcasa(playerid, params[])
{
    new
        id = -1;

    id = Get_NearHouse(playerid);

    if(id == -1)
        return 1; // No esta cerca de una casa..

    if(GetPlayerCoins(playerid) < HousesInfo[id][hPrecio])
        return 1; // No tiene las coins para comprarlo

    // Puede comprar la casa
    return 1;
}
entonces, como puedes notar estamos trabajando nada mбs que con variables.. A lo que la gente llama tener una casa nada mбs es tener un nъmero que pronto al desconectarse serб de otro .. Ahora el comando para dar, quitar, situar coins, utilizarбs si gustas nada mбs una funciуn que es la que puse allб arriba.

pawn Код:
CMD:darcoins(playerid, params[])
{
    new
        id, cantidad;

    if(sscanf(params, "ud", id, cantidad))
        return SendClientMessage(playerid, -1, "USA: \"/darcoins [playerid/nombre] [cantidad]\"");

    SetPlayerCoins(id, GetPlayerCoins(id)+cantidad);
    return 1;
}

CMD:quitarcoins(playerid, params[])
{
    new
        id, cantidad;

    if(sscanf(params, "ud", id, cantidad))
        return SendClientMessage(playerid, -1, "USA: \"/quitarcoins [playerid/nombre] [cantidad]\"");

    SetPlayerCoins(id, GetPlayerCoins(id)-cantidad);
    return 1;
}

CMD:situarcoins(playerid, params[])
{
    new
        id, cantidad;

    if(sscanf(params, "ud", id, cantidad))
        return SendClientMessage(playerid, -1, "USA: \"/situarcoins [playerid/nombre] [cantidad]\"");

    SetPlayerCoins(id, cantidad);
    return 1;
}
y asн, nada mбs jugar con condiciones, variables y puedes hacйrselo a los vehнculos, negocios o lo que tъ gustes.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 3 Guest(s)