Beiträge von Jeffry

    Wieso ist [...] noch drinne?

    Stimmt, die obere Abfrage hatte ich übersehen.
    Versuche es so:
    if(strcmp(cmdtext,"/flock",true)==0)
    {
    if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER) return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du musst der Fahrer dieses Fahrzeuges sein.");
    new Carid = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3], Float:dist = 20.0, Float:tmp;
    for(new i=0;i<MAX_FRACTION_CARS; i++)
    {
    GetVehiclePos(FractionCars[i][fCarid], Pos[0], Pos[1], Pos[2]);
    tmp = GetPlayerDistanceFromPoint(playerid, Pos[0], Pos[1], Pos[2]);
    if(tmp < dist)
    {
    Carid = i;
    dist = tmp;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    Carid = GetPlayerVehicleID(playerid);
    }
    if(Carid == INVALID_VEHICLE_ID)return SendClientMessage(playerid,-1,"Es befindet sich keines Fraktionsfahrzeug in der Nähe.");
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
    {
    if(FractionCars[fc][fCarid] == Carid)
    {
    for(new f;f<5;f++)
    {
    if(SpielerInfo[playerid][sMember] == FractionCars[fc][fFraction])
    {
    if(FractionCars[fc][fLock])
    {
    FractionCars[fc][fLock]=false;
    fUnlockCar(FractionCars[fc][fCarid]);
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
    return true;
    }
    if(!FractionCars[fc][fLock])
    {
    fLockCar(FractionCars[fc][fCarid]);
    FractionCars[fc][fLock]=true;
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
    return true;
    }
    }
    }
    }
    }
    fc++;
    }
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du sitzt in keinem Fraktionsfahrzeug!");
    }

    Versuche es so:
    if(strcmp(cmdtext,"/flock",true)==0)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new Carid = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3], Float:dist = 20.0, Float:tmp;
    for(new i=0;i<MAX_FRACTION_CARS; i++)
    {
    GetVehiclePos(FractionCars[i][fCarid], Pos[0], Pos[1], Pos[2]);
    tmp = GetPlayerDistanceFromPoint(playerid, Pos[0], Pos[1], Pos[2]);
    if(tmp < dist)
    {
    Carid = i;
    dist = tmp;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    Carid = GetPlayerVehicleID(playerid);
    }
    if(Carid == INVALID_VEHICLE_ID)return SendClientMessage(playerid,-1,"Es befindet sich keines Fraktionsfahrzeug in der Nähe.");
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
    {
    if(FractionCars[fc][fCarid] == Carid)
    {
    for(new f;f<5;f++)
    {
    if(SpielerInfo[playerid][sMember] == FractionCars[fc][fFraction])
    {
    if(FractionCars[fc][fLock])
    {
    FractionCars[fc][fLock]=false;
    fUnlockCar(FractionCars[fc][fCarid]);
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
    return true;
    }
    if(!FractionCars[fc][fLock])
    {
    fLockCar(FractionCars[fc][fCarid]);
    FractionCars[fc][fLock]=true;
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
    return true;
    }
    }
    }
    }
    }
    fc++;
    }
    }
    else
    {
    if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du musst der Fahrer dieses Fahrzeuges sein.");
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du muss in einem Fahrzeug sitzen.");
    }
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du sitzt in keinem Fraktionsfahrzeug!");
    }

    Versuche es so:
    if (strcmp(cmd, "/ränge", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new string1[600];
    for(new i = 0; i < sizeof(FraktionsRang); i++)
    {
    if(PlayerInfo[playerid][pMember] == FraktionsRang[i][fr_frak] || PlayerInfo[playerid][pLeader] == FraktionsRang[i][fr_frak])
    {
    format(string1, sizeof(string1), "{FFFFFF}Rang 1: %s\nRang 2: %s\nRang 3: %s\nRang 4: %s\nRang 5: %s\nRang 6: %s\nRang 7: %s",FraktionsRang[i][fr_rang1], FraktionsRang[i][fr_rang2], FraktionsRang[i][fr_rang3], FraktionsRang[i][fr_rang4], FraktionsRang[i][fr_rang5], FraktionsRang[i][fr_rang6], FraktionsRang[i][fr_rang7]);
    ShowPlayerDialog(playerid, DIALOG_RANG_ANZEIGEN, DIALOG_STYLE_MSGBOX, "Fraktion Rangnamen:",string1, "O.K.","");
    return 1;
    }
    }
    }
    return SendClientMessage(playerid, COLOR_WHITE, "Deine Fraktion besitzt {FF8484}keine{FFFFFF} Ränge!");
    }

    Erstellst du sie mit der kleinsten Auflösung, dann passen sie bei der größten nicht, und andersherum.
    Prinzipiell wäre es am besten, ist eben ein ziemlicher Aufwand, wenn man den Spieler beim Registrieren fragt, welche Auflösung er nutzt, und dann entsprechend der Auflösung das eine oder das andere Textdraw anzeigt (hohe oder niedrige Auflösung).
    Man müsste dann eben jedes Textdraw doppelt erstellen, einmal auf der höchsten und einmal auf der niedrigsten Auflösung. Das würde dann wahrscheinlich alles abdecken.

    Der Code mit dem gettime muss ja aber auch in einem Timer stehen, der gleich oft oder viel öfter aufgerufen wird. Das wäre nur eine extra Arbeit, da die Prüfung ob die Zeit vorbei ist durch den Timer ja ohnehin geregelt ist (der wird ja nicht vorher aufgerufen).

    Fehlermeldungen:
    public OnPlayerModelSelection(playerid, response, extraid, modelid):

    Das forward sieht so aus:
    forward OnPlayerModelSelection(playerid, response, listid, modelid);


    Somit muss dein public so aussehen:
    public OnPlayerModelSelection(playerid, response, listid, modelid)


    Wenn das den Fehler nicht behebt, dann aktualisiere die Include, oder schaue in der Include nach, wie das "OnPlayerModelSelection" dort deklariert wurde.


    http://forum.sa-mp.com/showthread.php?t=407045

    Das kommt auf die Leistung des Servers und die Leistung des Rechners eines jeweiligen Spielers an.


    Es könnte höchstens sein, dass es etwas dauert bis man alle Textdraws sieht, bzw. sie nacheinander auftauchen, ansonsten dürfte es keine Probleme geben.

    format(query, sizeof(query), "INSERT INTO FracVehicles (ID, ModelID, Gekauft, Zerstoert, PosX, PosY, PosZ, PosA, CarHealth, Color1, Color2, FracID) VALUES ('%d', '%d', '%d, '%d', '%f', '%f', '%f', '%f', '%f', '%d', '%d', '%d')",
    Zu
    format(query, sizeof(query), "INSERT INTO FracVehicles (ID, ModelID, Gekauft, Zerstoert, PosX, PosY, PosZ, PosA, CarHealth, Color1, Color2, FracID) VALUES ('%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%f', '%d', '%d', '%d')",


    Beim dritten %d hat ein ' gefehlt.

    Der Log zeigt, dass der Fehler beim CREATE TABLE Query sein sollte. Durch genaues Hinschauen und die Erfahrung ist mir dann aufgefallen, dass bei der letzten Spalte ein Komma am Ende ist, das darf da nicht sein.


    format(query, sizeof(query), "%s `FracID` int(11) NOT NULL DEFAULT '-1',", query);
    Zu
    format(query, sizeof(query), "%s `FracID` int(11) NOT NULL DEFAULT '-1'", query);

    Dazu musst du den Debug Modus einschalten, um zu sehen, welches Query abgesendet wird.
    mysql_log(LOG_ALL);


    Dann lasse dir den Fehler nochmal ausgeben, und schaue welches Query zuvor im MySQL Log steht. Entsprechend kannst du dann den Code posten bzw. anschauen.
    Bei der Fehlermeldung ist es schwieriger den Fehler zu finden, da keine Position angegeben wird.