Beiträge von Eisbär_


    Zitat von »Eisbär_«
    Ich werde dazu auch nichts erklären, denn es ist selbsterklärend.
    Zitat von »Eisbär_«
    Auch hierzu werde ich nichts erklären denn es ist selbsterklärend.
    Warum schreibst du dann ein Tutorial, wenn du es nicht erklären möchtest? Wenn ich doch ein Tutorial schreibe, dann erkläre ich ALLES was dazu gehört.


    Ich dachte die Funktionen wären selbsterklärend, das hat nix mit nicht erklären zu tun, danke für deine Kritik. Wird gleich verbessert.



    Wie wäre es wenn du das hier ausbesserst.
    4x PosX ?


    Entschuldige, da ist mir wohl ein kleiner Fehler unterlaufen. Wird gleich verbessert.



    Wie schon dir Oberen geschrieben haben, du hast zwar alle Funktionen alles geschrieben,
    aber du hast nichts davon erklärt. Also das heißt, ein Anfänger scriptet das nach aber weiß nicht wie er das gemacht hat.
    Also bitte ich dich nochmal das Tutorial zu überschreiben und nochmal alles ordentlich zu erklären.


    Mache ich im Laufe des Tages, ich danke euch für die Kritik !

    Guten Morgen,


    heute zeige ich euch wie ihr eure Position Speichern könnt und beim nächsten Login auch wieder dorthin gesetzt werdet.


    Als erstes geht ihr in euer enum, und fügt 4 Sachen hinzu:


    Float:PosX,Float:PosY,Float:PosZ,Float:PosA;


    PosX für die X Achse des Spielers, PosY für die Y Achse des Spielers, PosZ für die Z Achse des Spielers und PosA für die Blickrichtung des Spielers.


    Soweit so gut, begeben wir uns langsam ans Speichern der Position.


    Als erstes wollen wir heraus finden wo der Spieler steckt und in welche Blickrichtung er schaut und das geht so:


    GetPlayerPos(playerid, SpielerInfo[playerid][PosX],SpielerInfo[playerid][PosY],SpielerInfo[playerid][PosZ]);
    GetPlayerFacingAngle(playerid,SpielerInfo[playerid][PosA]);
    dini_FloatSet(/* Pfad der Datei */, "PosX", SpielerInfo[playerid][PosX]);
    dini_FloatSet(/* Pfad der Datei */, "PosY", SpielerInfo[playerid][PosY]);
    dini_FloatSet(/* Pfad der Datei */, "PosZ", SpielerInfo[playerid][PosZ]);
    dini_FloatSet(/* Pfad der Datei */, "PosA", SpielerInfo[playerid][PosA]);


    Dies schreiben wir in den Speichern stock.


    Mit GetPlayerPos(playerid,..) finden wir die Position des Spielers heraus.
    Mit der Funktion GetPlayerFacingAngle(playerid,..) finden wir die Blickrichtung des Spielers heraus.
    dini_FloatSet sorgt dafür dass wir einen Float abspeichern können.


    Jetzt haben wir schon dafür gesorgt dass die Koordinaten vom Spieler gespeichert werden und weiter ? Laden natürlich !


    SpielerInfo[playerid][PosX] = dini_Float(Spielerdatei, "PosX");
    SpielerInfo[playerid][PosY] = dini_Float(Spielerdatei, "PosY");
    SpielerInfo[playerid][PosZ] = dini_Float(Spielerdatei, "PosZ");
    SpielerInfo[playerid][PosA] = dini_Float(Spielerdatei, "PosA");
    Dies schreiben wir in den laden stock.



    Wir haben es fast geschafft, fehlt nur noch die Anweisung dass der Spieler auch dort Spawnen soll wo er sich ausgelogt hat.


    Dafür gehen wir in den Callback OnPlayerSpawn und schreiben rein:



    SetPlayerPos(playerid,SpielerInfo[playerid][PosX],SpielerInfo[playerid][PosY],SpielerInfo[playerid][PosZ]);
    SetPlayerFacingAngle(playerid,SpielerInfo[playerid][PosA]);
    Was haben wir hier gemacht?
    Wir sagen dem Spieler er soll mit SetPlayerPos(playerid,..) an seinen Koordinaten spawnen wo er sich letzens ausgeloggt hat.
    Ebenso mit der Blickrichtung, dafür verwenden wir SetPlayerFacingAngle(playerid..)


    Ich bedanke mich für das Lesen und wünsche allen noch eine Gute Nacht :sleeping:
    Bei Fragen gerne hier in den Thread rein.

    Es wäre vom Vorteil wenn du die .pwn hättest von dem Filterscript.
    Nun, dann musst du alles wieder neu 'definieren' bzw scripten, wo er spawnen soll etc.
    Und das tust du bei OnPlayerSpawn, beim alten Gf war es bei SetPlayerSpawn sollte ich mich täuschen so berichtigt mich bitte ^^

    Hab es eben auch bemerkt :I
    Probiere es kurz mal aus.
    Funktioniert, danke dir !


    @John_Hunter:


    Auch wenn ich keinen Namen eingebe sagt er mir der Name stimmt.
    Bzw das obere wird auch mit gesendet.


    So Fehler behoben, musste nur ein return einbauen.

    Guten Abend,


    ich weiß nicht wie ich weiter fortfahren soll, ich brauch nur den Teil wo der Name richtig ist, wie frage ich das ab?


    case DIALOG_ARBEITSAMTUNTERSCHRIFT:
    {
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Rot,"Unterschreibe mit deinem Namen");
    }
    else
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(strcmp(inputtext,name,false))return SendClientMessage(playerid,Rot,"Name ist falsch");
    }
    }
    }


    E: Text ist hier komisch eingerückt -.-

    Guten Abend,


    ich bin im besitzt von einer WoltLab Burning Board Lizenz und weiß ehrlich gesagt nicht was ich damit jetzt tun soll.
    Ich möchte ein Forum eröffnen, aber ich bin mir unsicher darüber in welchen Bereich das Forum gehen soll.
    Vielleicht habt ihr ja eine Idee.