Strings ablesen

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
  • Hi,
    habe folgendes Problem.
    Wenn man einen Personal Ausweis beantragt, muss man in Dialogen verschiedene Angaben machen.
    Undzwar Alter, Geschlecht und Wohnort.
    Wohnort und Alter muss man selber eintippen, das Geschlecht aus der Liste wählen...
    Abgespeichert wird das ganze in einer .ini Datei, was auch funktioniert.
    Das Problem ist nur das Ablesen!
    Wenn man /stats macht bleiben die Felder Alter und Wohnort leer...


    Also: Alter & Wohnort werden NICHT abgelesen.

    dcmd_stats(playerid, params[])
    {
    #pragma unused params
    new string[128];
    new ftext[20], ctext[20], jtext[20], gesch[20], ltext[20], Alter, geld;
    Alter = pInfo[playerid][pAlter];
    geld = GetPlayerMoney(playerid);
    if(pInfo[playerid][pPerso] == 1)
    {
    switch(pInfo[playerid][pJob])
    {
    case 0: jtext = "Arbeitslos";
    case 1: jtext = "Bäcker";
    case 2: jtext = "Händler";
    case 3: jtext = "Dealer";
    case 4: jtext = "Steuereintreiber";
    case 5: jtext = "Holzlieferant";
    }
    switch(gTeam[playerid])
    {
    case 0: ftext = "Zivilist";
    case 1: ftext = "LSPD";
    case 2: ftext = "SWAT";
    case 3: ftext = "Army";
    case 4: ftext = "Grove Street";
    case 5: ftext = "Ballas";
    case 6: ftext = "Vagos";
    case 7: ftext = "LCN";
    case 8: ftext = "Medic";
    case 9: ftext = "Undergroundfighters";
    case 10: ftext = "Fahrschule";
    case 11: ftext = "SAN News";
    case 12: ftext = "Terrorist";
    }
    switch(pInfo[playerid][pCarLic])
    {
    case 0: ctext = "Nicht bestanden";
    case 1: ctext = "Bestanden";
    }
    switch(pInfo[playerid][pLeader])
    {
    case 0: ltext = "Nein";
    case 1..12: ltext = "Ja";
    }
    switch(pInfo[playerid][pGeschlecht])
    {
    case 0: gesch = "Männlich";
    case 1: gesch = "Weiblich";
    }
    format(string, sizeof (string), "Herkunft: %s\nGeschlecht: %s\nGeld: %d\nFraktion: %s\nFührerschein: %s\nLeader: %s\nAlter: %d\nJob: %s\nAdmin: %d", pInfo[playerid][pWohnort],gesch,geld,ftext,ctext,ltext,Alter,jtext, pInfo[playerid][pRank]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_LIST, "Statistik",string,"Okay","Abbrechen");
    }
    else if(pInfo[playerid][pPerso] == 0)
    {
    SendClientMessage(playerid, COLOR_RED, "Du musst dir erst in der Stadthalle einen Personalausweis besorgen!");
    }
    return 1;
    }

  • zeig mal wie du die sachen aus der datei rausliest ... oder mach einfach zu test einen debug befehl z.B:
    dcmd_debug(playerid,params[])
    {
    new string[128];
    format(string,sizeof(string),"Wohnort:%s Alter:%d",pInfo[playerid][pWohnort],Alter);
    SendClientMessage(playerid,COLOR,string);
    return 1;
    }


    wenn da nix kommt dann weißt du dass ein fehler beim rauslesen(aus der datei in die variable) ist ...

  • Geht auch nicht.
    Hab nochmal in die .ini Datei geschaut, seltsamerweise ist das alles wieder weg...
    So sieht mein Disconnect aus:

    public OnPlayerDisconnect(playerid, reason)
    {
    new accFormat[128];
    new pName[MAX_PLAYER_NAME];
    new string[56];
    GetPlayerName(playerid, pName, sizeof(pName));
    switch(reason)
    {
    case 0: format(string, sizeof(string), "%s hat den Server verlassen. (Error)", pName);
    case 1: format(string, sizeof(string), "%s hat den Server verlassen.", pName);
    case 2: format(string, sizeof(string), "%s hat den Server verlassen. (Kick/ban)", pName);
    }
    SendClientMessageToAll(COLOR_RED, string);
    format(accFormat,sizeof accFormat,"%s.datei",pName);
    DeleteTicket(playerid);
    if(fexist(accFormat) && ploggedin[playerid] == 1)
    {
    pInfo[playerid][pGeld] = GetPlayerMoney(playerid);
    pInfo[playerid][pWanted] = GetPlayerWantedLevel(playerid);
    pInfo[playerid][pSkin] = GetPlayerSkin(playerid);
    dini_IntSet(accFormat,"pWanted",pInfo[playerid][pWanted]);
    dini_IntSet(accFormat,"pSkin",pInfo[playerid][pSkin]);
    dini_IntSet(accFormat,"pRank",pInfo[playerid][pRank]);
    dini_IntSet(accFormat,"pLeader",pInfo[playerid][pLeader]);
    dini_IntSet(accFormat,"pTut",pInfo[playerid][pTut]);
    dini_IntSet(accFormat,"pAlter",pInfo[playerid][pAlter]);
    dini_IntSet(accFormat,"pFraktion",gTeam[playerid]);
    dini_IntSet(accFormat,"pGeld",pInfo[playerid][pGeld]);
    dini_IntSet(accFormat,"pPerso",pInfo[playerid][pPerso]);
    dini_IntSet(accFormat,"pWarns",pInfo[playerid][pWarns]);
    dini_IntSet(accFormat,"pSsperre",pInfo[playerid][pSsperre]);
    dini_IntSet(accFormat,"pNagelband",pInfo[playerid][pNagelband]);
    dini_Set(accFormat,"pGeschlecht",pInfo[playerid][pGeschlecht]);
    dini_Set(accFormat,"pWohnort",pInfo[playerid][pWohnort]);
    dini_IntSet(accFormat,"pCarLic",pInfo[playerid][pCarLic]);
    dini_IntSet(accFormat,"pBombe",pInfo[playerid][pBombe]);
    dini_IntSet(accFormat,"pFRank",pInfo[playerid][pFRank]);
    dini_IntSet(accFormat,"pJob",pInfo[playerid][pJob]);
    dini_IntSet(accFormat,"pSBBombe",pInfo[playerid][pSBBombe]);
    dini_IntSet(accFormat,"pJail",pInfo[playerid][pJail]);
    dini_IntSet(accFormat,"pJailTime",pInfo[playerid][pJailTime]);
    }
    pInfo[playerid][pWanted] = 0;
    pInfo[playerid][pSkin] = 0;
    pInfo[playerid][pCarLic] = 0;
    pInfo[playerid][pGeld] = 0;
    pInfo[playerid][pTut] = 0;
    pInfo[playerid][pJob] = 0;
    pInfo[playerid][pAlter] = 0;
    pInfo[playerid][pPerso] = 0;
    pInfo[playerid][pRank] = 0;
    pInfo[playerid][pSsperre] = 0;
    pInfo[playerid][pNagelband] = 0;
    pInfo[playerid][pBombe] = 0;
    pInfo[playerid][pSBBombe] = 0;
    pInfo[playerid][pWarns] = 0;
    pInfo[playerid][pPerso] = 0;
    pInfo[playerid][pFRank] = 0;
    pInfo[playerid][pJail] = 0;
    pInfo[playerid][pJailTime] = 0;
    pInfo[playerid][pLeader] = 0;
    gTeam[playerid] = 0;
    SetPlayerMoney(playerid, 0);
    SetPlayerSkin(playerid, 0);
    SetPlayerWantedLevel(playerid, 0);
    return 1;
    }


    Und hier wirds geladen:

    pInfo[playerid][pWanted] = dini_Int(accFormat,"pWanted");
    pInfo[playerid][pSkin] = dini_Int(accFormat,"pSkin");
    pInfo[playerid][pRank] = dini_Int(accFormat,"pRank");
    pInfo[playerid][pLeader] = dini_Int(accFormat,"pLeader");
    pInfo[playerid][pTut] = dini_Int(accFormat,"pTut");
    pInfo[playerid][pAlter] = dini_Int(accFormat,"pAlter");
    pInfo[playerid][pGeld] = dini_Int(accFormat,"pGeld");
    pInfo[playerid][pPerso] = dini_Int(accFormat,"pPerso");
    pInfo[playerid][pWarns] = dini_Int(accFormat,"pWarns");
    pInfo[playerid][pGeschlecht] = dini_Int(accFormat,"pGeschlecht");
    pInfo[playerid][pWohnort] = dini_Int(accFormat,"pWohnort");
    pInfo[playerid][pCarLic] = dini_Int(accFormat,"pCarLic");
    pInfo[playerid][pBombe] = dini_Int(accFormat,"pBombe");
    pInfo[playerid][pNagelband] = dini_Int(accFormat,"pNagelband");
    pInfo[playerid][pSsperre] = dini_Int(accFormat,"pSsperre");
    pInfo[playerid][pSBBombe] = dini_Int(accFormat,"pSBBombe");
    pInfo[playerid][pJail] = dini_Int(accFormat,"pJail");
    pInfo[playerid][pFRank] = dini_Int(accFormat, "pFRank");
    pInfo[playerid][pJob] = dini_Int(accFormat,"pJob");
    pInfo[playerid][pJailTime] = dini_Int(accFormat,"pJailTime");
    SetPlayerWantedLevel(playerid, pInfo[playerid][pWanted]);
    SetPlayerMoney(playerid, pInfo[playerid][pGeld]);
    SetPlayerSkin(playerid, pInfo[playerid][pSkin]);


  • pInfo[playerid][pWohnort] = dini_Int(accFormat,"pWohnort");



    zu


    pInfo[playerid][pWohnort] = dini_Get(accFormat,"pWohnort");

    Da das ja strings sind und keine zahlen muss da wie beim passwort auch dini_Get(file[],key[])
    hin.
    Hoffe konnte helfen


    //edit enum übersehen geschlecht hat kein string