CHAT MAIOR

29 de jul. de 2011

[Logica][Pawn] SetarDinheiro (usando define)

110(100 + 10) - 100(o dinheiro que tinha antes) = 10
Aqui vou explicar uma coisa sobre a qual muitos membros do fórum samp disseram que não funcionava, e usando a lógica eu expliquei aos próprios como funcionava.
o código foi feito pelo bruno da silva (Drakins)
, eu apenas fiz as explicações.
#define SetarGrana(%0, %1) GivePlayerMoney(%0, %1 - GetPlayerMoney(%0))

Se ele setar um saldo pequeno(ex: 10) e tiver um saldo maior que isso(ex: 100) não irá ficar com grana negativa?
Não, por este código que irei usar a baixo:
public OnPlayerConnect(playerid)
return GivePlayerMoney(playerid, 10);
A grana do jogador irá ficar = R$100.
Agora, vamos fazer um comando para setar a grana do jogador para R$10
e irei explicar porque não irá ficar com saldo negativo.

CMD:setardinheiro(playerid, params[])
return SetarDinheiro(playerid, 10);
O dinheiro do jogador foi setado para = R$10.

GivePlayerMoney(%0, %1 - GetPlayerMoney(%0))

%0 - jogador
%1 - quantia

Irá dar a quantia de R$10 - GetPlayerMoney(playerid).
Por isso ao dar R$10 se o jogador já tinha os R$100 (que foi dado no OnPlayerConnect), irá funcionar nisto:
100(atual) + 10(comando) = 110
Agora a função: - GetPlayerMoney(playerid), vai retirar ao jogador o dinheiro que ele tinha antes (R$100), fazendo isto:
110(100 + 10) - 100(o dinheiro que tinha antes) = 10
E o jogador irá ficar apenas com R$10 (:

Dúvidas? Comentem.

Nenhum comentário:

Postar um comentário