Beiträge von Jeffry

    Zu deinem enum "FCarID" hinzufügen.
    Dann:


    Fraktionscars[i][FCarID] = CreateVehicle(Fraktionscars[i][FCarModel], Fraktionscars[i][FCarX], Fraktionscars[i][FCarY], Fraktionscars[i][FCarZ], Fraktionscars[i][FCarA], Fraktionscars[i][FCarCol1], Fraktionscars[i][FCarCol2], -1);


    Und OnPlayerEnterVehicle:
    for(new i=0;i<sizeof(Fraktionscars);i++)
    {
    if(vehicleid == Fraktionscars[i][FCarID] && Spieler[playerid][sFraktion] != Fraktionscars[i][FCarFrak])return SendClientMessage(playerid, -1, "Test");
    }


    Um zu verhindern, dass der Spieler ins Auto kommt:
    TogglePlayerControlable(playerid, false);
    TogglePlayerControlable(playerid, true);
    bei OnPlayerEnterVehicle.

    Naja, für das erste Problem könntest du ja einfach deine Fraktionen als ID's definieren:
    #define LSPD 0
    #define SFPD 1
    #define LVPD 2
    (...)


    Und eben:
    new FrakInfos[3][FraktionsInformationen]; //Je nach dem wie viele Fraktionen.



    Für das zweite Problem:
    Tabelle erstellen, eine Reihe für jede Fraktion machen, und dann über deren ID die jeweilige Spalte aufrufen. Dürfte kein Problem sein.

    Ja stimmt, mit mapicons wäre es auch eine Möglichkeit. Ob das aber eine so gute Idee ist weiß ich nicht, weil die dürfte es ja nur anzeigen, wenn der Spieler weiter weg ist als die Stream distance ist. Das wäre doch etwas aufwendig zu machen.

    Das kann ich dir nicht sicher sagen, aber es kann gut sein, es müssen ja mehr Fahrzeuge geladen sein. Probiers aus, dann wirste es sehen. Ich denke mal nicht dass du einen Unterschied merkst, die heutigen Server und PCs sind so leistungsfähig (wer das in 10 Jahren liest wird lachen ^^), da dürften ein paar Autos mehr nicht die Welt sein.

    8|


    Das da:
    format(string7, sizeof string7, "Premium Rang: [%s]\nWantedlevel: [%d]\nKrankheit [%s]\nKills & Deaths\n: [%d] / [%d]\nWarns: [%d]", drank,wanted,dtext,kills,deaths,pWarns);


    mit dem da:
    format(string7, sizeof string7, "Premium Rang: [%s]\nWantedlevel: [%d]\nKrankheit [%s]\nKills & Deaths\n: [%d] / [%d]\nWarns: [%d]", drank,wanted,dtext,kills,deaths,PlayerInfo[targetid][pWarns]);
    ersetzen.

    Logischerweise:
    PlayerTextDrawAlignment(statsdraw[playerid],3);
    PlayerTextDrawHideForPlayer(playerid,statsdraw[playerid]);


    Und natürlich solltest du dem PlayerTextDraw eine Font und deren Größe zuweisen, sonst wird nichts angezeigt.
    Wenn du keine Ahnung von TextDraws hast, dann nimm dir doch einen TextDraw Creator/Editor, mit dem du die TextDraws im server erstellen kannst, und speicher, dann weißt du was in die Felder kommt, damit es auch richtig angezeigt wird. ;)

    Nein, das nicht, aber das hat auch geholfen.


    In deinem Stats, dort wo pWarns steht (string7 ganz hinten), ändere das zu:
    PlayerInfo[targetid][pWarns]


    Du kannst nicht direkt das enum aufrufen, du musst es über die Variable machen.

    TextDrawLetterSize(statsbox, 0.000000, 20.424076);


    Die X Größe (also Breite) der Buchstaben beträgt 0. Du kannst gar nichts sehen.


    Mach mal:
    TextDrawLetterSize(statsbox, 1.0, 0.4);


    Wie biste denn auf dieses TextDraw gekommen, bzw. die Werte?

    Das bringt rein garnichts. PAWN überspringt die Leertasten & es kommt das gleiche bei rum 8)

    Haste Recht. Danke für die Korrektur :thumbup:



    So, aber ich hab das Problem gefunden. Und zwar versuchst du Modulo eines Floats zu machen, das geht nicht.


    format(string,sizeof(string),"~r~Km:~n~~w~%i.%iKM",vFahrzeug[vehicleid][Kilometer]/1000,floatround(vFahrzeug[vehicleid][Kilometer])%1000);
    So gehts. Die Frage ist nur was dir das bringt, du hast ja schon ein Float.
    Bist auf jeden Fall den ERROR los.

    Also du benutzt hier den Modulo Operator. Der macht beispielsweise das da:


    0 % 3 = 0
    1 % 3 = 1
    2 % 3 = 2
    3 % 3 = 0
    4 % 3 = 1
    (...)


    Verstanden?


    Warum der ERROR kommt kann ich dir nicht sagen. Probier doch mal, eine lücke rechts und links neben den Operator zu setzen, also so:
    ...]%1... zu ...] % 1...

    Ja, was sagt denn dein server log wenn du den command eingibst? Und kannst du den command zeigen, wie du es mit den prints gemacht hast?


    Als letzte Möglichkeit bleibt: Neu machen. Command löschen, und neu erstellen. Ist zwar doof, hilft aber.

    Falsch. Das Limit liegt bei 144 Zeichen!


    ocmd:news(playerid,params[])
    {
    new string[144];
    if(!strlen(params))return SendClientMessage(playerid,COLOR_GRAD2,"Benutze: /news [text]");
    if(SpielerInfo[playerid][pFraktion] != 6)return SendClientMessage(playerid,COLOR_GRAD2,"Du bist kein Mitglied der San Andreas News AG");
    format(string,sizeof(string),"[NEWS] %s: %s",SpielerName(playerid), params);
    SendClientMessageToAll(COLOR_GREEN, string);
    return 1;
    }