Easy Map Including v4: Aus mit Objektkonvertern !

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

    • Was ist Easy Map Including v4?
      Also dieses Script ist das Script, der anderen Convertern endgültig ein ende bringt / bringen wird.
      Damit könnt ihr ganz einfach, ohne irgendeine Datei/Text zu konvertieren, die Map-dateien einbinden.
      Undzwar nur mit einer einzigen Funktion! : LoadMap(mapfile[]);


    • Wie funktioniert's?
      Als allererstes müsst ihr in eurem 'scriptfiles'-Ordner einen Ordner erstellen namens "maps".
      Und ihr mappt in MTA Race / MTA DM / MTA 1.4 was auch immer ihr mappen wollt, speichert es ab, und kopiert die ".map"-Datei (mit der Mapinhalt), in den Ordner den ihr erstellt habt ("maps").
      So, als allerletztes ladet ihr die Map-datei im Script, indem ihr unter "OnGameModeInit" (oder halt da wo ihr die objekte laden wollt), einfach nur "LoadMap("DATEINAME.map");" schreibt.
      So einfach ist das!
      Und vergisst ja nicht unter OnPlayerConnect eine Funktion hinzuschreiben, nämlich: "RemoveWorldObjects(playerid);", damit die welt Objekte die ihr mit MTA gelöscht hat und dann konvertiert habt auch in SAMP weg sind (ich empfehle NICHT große Gebäuden zu löschen, da die LOD objekte stressen können, lieber für straßenlampen oder objekte die keinen LOD objekt mithaben)


    • Was ist neu in v4?
      [table=2]

    • Neu

    • Erklärung


    • Maps Entladen

    • UnloadMap(mapid); wurde gelöscht da es unbehebliche Bugs drin hatte. Kommt in v5 Final wieder da ich die ganzen Codes ganz neu schreiben werde.


    • Tuning & Components

    • Die Tuningteile werden mit dem Fahrzeug mitkonvertiert.


    • Gelösche Objekte

    • Die objekte die ihr in MTA löscht werden auch mitkonvertiert, und in SAMP sind sie auch weg. Aber vergisst nicht RemoveWorldObjects(playerid); unter OnPlayerConnect einzufügen.


    • Mapkonverter

    • ConvertMap(mapfile[]);: Ihr könnt nun mit dieser Funktion, MTA DM, MTA 1.4 und MTA Race maps zu SAMP Maps konverten. Die Idee dafür gab mir Meta, mit seinem Mapkonverter FilterScript. Dankeschön nochmal, für die Idee und für seine Erlaubniss, die Idee neu umzusetzen.


    • Getestet

    • Alle Funktionen wurden von mir gemacht und alle wurden von mir getestet, deswegen kann ich sagen dass das Script keine Bugs enthält (ich benutze das Script selbst bei meinem Selfmade, habe bis jetzt keine Probleme :) )[/table]


    • Mapkonverter
      Falls ihr, aus irgendwelchem Grund, die Maps nicht als File einbinden wollt, sondern direkt konvertieren und ins Script kopieren, respektiere ich das.
      Deswegen habe ich eine "ConvertMap(mapfile[]);" Funktion eingebaut, welches eure MTA Maps zu SAMP Maps konvertiert.
      Wenn ihr diese Funktion benutzt, wird im "maps" Ordner eine neue Datei erstellt, mit dem Inhalt des konvertierten Maps.
      Ihr werdet es schon erkennen, weil als Dateiname steht "OUT_<originaldateiname>.map".


    • Streamersupport!
      Wenn ihr einen Streamer habt, müsst ihr nur ein einziges machen:
      Ihr öffnet das Script wo ihr diese Include reingeschrieben habt, und erstellt zwei "public-Funktionen" und schreibt CreateObject/CreateVehicle rein:
      public OnObjectDataLoad(modelid,Float:posX,Float:posY,Float:posZ,Float:rotX,Float:rotY,Float:rotZ,Float:drawdistance)
      {//Für Map-konversationen
      CreateObject(modelid,posX,posY,posZ,rotX,rotY,rotZ,drawdistance);
      return 1;
      }


      public OnVehicleDataLoad(vehicletype,Float:x,Float:y,Float:z,Float:rotation,interior,color1,color2,respawn_delay,paintjob,numberplate[],vcomp1,vcomp2,vcomp3,vcomp4,vcomp5,vcomp6,vcomp7,vcomp8,vcomp9,vcomp10,vcomp11,vcomp12,vcomp13,vcomp14)
      {//Für Fahrzeug konvertierungen
      CreateVehicle(vehicletype,x,y,z,rotation,color1,color2,respawn_delay);
      return 1;
      }
      Was ihr da schreib tist natürlich abhängig vom Streamer den ihr benutzt.
      Zum beispiel wenn ihr BlackFoX' Objektstreamer benutzt schreibt ihr statt "CreateObject" einfach "b_CreateObject".
      Oder wenn ihr Incognito's Streamer Plugin benutzt, benutzt ihr einfach "CreateDynamicObject".


      Ausserdem müsst ihr die Funktion "OnVehicleDataLoad" müsst ihr nicht haben wenn ihr kein Fahrzeugstreamer habt. Wenn ihr OnVehicleDataLoad löscht, werden die Fahrzeuge die von der .map Datei konvertiert werden, mit "CreateVehicle", also ohne irgendeinen Fahrzeugstreamer erstellt.
      Das selbe gilt für OnObjectDataLoad.


      PS.: Wenn ihr Fahrzeuge ladet die mit MTA 1.4 gemappt wurden, werden auch die "paintjob"s, nummernschilder, tuningteile und "interior"s mitkonvertiert. Ich empfehle euch also unter "OnVehicleDataLoad" gleichzeitig auch die Interior, Paintjob und Nummernschilder zu ändern.
      Falls das Fahrzeug nicht mit MTA 1.4 erstellt wurde, ist Interior '0', und Paintjob '3' (also kein Paintjob).


    • Nächste Version: v5 Final!
      Ich habe mit dieser Include alles gemacht, was man so machen kann. Maploader, Map-Unloader, Map-Converter...
      Deswegen, wird v4 die Final version sein, die allerletzte Version.


    • Download
      Show mapincluding.inc - pastebin.com


      Für .rar datei mit .inc siehe Anhang


    • Schlusswort
      Wie gesagt, ihr MÜSST den Ordner "maps" im 'scriptfiles' erstellen, sonst crasht euer Server beim Laden des Maps.
      Ich bin voll und ganz offen für eure Bugreports, und besonders für eure Vorschläge! :)


    Peace.

  • Das Problem ist das sich die .map Datei nur in "Create Object" wandelt und du bei den Onlineconvertern den Vorteil hast, dass du direkt deinen Streamer auswählen kannst.


    Wenn du jetzt noch wie angekündigt einen eigenen Streamer einbaust, ist die Include sinnvoller.


    Sonst ist es sehr gut, weiter so!

  • Du könntest noch Support für Streamer im Gamemode einfügen.
    Also im GameMode ne Funktion ala
    public CreateMapObject(...)
    {
    CreateDynamicObject(...)
    }
    Dann diese Funktion durch CallRemoteFunction aus der Include aufrufen, anstatt CreateObject zu verwenden.
    So kann der Anwender seinen eigenen Streamer verwenden.


    Ansonsten sehr gut :thumbup:


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Danke euch allen und euren Vorschlägen, werde ich machen was ihr da alles geschrieben habt ^^


    €dit://
    Kleines update:
    Ein wichtiger Bug gefixxt mit LoadMtaRaceMap: Die Objekte laden nun normal mit den richtigen Koordinaten, nicht 10+ mal mit verschiedenen rotierungen x) Mehr gibts nicht.
    Peace.

    Einmal editiert, zuletzt von FoxHound ()

  • wo muss ich das LoadMap(mapfile[]) einfügen ? unter was oder so :D also ich brauchs für SA:MP pawno

    if(strcmp("/copyandpasteistgeil",cmdtext,true,10)==0)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; SendClientMessage(playerid,ROT,"Copy and Paste ist low");<br>&nbsp;&nbsp;&nbsp;&nbsp; Ban(playerid);<br>&nbsp;return 1;<br>}<br><br>Wer auch findest Copy and Paste ist low weil man dadurch nix lernt kopiert das in euere Signatur !!

  • egal :D sag ma pls wo ich das einfügen muss möchte es jetzt probieren sind sowieso keine fahrzeuge bei mir drin dabei

    if(strcmp("/copyandpasteistgeil",cmdtext,true,10)==0)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; SendClientMessage(playerid,ROT,"Copy and Paste ist low");<br>&nbsp;&nbsp;&nbsp;&nbsp; Ban(playerid);<br>&nbsp;return 1;<br>}<br><br>Wer auch findest Copy and Paste ist low weil man dadurch nix lernt kopiert das in euere Signatur !!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • nett, kann ich gut gebrauchen, gibt es später auch ne möglichkeit objecte nach maps unzuloaden?


    also aller LoadMap("Bank");
    UnLoadMap("Bank");


    könnte ich dann sehr gebrauchen, und ersparrt mir eine menge arbeit.

  • kein problem, wollte sowas auch einmal machen, aber ist mir dann schnell zu langweilig geworden, aber bei einem projekt was ich mache benötige ich dass system.

  • Version 2 Released.


    Zitat

    @[DT]Sniper:// Ich konnte das was du wolltest noch nicht machen, ich hatte eine Idee wie ich es machen kann aber auf dem weg wäre es viel zu kompliziert für andere nutzer x) In der nächsten Version werde ich es aber versuchen. Aber du bist auch ein Profi-Scripter, du kannst es auch so machen dass bei "OnObjectDataLoad" auch der Filename von der .map Datei gegeben wird als parameter und dann per strcmp checken ob die datei x.map geladen wird und somit die ID's von den erstellten Objekten in eine Variable gespeichert werden, und kannst sie dann per Objekt-ID löschen. Ich weiß es ist kompliziert aber was kann man machen ^^
    Sry nochmal deswegen...

  • mt da kommt error beim coomplieren da kommt dann



    pawno\include\mapincluding.inc(77) : error 017: undefined symbol "veh_model"

    if(strcmp("/copyandpasteistgeil",cmdtext,true,10)==0)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; SendClientMessage(playerid,ROT,"Copy and Paste ist low");<br>&nbsp;&nbsp;&nbsp;&nbsp; Ban(playerid);<br>&nbsp;return 1;<br>}<br><br>Wer auch findest Copy and Paste ist low weil man dadurch nix lernt kopiert das in euere Signatur !!

  • Xd ich habe das wo du mir gegeben hast :D

    if(strcmp("/copyandpasteistgeil",cmdtext,true,10)==0)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; SendClientMessage(playerid,ROT,"Copy and Paste ist low");<br>&nbsp;&nbsp;&nbsp;&nbsp; Ban(playerid);<br>&nbsp;return 1;<br>}<br><br>Wer auch findest Copy and Paste ist low weil man dadurch nix lernt kopiert das in euere Signatur !!

  • geht immter noch net immer errors -.- kmm skype dann kann ich dir schicken 8|

    if(strcmp("/copyandpasteistgeil",cmdtext,true,10)==0)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; SendClientMessage(playerid,ROT,"Copy and Paste ist low");<br>&nbsp;&nbsp;&nbsp;&nbsp; Ban(playerid);<br>&nbsp;return 1;<br>}<br><br>Wer auch findest Copy and Paste ist low weil man dadurch nix lernt kopiert das in euere Signatur !!