Abfragen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey, ich hab ein Problem. Ich möchte, das wenn ein Skin schon vorhanden ist, der Spieler spawnt und der geladen wird, und wenn keins, der sich eins aussuchen kann... Wie mach ich das mit Dini, sodass er aussliest, ob bei der Textdatei schon der Skin vorhanden ist?


    public OnPlayerRequestClass(playerid, classid)
    {
    string=dini_Get("Accounts/%s.txt","PSkin");
    if(strcmp(string,"PSkin",false)==0)
    {
    SpawnPlayer(playerid);
    }
    else
    {
    SetPlayerPos(playerid,2106.5654,1788.9365,10.6719);
    SetPlayerFacingAngle(playerid,245.1837);
    SetPlayerCameraPos(playerid,2111.6599,1786.5791,10.6719);
    SetPlayerCameraLookAt(playerid,2106.5654,1788.9365,10.6719);
    }
    return 1;
    }

    <buqja>: brauche 3 mercs fürn 3o3

    Einmal editiert, zuletzt von JOkE ()


  • public OnPlayerRequestClass(playerid, classid)
    {
    new path[20], spielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, spielerName, sizeof(spielerName));
    format(path, sizeof(path), "/Accounts/%s.txt", spielerName);
    if(dini_Int(path, "PSkin") == 0)
    {
    SetPlayerPos(playerid,2106.5654,1788.9365,10.6719);
    SetPlayerFacingAngle(playerid,245.1837);
    SetPlayerCameraPos(playerid,2111.6599,1786.5791,10.6719);
    SetPlayerCameraLookAt(playerid,2106.5654,1788.9365,10.6719);
    //Nicht vergessen den Skin dann via "dini_IntSet(path, "PSkin", classid)" zu speichern. :)
    }
    else
    {
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid, dini_Int(path, "PSkin"));
    }
    }
    Ungetestet aber compilt. Bringt keine Errors.


    Ich gehe jetzt mal nicht davon aus, dass du eine Erklärung dazu benötigst. Falls doch, sag einfach bescheid.


    Gruß,
    Neo. :)

  • wenn die datei schon existiert musst du if(dini_Exists(Spielerdatei))
    die spielerdatei musst du noch so schrieben wie sie bei dir ist


    Die Spielerdatei existiert sofort wenn man sich registriert hat, und wenn ich das abfrage beim RequestPlayeClass wird er nie zur Skinauswahl kommen... deswegen wollte ich direkt nach dem Part "PlayerSkin" abfragen, die in der Spielerdatei sein wird, und dir wird ja erst kriiert beim disconnecten. Somit kann man ja erst ein Skin wählen. Beim zweiten connecten wird er dann geladen, aber nur wie :wacko: :?:


    Ich will das dini_IntSet(path, "PSkin", classid) beim Disconnecten Speichern. Doch wie? Bei mir kommt ein error: Undefined symbol classid ...


    Kann wer helfen?


    Neo?

    <buqja>: brauche 3 mercs fürn 3o3

    3 Mal editiert, zuletzt von JOkE ()

  • Das das nicht funktioniert ist klar, da das Callback OnPlayerDiconnect classid nicht hat.
    Dafür benutzt du dann die PVar.
    Du musst in OnPlayerRequestClass die classid mit SetPVarInt(playerid, "PSkin", classid) speichern und dann kannst du
    es beim Disconnecten via dini_IntSet(path, "PSkin" GetPVarInt(playerid, "PSkin")) speichern. (Nicht vergessen den Path zu definieren.)


    Gruß,
    Neo. :)