SA-MP Forums Archive
Auto-Repair won't stop! - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Auto-Repair won't stop! (/showthread.php?tid=454973)



Auto-Repair won't stop! - Drift032 - 31.07.2013

Ok, so I scripted an auto-repair using timers and It works, but the command to turn it off doesn't.

(The most of the code for this)

new repairtimer;

pawn Код:
CMD:godmode(playerid, params[])
{
    SetPlayerHealth(playerid,100000);
    SendClientMessage(playerid,-1,"Godmode: {0000FF}ON");
    SendClientMessage(playerid,COLOR_RED,"Your vehicle cannot be destroyed.");
    repairtimer = SetTimerEx("repairme", 500, false, "i", playerid);
    return 1;
}
CMD:godmodeoff(playerid, params[])
{
    SetPlayerHealth(playerid,100);
    SendClientMessage(playerid,-1,"Godmode: {FF0000}OFF");
    SendClientMessage(playerid,COLOR_RED,"Your vehicle can be destroyed.");
    KillTimer(repairtimer);
    return 1;
}

pawn Код:
forward repairme(playerid);
public repairme(playerid)
{
  if(IsPlayerInAnyVehicle(playerid))
  {
   new Float:health,vehicleid;
   vehicleid = GetPlayerVehicleID(playerid);
   GetVehicleHealth(vehicleid,health);
   if(health <1000)
   {
   RepairVehicle(vehicleid);
   repairtimer = SetTimerEx("repairme", 1000, false, "i", playerid);
   }
   repairtimer = SetTimerEx("repairme", 1000, false, "i", playerid);
  }
 }
I realize this may be poorly done, but I've not had much experience using timers.

Anyone know what I did wrong or maybe even a better way to handle this?


Re: Auto-Repair won't stop! - verlaj - 31.07.2013

try not to use timer or just Kill it by using KillTimer


Re: Auto-Repair won't stop! - ReV. - 31.07.2013

Very poorly done indeed!


Код:
new pAutoFix[MAX_PLAYERS];

// OnGameModeInit
SetTimer("autoRepair", 400, true);

CMD:godmode(playerid, params[])
{
    if(pAutoFix[playerid] == 0)
    {
    	SetPlayerHealth(playerid, 1000000);
    	SendClientMessage(playerid,-1,"Godmode: {0000FF}ON");
    	SendClientMessage(playerid,COLOR_RED,"Your vehicle cannot be destroyed.");
    	pAutoFix[playerid] = 1;
	}
 	else
 	{
 		SetPlayerHealth(playerid,100);
    	SendClientMessage(playerid,-1,"Godmode: {FF0000}OFF");
    	SendClientMessage(playerid,COLOR_RED,"Your vehicle can be destroyed.");
    	pAutoFix[playerid] = 0;
 	}
    return 1;
}

forward autoRepair()
public autoRepair()
{
	for(new ii = 0; ii < MAX_PLAYERS; ii++)
	{
		new vID = GetPlayerVehicleID(ii);
		if(vID != 0)
		{
			if(pAutoFix[ii] == 1) RepairVehicle(vID);
		}
   	}
	return true;
}
This should do it.


Re: Auto-Repair won't stop! - Drift032 - 31.07.2013

Thanks for the help [Hunter] +rep'd