Portal SAMP
[Ajuda] RewardPlayer - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] RewardPlayer (/showthread.php?tid=1313)



RewardPlayer - rafaelrafa - 25/06/2021

Galera tentei implementar o sistema de RewardPlayer da GM PPC, mais não tá dando certo não adiciona e nem retira score e nem dinheiro, sabem algum outro método que tem a mesma função?
Código:
RewardPlayer(playerid, Money, Points)
{
    jogador[playerid][PlayerMoney] = jogador[playerid][PlayerMoney] + Money;
    jogador[playerid][PlayerScore] = jogador[playerid][PlayerScore] + Points;
}

Obs: Estou usando salvamento em DOF2


RE: RewardPlayer - xbruno1000x - 25/06/2021

Dê uma estudada em operadores da linguagem C++ (a linguagem pawn é C-Like, então servirá tanto para pawn quanto para C++).


Quando você deseja adicionar algo a uma variável, deve utilizar += ao invés de =.
Ex:

Código:
    jogador[playerid][PlayerMoney] += Money;

    jogador[playerid][PlayerScore] += Points;

Provavelmente, após setar os novos valores, terá que atualizar o score e o dinheiro. Provavelmente isso resolverá.


Código:
SetPlayerScore(playerid, jogador[playerid][PlayerScore]);
ResetPlayerMoney(playerid);



RE: RewardPlayer - ipsLuan - 25/06/2021

Se você estiver usando certo, então está setando normal.
Porém, sua finalidade aparenta ser outra, além do que o código oferece.

Você pode também fazer DEBUG de uma função para saber se ela está executando normalmente.
O básico de um programador é saber criar, executar e debugar um código.

Código PHP:
RewardPlayer(playeridMoneyPoints)
{
    
jogador[playerid][PlayerMoney] += Money;
    
jogador[playerid][PlayerScore] += Points;

    
GivePlayerMoney(playeridMoney);
    
SetPlayerScore(playeridGetPlayerScore(playerid) + Points);

    
printf("DEBUG: RewardPlayer(%d, %d, %d);"playeridMoneyPoints);
    return 
1;


Há várias formas de se fazer isso...


RE: RewardPlayer - rafaelrafa - 25/06/2021

(25/06/2021 10:15)xbruno1000x Escreveu: Dê uma estudada em operadores da linguagem C++ (a linguagem pawn é C-Like, então servirá tanto para pawn quanto para C++).


Quando você deseja adicionar algo a uma variável, deve utilizar += ao invés de =.
Ex:

Código:
    jogador[playerid][PlayerMoney] += Money;

    jogador[playerid][PlayerScore] += Points;

Provavelmente, após setar os novos valores, terá que atualizar o score e o dinheiro. Provavelmente isso resolverá.


Código:
SetPlayerScore(playerid, jogador[playerid][PlayerScore]);
ResetPlayerMoney(playerid);


Deu certo aqui, obrigado pelo ajuda e pela dica dos operadores, vou dar uma estudada.

(25/06/2021 12:12)ipsLuan Escreveu: Se você estiver usando certo, então está setando normal.
Porém, sua finalidade aparenta ser outra, além do que o código oferece.

Você pode também fazer DEBUG de uma função para saber se ela está executando normalmente.
O básico de um programador é saber criar, executar e debugar um código.

Código PHP:
RewardPlayer(playeridMoneyPoints)
{
    jogador[playerid][PlayerMoney] += Money;
    jogador[playerid][PlayerScore] += Points;

    GivePlayerMoney(playeridMoney);
    SetPlayerScore(playeridGetPlayerScore(playerid) + Points);

    printf("DEBUG: RewardPlayer(%d, %d, %d);"playeridMoneyPoints);
    return 1;


Há várias formas de se fazer isso...

Obrigado pela dica. toda ajuda é bem vinda obrigado mesmo.