Beiträge von Jeffry

    Oskaar1994: Versuch es mal so:
    PilotJob[playerid] = CreatePlayerTextDraw(playerid, 118.952415, 134.193328, "_");
    PlayerTextDrawBackgroundColor(playerid,PilotJob[playerid],255);
    PlayerTextDrawFont(playerid, PilotJob[playerid], 5);
    PlayerTextDrawLetterSize(playerid, PilotJob[playerid], -0.129999, -0.700000);
    PlayerTextDrawTextSize(playerid, PilotJob[playerid], -200.000000, 249.000000);
    PlayerTextDrawColor(playerid, PilotJob[playerid], 0);
    PlayerTextDrawSetOutline(playerid, PilotJob[playerid], 0);
    PlayerTextDrawSetProportional(playerid, PilotJob[playerid], 1);
    PlayerTextDrawSetShadow(playerid, PilotJob[playerid], 0);
    PlayerTextDrawUseBox(playerid, PilotJob[playerid], true);
    PlayerTextDrawBoxColor(playerid, PilotJob[playerid], -16711681);
    PlayerTextDrawSetPreviewModel(playerid, PilotJob[playerid], 61);


    PlayerTextDrawShow(playerid,PilotJob[playerid]);
    PlayerTextDrawSetSelectable(playerid, PilotJob[playerid], true);


    Wenn es so funktioniert, lag es wohl daran, dass du bei manchen Werten 0.0 als Größe hattest.

    Wenn es generell nicht tut, dann versuch es mal auf einem "leeren" Server (kein Code) zu erstellen, bzw. nutze auch einen TextDraw Editor. Wenn es dann tut, kannst du das Textdraw ja kopieren und einfügen. Falls es nicht tut (auch nicht beim leeren Code) poste bitte den Code.

    Du bist dir sicher, dass du nicht die Limits von Textdraws erreicht hast? Wenn ja, poste doch bitte mal ein Beispiel von einem Preview das geht, aus deinem Code. (Steht es vor/nach dem obigen Code?)

    Auf Anfrage in PM:


    if(PlayerInfo[killerid][pHeadValue] > 0 && IsPlayerConnected(playerid) && IsAHitman(playerid) && GoChase[playerid] == killerid && killerid != INVALID_PLAYER_ID){
    Nur ein Beispiel von vielen.


    Die Anfrage "killerid != INVALID_PLAYER_ID" muss immer vor dem ersten [killerid] in einer if-Abfrage stehen, sonst funktioniert es nicht, da von links nach rechts "durchgetestet" wird.


    if(killerid != INVALID_PLAYER_ID && PlayerInfo[killerid][pHeadValue] > 0 && IsPlayerConnected(playerid) && IsAHitman(playerid) && GoChase[playerid] == killerid){
    Das musst du so bei allen machen, dann wird es funktionieren.

    Auf Anfrage in PM:



    Bei accept:
    Wuerfeluser[Wuerfeluser[playerid]] = playerid;
    Wuerfelgeld[Wuerfeluser[playerid]] = Wuerfelgeld[playerid];
    Wuerfelpunkte[playerid] = 0;
    Wuerfelrunde[playerid] = 1;
    Wuerfelpunkte[Wuerfeluser[playerid]] = 0;
    Wuerfelrunde[Wuerfeluser[playerid]] = 1;
    Wuerfeldran[playerid] = playerid;
    Wuerfeldran[Wuerfeluser[playerid]] = playerid;


    Und das hier ausbessern:
    GivePlayerMoneys(Wuerfelgeld[playerid],-Wuerfelgeld[playerid]);
    zu:
    GivePlayerMoneys(Wuerfeluser[playerid],-Wuerfelgeld[playerid]);




    new Wuerfeluser[MAX_PLAYERS] = {-1,...},
    Wuerfelgeld[MAX_PLAYERS],
    Wuerfelrunde[MAX_PLAYERS],
    Wuerfelpunkte[MAX_PLAYERS],
    Wuerfeldran[MAX_PLAYERS];


    ocmd:dice(playerid,params[]){
    if(Wuerfeluser[playerid] == -1) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht in einem Würfelduell.");
    if(Wuerfeldran[playerid] != playerid) return SendClientMessage(playerid, 0xFF0000FF, "Du bist nicht dran.");
    new pkt = random(5)+1, string[144];
    Wuerfelpunkte[playerid] += pkt;
    format(string, sizeof(string), "[Runde %d] %s würfelt eine %d. Gesamt: %d", Wuerfelrunde[playerid], SpielerName(playerid), pkt, Wuerfelpunkte[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(Wuerfeluser[playerid], COLOR_LIGHTBLUE, string);
    if(Wuerfelrunde[playerid] == 3 && Wuerfelrunde[Wuerfeluser[playerid]] == 3)
    {
    new win, lose;
    if(Wuerfelpunkte[playerid] > Wuerfelpunkte[Wuerfeluser[playerid]]) win = playerid, lose = Wuerfeluser[playerid];
    else if(Wuerfelpunkte[playerid] < Wuerfelpunkte[Wuerfeluser[playerid]]) win = Wuerfeluser[playerid], lose = playerid;
    else win = -1;
    if(win != -1) format(string, sizeof(string), "[Ende] %s gewinnt. Gesamt: %d (%s: %d)", SpielerName(win), Wuerfelpunkte[win], SpielerName(lose), Wuerfelpunkte[lose]);
    else format(string, sizeof(string), "[Ende] Unentschieden! Beide haben %d Punkte.", Wuerfelpunkte[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(Wuerfeluser[playerid], COLOR_LIGHTBLUE, string);
    Wuerfeluser[Wuerfeluser[playerid]] = -1;
    Wuerfeluser[playerid] = -1;
    return 1;
    }
    Wuerfelrunde[playerid]++;
    Wuerfeldran[playerid] = Wuerfeluser[playerid];
    Wuerfeldran[Wuerfeluser[playerid]] = Wuerfeluser[playerid];
    return 1;
    }



    Ich konnte es nicht testen, probier es bitte selber aus. Wenn es nicht tut, dann beschreib bitte was nicht tut, dann schreibe ich es auf mein CMD System um und teste es nachdem ich es geändert habe.



    Wobei du natürlich noch sämtliche Ausnahmen abfangen musst (Spieler verlässt den Server etc.).

    Dann liegt der Fehler entweder nicht hier, oder nicht nur hier.
    Die Variablen sind zudem richtig toll benannt, da kann man kaum auf etwas schließen.


    Am besten du machst es komplett raus und von Grund auf neu. Dann weißt du was du gemacht hast und kannst eventuelle Fehler direkt beheben.


    FBIHQ_Banner = CreateObject(19464, 1052.09363, 1023.46216, 24.75281, 0.0000, 0.0000, 233.93999, 300.0);
    SetObjectMaterialText(FBIHQ_Banner, "{FFFF00}FBI", 0, 140, "Arial", 255, 1, 0x00000000, 0x00000000, 1);

    Wobei es bei mir auch schon gelb war mit dem Code den ich dir zuvor gegeben habe.

    Mal unabhängig von dem was Goldkiller schon geschrieben hat (er hat völlig Recht!) hier ein Lösungsansatz:



    Bei SavePlayerVehicle:
    new parkID;
    parkID = GetPlayerVehicleID(playerid);

    ersetzen mit:


    new tmpid = GetPlayerVehicleID(playerid), parkID = -1;
    for(new i=0; i<sizeof(cInfo); i++) if(cInfo[i][id_x] == tmpid) parkID = i;
    if(parkID == -1) return SendClientMessage(playerid,COLOR_RED,"This is no private vehicle.");