Map Buyable Object V3.3

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Map Buyable Object V3.3



    präsentiert



    Map Buyable Object.





    Dies ist Ls15 Version der [MP] Map Buyable Object




    Dies ist die Version 3.3 der [MP] Map Buyable Object





    Änderungen und Neuerungen zu vorherigen Versionen:


    Ls15 Anpassungen:

    • Icon ist im Ls15 Design, mit dem neuen shader, wie bisher auch gib es hier ein € Zeichen anstatt der Giants Fragezeichen.
    • Hotspot Icon für jedes kaufbare Objekt. Wer einen alten LS13 Trigger nutzt, hat dieses Attribute nicht, hierbei setzt das MapBuyableObject Skript, den Wert default auf true. Wer kein Hotspot Icon haben will, muss dieses Attribute in seinem Trigger anlegen oder den Ls15 Trigger importieren, liegt im "buyable" Ordner bei.

      Quellcode

      1. <Attribute name="PDA_HotspotIcon" type="boolean" value="true"/>
    • Neues Attribute für den "BGA Extension Mod von upsidedown" angelegt, hat den Grund in den BGA Extensions, muss man für die Inbetriebnahme Geld bezahlen, hatte man die BGA über die MapBuyableObjects verbaut, so musste man doppelt bezahlen (1x das Objekt, 1X Inbetriebnahme), in der V2, wurde dann bei verbauten MBO auf der Map der Preis einfach halbiert, das war nix halbes und nix ganzen, diente nur als Fix für die BGA Extension. Jetzt gibt es das Attribute "Buy_BGA_forExtensions". Wenn ihr den Haken dort setzt, wird eine Variable angelegt auf die upsidedown prüfen kann (kommt in der nächsten BGA Extension Version zum Einsatz), somit müsst ihr dann nix doppelt bezahlen. Hier ist es auch egal bei welchem Objekt ihr das Attribute setzt, wenn es einmal ein true zurück gibt, ist die gespeicherte Variable auch true. Muss also nicht direkt bei der BGA sein. Habt ihr einen Ls13 Trigger, solltet ihr das Attribute anlegen, ich prüfe zwar nochmal auf andere Weise, aber hier kann ich nur einen Einbaumöglichkeit prüfen, womit ich nicht garantieren kann, das es eure eingebaute BGA auch erfasst. Habt ihr die anders eingebaut oder nur zum teil kaufbar, wird sie nicht erfasst.

      Quellcode

      1. <Attribute name="Buy_BGA_forExtensions" type="boolean" value="false"/>
    • Neuer Trigger wurde geschaffen, der AdditionalTrigger, dieser dient dazu um ein bestimmtes Objekt an mehreren Stellen zu kaufen, z.B einen Wald an mehreren Einfahrten, oder auch alle Objekte an einem Zentralen Ort, Beispiel Rathaus usw. Der neue Trigger verfügt über einige Attribute die angepasst werden müssen. Zum einen den "Textname", hier muss der name des kaufbaren Objektes stehen, damit ich dieses eindeutig identifizieren kann. ALso der gleiche name wie beim Buyable Object. Zudem gibt es das Attribute "PDA_HotspotIcon", dieses erstellt dann auch für den 2.Trigger einen Hotspot Icon, aber nur dann wenn auch das eigentliche Objekt einen HotspotIcon hat. Im Beispiel für den Trigger ist auch die TG_Icon_Jumping verbaut, also der Icon der auf der Map erscheint, der mit dem € Zeichen. Wenn ihr den auch verbaut, muss bei der Icon_Ident_Object Number die gleiche Nummer wie beim buyable Object eingetragen werden. Also Einbau des Icons erfolgt auf alt bewährte Weise.
    • Alle möglichen XML Einträge offen gelegt, heißt in der buyableHelpText XML habe ich alle Attribute angelegt, teils auskommentiert. Hier gibt es zum einen die Farbe der Texte zum einstellen und zum anderen auch noch einstellungen für den HotspotIcon:

      Quellcode

      1. <IngameMapHotSpot name="Garten" path = "map/buyable/XXX.dds"/>
      Der Name ist der Name der unter dem Hotspot Icon erscheint, der path ist dazu damit ihr eure eigenen Icons in Game bringen könnt, beide Attribute sind optional, müssen also nicht angegeben werden. Hierbei gilt, wenn ihr den Namen verwendet, dann wird dieser bei jedem HotspotIcon des BuyableObjects genutzt. Zudem ist die Angabe in allen Sprachen zu machen, also für jede Sprache kann der Name extra erstellt werden.


    • Auswahl ob man mit oder ohne kaufbare Objekte spielen will erfolgt nun mit der Maus, dazu entweder auf den "grünen Haken" oder das "rote Kreuz" klicken.


    Änderungen und Neuerungen in der Version 3.3:

    • kleinere Änderungen beim Auslesen der Objekte, hat keine Auswirkung auf ältere Versionen. Geht hierbei in erster Line um Dinge die als "unsichtbar" verbaut sind, dieser Status wird nun mit ausgelesen und nicht wie bisher einfach auf visibility gestellt beim Kauf.
    • MBO Listener verbaut. Das heißt, das MBO Skript "spricht" nun mit ModSkripten die sich im mbo.listener Table eingetragen haben. Diese bekommen nun ein true/false übertragen. Heißt konkret am Beispiel des Mix Feeders, das dieser erst zu arbeiten beginnt wenn er ein canWork=true aus dem MBO erhalten hat. Ist ein Mod skript als MBO verbaut, wird erkannt ob es sich um ein Objekt habdelt welches gekauft wird, oder um eines was verkauft wird. Verkaufte Objekte erhalten nach der Aktion ein canWork=false, Objekte die gekauft werden erhalten nach der Aktion ein canWork=true; Danke hierbei geht an Heady für die Idee und den kleinen Beispielcode zur Umsetzung. Im Code findet ihr einen kleinen Beispielcode wie ihr euer Mod Skript registrieren könnt und wie die function dann aussehen sollte, ist auch in der MBO.zip enthalten. Ist euer Modskript nicht als MBO verbaut, bekommt es auch keinen Befehl, das heißt ihr solltet eure Variablen so aufbauen, das eure Skripte auch dann arbeiten, wenn sie nicht als MBO verbaut sind und kein canWork=true erhalten.


    Quellcode

    1. --add mboListener:
    2. if BaseMission.mboBuyListener == nil then
    3. BaseMission.mboBuyListener = {};
    4. print(" Register Variable: BaseMission.mboBuyListener");
    5. end;
    6. --Example: MixFeeder
    7. function onCreate(self, id)
    8. local feeder = MixFeeder:new(g_server ~= nil, g_client ~= nil);
    9. local index = g_currentMission:addOnCreateLoadedObjectToSave(feeder);
    10. if feeder:load(id) then
    11. feeder:register(true);
    12. table.insert(ModEventMixFeeder.feeders, feeder);
    13. table.insert(g_currentMission.mboBuyListener, { object = feeder, onCreateNodeId = id }); --add MBO Buy Listener;
    14. else
    15. feeder:delete();
    16. end;
    17. end;
    18. --add the Function "buyMBO(MBOobject, canWork)" in your script
    19. function YOURmodSCRIPT:buyMBO(MBOobject, canWork)
    20. if MBOobject ~= nil then
    21. --MBO object is ~= nil, so your mod, exectly THIS which is called, is buyable.
    22. if MBOobject.objectsBuyed then
    23. --the object is buyed, your mod can work, or if is rebuyed then worlk no more.
    24. else
    25. if not canWork then
    26. --after load savegame, all buyable mods get a canWork=false, so stop working your mod. All rebuy Objects get a canWork=true, it can work
    27. end;
    28. end;
    29. else
    30. --first all listeners get a nil, after savegame load or first start map, the listener get the MBOobjerct table.
    31. end;
    32. end;
    Alles anzeigen











    Hier gibt es das Skript was die eingebauten MapBuyableObjects auf einer Map mit den gewünschten Funltionen ausstattet. Das Skript muss einfach in den Mods Ordner kopiert werden. Die Einstellungen, welche Objekte man kaufen/verkaufen kann auf einer Map werden im GE eingestellt bzw die Texte in einer zusätzlichen XML die in der Map.zip eingefügt werden muss.


    Grundlegende Funktionen des Skriptes:
    • Objekte kaufbar machen andere gleichzeitig verkaufen
    • Alle Arten von Objekten können kaufbar gemacht werden. Statische Objekte (Häuser, Hallen usw) sowie auch Trigger.
    • Ist ein zukaufbarer Trigger eingebaut und dieser soll im PDA angezeigt werden, so wird er erst nach dem Kauf angezeigt. Trigger die verkauft werden, werden nach dem verkjauf aus dem PDA gelöscht.
    • Es können auch neue Händler und Reset Plätze eingebaut werden, das diese erst nach dem kauf eines bestimmten Objektes aktiv sind.
    • Es kann ein Einkommen geben, oder auch eine stündliche Ausgabe nach dem Kauf eines Objektes. Beispiel: Windrad(Einkommen), Bauernhof (Pacht-->Ausgabe)
    • Hotspot Icon für jedes Objekt
    • Zusätzliche Trigger um ein bestimmtes Objekt zu kaufen, Objekt kann dann an mehreren Stellen gekauft werden.



    Ein kleines TUT zum Einbau findet ihr hier: mod-portal.com/forum/index.php?page=Thread&threadID=20328
    Das im TUT angehängte Skript, könnt ihr in eurer Map fest einbauen, Einbindung über die moddesc. Dieses prüft dann ob der User die MapBuyableObject.zip im Mods ordner hat.




    Es ist nicht gestattet die MapBuyableObject.zip neu hochzuladen. Natürlich dürft ihr das Skript in euren Map einbauen, aber die MapBuyableObject.zip bei eurem DL Thema zur Map verlinkt werden. Alles andere ist gestattet.


    Zum Schluss noch ein Riesen Dank an Niggels939 und sein Team, die die MapBuyableObject.zip in der Ls15 Version auf Herz und Nieren getestet haben und immer ein sehr gutes Feedback gegeben haben. Zusätzlich noch ein persönliches Dankeschön an Niggels939 für das erstellen des Hotspot Icons. Danke

    Viel Spass mit dem Mod wünschen euch Bluebaby210 und das gesamte mod-portal Team!


    Danish translation by OverGaard Modding team.






    Die MapBuyableObject.zip darf überall zum DL gestellt werden, aber nur mit Orginalem DL Link!
    Le MapBuyableObject.zip devrait être disponible en téléchargement partout, mais seulement avec orginalem Lien de téléchargement!
    The MapBuyableObject.zip should be available for download anywhere, but only with orginalem Download Link!
    Dateien

    245.989 mal gelesen