Guten Abend,
Undzwar habe ich eine kleine Frage. Ich habe ein System gemacht, das sich der Zoll öffnen soll falls kein Beamter mehr in der nähe ist.
Dies funtkioniert aber irgendwie nicht.
Hier mein Code:
for(new z = 0; z < sizeof(ZollSystemInfo); z++)
{
new Var = 0,Float:XFront1,Float:YFront1,Float:XFront2,Float:YFront2,Float:XFront3,Float:YFront3;
XFront1 = ZollSystemInfo[z][ZSObjectPosX];
YFront1 = ZollSystemInfo[z][ZSObjectPosY];
XFront2 = ZollSystemInfo[z][ZSObjectPosX];
YFront2 = ZollSystemInfo[z][ZSObjectPosY];
XFront3 = ZollSystemInfo[z][ZSObjectPosX];
YFront3 = ZollSystemInfo[z][ZSObjectPosY];
GetXYInFrontOfObject(ZollSystemInfo[z][ZSObjectID], XFront1, YFront1, 7.0);
GetXYInFrontOfObject(ZollSystemInfo[z][ZSObjectID], XFront2, YFront2, 20.0);
GetXYInFrontOfObject(ZollSystemInfo[z][ZSObjectID], XFront3, YFront3, 33.0);
if(IsPlayerInRangeOfPoint(IsACop(i),50.0,XFront1, YFront1, ZollSystemInfo[z][ZSObjectPosZ]) || IsPlayerInRangeOfPoint(IsACop(i),50.0,XFront2, YFront2, ZollSystemInfo[z][ZSObjectPosZ]) || IsPlayerInRangeOfPoint(IsACop(i),50.0,XFront3, YFront3, ZollSystemInfo[z][ZSObjectPosZ])){
if(ZollSystemInfo[z][ZSStatus] == 1){
Var = 1;
}
}
if(Var == 0)
{
if(ZollSystemInfo[z][ZSStatus] == 1){
ZollSystemInfo[z][ZSStatus] = 0;
format(string, sizeof(string), "HQ: Da sich kein Beamter im radius vom Zoll %d befindet, wurde er automatisch geöffnet.", z);
SendDepartmentMessage(COLOR_RADIO, string);
MoveDynamicObject(ZollSystemInfo[z][ZSObjectID], ZollSystemInfo[z][ZSObjectPosX], ZollSystemInfo[z][ZSObjectPosY], ZollSystemInfo[z][ZSObjectPosZ]-2, 2.0);
}
}
}
Das Script denkt einfach das kein Beamter in der nähe ist und schließt den Zoll obwohl einer in der nähe ist.
Wenn ich das IsACop(i) bei IsPlayerInRangeOfPoint durch ein i (die schleife für alle Spieler) durchgehe, dann Funktioniert es das ein Spieler in der nähe sein muss.
Ich möchte das aber so haben das nur ein Cop in der nähe sein muss.
Die ganze Funktion läuft in einem Timer von 1 Sekunde.
Ich hoffe ihr könnt mir helfen.
MfG
Darius