SA-MP Forums Archive
[Ajuda] Comando /cofre - 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] Comando /cofre (/showthread.php?tid=609903)



Comando /cofre - FernandoDutra - 17.06.2016

Oi gente, entгo, eu estou adicionando alguns comandos "basicos" em um sistema de empresa, e decidi comeзar pelo /cofre [sacar/depositar] o problema, й que eu consigo comeзa-lo, porйm, nгo consigo termina-lo, poderiam me ajudar?

PHP Code:
CMD:cofre(playeridparams[])
{
    new 
string[256];
    if(
BusinessInfo[PlayerInfo[playerid][BusinessID]][Owned] == 1)
    {
        if(
IsPlayerInRangeOfPoint(playerid2,BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterX],BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterY],BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterZ]))
        {
            
format(stringsizeof(string), "Estб empresa possui %d de lucros em seu cofre."BusinessInfo[PlayerInfo[playerid][BusinessID]][Money]);
            
SendClientMessage(playeridCOLOR_GREYstring);
if(
sscanf(params"s[256]"options)) return SendClientMessage(playeridCOLOR_WHITE"SERVER: /cofre [sacar/depositar]"); // EU TRAVO NESSA PARTE AQUI, DAQUI PRA FRENTE NГO CONSIGO IR ;-; 
        
}
    }
    else 
SendClientMessage(playeridCOLOR_LIGHTRED"SERVER: Vocк nгo й dono de uma empresa.");
    return 
1;

E tenho algumas perguntas (que sempre na realidade, й no mбximo 2/3):

1 - Eu deveria colocar as opзхes de sacar/depositar dentro do IsPlayerInRangeOfPoint?
2 - Desta forma que eu iniciei, eu estou indo na direзгo correta para ter um comando funcional?


Re: Comando /cofre - zSuYaNw - 17.06.2016

1 - A Funзгo IsPlayerInRangeOfPoint verifica se o jogador estб perto de uma posiзгo x,y,z em radius.

2 - Exato, estб no caminho correcto.

Notei que vocк estб usando ZCMD e apenas 1 parвmetro em seu comando /cofre [sacar/depositar] dк uma olhada neste tutorial, lhe serб muito ъtil!


Re: Comando /cofre - F1N4L - 17.06.2016

1- Pode usar a funзгo IsPlayerInRangeOfPointpara verificar se estб dentro da бrea de seu cofre e usar dois comandos (sу sugestгo): um para ver os lucros e outro para pegar os lucros.

2- Aparente, sim.

Sу uma outra dica para avisar player quando ele estiver longe de sua propriedade:
use else nesta condicional.
Code:
   .........
   format(string, sizeof(string), "Estб empresa possui %d de lucros em seu cofre.", BusinessInfo[PlayerInfo[playerid][BusinessID]][Money]); 
   SendClientMessage(playerid, COLOR_GREY, string); 
} 
else SendClientMessage(params..., "Vocк estб longe da propriedade");



Re: Comando /cofre - FernandoDutra - 17.06.2016

Obrigado pelas dicas pessoal, vou tentar faze-lo aqui.


Re: Comando /cofre - ClaudineiCDS - 19.06.2016

PHP Code:
CMD:cofre(playeridparams[])
{
    if(
BusinessInfo[PlayerInfo[playerid][BusinessID]][Owned] == 1)
        return 
SendClientMessage(playeridCOLOR_LIGHTRED"SERVER: Vocк nгo й dono de uma empresa.");
        
    new 
str[40];
    if(
sscanf(params"s[40]"str))
        return 
SendClientMessage(playeridCOLOR_WHITE"SERVER: /cofre [sacar/depositar]");
        
    if(
IsPlayerInRangeOfPoint(playerid2,BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterX],BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterY],BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterZ]))
    {
        
format(stringsizeof(string), "Estб empresa possui %d de lucros em seu cofre."BusinessInfo[PlayerInfo[playerid][BusinessID]][Money]);
        
SendClientMessage(playeridCOLOR_GREYstring);
        
        if(
strcmp(str"sacar"true) == 0) {
            
//Coloque a Funзгo de sacar o dinheiro aqui;
        
}
        if(
strcmp(str"depositar"true) == 0) {
            
//Coloque a Funзгo de depositar o dinheiro aqui;
        
}
    }
    else {
        
SendClientMessage(playerid0xFF0000FF"Vocк nгo estб perto de um Cofre!");
    }
    return 
1;




Re: Comando /cofre - FernandoDutra - 19.06.2016

Quote:
Originally Posted by ClaudineiCDS
View Post
PHP Code:
CMD:cofre(playeridparams[])
{
    if(
BusinessInfo[PlayerInfo[playerid][BusinessID]][Owned] == 1)
        return 
SendClientMessage(playeridCOLOR_LIGHTRED"SERVER: Vocк nгo й dono de uma empresa.");
        
    new 
str[40];
    if(
sscanf(params"s[40]"str))
        return 
SendClientMessage(playeridCOLOR_WHITE"SERVER: /cofre [sacar/depositar]");
        
    if(
IsPlayerInRangeOfPoint(playerid2,BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterX],BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterY],BusinessInfo[PlayerInfo[playerid][BusinessID]][EnterZ]))
    {
        
format(stringsizeof(string), "Estб empresa possui %d de lucros em seu cofre."BusinessInfo[PlayerInfo[playerid][BusinessID]][Money]);
        
SendClientMessage(playeridCOLOR_GREYstring);
        
        if(
strcmp(str"sacar"true) == 0) {
            
//Coloque a Funзгo de sacar o dinheiro aqui;
        
}
        if(
strcmp(str"depositar"true) == 0) {
            
//Coloque a Funзгo de depositar o dinheiro aqui;
        
}
    }
    else {
        
SendClientMessage(playerid0xFF0000FF"Vocк nгo estб perto de um Cofre!");
    }
    return 
1;

Obrigado de verdade pelo comando, porйm, agora estou com dificuldades no /comprar para setar o money para a empresa.

Poderia me ajudar?


Respuesta: Comando /cofre - OverKiller - 20.06.2016

Mds quando vejo um cara como vc no mesmo nнvel que eu, fico com uma vontade ensana de programar, mas meu PC deu problemas de dll usando o sscanf. :/


Re: Comando /cofre - F1N4L - 20.06.2016

Quote:
Originally Posted by FernandoDutra
View Post
Obrigado de verdade pelo comando, porйm, agora estou com dificuldades no /comprar para setar o money para a empresa.

Poderia me ajudar?
Vou lhe dar alguns passos para realizar o comando /comprar, espero que me compreenda:

1- Ao digitar o comando, vc deve verificar se o jogador estб prуximo (IsPlayerInRangeOfPoint) (se quiser, claro).

2- Outra verificaзгo para ver se o player tem dinheiro e quanto ele tem (GetPlayerMoney)

3- Depois disso, obviamente, precisamos PEGAR a quantia necessбria para compra da propriedade (GivePlayerMoney)

Basicamente isso, espero que tenha entendido, caso nгo tenha poste sua dъvida.


Re: Comando /cofre - zSuYaNw - 20.06.2016

Sу para lembrar, a funзгo GivePlayerMoney "Dб" dinheiro para o jogador,vocк terб que colocar o sinal de "-" a frente do valor para remover do jogador.

Removendo R$ 100 do jogador.
pawn Code:
GivePlayerMoney(playerid, -100);