Maps/Objekte aus Datei einfügen Hilfe

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
  • Hallo,


    ich gebe /load maps.txt ein aber er sagt mit, dass diese Datei nicht existiert.
    Aber sie existiert.
    Hilfe
    /load Befehl

    ocmd:load(playerid,params[])
    {
    //News
    new string[128];
    //Ist Spieler Admin?
    if (IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,l_red,"Du bist kein Admin!");
    //Überprüfung ob alles Vorhanden ist
    new Datei;
    if(sscanf(params, "s", Datei)) return SendClientMessage(playerid, l_red, "Benutzung: /load [Datei](Standard maps.txt)");
    //Eigentlicher Command
    LoadStaticObjectsFromFile(string);
    //String
    format(string,sizeof(string), "%s", Datei);
    return 1;
    }


    Load Stock

    stock LoadStaticObjectsFromFile(filename[])
    {
    new File:file_ptr, line[256], modelid, Float:SpawnX, Float:SpawnY, Float:SpawnZ, Float:SpawnRotX, Float:SpawnRotY, Float:SpawnRotZ, objects_loaded;
    file_ptr = fopen(filename, io_read);
    if(!file_ptr) return printf("ERROR! Failed To Load Objects From The File %s (File Doesn't Exist In Scriptfiles Directory)!", filename);
    while(fread(file_ptr, line) > 0)
    {
    sscanf(line, "dffffff", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
    CreateObject(modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
    objects_loaded++;
    }
    fclose(file_ptr);
    printf("Loaded %d objects from: %s", objects_loaded, filename);
    return objects_loaded;
    }

    2 Mal editiert, zuletzt von elyday ()

  • ocmd:load(playerid,params[])
    {
    //News
    new string[128];
    //Ist Spieler Admin?
    if (IsPlayerAdmin(playerid) == 0) return SendClientMessage(playerid,l_red,"Du bist kein Admin!");
    //Überprüfung ob alles Vorhanden ist
    new Datei;
    if(sscanf(params, "s", Datei)) return SendClientMessage(playerid, l_red, "Benutzung: /load [Datei](Standard maps.txt)");
    //String
    format(string,sizeof(string), "%s", Datei);
    //Eigentlicher Command
    LoadStaticObjectsFromFile(string);
    return 1;
    }

  • Ja richtig er erstellt keine Objekte weil die Datei die er übergeben bekommt keine Objekte enthält ;)
    Wie Levia_Escorbar es gepostet hat ist schon richtig, den das Problem liegt am Command, weil du den String erst nach dem aufrufen des stocks setzt, somit bekommt der stock einen leeren string, also weiß er doch garnicht welche Datei er öffnen/laden soll. ;)

  • Hier das Print hingesetzt:

    stock LoadStaticObjectsFromFile(filename[])
    {
    new File:file_ptr, line[256], modelid, Float:SpawnX, Float:SpawnY, Float:SpawnZ, Float:SpawnRotX, Float:SpawnRotY, Float:SpawnRotZ, objects_loaded;
    file_ptr = fopen(filename, io_read);
    if(!file_ptr) return printf("ERROR! Failed To Load Objects From The File %s (File Doesn't Exist In Scriptfiles Directory)!", filename);
    while(fread(file_ptr, line) > 0)
    {
    sscanf(line, "dffffff", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
    CreateObject(modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
    objects_loaded++;
    }
    fclose(file_ptr);
    printf("Loaded %d objects from: %s", objects_loaded, filename);
    printf("%d%f%f%f%f%f%f", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
    return objects_loaded;
    }


    Ausgabe:
    [22:37:54] 00.0000000.0000000.0000000.0000000.0000000.000000


    //Edit: Immernoch

    Einmal editiert, zuletzt von elyday ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das hier sollte die Lösung sein:
    sscanf teilt einen text mit dem suchen nach leerzeichen(" ") auf, deine datei hat aber kommas(",")


    entweder kommas in der datei durch leerzeichen ersetzen


    oder sscanf umschreiben zu:
    sscanf(line, "p<,>dffffff",....
    damit es auch nach kommas aufteilt

    <3

    Einmal editiert, zuletzt von D0erf|er ()