Exite alguna funcion!! [Consulta]
#1

Existe alguna funciуn de dinero, que cuando lo tengo menor a 1 en la barra de dinero le salga una mensaje como este..

pawn Код:
SendClientMessage(playerid, -1, "Te has quedado sin dinero pide prestado a un amigo");//Entonces mostrarle el mensaje que se quedo sin dinero
Y cuando tenga dinero mayor a 1 en la barra de dinero le salga esto

pawn Код:
SendClientMessage(playerid, -1, "Te has rescuperado de la pobreza");//Entonces mostrarle el mensaje que tiene dinero
gracias.
Reply
#2

Un timer con foreach en el cual usas GetPlayerMoney con un new ejemplo:

pawn Код:
forward Comprobar_Dinero();
public Comprobar_Dinero()
{
    foreach(todos, Player)
    {
        new dinero = GetPlayerMoney(todos);
        printf("Comprobando dinero a %d jugadores",todos);
        if(dinero < 1)
        {
            SendClientMessage(todos,-1,"con menos de uno");
            return true;
        }
        if(dinero > 1)
        {
            SendClientMessage(todos,-1,"Con mas de uno");
            return true;
        }
    }
    return true;
}
Reply
#3

Si , es algo bastante simple , por ejemplo cuando escriben el comando para comprar un arma (Por ej) podrias usar la funcion GetPlayerMoney, aca te doy un ejemplo :

Код:
if(GetPlayerMoney(playerid) > 0) //Si el dinero del jugador es mayor a 0
{
//Mensaje que tiene dinero o lo que quieras hacer
}
else // Si esta condicion no se cumple , es decir , si el dinero del jugador es 0 o menor
{
//Lo que quieras hacer
}
Tambien puedes usarlo en un public haciendo un bucle para todos los players y mandandoles el mensaje o lo que quieras..

Saludos!
Reply
#4

Hacela vos, si el dinero es negativo... usб estas llaves = < > (Ya tъ sabrбs quй significan por matemбticas)
Reply
#5

Quote:
Originally Posted by KryBer
Посмотреть сообщение
Si , es algo bastante simple , por ejemplo cuando escriben el comando para comprar un arma (Por ej) podrias usar la funcion GetPlayerMoney, aca te doy un ejemplo :

Код:
if(GetPlayerMoney(playerid) > 0) //Si el dinero del jugador es mayor a 0
{
//Mensaje que tiene dinero o lo que quieras hacer
}
else // Si esta condicion no se cumple , es decir , si el dinero del jugador es 0 o menor
{
//Lo que quieras hacer
}
Tambien puedes usarlo en un public haciendo un bucle para todos los players y mandandoles el mensaje o lo que quieras..

Saludos!
Pero si te das cuenta, te hara spam cada vez que ganes/pierdes dinero, y el no lo quiere asi.

Quote:
Originally Posted by jotajeda
Посмотреть сообщение
Un timer con foreach en el cual usas GetPlayerMoney con un new ejemplo:

pawn Код:
forward Comprobar_Dinero();
public Comprobar_Dinero()
{
    foreach(todos, Player)
    {
        new dinero = GetPlayerMoney(todos);
        printf("Comprobando dinero a %d jugadores",todos);
        if(dinero < 1)
        {
            SendClientMessage(todos,-1,"con menos de uno");
            return true;
        }
        if(dinero > 1)
        {
            SendClientMessage(todos,-1,"Con mas de uno");
            return true;
        }
    }
    return true;
}
Es muy deficiente usar un timer en este caso, es mejor crear una funcion.

pawn Код:
new pLastCash[MAX_PLAYERS],
bool:pCashPositive[MAX_PLAYERS] = false,
bool:pCashNegative[MAX_PLAYERS] = false;

LoadPlayerMoney(playerid, amount)
{
    pLastCash[playerid] = amount;
    return GivePlayerMoney(playerid, amount);
}

GivePlayerMoneyEx(playerid, amount)
{
    GivePlayerMoney(playerid, amount);

    if(GetPlayerMoney(playerid) >= 1 && pLastCash[playerid] <= 0 && pCashPositive[playerid] == true) pCashPositive[playerid] = false;
    else if(GetPlayerMoney(playerid) <= 0 && pLastCash[playerid] >= 1 && pCashNegative[playerid] == true) pCashNegative[playerid] = false;

    if(GetPlayerMoney(playerid) >= 1 && pCashPositive[playerid] == false)
    {
        pCashPositive[playerid] = true;
        SendClientMessage(playerid, -1, "Te has rescuperado de la pobreza!");
    }
    else if(GetPlayerMoney(playerid) <= 0 && pCashNegative[playerid] == false)
    {
        pCashNegative[playerid] = true;
        SendClientMessage(playerid, -1, "Te has quedado sin dinero pide prestado a un amigo");
    }
    return pLastCash[playerid] = amount;
}
Utiliza "LoadPlayerMoney(playerid, amount)" para cargar el dinero del usuario cuando se identifique en tu servidor. Y utiliza "GivePlayerMoneyEx(playerid, amount)" para darle dinero a un jugador, remplaza la funcion por default.
Reply
#6

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Pero si te das cuenta, te hara spam cada vez que ganes/pierdes dinero, y el no lo quiere asi.



Es muy deficiente usar un timer en este caso, es mejor crear una funcion.

pawn Код:
new pLastCash[MAX_PLAYERS],
bool:pCashPositive[MAX_PLAYERS] = false,
bool:pCashNegative[MAX_PLAYERS] = false;

LoadPlayerMoney(playerid, amount)
{
    pLastCash[playerid] = amount;
    return GivePlayerMoney(playerid, amount);
}

