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



[Ajuda] Auto-reparo - Delete_ - 22.04.2011

Eu criei um auto reparo
mais depois de uns 2 minutos no server ele para de reparar
nao sei oque й isso
aqui o cуdigo:

forward ArrumarVeiculo(playerid);

SetTimer("ArrumarVeiculo",1000,1);

public ArrumarVeiculo(playerid)
{
RepairVehicle(GetPlayerVehicleID(playerid));
return 1;
}


Re: [AJUDA] Auto-reparo - pGibson - 22.04.2011

fundo da pбgina:
PHP код:
forward autoRepair();
public 
autoRepair()
{
     new 
i;
     while( 
MAX_PLAYERS )
     {
          
RepairVehicle(GetPlayerVehicleID(i));
     }

No OnGameModeInit
PHP код:
SetTimer("autoRepair",10000,1); 
}


Re: [AJUDA] Auto-reparo - Zina - 22.04.2011

Acho que neste caso seria SetTimerEx nгo й?


Re: [AJUDA] Auto-reparo - Delete_ - 22.04.2011

Coloquei com SetTimer
depois com SetTimerEx
ambas nгo funcionaram
ao contrario, o servidor nem ligou


Re: [AJUDA] Auto-reparo - pGibson - 22.04.2011

Quote:
Originally Posted by Zina
Посмотреть сообщение
Acho que neste caso seria SetTimerEx nгo й?
Nгo. Entenda o cуdigo primeiro.


Re: [AJUDA] Auto-reparo - Diogo_Bras - 22.04.2011

delete, eu tinha aqui um algures no meu pastebin que nem lembro como nem quando foi feito, mas espero que sirva:
pawn Код:
#include <a_samp>
new rAtiv[MAX_PLAYERS], Jogador[MAX_PLAYER_NAME], sStr[128];
new rAtivTemp;
forward rAuto(playerid);

public OnPlayerCommandText(playerid, cmdtext[])
{
   if(!strcmp(cmdtext, "/rAtivar", true))
   {
      if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFF000AA, "Sу administradores logados na RCON podem usar este comando!");
      if(rAtiv[playerid] == 1)
      {
         GetPlayerName(playerid, Jogador, sizeof(Jogador));
         format(sStr, sizeof(sStr), "O administrador %s ativou o auto reparo de veiculos", Jogador);
         SendClientMessageToAll(0xFFF000AA, sStr);
         rAtivTemp = SetTimerEx("rAuto", 500, true, "i", playerid);
         rAtiv[playerid]=0;
         return SendClientMessage(playerid, 0xFFF000AA, "Modo auto-reparo ativado!");
      }
      else return SendClientMessage(playerid, 0xFFF000AA, "Auto-reparo jб estava ativado!");
}

   if(!strcmp(cmdtext, "/rDesativar", true))
   {
      if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFFF000AA, "Sу administradores logados na RCON podem usar este comando!");
      if(rAtiv[playerid] == 0)
      {
         GetPlayerName(playerid, Jogador, sizeof(Jogador));
         format(sStr, sizeof(sStr), "O administrador %s desativou o auto reparo de veiculos", Jogador);
         SendClientMessageToAll(0xFFF000AA);
         KillTimer(rAtivTemp);
         rAitv[playerid]=0;
      }
      else return SendClientMessage(playerid, 0xFFF000AA, "Auto-reparo jб estava desativado!");
}
return false;
}

public rAuto(playerid)
{
   for(new i = 0;i < MAX_PLAYERS; i++)
   {
      if(IsPlayerInAnyVehicle(i))
      {
         new veiculo;
         veiculo = GetPlayerVehicleID(i);
         RepairVehicle(veiculo);
      }
   }
   return true;
}
Nгo testei, script antigo jб.


Re: [AJUDA] Auto-reparo - Delete_ - 22.04.2011

quero um sem comando mano


Re: [AJUDA] Auto-reparo - LuxurioN™ - 22.04.2011

Quote:
Originally Posted by delete
Посмотреть сообщение
quero um sem comando mano
Hб outra maneira, mais simples e sem temporizador:
Код:
public OnVehicleDamageStatusUpdate( vehicleid, playerid )
{
	new Float:Vida;
	GetVehicleHealth( vehicleid, Vida );
	
	if( Vida < 1000 && GetVehicleModel( vehicleid ) == ID ) //Id do veнculo.
	return RepairVehicle( vehicleid );
	
	return 1;
}
Remova a parte da condicional "&& GetVehicleModel( vehicleid ) == ID" se quiser que funcione em todos os veнculos:
Код:
public OnVehicleDamageStatusUpdate( vehicleid, playerid )
{
	new Float:Vida;	
	if(GetVehicleHealth( vehicleid, Vida ) < 1000 ) 
	return RepairVehicle( vehicleid );
	
	return 1;
}



Re: [Ajuda] Auto-reparo - Delete_ - 22.04.2011

Valeu Luxuriun funcionou direitinho