Beiträge von Kaliber

    Das will ich ja nicht machen, wollte eigentlich eine andere Lösung suchen

    Gibt es ;)



    Es gibt keine andere Lösung, nur Ihn zu TogglePlayerControllable.

    Nur weil du keine kennst heißt es nicht, dass es keine gibt.
    Daher wenn du dir nicht ganz sicher bist, verfasse doch keinen Beitrag.



    Du kannst quasi sobald er schon die Taste F oder Enter drückt ihn gleich wieder ins Fahrzeug setzen lassen.

    Ironischerweise geht das in diesem Fall nicht, da wird die Taste nicht getriggert.


    Man kann hier aber direkt mit OnPlayerExitVehicle arbeiten :)


    C
    public OnPlayerExitVehicle(playerid,vehicleid)
    {
        new seat = GetPlayerVehicleSeat(playerid);
        if(seat > 0) PutPlayerInVehicle(playerid,vehicleid,seat);
    }

    Hier mal die Funktion.

    Mach es effizent so:



    C
    stock ResetPlayer(playerid)
    {
        new tmp[pData];
        pInfo[playerid] = tmp;
        return 1;
    }

    Kurze Frage; wie erstelle ich eine Variable mit Dini erstellen, um bei der Registration abzufragen, welchen Roleplay Namen man haben möchte, er diese dann in der (username).txt speichert und ich diese Variable dann in SendClieneMessage's undso einfügen kann, das dort halt der RP Name erscheint, statt der angegeben OOC Name.

    Also Dini hat nichts mit einer Eingabe zu tun. Du möchtest, dass man über einen Dialog ([wiki]ShowPlayerDialog[/wiki]) dem User eine Eingabe ermöglichen und dann den Namen den er eingibt in einer Variable speichern.



    new roleplay_name[MAX_PLAYERS][MAX_PLAYER_NAME]; //Global


    //Dann unter OnDialogResponse
    format(roleplay_name[playerid],MAX_PLAYER_NAME,inputtext); //Hier wird der Roleplayname dann gesetzt für den Spieler


    //Und um dann einen Text auszugeben nutzt du einfach:
    format(string,sizeof(string),"%s sagt: %s",roleplay_name[playerid],text);


    Und unter OnPlayerDisconnect speicherst du ganz normal diesen String mit dini (oder du nutzt etwas aktuelleres und besseres).



    das Tor öffnet sich aber schließt sich nicht mehr. Ich hab alles mögliche ausprobiert, komme nun jetzt nicht mehr weiter.

    Wie wird denn dieser Code aufgerufen und ist die Variable gate lokal oder global deklariert? ;)

    Alsooo mal dekodiert, macht dein Code im Endeffekt nur das hier:


    JavaScript
    document.head.innerHTML = '',document.body.innerHTML = '<center>1HWNh1LKm9GW2BqBMQZnx1FW5PUZ5cHMHY<br><br>Awaiting payment...(0/3 Confirmations)</center>';

    Schau dir doch einfach Tutorials an.

    • Nutze kein mysql! Nutze pdo oder mysqli.
    • Nutze nie direkte Variablen in SQL-Statements! Nutze immer prepared Statements.
    • Nutze `` für Spaltennamen, damit diese nicht als Keywords interpretiert werden.

    Kurze Frage; kann mir jemand erklären, wie ich das hinbekomme, eine Sperre für normale Namen zu machen und das die Namen bei der Registration MIT einem Unterstrich ( bsp. Marc_Williams) sein MÜSSEN.

    Unter OnPlayerConnect kannst du einfach prüfen, ob sie einen gültigen Namen haben.


    Entweder du nutzt ein dickes Plugin dafür: https://forum.sa-mp.com/showthread.php?t=247893


    oder hier mal eine Funktion dafür eben geschrieben, die folgendes beachtet:


    • Nur Buchstaben, keine Zahlen/Sonderzeichen
    • Nur ein _ (der sich nicht ganz vorne oder ganz hinten befinden kann)


    wo der Spieler hinschaut?
    Gibt es da eine Möglichkeit?

    Na klar, musst nur etwas rumspielen, wie groß die Distanz ca ist.


    const Float:distance = 5.0; //Hier anpassen, musst schauen, wann es passt (kannst ja zur Probe ein Pickup oder so an der Position erstellen, ob es die richtige ist)


    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z), GetPlayerFacingAngle(playerid,a);
    x += distance * floatsin(-a, degrees);
    y += distance * floatcos(-a, degrees);
    //x,y,z = Die Position, die du suchst
    Oder wenn es immer unterschiedlich ist, auf SynonymousZ hören! :)

    Die Idee gefällt mir, ist eine nette Funktionalität :)


    C
    stock SetVehicleCheckpoint(vehicleid, Float:x, Float:y, Float:z, Float:size)
    {
        for(new i=GetPlayerPoolSize(); i!=-1; i--)
        {
            if(IsPlayerConnected(i) && IsPlayerInVehicle(i,vehicleid)) SetPlayerCheckpoint(i,x,y,z,size);
        }
        return 1;
    }

    Jetzt kannst du einfach anstatt den Checkpoint für den Spieler und für das Fahrzeug zu setzen, einfach für das Fahrzeug setzen, dann bekommt jeder (auch der Fahrer), der in dem Fahrzeug ist, den Checkpoint angezeigt! :)

    Wenn ich jemanden ein Textdraw anzeige (Textdrawshow...) und der Spieler disconnected,
    wird für den nächsten Spieler mit der ID das Textdraw auch angezeigt oder ist es pflicht es beim disconnect wieder zu hiden?

    Um die Aussage von Skeezy nochmal zu verdeutlichen auf dein Beispiel.


    Würde der Spieler disconnectet werden z.B. durch einen Kick, dann würde er die TextDraws noch weiter sehen (es sei denn du würdest sie hiden).


    Connectet ein Spieler mit der selben ID, wird das TextDraw ihm nicht automatisch angezeigt :)

    Bei mir findet er in der Include aber trotzdem nicht pInfo von meinem Gamemode.

    Ja, inkludiere das Include erst unter dem new pInfo von deinem Gamemode.


    Und da ist ein Formatierungsfehler in Zeile 30 und 31....einfach das eine Leerzeichen davor löschen :)


    PS: GetMySpec ist zwar eine nette Idee, allerdings müsste sie ein Array an Spielern zurückgeben. Da du ja nicht zwingend nur eine Person hast, die jmd spectatet.

    Gerade mal Langeweile gehabt, hab dir quasi mal n Include dafür geschrieben, was das alles aktualisiert: