Benutzer-Werkzeuge

Webseiten-Werkzeuge


Dies ist eine alte Version des Dokuments!


oCMobContainer

  • Vorkenntnisse und das Verstehen des Einbaus eines Standard-Mobs (oCMobInter) wären von Vorteil.

- Hier werden Besonderheiten angesprochen, die lediglich bei Mobs in bestimmten Klassen zu beachten sind.

1. Einsetzen

  • 1.0.0 oCVob(abstract) → oCMob → oCMobInter → oCMobLocable(abstrakt) → oCMobContainer
    • 1.0.1 Wir klicken uns im Objectfenster durch voranstehenden Pfad und erhalten folgendes, jetzt verändertes Objectfenster

  • 1.0.2 Rechtklick mit der Maus auf eine „freie“ Stelle im Spacerhauptfenster…. und das Object_List_Fenster verändert sich….

  • Wir erhalten das Koordinatenkreuz im Spacer-Hauptfenster mit der Bezeichnung „ocMobContainer“

  • 1.0.4 Das Objectfenster verändert sich ein weiteres mal…..

  • 1.0.5 Wir suchen uns in der Mobeinsetzliste eine passende Truhe aus. Ich habe für unser Beispiel die CHESTBIG_OCCHESTLARGELOCKED.MDS gewählt.
  • Wer die Mobeinsetz-Liste noch nicht hat, sollte sie schnellstens hier downloaden!

http://www.worldofgothic.de/?go=moddb&action=view&fileID=795&cat=9&page=0&order=0

  • CHESTBIG_OCCHESTLARGELOCKED.MDS Wer das Grundlagentutorial durchgearbeitet hat, dem sollte dieser Name folgendes sagen :
    • CHESTBIG_ wird ausgewertet von der Engine und die compilierten Mob-Dateien heissen später im _compiled Ordner entsprechend. Ausgewertet zum compilieren wird der Humans.mds Eintrag, sowie der Mob.mds eintrag.
    • In der Humans.mds werden die Animationen zb. t_chestbig_stand_2_S0 ….. usw. benannt.
    • OCCHESTLARGE - ist eine Info, (nochmal? ChestBig sagt das ja schon, da bräuchte es kein zusätzliches ChestLarge) für wen auch immer, dass das eine grosse Truhe ist. Da könnte man auch „Bratkartoffel“ in den Namen schreiben. Was hinter dem ersten _Underline im Dateinamen steht bleibt dem Modder überlassen. Dateinamen ohne _Underline werden nicht angenommen. (Dateinamen bitte nicht verwechseln mit Dateinamenerweiterung Bsp *.ASC)
    • LOCKED ist die Info für den Modder, dass das eine abschliessbare Truhe ist, (es gibt auch nicht abschliessbare)
    • MDS sagt uns, dass das ein dynamisches Mob ist.
    • Das bedeutet aber auch, dass wir jetzt 4 Dateien brauchen, damit das Mob korrekt funktioniert
      • die xxxxxx.ASC………………./ Mesh der Truhe
      • die xxxxxx_USE.ASC………../ Ani der Truhe
      • die xxxxxx.MDS………………/ gibt an welche Ani bei welchem Frame einsetzt bzw. stoppt
      • die xxxxxx_LOCKUSE.ASC…/ Lock/Unlock Ani der Truhe
  • 1.0.6 Wir klicken im Objektfenster auf „visual:“ tragen unseren gewählten MobName ein und klicken danach auf „Apply“ und schon wieder eine Änderung des Objectfensters…..

  • 1.0.7 Im Spacer-Hauptfenster erscheint unsere Truhe….

  • 1.0.8 und auch das Object_List_Fenster hat sich ein weiteres Mal verändert.

2. Positionieren

Wer keine Kenntnis hat, über „schieben, drehen, auf, ab, etc.“…… der möge bitte in den Grundlagen, die eigentlich Vorraussetzung zum Verstehen der Sondermobs sind nachlesen!
siehe Mob/Grundlagen → Positionieren

  • 2.0.0 Jetzt wird es an der Zeit unsere Truhe zu Positionieren. Dazu klicken wir unser Truhe an und wenn selbige aktiviert ist, dann erscheint ein roter Linienquader, die sogenannte „Boundingbox“.
  • 2.0.1 Wir aktivieren den „Move-Modus“
  • 2.0.3 Wie stellen die Truhe mit den uns bekannten Tasten an die richtige, von uns gewählte Position in unserer Welt.

„keyinstance“

  • 2.0.4 Alle gängigen Einstellungen, die alle Mobs haben, wurden in den Mob-Grundlagen schon explizid beschrieben. Wir befassen uns hier nur mit den Einstellungen, die ein oCMobContainer im Gegensatz zum oCMobInter zusätzlich hat.

*2.0.5 Wer keine Kenntnis hat über die Grundeinstellungen, der möge sich bitte im Mob-Grundlagen-Wiki schlaumachen.
siehe Mob/Grundlagen → Einstellungen

