Beiträge von Kaliber

    Da gibt es viele Möglichkeiten, hier mal ein paar:


    1. Möglichkeit:


    C
    if(PlayerInfo[playerid][pCarlic] == 1) SendClientMessage(playerid,-1,"Führerschein {00FF00}bestanden!");
    else SendClientMessage(playerid,-1,"Führerschein {FF0000}noch nicht bestanden!");

    2. Möglichkeit:
    SendClientMessage(playerid,-1,(PlayerInfo[playerid][pCarlic])?("Führerschein {00FF00}bestanden!"):("Führerschein {FF0000}noch nicht bestanden!"));


    3. Möglichkeit:


    new tmp[][]={"{00FF00}bestanden!", "{FF0000}noch nicht bestanden!"};
    format(string,sizeof(string),"Führerschein %s",tmp[PlayerInfo[playerid][pCarlic]]);
    SendClientMessage(playerid,-1,string);




    :D

    Naja, das sollte nicht allzu schwer sein, da brauchst du in dem Sinne auch keine API :D


    Einfach: http://wiki.sa-mp.com/wiki/HTTP nutzen und fertig ^^


    //Edit:
    Also nur damit wir uns verstehen...du könntest an den ganzen Server auch mit SSH eine Nachricht schreiben, ist es das was du willst?
    Oder willst du spezifische Funktionen, wie einem Spieler direkt eine Nachricht schreiben oder alles mögliche, dann musst du die HTTP Funktion nehmen und das jeweils einskripten was du willst :D

    Ich weiß zwar nicht genau, was du da versuchst, aber es scheint mir, dass du einen Befehl erstellen willst, der die einlogg & auslogg nachrichten aktiviert bzw deaktiviert.


    1. Dann brauchst du eine globale Variable, am besten in das Spieler enum packen, da das dann auch gespeichert wird.


    2. Ich empfehle dir dringenst einen "cmd-prozessor" da diese sehr viel schneller, einfacher und performanter sind, als diese ständigen strcmp abfragen :)


    Als Beispiel nimm ocmd oder so :)



    So mal als grobes Beispiel :)

    funktioniert immer noch nicht.

    Das liegt daran, dass dir ein C++ Redistributable Package fehlt... (wichtig immer x86)


    Die Frage ist jetzt nur welches, da gibt es nämlich einige ^^


    Probiere Sie mal in folgender Reihenfolge: (Downloade eins von vorne (fang bei 1 an) und dann teste ob es geht, wenn nicht, downloade weiter ^^)


    1. Versuch
    2. Versuch
    3. Versuch
    4. Versuch
    5. Versuch


    Good Luck! :good:

    Naja, wenn du schon ein Registrierungssystem bzw Loginsystem hast, dann besitzt du ja bereits den Grundstein.


    Dann einfach in das bereits existierende Enum eine Variable packen, wie z.B. pAdmin


    Und dann kannst du überall so prüfen:



    C
    if(SpielerInfo[playerid][pAdmin] >= 5)
    {
        //Hier hätte der Spieler jetzt ein Adminlevel größer gleich 5
    }

    Und da du bereits ein MySQL System hast, packst du das einfach nur ins Query...im Sinne von: `Admin`='%d'


    Ich weiß nicht genau, wo deine Problematik bei diesem Thema ist.


    Im Endeffekt ist es nur eine Variable..die du dann einfach durch ein query in der Datenbank speicherst.

    Hast du eine Multiplayer Modifikation mit 50.000> Spieler gemacht? Oder einen 08/15 SA:MP Server mit 5 Spielern wo mal 2 kleine Sachen kommen?


    Da ist aber jemand bissig drauf :D


    Schlechten Tag gehabt? :)

    Nur nicht immer ¯\_(ツ)_/¯

    ...doch natürlich F5 funktioniert genauso gut wie deine Lösung?!


    Das sieht man schon ziemlich genau an der Zeilen-Zahl-Angabe am Rand

    Genau..sowas wie Kommentare existieren natürlich nicht.


    Und man kann es auch einfach an das Objekt machen, was zuletzt erstellt wird..unabhängig von seinem Ort...


    Und in fast allen Anwendungsfällen ist deine "Lösung" nur halbgar, daher bezeichne ich diese als schlecht.

    Allet klar das macht natürlich voll Sinn

    Das klappt beim Streamer aber nicht bzw. nur bedingt.

    Das soll auch gar nicht beim Streamer klappen, deshalb sagte ich, er soll ans Ende der Map gehen da dort alle Streamer Objekte zerstört wurden.


    Warum sollte man Objekte nur bei OnGameModeInit erstellen? Es gibt genügend Fälle, Objekte irgendwann zu erstellen und auch wieder zu löschen.

    Jo...aber ich denke diese Menge kann er einkalkulieren, ich denke es ging ihm um seine Map. Die man unter OnGameModeInit normalerweise erstellt


    Wie dem auch sei...du musst nicht sagen, dass das schlechte Methoden sind...denn diese funktionieren genauso gut wie deine...und die eine sogar ohne zusätzlichen Code...

    Das ist eine schlechte Lösung, vor allem dann, wenn man ein Objekt löscht, dann klappt das nämlich nicht.

    Ja natürlich unter OnGameModeInit löscht man direkt ein Objekt...


    und das unter F5 zeigt die aktuellen Objekte an.


    GetObjectCount()

    Wenn man ein Objekt löscht..wird es hier auch nicht angezeigt.


    Zudem sollte noch erwähnt werden, dass diese Funktion aufgerufen werden sollte, nachdem die Objekte erstellt wurden...

    Huch, hatte einen Fehler in der Funktion getPlayerSpeed, schreib sie so:


    C
    stock getPlayerSpeed(playerid)
    {
        new Float:x,Float:y,Float:z,v=GetPlayerVehicleID(playerid);
        if(!v) GetPlayerVelocity(playerid,x,y,z);
        else GetVehicleVelocity(v,x,y,z);
        return floatround(VectorSize(x,y,z) * 161.0);
    }

    Wie meinst du das genau? Mit Filterscripts oder ohne?


    Wenn du alle CreateObjects an einem Fleck hast, dann sieht das ja so aus:



    C
    CreateObject(...);
    CreateObject(...);
    CreateObject(...);
    CreateObject(...);
    //Und bei dem letzten CreateObject
    new objects = CreateObject(...);
    printf("Anzahl der Objekte: %d",objects);

    Allerdings solltest du CreateDynamicObject verwenden. (Also einen Streamer)


    Ingame kannst du dir das eig auch ganz schnell anzeigen lassen...fliege ans Ende der Map wo keine Objekte mehr sind und dann drück F5.
    Dort siehst du dann ObjectSlotsUsed und das sind auch die Anzahl deiner CreateObjects (da CreateDynamicObjects gelöscht werden würden).

    Da sollte wohl noch jemand gründlicher ins Wiki schauen und sich das in Ruhe durchlesen.


    wie soll ich bitte einen Timer erstellen der sich alle 250ms aktualisiert

    Ich würde fast sagen mit [wiki]SetTimer[/wiki] oder [wiki]SetTimerEx[/wiki], je nachdem wie du es nutzen willst.


    Willst du von mir, dass ich dir den ganzen Code auf einem Silber-Tablett serviere oder wie? :D


    Dann hier ein Beispiel:


    aber wie

    ...da gibt es bestimmt tausende von Tutorials etc zu.


    Grobe Richtung...du brauchst einen Timer...der sich ca alle 250ms aktualisiert, je nachdem wie flüssig du es haben willst.


    Anschließend prüfst du ob der Spieler sich in einem Fahrzeug befindet.


    Wenn ja, verwendest du format & getPlayerSpeed und zeigst es dem Spieler mit: [wiki]PlayerTextDrawSetString[/wiki] an.


    und fertig :)


    //Edit auf dein Edit:
    Dann aktualisierst du den String nicht :)