[Ajuda] Settimer e Comando /consertar
#1

Quote:

forward Consertar(playerid);
public Consertar(playerid)
{
new playa;
SetTimerEx("Consertar", 60000, false, "i", playerid);// Consertar apуs 3 segundos
RepairOffer[playa] = playerid;
return 1;
}

Criei esse Settimer para poder consertar o carro apуs 60 segundos... Porem estб consertando na hora...

Quote:

CMD:consertar(playerid, params[])
{
if(!IsAMec(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " Vocк nгo й mecanico!");
return true;
}
new playa;
new moneyy;
if(sscanf(params, "id", playa, moneyy))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /consertar [ID do Player] [preзo]");
return true;
}
if(moneyy < 1 || moneyy > 1000) { SendClientMessage(playerid, COLOR_GREY, " Preco minimo 1, preco maximo 1000!"); return true; }
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
if(ProxDetectorS(4.0, playerid, playa)&& IsPlayerInAnyVehicle(playa))
{
new string[128];
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(GetPlayerVehicleID(playa), engine, lights, alarm, doors, bonnet, boot, objective);
if(playa == playerid) { SendClientMessage(playerid, COLOR_GREY, " Nгo posso fazer isso!"); return true; }
if(bonnet <= VEHICLE_PARAMS_OFF)
return SendClientMessage(playerid, -1, "O Capo do carro precisa estб aberto!");
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Vocк ofereceu ao(a) %s para concertar seu carro por R$%d .",giveplayer,moneyy);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Mecanico %s quer Consertar seu carro por R$%d, (Digite /aceitar conserto) para aceitar.",sendername,moneyy);
SendClientMessage(playa, COLOR_LIGHTBLUE, string);
RepairOffer[playa] = playerid;
RepairPrice[playa] = moneyy;
SetTimerEx("Consertar", 60000, false, "i", playerid);// Consertar apуs 3 segundos
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Este jogador nao esta perto de Vocк ou nao esta no carro.");
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " O Jogador esta offline.");
}
return true;
}

E aqui o Capo do carro abre e o carro conserta e talz sу que o capo nгo fecha de novo!
Reply
#2

Ou to cego ou louco pq nгo achei a funзгo RepairVehicle
Reply
#3

Quote:
Originally Posted by RiqueP
Посмотреть сообщение
Ou to cego ou louco pq nгo achei a funзгo RepairVehicle
Essa Funзгo aqui RepairOffer[playa] = playerid; jб era pra consertar o veiculo... sу que nгo sei o que estб acontecendo e poderia me responder direito por favor? sou novato no pawn!
Reply
#4

