Mehrere Spawns laden und nutzen, jedoch wie?

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 habe mal eine frage an die Scripting Profis.
    Undzwar lade ich mit sscanf z.b 10 Werte aus einer datei.
    Eine vehid, eine, x, y,z,rotx,roty,rotz
    Diese übergebe ich dann in die variablen.
    sscanf(loadstr, "p<\">'spawnpoint''vehicle='d'posX='f'posY='f'posZ='f'rotX='f'rotY='f'rotZ='f",mapValues[pMmodelids], mapValues[pMXs], mapValues[pMYs], mapValues[pMZs], mapValues[pMRXs], mapValues[pMRYs], mapValues[pMRZs])){


    jetzt möchte ich alle 10 spawns nutzen die er ausließt.
    Derzeit nutze ich nur einen.
    Wie mache ich es am besten?
    Habe da gerade kaum eine vorstellung.
    Danke

    Einmal editiert, zuletzt von Tobsen_ ()

  • Ich würde für solche Sachen die möglichst "dynamisch" sein sollen MySQL verwendet.


    Ansonsten benötigst du deine "for"-Schleife mit der du alle Inhalte der "Datei" ausließt und per sscanf durch gehst. :)
    Jeden einzelnen Spawn speicherst du dann in ein erstellen "Array".



    new Array[32][8]; //32 ist die größe des arrays und 8 die größe der 2. dimension


    ...


    for(new i = 0; i < sizeof(Array); i++)
    {
    sscanf(...)
    }

  • Ich würde für solche Sachen die möglichst "dynamisch" sein sollen MySQL verwendet.


    Ansonsten benötigst du deine "for"-Schleife mit der du alle Inhalte der "Datei" ausließt und per sscanf durch gehst. :)
    Jeden einzelnen Spawn speicherst du dann in ein erstellen "Array".


    new Array[32][8]; //32 ist die größe des arrays und 8 die größe der 2. dimension ...for(new i = 0; i < sizeof(Array); i++){ sscanf(...)}

    Nein, völliger Schwachsinn.
    Ich lese aus MTA .map dateien Objects aus, da brauche ich kein MySQL.
    Ausßerem kann man es in diesem Fall so machen.



    enum eRandomSpawns
    {
    Float:random_spawn_x,
    Float:random_spawn_y,
    Float:random_spawn_z,
    Float:random_spawn_angle
    };


    #define MAX_RANDOMSPAWNS 50


    new aRandomSpawns[MAX_RANDOMSPAWNS][eRandomSpawns];


    Dann einfach die daten die sccanf lädt an einen Stock weiter geben.
    Bsps:
    stock static CreateObjectForGamemode(Modelidc, Float:X, Float:Y, Float:Z, Float:rZ) {


    In diesem dann die werte verstauen und jeweils höher counten damit man sie alle als random nutzen kann. Bsp:
    aRandomSpawns[countrandom1][random_spawn_angle] = rZ;
    countrandom1++;


    Jetzt kannst du ganz normal die größe des Arrays auslesen.


    lg


  • Dann gib nächstes mal genauere Informationen. Dann kommt dabei auch kein Schwachsinn raus.