Hallo,
vermutlich sehe ich den Wald vor lauter Bäumen nicht, aber ich finde keine Erklärung, warum der Code aus meinem Filterscript nicht ausgeführt wird.
Das Filterscript enthält im Moment mein Autohaussystem, welches ich derzeit noch abändere.
Das Problem ist folgendes:
Beim Disconnect sollten die Fahrzeuge des Users gelöscht werden.
Nach einigen Test habe ich nun die Fehlerquelle eingeschränkt.
Code vom Filterscript:
#define Function%0(%1) forward%0(%1); public%0(%1)
Function OnPlayerDisconnect(playerid, reason)
{
printf("Autos: OnPlayerDisconnect %d-1", playerid);
for(new x=0;x<MaxVehs; x++)
{
//if(PlayerCar[playerid][x][CarBesitz])
printf("Autos: OnPlayerDisconnect %d-%d-1", playerid, x);
if(IsValidVehicle(PlayerCar[playerid][x][cID]))
{
SavePlayerCar(playerid, x);
printf("Autos: OnPlayerDisconnect %d-%d-2", playerid, x);
UnLockCar(PlayerCar[playerid][x][cID]);
printf("Autos: OnPlayerDisconnect %d-%d-3", playerid, x);
DestroyVehicle(PlayerCar[playerid][x][cID]);
printf("Autos: OnPlayerDisconnect %d-%d-4", playerid, x);
PlayerCar[playerid][x][CarBesitz] = 0;
PlayerCar[playerid][x][cID] = -1;
PlayerCar[playerid][x][cModel] = -1;
PlayerCar[playerid][x][cCurX] = -1;
PlayerCar[playerid][x][cCurY] = -1;
PlayerCar[playerid][x][cCurZ] = -1;
PlayerCar[playerid][x][cCurR] = -1;
printf("Autos: OnPlayerDisconnect %d-%d-5", playerid, x);
}
}
return 1;
}
Es wird KEIN Printbefehl ausgegeben, woraus ich ableite, dass die Funktion nicht aufgerufen wird.
Mache ich etwas falsch oder ist etwas am Script falsch?
Code vom Hauptscript:
Function OnPlayerDisconnect(playerid, reason)
{
[...]
return 1;
}
Code im Hauptscript wird immer ausgeführt.
Hinweise im Log gibt es keine.
Trozdem hier mal ein Auszug:
Zitat von "Serverlog"Alles anzeigen
[08/08/2014 16:05:06] wepper has logged in.
[....]
[08/08/2014 16:06:16] OnPlayerLogout:: wepper Step 1-2 succes
[08/08/2014 16:06:16] OnPlayerLogout:: wepper Step 1-2 succes
[08/08/2014 16:06:16] OnPlayerLogout:: wepper Step 1-2 succes
[08/08/2014 16:06:16] OnPlayerLogout:: wepper Step 1 succes
[08/08/2014 16:06:16] OnPlayerLogout:: wepper Step 2 succes
[08/08/2014 16:06:16] OnPlayerLogout:: wepper Step 3 succes
[08/08/2014 16:06:16] [part] wepper has left the server (7:1)
Verwendete Includes:
#include <a_samp>
#include <JunkBuster>
native IsValidVehicle(vehicleid);
#include <ocmd>
#include <dini>
#include <sscanf2>
#include <TimerFix>
Ein anderer Versuch mit folgendem Code brachte mich auch nicht weiter:
Filterscript:
Function OnPlayerDisconnect(playerid, reason)
{
printf("Autos: OnPlayerCarDisconnect %d-1", playerid);
for(new x=0;x<MaxVehs; x++)
{
//if(PlayerCar[playerid][x][CarBesitz])
printf("Autos: OnPlayerDisconnect %d-%d-1", playerid, x);
if(IsValidVehicle(PlayerCar[playerid][x][cID]))
{
SavePlayerCar(playerid, x);
printf("Autos: OnPlayerDisconnect %d-%d-2", playerid, x);
UnLockCar(PlayerCar[playerid][x][cID]);
printf("Autos: OnPlayerDisconnect %d-%d-3", playerid, x);
DestroyVehicle(PlayerCar[playerid][x][cID]);
printf("Autos: OnPlayerDisconnect %d-%d-4", playerid, x);
PlayerCar[playerid][x][CarBesitz] = 0;
PlayerCar[playerid][x][cID] = -1;
PlayerCar[playerid][x][cModel] = -1;
PlayerCar[playerid][x][cCurX] = -1;
PlayerCar[playerid][x][cCurY] = -1;
PlayerCar[playerid][x][cCurZ] = -1;
PlayerCar[playerid][x][cCurR] = -1;
printf("Autos: OnPlayerDisconnect %d-%d-5", playerid, x);
}
}
return 1;
}
und im Hauptscript:
Function OnPlayerDisconnect(playerid, reason)
{
[...]
CallRemoteFunction("OnPlayerCarDisconnect", "dd", playerid, reason);
return 1;
}
Vielleicht findet jemand nen Fehler den ich übersehen habe.
Mfg
Wepper