Esse seu cуdigo estб muito estranho!
Coisas que nгo fazem sentido, mais enfim estб ai...
PHP код:
CMD:consertar(playeridparams[])
{
    if(!
IsAMec(playerid))
    {
        
SendClientMessage(playeridCOLOR_GREY" Vocк nгo й mecanico!");
        return 
true;
    }
    new 
playa;
    new 
moneyy;
    if(
sscanf(params"id"playamoneyy))
    {
        
SendClientMessage(playeridCOLOR_GRAD2"USE: /consertar [ID do Player] [preзo]");
        return 
true;
    }
    if(
moneyy || moneyy 1000) { SendClientMessage(playeridCOLOR_GREY" Preco minimo 1, preco maximo 1000!"); return true; }
    if(
IsPlayerConnected(playa))
    {
        if(
playa != INVALID_PLAYER_ID)
        {
            if(
ProxDetectorS(4.0playeridplaya)&& IsPlayerInAnyVehicle(playa))
            {
                new 
string[128];
                new 
enginelightsalarmdoorsbonnetbootobjective;
                
GetVehicleParamsEx(GetPlayerVehicleID(playa), enginelightsalarmdoorsbonnetbootobjective);
                if(
playa == playerid) { SendClientMessage(playeridCOLOR_GREY" Nгo posso fazer isso!"); return true; }
                if(
bonnet <= VEHICLE_PARAMS_OFF)
                return 
SendClientMessage(playerid, -1"O Capo do carro precisa estб aberto!");
                
GetPlayerName(playagiveplayersizeof(giveplayer));
                
GetPlayerName(playeridsendernamesizeof(sendername));
                
format(stringsizeof(string), "* Vocк ofereceu ao(a) %s para concertar seu carro por R$%d .",giveplayer,moneyy);
                
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                
format(stringsizeof(string), "* Mecanico %s quer Consertar seu carro por R$%d, (Digite /aceitar conserto) para aceitar.",sendername,moneyy);
                
SendClientMessage(playaCOLOR_LIGHTBLUEstring);
                
RepairOffer[playa] = playerid;
                
RepairPrice[playa] = moneyy;
                
SetTimerEx("Consertar"60000false"i"playa);// Chamara a Callback Consertar(playerid) apуs 60 segundos (1 minuto);
            
}
            else
            {
                
SendClientMessage(playeridCOLOR_GREY" Este jogador nao esta perto de Vocк ou nao esta no carro.");
            }
        }
    }
    else
    {
        
SendClientMessage(playeridCOLOR_GREY" O Jogador esta offline.");
    }
    return 
true;
}
forward Consertar(playerid);
public 
Consertar(playerid)
{
   
// Consertara o veiculo se o playerid tiver dentro de um
    
if(!IsPlayerInAnyVehicle(playerid))return 0;
    
RepairVehicle(GetPlayerVehicleID(playerid));
   
// Aqui ele cobrara o valor que o mecвnico especificou 
    
GivePlayerMoney(playerid, -RepairPrice[playerid]);
  
// Aqui pagara o mecвnico o valor que o mesmo especificou.
    
GivePlayerMoney(RepairOffer[playerid], RepairPrice[playerid]);
  
// @edit esqueci do reset
    
RepairOffer[playerid] = -1;
    
RepairPrice[playerid] = 0;
    return 
1;

@edit
Reply
#5

Ali nгo era uma funзгo, vocк apenas alterou o valor de uma variбvel.
Reply
#6

Quote:
Originally Posted by Glederson_dom
Посмотреть сообщение
Esse seu cуdigo estб muito estranho!
Coisas que nгo fazem sentido, mais enfim estб ai...
PHP код:
CMD:consertar(playeridparams[])
{
    if(!
IsAMec(playerid))
    {
        
SendClientMessage(playeridCOLOR_GREY" Vocк nгo й mecanico!");
        return 
true;
    }
    new 
playa;
    new 
moneyy;
    if(
sscanf(params"id"playamoneyy))
    {
        
SendClientMessage(playeridCOLOR_GRAD2"USE: /consertar [ID do Player] [preзo]");
        return 
true;
    }
    if(
moneyy || moneyy 1000) { SendClientMessage(playeridCOLOR_GREY" Preco minimo 1, preco maximo 1000!"); return true; }
    if(
IsPlayerConnected(playa))
    {
        if(
playa != INVALID_PLAYER_ID)
        {
            if(
ProxDetectorS(4.0playeridplaya)&& IsPlayerInAnyVehicle(playa))
            {
                new 
string[128];
                new 
enginelightsalarmdoorsbonnetbootobjective;
                
GetVehicleParamsEx(GetPlayerVehicleID(playa), enginelightsalarmdoorsbonnetbootobjective);
                if(
playa == playerid) { SendClientMessage(playeridCOLOR_GREY" Nгo posso fazer isso!"); return true; }
                if(
bonnet <= VEHICLE_PARAMS_OFF)
                return 
SendClientMessage(playerid, -1"O Capo do carro precisa estб aberto!");
                
GetPlayerName(playagiveplayersizeof(giveplayer));
                
GetPlayerName(playeridsendernamesizeof(sendername));
                
format(stringsizeof(string), "* Vocк ofereceu ao(a) %s para concertar seu carro por R$%d .",giveplayer,moneyy);
                
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                
format(stringsizeof(string), "* Mecanico %s quer Consertar seu carro por R$%d, (Digite /aceitar conserto) para aceitar.",sendername,moneyy);
                
SendClientMessage(playaCOLOR_LIGHTBLUEstring);
                
RepairOffer[playa] = playerid;
                
RepairPrice[playa] = moneyy;
                
SetTimerEx("Consertar"60000false"i"playa);
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GREY" Este jogador nao esta perto de Vocк ou nao esta no carro.");
            }
        }
    }
    else
    {
        
SendClientMessage(playeridCOLOR_GREY" O Jogador esta offline.");
    }
    return 
true;
}
forward Consertar(playerid);
public 
Consertar(playerid)
{
    if(!
IsPlayerInAnyVehicle(playerid))return 1;
    
RepairVehicle(GetPlayerVehicleID(playerid));
    
GivePlayerMoney(playerid, -RepairPrice[playerid]);
    
GivePlayerMoney(RepairOffer[playerid], RepairPrice[playerid]);
    return 
1;

Mano vim te pedir Obrigado por Tudo que estб fazendo, me ajudando e talz vou ser eternamente grato a ti! Obrigadгo mesmo de coraзгo!
Reply
#7

Quote:
Originally Posted by RiqueP
Посмотреть сообщение
Ali nгo era uma funзгo, vocк apenas alterou o valor de uma variбvel.
Obrigado por me explicar mano, Obrigado! й que sou novato ainda e to aprendendo devagar entendeu? entгo se puder ajudar e criticar menos ai tentar me explicar agradeзo!
Reply
#8

Eu nгo critiquei .-.
Reply
#9

Se vocк estiver empenhado a aprender acesse esses tуpicos

https://sampforum.blast.hk/showthread.php?tid=497801

https://sampforum.blast.hk/showthread.php?tid=428964

Leia todos devagar a faзa exercнcios sempre que possнvel, eu sou novato em pawn й esses tуpicos me ajudam muito.
Reply
#10

Quote:
Originally Posted by RiqueP
Посмотреть сообщение
Eu nгo critiquei .-.
Show!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)