[Suche] .map (MTA-Map-File) laden -> CreateObject

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
  • Hiho, ich suche ein Script, das aus einer Datei die .map-Dateinamen ausliest, und dann die .map-Dateien ausliest und dann mit den Daten CreateObject() veranstaltet... Es gab glaub ich so ein Script im gtamp.de Forum, doch dieses wurde leider geschlossen.


    Oder auch nur ein Script, dass aus EINER .map-Datei die Objekte ausliest, der 1. Punkt kann ich auch selbst machen.


    Hoffe jemand kann mir helfen.

  • Nein, ein pawn-Script, das direkt aus den .map-Dateien die z.b. in /scriptfiles/maps/ sind, die objekte(model,x,y,z,rx,ry,rz) ausliest.

  • es is MTA:Race.


    Ich mein eben kein Converter, sondern ein SCRIPT, das von .map-Dateien die Objekte ausliest und direkt ein Objekt daraus erstellt.

  • Jo, das wär super :) Und eventuell extended mit "maplist.ini" und dort dann die namen der map-dateien ohne endung reinkopieren. Dann im Script die maplist.ini loaden und dann jeweils mit den namen von den einzelnen zeilen die .map files loaden und daraus die objekte erstellen.

  • Jo oder halt:


    Code
    mapname1
    mapname2
    mapname3


    und dann iwie mit "fread" und umbruchserkennung.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also das mit dem Laden von der MapFile klappt aber anscheinend , kann er die Rotation von nicht MTA zu Sa-mp wandeln bzw.
    sie sind angeblich immer Falsch jedoch stimmt alles vom Laden her xD , hab mich gestern Informiert und jo Sa-mp arbeitet wohl auf einem anderen Winkel
    Konzept daher sind die Koordinaten immer nen Stück anders als bei MTA :huh:



    hier mal die Klasse , werde mal weiter nach dem Problem mit dem Winkel suchen , die Klasse sollte gehen...


    forward ReadObjects(const File[])
    public ReadObjects(const File[])
    {
    new File:Filex = fopen(File,io_read);
    new tmp[128];
    new line[256];
    new bool:inObj = false;
    new ind = 0;
    // Values
    new Float:x,
    Float:y,
    Float:z,
    Float:rx,
    Float:ry,
    Float:rz;
    new model;
    new koord = 0;
    //

    if(Filex)
    {
    reeloop:
    while(fread(Filex,line))
    {
    new pos = strfind(line,"<object name=");
    if(pos!=-1)inObj = true;
    if(inObj == true)
    {
    switch(koord)
    {
    case 0:
    {
    pos = strfind(line,"<position>");
    new pos0 = strfind(line,"</position>");
    if(pos!=-1 && pos0!=-1)
    {
    strmid(tmp,line,pos+strlen("<position>"),pos0,sizeof tmp);
    x = floatstr(strtok(tmp,ind));
    y = floatstr(strtok(tmp,ind));
    z = floatstr(strtok(tmp,ind));
    ind = 0;
    koord++;
    }
    goto reeloop;
    }
    case 1:
    {
    pos = strfind(line,"<rotation>");
    new pos0 = strfind(line,"</rotation>");
    if(pos!=-1 && pos0!=-1)
    {
    strmid(tmp,line,pos+strlen("<rotation>"),pos0,sizeof tmp);
    rx = floatstr(strtok(tmp,ind));
    ry = floatstr(strtok(tmp,ind));
    rz = floatstr(strtok(tmp,ind));
    ind = 0;
    koord++;
    }
    goto reeloop;
    }
    case 2:
    {
    pos = strfind(line,"<model>");
    new pos0 = strfind(line,"</model>");
    if(pos!=-1 && pos0!=-1)
    {
    strmid(tmp,line,pos+strlen("<model>"),pos0,sizeof tmp);
    model = strval(tmp);
    koord++;
    }
    goto reeloop;
    }
    case 3:
    {
    pos = strfind(line,"</object>",false);
    if(pos!=-1)
    {
    inObj = false;
    CreateObject(model,x,y,z,RadianX(rx),RadianX(ry),RadianX(rz));
    printf("MOD : %d - %f - %f - %f - %f - %f - %f\n",model,x,y,z,rx,ry,rz);
    koord = 0;
    }
    goto reeloop;
    }
    }
    }


    }
    }
    return 1;
    }


    So sollte gehen jedoch wie gesagt der Winkel stimmt nicht

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Könnte man ja auchnoch Steam rein machen :>
    CreateObject > ...

  • Wow sieht gut aus, ich hab da was gefunden für die Rotation:



    function(Float:rot)
    {
    return (rot * 180) / 3.1415;
    }


    Versuch das mal...das tut die Rotation von MTA in SA:MP umrechnen, oder sollte es zumindest.

    Einmal editiert, zuletzt von E4sTsId3 ()