GivePlayerMoneyEx(playerid, amount)
{
    GivePlayerMoney(playerid, amount);

    if(GetPlayerMoney(playerid) >= 1 && pLastCash[playerid] <= 0 && pCashPositive[playerid] == true) pCashPositive[playerid] = false;
    else if(GetPlayerMoney(playerid) <= 0 && pLastCash[playerid] >= 1 && pCashNegative[playerid] == true) pCashNegative[playerid] = false;

    if(GetPlayerMoney(playerid) >= 1 && pCashPositive[playerid] == false)
    {
        pCashPositive[playerid] = true;
        SendClientMessage(playerid, -1, "Te has rescuperado de la pobreza!");
    }
    else if(GetPlayerMoney(playerid) <= 0 && pCashNegative[playerid] == false)
    {
        pCashNegative[playerid] = true;
        SendClientMessage(playerid, -1, "Te has quedado sin dinero pide prestado a un amigo");
    }
    return pLastCash[playerid] = amount;
}
Utiliza "LoadPlayerMoney(playerid, amount)" para cargar el dinero del usuario cuando se identifique en tu servidor. Y utiliza "GivePlayerMoneyEx(playerid, amount)" para darle dinero a un jugador, remplaza la funcion por default.
Madre mia para que tantas variables?, haciendo asн йl tendrб que poner en toda la santa game moda adsads, Encambio con mi codigito facilito es super sensillo y solo tendrб que poner el timer en true en Ongamemodeinit() y el resto se encarga el timer, con lo tuyo es un trabajaso poner todo en el gm. Saludos igual suerte y gracias por tu aporte.
Reply
#7

Quote:
Originally Posted by jotajeda
Посмотреть сообщение
Madre mia para que tantas variables?, haciendo asн йl tendrб que poner en toda la santa game moda adsads, Encambio con mi codigito facilito es super sensillo y solo tendrб que poner el timer en true en Ongamemodeinit() y el resto se encarga el timer, con lo tuyo es un trabajaso poner todo en el gm. Saludos igual suerte y gracias por tu aporte.
Perdon pero tu funcion gastara mucho mas memoria que el mio, ya que sera llamada repetidamente y te hara spam, y eso es terrible. 3 variables no son nada, lo podre hacer con uno pero sera lo mismo y aun sera menos optimizado.

El mio sera llamado cuando y unicamente se necesite y no esta dificil, ni batallaras para ponerlo en tu gamemode, podras usar la funcion de remplazar en tu editor de texto y ya.

Mi funcion te dara los mensajes cuando tu dinero es negativo y pasa a positivo, o viceversa. El tuyo te los dara cada vez que se ejecute el timer.
Reply
#8

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Pero si te das cuenta, te hara spam cada vez que ganes/pierdes dinero, y el no lo quiere asi.



Es muy deficiente usar un timer en este caso, es mejor crear una funcion.

pawn Код:
new pLastCash[MAX_PLAYERS],
bool:pCashPositive[MAX_PLAYERS] = false,
bool:pCashNegative[MAX_PLAYERS] = false;

LoadPlayerMoney(playerid, amount)
{
    pLastCash[playerid] = amount;
    return GivePlayerMoney(playerid, amount);
}

GivePlayerMoneyEx(playerid, amount)
{
    GivePlayerMoney(playerid, amount);

    if(GetPlayerMoney(playerid) >= 1 && pLastCash[playerid] <= 0 && pCashPositive[playerid] == true) pCashPositive[playerid] = false;
    else if(GetPlayerMoney(playerid) <= 0 && pLastCash[playerid] >= 1 && pCashNegative[playerid] == true) pCashNegative[playerid] = false;

    if(GetPlayerMoney(playerid) >= 1 && pCashPositive[playerid] == false)
    {
        pCashPositive[playerid] = true;
        SendClientMessage(playerid, -1, "Te has rescuperado de la pobreza!");
    }
    else if(GetPlayerMoney(playerid) <= 0 && pCashNegative[playerid] == false)
    {
        pCashNegative[playerid] = true;
        SendClientMessage(playerid, -1, "Te has quedado sin dinero pide prestado a un amigo");
    }
    return pLastCash[playerid] = amount;
}
Utiliza "LoadPlayerMoney(playerid, amount)" para cargar el dinero del usuario cuando se identifique en tu servidor. Y utiliza "GivePlayerMoneyEx(playerid, amount)" para darle dinero a un jugador, remplaza la funcion por default.
gracias por contestar, porque me sale esto nunca me habia salido ese tipo de mensajes y como lo soluciono.

pawn Код:
C:\Users\User\Desktop\Server  \gamemodes\(16488) : warning 203: symbol is never used: "GivePlayerMoneyEx"
C:\Users\User\Desktop\Server  \gamemodes\(16488) : warning 203: symbol is never used: "LoadPlayerMoney"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase

saludos
Reply
#9

Quote:
Originally Posted by Zodiaco
Посмотреть сообщение
gracias por contestar, porque me sale esto nunca me habia salido ese tipo de mensajes y como lo soluciono.

pawn Код:
C:\Users\User\Desktop\Server  \gamemodes\(16488) : warning 203: symbol is never used: "GivePlayerMoneyEx"
C:\Users\User\Desktop\Server  \gamemodes\(16488) : warning 203: symbol is never used: "LoadPlayerMoney"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase

saludos
Eso significa que no le estas dando uso a las funciones. Ponle "stock" en frente de ellos o usa la funcion para que no te salga eso.

Ejemplo: "stock GivePlayerMoneyEx(playerid, amount)"
Reply
#10

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Eso significa que no le estas dando uso a las funciones. Ponle "stock" en frente de ellos o usa la funcion para que no te salga eso.

Ejemplo: "stock GivePlayerMoneyEx(playerid, amount)"
muchas gracias se soluciono.. + rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)