Objekte als Include

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
  • Zu deiner frage: Ja musst du.
    Eine möglichkeit wäre, ein Include mit einer funktion zu erstellen.
    Also in der Include:
    #include <streamer>
    stock LoadObjects()
    {
    //Deine objekte, z.b:
    CreateDynamicObject(1649, 348.48059082031, 128.7939453125, 1008.6314697266, 0, 0, 340.24890136719, 999, 1, -1, 50.0);
    CreateDynamicObject(1649, 344.42535400391, 130.28344726563, 1008.6314697266, 0, 0, 339.74658203125, 999, 1, -1, 50.0);
    CreateDynamicObject(1649, 344.4248046875, 130.283203125, 1008.6314697266, 0, 0, 159.7412109375, 999, 1, -1, 50.0);
    CreateDynamicObject(1649, 348.48046875, 128.7939453125, 1008.6314697266, 0, 0, 160.24658203125, 999, 1, -1, 50.0);
    //usw....
    }
    Dann halt in deinem Gamemode oben die include rein und unter OnGamemodeInit
    LoadObjects();
    schreiben.



    Du kannst aber auch die Funktion LoadDynamicObjectsFromFile benutzen.
    stock LoadDynamicObjectsFromFile(filename[])
    {
    new File:file_ptr, line[256], modelid, Float:SpawnX, Float:SpawnY, Float:SpawnZ, Float:SpawnRotX, Float:SpawnRotY, Float:SpawnRotZ, worldid, interiorid, playerid, Float:distance, objects_loaded;
    file_ptr = fopen(filename, io_read);
    if(!file_ptr) return printf("ERROR! Konnte Objekte aus '%s' nicht laden (Datei existiert nicht)!", filename);
    while(fread(file_ptr, line) > 0)
    {
    //sscanf(line, "p<,>'('dffffffD(-1)D(-1)D(-1)F(250.0)')'", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ, worldid, interiorid, playerid, distance);
    sscanf(line, "p<,>'('dffffffdddp<)>f", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ, worldid, interiorid, playerid, distance);
    CreateDynamicObject(modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ, worldid, interiorid, playerid, distance);
    objects_loaded++;
    }
    fclose(file_ptr);
    printf("<-| [SERVER] %d Objekte aus '%s' geladen.", objects_loaded, filename);
    return objects_loaded;
    }


    Dann schreibst du einfach unter OngameModeInit:
    LoadDynamicObjectsFromFile("Objekte.txt");
    Dann läd der alle Objekte die in der Datei "Objekte.txt" im Scriptfiles ordner sind.
    Die datei selbst muss die Objekte im Folgendem format haben (sind jetzt nur beispiele):

    Code
    CreateDynamicObject(1649, 348.48059082031, 128.7939453125, 1008.6314697266, 0, 0, 340.24890136719, 999, 1, -1, 50.0);
    CreateDynamicObject(1649, 344.42535400391, 130.28344726563, 1008.6314697266, 0, 0, 339.74658203125, 999, 1, -1, 50.0);
    CreateDynamicObject(1649, 344.4248046875, 130.283203125, 1008.6314697266, 0, 0, 159.7412109375, 999, 1, -1, 50.0);
    CreateDynamicObject(1649, 348.48046875, 128.7939453125, 1008.6314697266, 0, 0, 160.24658203125, 999, 1, -1, 50.0);
    usw....

    The fact is, I am right. And if you think I'm wrong, you are wrong.