3. Lock/Unlock

  • 3.0.0 Wir wenden uns wieder unserem Objectfenster zu. Relevant sind die 4 angemerkten Punkte

  • 3.0.1 locked:FALSE
    • Wenn wir das so belassen, dann ist die Truhe „unlocked“ - Jeder kann sie ohne weiteres öffnen
  • 3.0.2 locked:TRUE
    • Wenn wir keine „keyinstance“ eingeben und keinen „picklock-string“, dann ist die Truhe zu. Niemand kann sie öffnen.
    • Die Truhe wäre jetzt nur noch mit „IKARUS“ ….

http://forum.worldofplayers.de/forum/threads/1299679-Skriptpaket-Ikarus-4?p=21850548&viewfull=1#post21850548

per Script zu öffnen.

  • keyInstance:ItKe_Key147
  • Wenn wir eine „keyinstance“ eingeben Bsp. ItKe_Key147, dann kann man die Truhe mit diesem Schlüssel öffnen.
  • pickLockStr: LLRLRR
  • Wenn wir keine „keyinstance“ eingeben, sondern einen Picklock-String, bspw. LLRLRR (linkslinksrechtslinksrechtsrechts) dann können wir diese Truhe, wenn das entsprechende Talent geskillt wurde mit dem Dietrich öffnen.
  • Eine keyInstance + einen pickLockStr einzugeben funktioniert im Normalfalle nicht.

4. Truhe befüllen

  • 4.0.0 contains: (Inhalt der Truhe)
  • 4.0.1 Eintragen im Spacer im Objektfenster
    • Wenn wir ein Goldstück reingeben wollen, schreiben wir:
      contains:ItMi_Gold // 1 Goldmünze 
    • Wollen wir 10 Goldmünzen reingeben, so setzen wir zwischen die Iteminstance und die Anzahl einen Doppelpunkt:
      contains:ItMi_Gold:10 // 10 Goldmünzen 
    • Wir geben 10 Goldmünzen und einen Ast in die Truhe. Die Iteminstancen trennen wir dabei durch ein Komma. Für ein Einzelstück Item muss kein :1 gesetzt werden. Wenn kein Doppelpunkt da steht, erkennt das die Engine als eine 1.
    •  contains:ItMi_Gold:10, ItMw_1H_Vlk_Dagger // 10 Goldmünzen/1 Schwerer Ast 
    • Der DoppelSlash und was danach geschrieben ist wird nicht mit eingetragen, er dient nur dem geneigten Leser als Kommentar.

Ergibt „INGAME“ dieses Ergebnis….

  • 4.1.0 Truhe per Script befüllen.
    • Dazu benötigt die Truhe einen eindeutigen vobName, einzutragen im Objectfenster
    • vobName:CHEST_WAFFENKAMMER_01
    • und einen Eintrag für conditionFunc, ebenfalls im Objektfenster einzutragen
    • conditionFunc:B_WAFFENKAMMER_CHEST_01
  • Keinen Schlüssel eintragen im Spacer, - bei dieser Variante. Der Schlüssel wird im Script abgefragt und die Truhe muss locked:FALSE sein!
  • 4.1.1 Ein Beispielscript dazu:
  • func int b_waffenkammer_chest_01()
    {
     var int chestopen_WK01; 
      if (chestopen_WK01 == 0) // Befüllen nur einmal
       {
        Mob_CreateItems("CHEST_WAFFENKAMMER_01", Itmi_Gold, 10);
        Mob_CreateItems("CHEST_WAFFENKAMMER_01", ItMw_1H_Vlk_Dagger, 1);
        chestopen_WK01 = 1; // Variable hochzählen
       }; 
      if (Npc_IsPlayer(PC_Hero))
       {
         if (Npc_HasItems(PC_Hero, ItKe_Key147)) //Schlüssel abfragen 
          {
            return TRUE;
          }
       else
          {
            PLAYER_MOB_MISSING_KEY();  // hat keinen Schlüssel, Truhe bleibt zu
            return FALSE;
          };
       }
     else
       {
         return TRUE; // alle anderen Npc
       };
    };
  • 4.1.2 Noch ein Beispielscript dazu: Nur die Truhe befüllen, den Schlüssel oder Picklockstring kann man dann im Spacer eintragen.
  • func int b_waffenkammer_chest_01()
    {
     var int chestopen_WK01; 
      if (chestopen_WK01 == 0) // Befüllen nur einmal
       {
        Mob_CreateItems("CHEST_WAFFENKAMMER_01", Itmi_Gold, 10);
        Mob_CreateItems("CHEST_WAFFENKAMMER_01", ItMw_1H_Vlk_Dagger, 1);
        chestopen_WK01 = 1; // Variable hochzählen
       }; 
    };

Zurück zur Haupseite →Mobs/Grundlagen/oCMobInter

20160209(dlz)

quickstart/spacer/mobsplatzieren/ocmobcontainer.1455089740.txt.gz · Zuletzt geändert: 2016/02/10 08:35 von zollaidal