[Ajuda] Armazenar valor
#1

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;

Reply
#2

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

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

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

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

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;
Reply
#7

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
Reply
#8

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
Reply
#9

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.
Reply
#10

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к.
Reply
#11

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


Forum Jump:


Users browsing this thread: 4 Guest(s)