Hi,
Kann mir wer erklären, wie ich das scripte, dass wenn das Auto kaputt ist, es automatisch wieder repariert wird?
Ich hab schon 2 Threads gefunden, aber da sind die Links down..
Aber bitte mit Erklärung..
Mfg Vince
Hi,
Kann mir wer erklären, wie ich das scripte, dass wenn das Auto kaputt ist, es automatisch wieder repariert wird?
Ich hab schon 2 Threads gefunden, aber da sind die Links down..
Aber bitte mit Erklärung..
Mfg Vince
du musst mit einem Timer ein Public aufrufen, das abfragt, ob das Aut des Spielers weniger wie XXX HP hat, und dan via SetVehicleHealth das Auto Reparieren.
Kannst du mir das nich kurz scripten und mit // immer beschreiben, was es für eine Funktion hat? Wäre dir sehr dankbar..
forward repveh();
#define MAX_VEHICLE hierdeinevehiclezahl
SetTimer("repveh",1000,1);
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
if(i == welche vehicleid halt gehealt werden soll)
{
SetVehicleHealth(i,1000);
}
}
return 1;
}
Healt alle 1000 MS also jede Sekunde die angegebenen Autos. Diese musst du selber noch definieren.
Ist jetzt nicht die ressourcenschonenste Methode, aber ist am einfachsten:
OnPlayerUpdate(playerid)
{
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
new Float:vhealth;
new vehid;
vehid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehid,vhealth);
if(vhealth < XXX) RepairVehicle(vehid);
}
return 1;
}
PS: Sorry, aber das Forum versaut die Einrückung.
// edit (Kommentar: 1): Hagi hat ne bessere Methode gepostet.
// edit (2): Der Text nach dem "// edit ..." soll kursiv sein ...
Es soll jedes Auto gefixxt werden, muss ich dann jede ID dazuschreiben??
Nö, dann einfach die Abfrage rausnehmen:
forward repveh();
#define MAX_VEHICLE hierdeinevehiclezahl
SetTimer("repveh",1000,1);
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
SetVehicleHealth(i,1000);
}
return 1;
}
Und wo muss das hin?
(z.b. OnPlayerCommandText)
OnGameModeInit?
forward repveh();
#define MAX_VEHICLE hierdeinevehiclezahl
Kommt oben ins Script.
SetTimer("repveh",1000,1);
Kommt unter OnGameModeInit
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
SetVehicleHealth(i,1000);
}
return 1;
}
Kommt irgentwo zwischen zwei andere Publics oder einfach ans Ende
Edit:
Das Auto wird repariert, aber nur der Motor, zum Beispiel einen Platten wird nicht repariert..
Änder den Public so
public repveh()
{
for(new i = 0;i<MAX_VEHICLE;i++)
{
SetVehicleHealth(i,1000); // Repariert den Motor
RepairVehicle(i); // Repariert optische Schäden und Reifen
}
return 1;
}
Ok, funktioniert nun perfekt
Vielen Dank für die Hilfe
Wie kann ich das schreiben das die ID´s 48-79 repaired werden sollen?
switch(i)
{
case 48..79:{ RepairVehicle(i);}
}
vielen dank hat mir sehr geholfen