SA-MP Forums Archive
[Ajuda] Armazenar valor - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Armazenar valor (/showthread.php?tid=660044)



Armazenar valor - Poseidon4625 - 23.10.2018

Bom eu estou tendo o seguinte problema, eu fiz esses comandos sу que nгo estou conseguindo armazenar o valor da arma ai nгo estб setando quando o jogador aceita, alguйm sabe como eu resolver isso?

PHP Code:
CMD:venderarma(playerid,params[])
{
    new 
id,string[128],arma,pname[MAX_PLAYER_NAME];
    if(
sscanf(params"ud",id,arma))return SendClientMessage(playerid,Vermelho,"| ERRO | /VenderArma [id] [ID Arma]");
    if(
arma 24 || arma 30)return SendClientMessage(playerid,Vermelho,"| ERRO | ID Invбlido de Arma!");
    if(!
IsPlayerConnected(id))return SendClientMessage(playerid,Vermelho,"| ERRO | Jogador(a) nгo Conectado(a)!");
    if(
id == playerid)return SendClientMessage(playeridVermelho"| ERRO | Vocк Nгo Pode Utilizar Este Comando em si Mesmo!");
    if(
GetDistanceBetweenPlayers(playeridid) > 6)return SendClientMessage(playerid,Vermelho,"| ERRO | Vocк Estб Muito Longe, Chegue Mais Perto!");
    if(
GetPlayerMoney(id) < 1000)return SendClientMessage(playeridVermelho"| ERRO | Esse(a) Jogador(a) Nгo tem Dinheiro Suficiente Para Compra!");
    
    
GetPlayerName(idpnameMAX_PLAYER_NAME);
    
    
vendendo[id] = playerid;
    
vendendo[id] = 1;
    
format(string,sizeof(string),"| INFO | {FFFFFF}Vocк Ofereceu a Arma ID:{710C0C}%d {FFFFFF}ao Jogador(a) {710C0C}%s{FFFFFF} !",arma,pName[id]);
    
SendClientMessage(playerid,C_VendedordArmas,string);
    
format(string,sizeof(string),"| INFO | {FFFFFF}O(A) Jogador(a) {710C0C}%s {FFFFFF}te Ofereceu a Arma ID:{710C0C}%d{FFFFFF} !",pName[playerid],arma);
    
SendClientMessage(id,C_VendedordArmas,string);
    
SendClientMessage(id,C_VendedordArmas,"| INFO | {FFFFFF}Vocк Tem 20 Segundos Para Aceitar ou Recusar! ( {710C0C}/Aceitar & {710C0C}/Recusar {FFFFFF})");
    
aceit[id] = SetTimerEx("demorou",20000false"i"id);
    return 
1;
}
CMD:aceitar(playerid)
{
    new 
id,arma,string[128];
    if(
vendendo[playerid] == 1)
    {
        
Dinheiro[playerid] = random_number(500,1000);
        
format(string,sizeof(string),"| INFO | {FFFFFF}Vocк Aceitou a Arma e Pagou {227E2C}$%d{FFFFFF}!",Dinheiro[playerid]);
        
SendClientMessage(playerid,C_VendedordArmas,string);
        
        
GivePlayerWeapon(playeridarma1000);
        
GivePlayerMoney(playerid,-Dinheiro[playerid]);
        
format(string,sizeof(string),"| INFO | {FFFFFF}O(A) Jogador(a) {710C0C}%s {FFFFFF}Aceitou a Arma e Vocк Ganhou {227E2C}$%d {FFFFFF}!",pName[playerid],Dinheiro[playerid]);
        
SendClientMessage(vendendo[id],C_VendedordArmas,string);
        
GivePlayerMoney(vendendo[id],Dinheiro[playerid]);
        
KillTimer(aceit[id]);
        
vendendo[id] = 0;
        
vendendo[playerid] = 0;
    }else{
        
SendClientMessage(playerid,Vermelho,"| ERRO | Ninguйm lhe Ofereceu Nada!!");
    }
    return 
1;




Re: Armazenar valor - ipsLuan - 23.10.2018

Vocк precisa armazenar o ID da arma em algum lugar.


Re: Armazenar valor - FerrariL - 23.10.2018

pawn Code:
vendendo[id] = playerid;
    vendendo[id] = 1;
Isso aqui nгo tem sentido mano.


Re: Armazenar valor - ipsLuan - 23.10.2018

https://sampwiki.blast.hk/wiki/SetPVarInt й um dos meios de fazer isso.


Re: Armazenar valor - dimy - 23.10.2018

amigo no parametro sscanf vocк ta utilizando ud e o certo й dd


Re: Armazenar valor - [BOPE]Seu._.Madruga - 23.10.2018

PHP Code:
new bool:comprando[MAX_PLAYERS] = falsevendedor[MAX_PLAYERS], valorcompra[MAX_PLAYERS], objetocomprado[MAX_PLAYERS];
CMD:venderarma(playeridparams[]) {
    new 
idarmavalorstring[128], pname[MAX_PLAYER_NAME];
    if(
sscanf(params"udd"idarmavalor)) return SendClientMessage(playerid,Vermelho,"| ERRO | /VenderArma [id player] [ID Arma] [valor]");
    if(
arma 24 || arma 30) return SendClientMessage(playerid,Vermelho,"| ERRO | ID Invбlido de Arma!");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid,Vermelho,"| ERRO | Jogador(a) nгo Conectado(a)!");
    if(
id == playerid) return SendClientMessage(playeridVermelho"| ERRO | Vocк Nгo Pode Utilizar Este Comando em si Mesmo!");
    if(
GetDistanceBetweenPlayers(playeridid) > 6) return SendClientMessage(playerid,Vermelho,"| ERRO | Vocк Estб Muito Longe, Chegue Mais Perto!");
    if(
GetPlayerMoney(id) < valor) return SendClientMessage(playeridVermelho"| ERRO | Esse(a) Jogador(a) Nгo tem Dinheiro Suficiente Para Compra!");
    
GetPlayerName(idpnameMAX_PLAYER_NAME);
    
comprando[id] = truevendedor[id] = playeridvalorcompra[id] = valorobjetocomprado[id] = arma;
    
format(string,sizeof(string), "| INFO | {FFFFFF}Vocк Ofereceu a Arma ID:{710C0C}%d {FFFFFF}ao Jogador(a) {710C0C}%s{FFFFFF} !"armapName[id]);
    
SendClientMessage(playeridC_VendedordArmasstring);
    
format(string,sizeof(string), "| INFO | {FFFFFF}O(A) Jogador(a) {710C0C}%s {FFFFFF}te Ofereceu a Arma ID:{710C0C}%d{FFFFFF} por %d R$!",pName[playerid], armavalor);
    
SendClientMessage(idC_VendedordArmasstring);
    
SendClientMessage(idC_VendedordArmas"| INFO | {FFFFFF}Vocк Tem 20 Segundos Para Aceitar ou Recusar! ( {710C0C}/Aceitar & {710C0C}/Recusar {FFFFFF})");
    
aceit[id] = SetTimerEx("demorou",20000false"i"id);
    return 
1;
}
CMD:aceitar(playerid) {
    new 
string[128];
    if(
comprando[playerid] != true) return SendClientMessage(playerid,Vermelho,"| ERRO | Ninguйm lhe Ofereceu Nada!!");
    if(
GetPlayerMoney(playerid) < valorcompra[playerid]) return SendClientMessage(playeridVermelho"| ERRO | Vocк nгo possui mais dinheiro suficiente para fazer esta compra !");
    
format(string,sizeof(string),"| INFO | {FFFFFF}Vocк Aceitou a Arma ID: %d e Pagou {227E2C}$%d{FFFFFF}!"objetocomprado[playerid], valorcompra[playerid]);
    
SendClientMessage(playeridC_VendedordArmasstring);
    
GivePlayerWeapon(playeridobjetocomprado[playerid], 100);
    
GivePlayerMoney(playerid, -valorcompra[playerid]);
    
format(string,sizeof(string),"| INFO | {FFFFFF}O(A) Jogador(a) {710C0C}%s {FFFFFF}Aceitou a Arma e Vocк Ganhou {227E2C}$%d {FFFFFF}!",pName[playerid], valorcompra[playerid]);
    
SendClientMessage(vendedor[playerid], C_VendedordArmas,string);
    
GivePlayerMoney(vendedor[playerid], valorcompra[playerid]);
    
KillTimer(aceit[playerid]);
    
comprando[playerid] = falsevalorcompra[playerid] = 0objetocomprado[playerid] = 0vendedor[playerid] = 0;
    return 
1;

Adicione na sua callback demorou
Code:
comprando[playerid] = false, valorcompra[playerid] = 0, objetocomprado[playerid] = 0, vendedor[playerid] = 0;



Re: Armazenar valor - Poseidon4625 - 23.10.2018

Quote:
Originally Posted by [BOPE]Seu._.Madruga
View Post
PHP Code:
new bool:comprando[MAX_PLAYERS] = falsevendedor[MAX_PLAYERS], valorcompra[MAX_PLAYERS], objetocomprado[MAX_PLAYERS];
CMD:venderarma(playeridparams[]) {
    new 
idarmavalorstring[128], pname[MAX_PLAYER_NAME];
    if(
sscanf(params"udd"idarmavalor)) return SendClientMessage(playerid,Vermelho,"| ERRO | /VenderArma [id player] [ID Arma] [valor]");
    if(
arma 24 || arma 30) return SendClientMessage(playerid,Vermelho,"| ERRO | ID Invбlido de Arma!");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playerid,Vermelho,"| ERRO | Jogador(a) nгo Conectado(a)!");
    if(
id == playerid) return SendClientMessage(playeridVermelho"| ERRO | Vocк Nгo Pode Utilizar Este Comando em si Mesmo!");
    if(
GetDistanceBetweenPlayers(playeridid) > 6) return SendClientMessage(playerid,Vermelho,"| ERRO | Vocк Estб Muito Longe, Chegue Mais Perto!");
    if(
GetPlayerMoney(id) < valor) return SendClientMessage(playeridVermelho"| ERRO | Esse(a) Jogador(a) Nгo tem Dinheiro Suficiente Para Compra!");
    
GetPlayerName(idpnameMAX_PLAYER_NAME);
    
comprando[id] = truevendedor[id] = playeridvalorcompra[id] = valorobjetocomprado[id] = arma;
    
format(string,sizeof(string), "| INFO | {FFFFFF}Vocк Ofereceu a Arma ID:{710C0C}%d {FFFFFF}ao Jogador(a) {710C0C}%s{FFFFFF} !"armapName[id]);
    
SendClientMessage(playeridC_VendedordArmasstring);
    
format(string,sizeof(string), "| INFO | {FFFFFF}O(A) Jogador(a) {710C0C}%s {FFFFFF}te Ofereceu a Arma ID:{710C0C}%d{FFFFFF} por %d R$!",pName[playerid], armavalor);
    
SendClientMessage(idC_VendedordArmasstring);
    
SendClientMessage(idC_VendedordArmas"| INFO | {FFFFFF}Vocк Tem 20 Segundos Para Aceitar ou Recusar! ( {710C0C}/Aceitar & {710C0C}/Recusar {FFFFFF})");
    
aceit[id] = SetTimerEx("demorou",20000false"i"id);
    return 
1;
}
CMD:aceitar(playerid) {
    new 
string[128];
    if(
comprando[playerid] != true) return SendClientMessage(playerid,Vermelho,"| ERRO | Ninguйm lhe Ofereceu Nada!!");
    if(
GetPlayerMoney(playerid) < valorcompra[playerid]) return SendClientMessage(playeridVermelho"| ERRO | Vocк nгo possui mais dinheiro suficiente para fazer esta compra !");
    
format(string,sizeof(string),"| INFO | {FFFFFF}Vocк Aceitou a Arma ID: %d e Pagou {227E2C}$%d{FFFFFF}!"objetocomprado[playerid], valorcompra[playerid]);
    
SendClientMessage(playeridC_VendedordArmasstring);
    
GivePlayerWeapon(playeridobjetocomprado[playerid], 100);
    
GivePlayerMoney(playerid, -valorcompra[playerid]);
    
format(string,sizeof(string),"| INFO | {FFFFFF}O(A) Jogador(a) {710C0C}%s {FFFFFF}Aceitou a Arma e Vocк Ganhou {227E2C}$%d {FFFFFF}!",pName[playerid], valorcompra[playerid]);
    
SendClientMessage(vendedor[playerid], C_VendedordArmas,string);
    
GivePlayerMoney(vendedor[playerid], valorcompra[playerid]);
    
KillTimer(aceit[playerid]);
    
comprando[playerid] = falsevalorcompra[playerid] = 0objetocomprado[playerid] = 0vendedor[playerid] = 0;
    return 
1;

Adicione na sua callback demorou
Code:
comprando[playerid] = false, valorcompra[playerid] = 0, objetocomprado[playerid] = 0, vendedor[playerid] = 0;
Foi mal galera tinha saido kkk, o FerrariL me explicou no discord e no fim era uma coisa bem simples, mas valeu glr, era sу fazer quase igual ao armazenamento do playerid e tal, foi bem simples, mas obrigado a quem tentou ajudar


Re: Armazenar valor - Poseidon4625 - 23.10.2018

Quote:
Originally Posted by dimy
View Post
amigo no parametro sscanf vocк ta utilizando ud e o certo й dd
o "u" eu uso pra pegar o id do jogador/nick, podendo colocar o nick ou se preferir o id, pra mim й mais fбcil assim


Re: Armazenar valor - Poseidon4625 - 26.10.2018

Bom pessoal eu consegui resolver esse pequeno problema com armazenamento, sу que agora estou tendo outro pequeno problema que nгo estou conseguindo resolver com esses mesmos comandos, o seguinte problema й que sу consigo vender arma pro jogador que tiver no id 0, oque eu faзo quanto a isso??

Se um jogador oferecer arma pro id 1 e eu der /aceitar manda a mensagem de erro, oque nгo era pra acontecer.

Desde jб agradeзo.


Re: Armazenar valor - [BOPE]Seu._.Madruga - 26.10.2018

Quote:
Originally Posted by Poseidon4625
View Post
Bom pessoal eu consegui resolver esse pequeno problema com armazenamento, sу que agora estou tendo outro pequeno problema que nгo estou conseguindo resolver com esses mesmos comandos, o seguinte problema й que sу consigo vender arma pro jogador que tiver no id 0, oque eu faзo quanto a isso??

Se um jogador oferecer arma pro id 1 e eu der /aceitar manda a mensagem de erro, oque nгo era pra acontecer.

Desde jб agradeзo.
Manda seu cуdigo do jeito que estб ai para vocк.


Re: Armazenar valor - Poseidon4625 - 26.10.2018

opa desculpa a demora, jб consegui resolver kk mas obg