Beiträge von Haxler

    Ohne Code kann ich dir schlecht helfen. Zeig doch mal die Funktion, in der das hier ausgeführt wird:

    ]if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    if(cInfo[i][gFirma] == 2)
    {
    F2Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }


    if(cInfo[i][gFirma] == 1)
    {
    F1Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    if(cInfo[i][gFirma] == 2)
    {
    F2Car[i] = CreateVehicle(cInfo[i][Model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_1],cInfo[i][c_2],-1);
    }
    zeig mal mehr von dieser Stelle. Denke mal da stimmt was mit dem Index von F1Car bzw F2Car nicht.


    for(new i; i < sizeof(F1Car); i++) if(IsValidVehicle(F1Car[i])) count[0]++;
    for(new i; i < sizeof(F2Car); i++) if(IsValidVehicle(F2Car[i])) count[1]++;

    versuchs mal so, wenn du den Index als FahrzeugID nimmst, hast du immer Werte zwischen 0 und sizeof(F1Car) bzw sizeof(F2Car). Das heißt Fahrzeug 1 wird z.b. in beiden Schleifen gefunden.

    format(str,180,"UPDATE `accounts` SET `TBan`='%d' WHERE `SpielerName`='%s'",dauer,GetName(pID));
    Da liegt der Fehler: Du speicherst die Dauer ab, willst sie aber später mit einem timestamp vergleichen.


    Versuchs so:
    format(str,180,"UPDATE `accounts` SET `TBan`='%d' WHERE `SpielerName`='%s'",timestamp,GetName(pID));


    Wenn du Spieler[playerid][TBan] nicht in anderen Funktionen verwendest, kannst du das ganze auch über eine lokale Variable lösen.

    Zitat

    Kein ahnung finger still halten!!! kack spamer!!!


    musst nicht gleich beleidigend werden :thumbdown:
    Wäre mir neu dass die Updates direkt angezeigt werden.
    Wie wärs wenn du es einfach mal versuchen würdest? Des Weiteren wird der String falsch formatiert format(string,sizeof string,"%s",value); Value ist in deinem Fall ein Integer d.h. du musst %d bzw %i verwenden.


    edit: vielleicht liegt es auch einfach daran, dass der Timer nicht wiederholt wird SetTimer("SetSekundenTimer6", 600, true);

    Zitat


    PlayerTextDrawLetterSize(playerid, PilotJob[playerid], 0.000000, 14.901111);
    PlayerTextDrawTextSize(playerid, PilotJob[playerid], 44.857124, 0.000000);


    versuch mal andere Werte als 0.0, mit LetterSize oder TextSize (weiß ich nicht mehr genau :P) änderst du die Größe, wenn die 0 ist siehst du nichts^^

    Willst du nur unbenutze Fahrzeuge respawnen? Wenn ja versuchs mal so:



    new i = 0;
    for(;i<sizeof(LSPDCars); i++)
    {
    if(!IsVehicleOccupied(LSPDCars[i]))
    {
    SetVehicleToRespawn(LSPDCars[i]);
    SetVehicleHealth(LSPDCars[i],1000.0);
    }
    }


    //...
    IsVehicleOccupied(vehicleid)
    {
    for(new p;p<MAX_PLAYERS;p++)
    if(GetPlayerVehicleID(p) == vehicleid)return 1;
    return 0;
    }

    ungetestet aber so in der Art müsste es funktionieren

    Ohne Code ist es natürlich schwer, den Fehler ausfindig zu machen.
    Falls du OnPlayerTakeDamage/OnPlayerGiveDamage verwendest solltest du darauf achten, dass ein neuer Parameter hinzugefügt wurde:

    forward OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
    forward OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart);