Hi,
Gibt es eine Möglich keit, sobald
ich ein Car verlasse, dass es zerstört wird?
Ich meine Damit kein Respawn sondern Komplett weg.
Grüße
Hi,
Gibt es eine Möglich keit, sobald
ich ein Car verlasse, dass es zerstört wird?
Ich meine Damit kein Respawn sondern Komplett weg.
Grüße
OnPlayerExitVehicle ist ein Callback
Oder unter OnPlayerStateChange wenn oldstate = PLAYER_STATE_DRIVER war.
Dann die gespeicherte ID löschen
Grüße
Es gibt ja keine Gespeicherte id , das auto wird ja per befehl erstellt..
Dann wenn du einsteigst.
Dort speicherst du einfach die ID
unter OnPlayerStateChange
Wenn newstate == PLAYER_STATE_DRIVER ist
Eine Variable auf die ID setzen
myCar[playerid] = GetPlayerVehicleID(playerid);
Grüße
Ich hab davon leider echt wenig ahnung.
Wäre jemand beireit mir das zu schreiben?
Du kannst auch einfach
//Unter OnPlayerExitVehicle
DestroyVehicle(GetPlayerVehicleID(playerid));
benutzen.
CaptainKevin:
Dann hast du das Problem, dass das Fahrzeug während du aussteigst schon weg ist.
Department: Dann lern am besten erstmal die Basics...
Variable erstellen.
Bei connect auf -1 stellen
Beim wechsel ins Fahrzeug auf die Fahrzeug ID setzen (UNter OnPlayerStateChange)
Dann unter onplayerstatechange die gespeicherte Fahrzeug ID speichern.
Schöne Grüße..
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
{
DestroyVehicle(GetPlayerVehicleID(playerid));
}
return 1;
}
so geht das nicht oder?
//edit tuts nichts.
Das problem bei
public OnPlayerExitVehicle(playerid, vehicleid)
{
DestroyVehicle(GetPlayerVehicleID(playerid));
return 1;
}
ist ,dass auch der Beifahrer dann das Auto zerstört.
new bool:driver[MAX_PLAYERS]; // global
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(ispassenger == 0) //fahrer
{
driver[playerid] = true;
}
}
Beim connecten noch auf "false" stellen.
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(driver[playerid] == true)
{
DestroyVehicle(vehicleid);
driver[playerid] = false;
}
}
public OnPlayerExitVehicle(playerid, vehicleid) { if(driver[playerid] == true) { DestroyVehicle(vehicleid); driver[playerid] = false; } }
Danke! Klappt super!
Ist es machbar irgentwie das einzustelle, dass das Auto erst nach 1 Minute verschwindet?
forward DeleteVehicleAfterTime(vehicleid)
public OnPlayerExitVehicle(playerid, vehicleid)
{
SetTimerEx("DeleteVehicleAfterTime", 60000, false, "i", vehicleid);
return 1;
}
/* oder */
new cpVehicle[MAX_PLAYERS];
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(ispassenger == 0)
{
cpVehicle[playerid] = vehicleid;
return 1;
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
{
SetTimerEx("DeleteVehicleAfterTime", 60000, false, "i", cpVehicle[playerid]);
return 1;
}
}
public DeleteVehicleAfterTime(vehicleid)
{
DestroyVehicle(vehicleid);
return 1;
}
Ungetestet, müsste aber funktionieren.
Das geht super!
Nur wenn man jetzt zurück ins auto geht Wird das Car trzdm zerstört.
Ich brauche jetzt also einen KillTimer wie genau wende ich den an?
Hab gesucht aber nichts ohne error gebendes gefunden.
Grüße