Firmen Lade/Speicher Fehler

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
  • Tag,
    ich wollte mich mal an etwas schwereres ranwagen und dachte ich mache mal ein Firmensystem.
    Klappt auch bis jetzt ganz gut nur das er manchmal den namen der Firma nicht richtig speichert.
    Also bei meinem Befehl


    if (strcmp("/firmastats", cmdtext, true, 10) == 0)
    {
    if(PlayerInfo[playerid][hatfirma] == 1)
    {
    for(new b=0; b<MAX_FIRMA; b++)
    {
    if(PlayerInfo[playerid][Firma] == b)
    {
    new string[128];
    format(string, sizeof(string), "Firma [%s]", FInfo[b][fname]);
    SendClientMessage(playerid, 0xFFFFFFF, string);
    SendClientMessage(playerid, 0xFFFFFFF, "________________________");
    format(string, sizeof(string), "Firmengeld: [%d], Mitglieder: [%d]", FInfo[b][geld], FInfo[b][mitglieder]);
    SendClientMessage(playerid, 0xFFFFFFF, string);
    }
    }
    }
    return 1;
    }


    steht bei Firma: immer nur [] statt (ein Beispiel) Autohaus & Co
    in der dini steht folgendes:


    Firmenname=Autohaus & Co
    Mitglieder=0
    Firmengeld=0
    Firmennummer=3


    das hab ich bei GameModeInit
    for(new b = 0, k = 0; b<MAX_FIRMA, k<MAX_PLAYERS; b++, k++)
    {
    new bn[128];
    format(bn, sizeof(bn), "%s", PlayerInfo[k][Firmenname]);
    new Firmendatei[120];
    format(Firmendatei,sizeof(Firmendatei),"/Firmen/%s.ini",bn);
    if(dini_Exists(Firmendatei))
    {
    FInfo[b][fname] = dini_Int(Firmendatei,"Firmenname");
    FInfo[b][mitglieder] = dini_Int(Firmendatei,"Mitglieder");
    FInfo[b][geld] = dini_Int(Firmendatei,"Firmengeld");
    Firmen[b] = dini_Int(Firmendatei,"Firmennummer");
    }
    }



    ich denke das da irgendwas nicht richtig geladen wird aber ich weiß nicht was


    ich hoffe mir kann jemand helfen

  • leerzeichen, war bei mir auch schon hab was mit leerzeichen in dini gemacht und der hats ned richtig gelsesen^^

  • Hm...eigentlich keine große Sache wenn man weiß was ein Integer überhaupt ist...
    Du kannst damit nicht wie du es in deinem Beispiel schilderst Buchstaben auslesen


    for(new b = 0, k = 0; b<MAX_FIRMA, k<MAX_PLAYERS; b++, k++)
    {
    new bn[128];
    format(bn, sizeof(bn), "%s", PlayerInfo[k][Firmenname]);
    new Firmendatei[120];
    format(Firmendatei,sizeof(Firmendatei),"/Firmen/%s.ini",bn);
    if(dini_Exists(Firmendatei))
    {
    FInfo[b][fname] = dini_Int(Firmendatei,"Firmenname"); //KEIN INTEGER sondern ein STRING
    FInfo[b][mitglieder] = dini_Int(Firmendatei,"Mitglieder");
    FInfo[b][geld] = dini_Int(Firmendatei,"Firmengeld");
    Firmen[b] = dini_Int(Firmendatei,"Firmennummer");
    }
    }


    Ein Integerist nichts anderes als eine ganzzahlige Nummer, du aber versuchst einen String auszulesen.
    Versuch es mal mit...


    dini_Get(dateiname, string);

    [align=center]
    Mta Script Editor - Work in Progress

  • C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(994) : error 006: must be assigned to an array


    kommt leider bei mir


    FInfo[b][fname] = dini_Get(Firmendatei,"Firmenname");
    // weiter unten...


    dini_Set(Firmendatei,"Firmenname",FInfo[i][fname]);

  • C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(994) : error 001: expected token: "]", but found "-identifier-"
    C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(994) : warning 215: expression has no effect
    C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(994) : error 001: expected token: ";", but found "]"
    C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(994) : error 029: invalid expression, assumed zero
    C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(994) : fatal error 107: too many error messages on one line


    ^^

  • Probier mal eines von beiden aus



    new Firmennamenstring[30];
    FInfo[b][fname] = format(Firmennamenstring, sizeof(Firmennamenstring), dini_Get(Firmendatei,"Firmenname"));



    new Firmennamenstring[30];
    strmid(FInfo[b][fname],dini_Get(Firmendatei, "Name"),0, Firmennamenstring, Firmennamenstring);

    [align=center]
    Mta Script Editor - Work in Progress

  • also beim ersten kommen keine errors aber bei /firmenstats steht bei firma: [ ]
    und beim zweiten kommt der error:
    C:\DOKUME~1\SNIPER~1\Desktop\0.3\GAMEMO~1\FALI.pwn(998) : error 035: argument type mismatch (argument 4)

  • Jetzt aber,
    falls nicht schick mir mal den Teil/Funktion dann erledigt sich das in den nächsten 2 Minuten...
    Lad ich mir den Compiler eben runter :sleeping:


    strmid(FInfo[b][fname],dini_Get(Firmendatei, "Name"),0, strlen(Firmennamenstring), Firmennamenstring);

    [align=center]
    Mta Script Editor - Work in Progress