[Pedido] Limitador de Dinheiro
#1

Alguйm pode me ajuda com um limitador de dinheiro, tipo o player chegar a 1000000 se ele ficar com 1000001 o dinheiro dele й resetado para 1000000.
Acho que й uma coisa simples mas nгo to conseguindo criar, jб procurei no fуrum num achei.

@edit
Eu tentei assim mas acho que num tem nada haver

PHP код:
public OnPlayerConnect(playerid)
{
SetTimer("dinheiro"1000true);
return 
1;
}
forward dinheiro(playerid);
public 
dinheiro(playerid)
{
if(
GetPlayerMoney(playerid) <=1000000)
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid,999999);
SendClientMessage(playerid0xFF0000FF"[Banco] Vocк passou do limite de dinheiro que й 1000000!");

Reply
#2

Код:
public OnPlayerUpdate(playerid)
{
	if(GetPlayerMoney(playerid) > 1000000)
	{
		ResetPlayerMoney(playerid);
		GivePlayerMoney(playerid, 1000000);
		return 1;
	}
	return 1;
}
@edit
Voce inverteu o sinal
Код:
if(GetPlayerMoney(playerid) <=1000000) // < = verifica se e menor ou igual a " "

if(GetPlayerMoney(playerid) > 1000000) > verifica se e maior a " "
Reply
#3

Quote:
Originally Posted by Kanuy
Посмотреть сообщение
Код:
public OnPlayerUpdate(playerid)
{
	if(GetPlayerMoney(playerid) > 1000000)
	{
		ResetPlayerMoney(playerid);
		GivePlayerMoney(playerid, 1000000);
		return 1;
	}
	return 1;
}
@edit
Voce inverteu o sinal
Код:
if(GetPlayerMoney(playerid) <=1000000) // < = verifica se e menor ou igual a " "

if(GetPlayerMoney(playerid) > 1000000) > verifica se e maior a " "
Valeu em cara, salvo minha vida, deu certo aqui, c num quer me ajudar nгo com meu projeto? kk to aceitado ajuda kk
Reply
#4

Use dessa forma:

pawn Код:
public OnGameModeInit()
{
    SetTimer("AtualizarGrana", 5000, false); //1000 = 1 seg
}
forward AtualizarGrana();
public AtualizarGrana()
{
    for(new i = 0; i < MAX_PLAYERS; ++i)
    {
        if(GetPlayerMoney(i) > 1000000)
        {
            ResetPlayerMoney(i);
            GivePlayerMoney(i, 1000000);
            return 1;
        }
    }
}
Terб uma atualizaзгo de 5 em 5 segundos para verificar. Bem mais otimizado do que usar na public OnPlayerUpdate.

@Edit, SetTimer("AtualizarGrana, 5000, true); :P
Reply
#5

Quote:
Originally Posted by JacKPanK
Посмотреть сообщение
Valeu em cara, salvo minha vida, deu certo aqui, c num quer me ajudar nгo com meu projeto? kk to aceitado ajuda kk
Nгo й necessбrio conhecimento de Pawn pra resolver isso. Isso й operaзгo matemбtica.

> maior que
< menor que
Reply
#6

Quote:
Originally Posted by XandyMello
Посмотреть сообщение
Use dessa forma:

pawn Код:
public OnGameModeInit()
{
    SetTimer("AtualizarGrana", 5000, false); //1000 = 1 seg
}
forward AtualizarGrana();
public AtualizarGrana()
{
    for(new i = 0; i < MAX_PLAYERS; ++i)
    {
        if(GetPlayerMoney(i) > 1000000)
        {
            ResetPlayerMoney(i);
            GivePlayerMoney(i, 1000000);
            return 1;
        }
    }
}
Terб uma atualizaзгo de 5 em 5 segundos para verificar. Bem mais otimizado do que usar na public OnPlayerUpdate.
A repetiзгo de seu timer deveria ter valor true para funcionar...
E se o jogador ultrapassar o limite no comeзo da repetiзгo do timer ele terб 5 segundos extras desnecessбrios, logo melhor seria um timer repetitivo de no maximo 1 segundo, sendo que a public OnPlayerUpdate atualiza ao jogador ter alteraзхes e se nгo me engano mais algumas vezes por segundo entгo pra que timer?
Reply
#7

Quote:
Originally Posted by Kanuy
Посмотреть сообщение
A repetiзгo de seu timer deveria ter valor true para funcionar...
E se o jogador ultrapassar o limite no comeзo da repetiзгo do timer ele terб 5 segundos extras desnecessбrios, logo melhor seria um timer repetitivo de no maximo 1 segundo, sendo que a public OnPlayerUpdate atualiza ao jogador ter alteraзхes e se nгo me engano mais algumas vezes por segundo entгo pra que timer?
Jб dei edit. Cara, nгo tem necessidade de utilizar a public OnPlayerUpdate, ela й chamada muitas vezes para cada player. Faзa um teste e me diga. SetTimer global й super mais otimizado, e se estiver a include forach ficaria perfeito.

Pra que resetar muito rбpido a grana do player ? Pense comigo: Uma hora o player irб pegar a atualizaзгo do setimer num й mesmo ?. 5 segundos й jб й necessбrio.
Reply
#8

PHP код:
public OnGameModeInit()
{
    
SetTimer("AtualizarGrana"5000true);
}
forward AtualizarGrana();
public 
AtualizarGrana()
{
    for(new 
0MAX_PLAYERS; ++i)
    {
        if(
GetPlayerMoney(i) > 1000000)
        {
            
ResetPlayerMoney(i);
            
GivePlayerMoney(i1000000);
            return 
1;
        }
    }

@edit
Reply
#9

cria uma varнavel para o dinheiro com um nome, e qnd logar(verificar) pega essa variбvel e compara com o playerMoney e se for maior que > a variavel, Reseta o dinheiro e seta o dinheiro para a quantidade que estб dentro da mesma variavel. ou seja como se fosse uma segunda moeda, mas no caso sу para seguranзa mesmo do dinheiro original do gta.

att;
BobMarley

Qualquer dъvida contate-me por Pm, irei ajudar com prazer.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)