Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
quickstart:spacer:mobsplatzieren:ocmobswitch [2016/02/08 00:34]
85.180.75.135 angelegt
quickstart:spacer:mobsplatzieren:ocmobswitch [2016/02/09 23:50]
zollaidal
Zeile 1: Zeile 1:
 +
  
 ====== oCMobSwitch ====== ====== oCMobSwitch ======
Zeile 4: Zeile 5:
   * Vorkenntnisse und das Verstehen des Einbaus eines Standard-Mobs (oCMobInter) wären von Vorteil.   * Vorkenntnisse und das Verstehen des Einbaus eines Standard-Mobs (oCMobInter) wären von Vorteil.
   * Vorkenntnisse:​ [[quickstart:​spacer:​mobsplatzieren|]]   * Vorkenntnisse:​ [[quickstart:​spacer:​mobsplatzieren|]]
 +
 +1.0.0 - Hier werden Besonderheiten angesprochen,​ die lediglich bei Mobs in bestimmten Klassen zu beachten sind.
  
 **Ein oCMobSwitch**,​ kann entweder als MobClass - oCMobSwitch oder als oCMobInter eigesetzt werden. Für die Funktion des Schalters macht das keinen Unterschied. ​ **Ein oCMobSwitch**,​ kann entweder als MobClass - oCMobSwitch oder als oCMobInter eigesetzt werden. Für die Funktion des Schalters macht das keinen Unterschied. ​
-  *Eine Empfehlung von mir: Wer seine Schalter als oCMobSwitch setzt, findet sie im Object_List_Fenster ​im Ordner oCMobSwitch bequem wieder, wenn sie als ocMobInter gesetzt sind, dann sind die Schalter durcheinander gemixt und man muss sie mühselig suchen, zwischen Kochkesseln und Bänken und Stühlen... etc. +  *Eine Empfehlung von mir: Wer seine Schalter als oCMobSwitch setzt, findet sie im Object_**List**_Fenster ​im Ordner oCMobSwitch bequem wieder, wenn sie als ocMobInter gesetzt sind, dann sind die Schalter durcheinander gemixt und man muss sie mühselig suchen, zwischen Kochkesseln und Bänken und Stühlen... etc. 
  
 +===== 1. Einsetzen =====
  
-1.0.0 - Hier werden Besonderheiten angesprochen,​ die lediglich bei Mobs in bestimmten Klassen zu beachten sind.+  * **1.1.0 oCVob(abstract) -> oCMob -> oCMobInter ​-> oCMobSwitch** 
 +   * Das Einsetzen eines Schalters als ocMobSwitch erzeugt folgendes Objektfenster:​ 
 +{{:​quickstart:​spacer:​mobsplatzieren:​12_switch.jpg|}}
  
-  * **1.1.0 oCVob(abstract) -> oCMob -> oCMobInter** +===== 2.Einstellungen =====
-   * Das Einsetzen eines Schalters als ocMobInter erzeugt folgendes Objektfenster:​ +
-{{:​quickstart:​spacer:​11_foto.jpg?​300|}}+
  
 +2.0.0 - Einstellungen und Eintragungen im Objektfenster
  
 +  * **vobName:​**SPEZIELLER_NAME - Falls man den Schalter aufrufen möchte, bspw. mit **Ikarus**\\ [[http://​forum.worldofplayers.de/​forum/​threads/​1299679-Skriptpaket-Ikarus-4]]
  
-  * **1.2.0 oCVob(abstract-> oCMob -> oCMobInter -> oCMobFSwitch** +  * **cdDyn:​**TRUE - erzeugt Kollision, wird benötigt, wenn man einen Schalter mit Fernwkampfwaffe beschiesst. Zum normalen betätigen eines Schalters durch einen Pc/Npc benötigt man keine Kollision, da ja der Schalter per Animation des Mobs bewegt wird. 
-   ​Das Einsetzen eines Schalters als ocMobSwitch erzeugt folgendes Objektfenster+ 
-{{:​quickstart:​spacer:​11_foto.jpg?300|}}+  * **vobFarClipZScale:​**1 - __vorgegebene Einstellung__ = 1, Das sollte man zumindest bei einem Schalter so belassen. 
 +    * Wenn ihr ein wichtiges Vob/Mob hättet in einem grossen Saal und dieses wird ausgeblendet,​ wenn ihr euch zum Rande des Saales bewegt, dann kann man diesen Wert auf oder 3 ändern ​(nicht höher, bringt nichtsund das entsprechende Mob/Vob wird dann erst später ausgeblendet,​ bei zunehmender Entfernung zum Player. 
 + 
 +  ​* **focusName:​**MOBNAME_SWITCH (dieser focusName sollte in der Datei Text.d schon eingetragen sein.) 
 + 
 +  ​**triggerTaget:** wird benötigt, wenn ihr mit dem Schalter z.B. einen Mover auslösen wollt, ohne ein Script zu nutzen/​schreiben,​ sondern das direkt hier im Spacer verlinken wollt. Dann zeigt der Spacer eine "blaue Linie" zwischen Schalter und dem verlinkten Objekt, in diesem Falle einem Mover. 
 + 
 +{{:​quickstart:​spacer:​mobsplatzieren:​14_switch.jpg|}} ​- {{:​quickstart:​spacer:​mobsplatzieren:​15_switch.jpg|}} 
 + 
 +  * **useWithItem:​** hier könnte man eine Item_Instance eintragen, dann müsste der Npc dieses Item besitzen, um das Mob zu betätigen 
 + 
 +  * **conditionFunc:​** Hier könte man ein Script aufrufen - **conditionFunc wird vor onStateFunc gelesen**  
 +    * Beispiel für den Eintrag im Spacer Objektfenster - __B_MYSWITCH__ (GROSSBUCHSTABEN) 
 + 
 +    * Beispiel für das Script 
 +<​code>​func int B_MYSWITCH() 
 +{  
 +  if (Npc_IsPlayer(PC_Hero))  
 +   {  
 +    Wld_SendTrigger("​MYMOVER"​);​  
 +    return TRUE; 
 +   } 
 +  else 
 +   { 
 +    return FALSE 
 +   }; // Nur der Hero darf den Switch bedienen 
 +};</​code>​ 
 +  * **onStateFunc** ​ Auch hier könnte man ein Script aufrufen. Welche Art von Script ihr wählt, hängt von der jeweiligen Situation und euren Bedürfnissen ab. 
 +    * Beispiel für den Eintrag im Spacer Objektfenster - __MYSWITCH__ (GROSSBUCHSTABEN & KEIN _S1) 
 + 
 +    * Beispiel für das Script 
 +<​code>​func void MYSWITCH_S1() // Dieses S1 muss ins Script, in besonderen Fällen kann man auch S0 aufrufen 
 +
 +  Wld_SendTrigger("​MYMOVER"​);​ 
 +};</​code>​ 
 + 
 +  * **rewind:​TRUE** Diese Einstellung sollte man bei oCMobSwitch im Normalfalle auf "​TRUE"​. Ansonsten der Schalter bei der nächsten Betätigung nicht reagiert, sondern ers wieder bei der übernächsten Betätigung. 
 + 
 +=====3. Switch mit FKW beschiessen===== ​  
 + ​(Fernkampfwaffe Bogen oder Armbrust) 
 + 
 +**3.0.0 - Man kann mit einem Schalter ein nettes Feature bauen, wo man mit dem Bogen bspw. einen Schalter beschiesst, der dann auslöst. Beispiel eine Zielscheibe beschiessen** 
 + 
 +  * 3.0.1 - Zielscheibe setzen als Vob (Kollission geben) 
 + 
 +  * 3.1.0 - Schalter setzen (__Touchplate_Stone__) 
 +  * 3.1.1 - Den Schalter so positionieren,​ dass das Koordinatenkreuz in der Mitte vor der Zielscheibe sitzt, der Schalter also __** direkt vor**__ der Zielscheibe sich befindet. (Schalterrichtung = Schussrichtung) 
 +  * 3.1.2 - **Objectfenster - Einträge** 
 +    * - __showVisual:​FALSE__ - den Schalter sollte man nicht sehen, wir beschiessen ja die Zielscheibe) 
 +    * - __focusOverride:​TRUE__ - (Sonst kann der Bogen oder Crossbow das Ziel nicht erfassen.) 
 +    * - __focusname:​MOBNAME_ZIELSCHEIBE__ 
 +      * focusName in der Datei Text.d eintragen <​code>​const string MOBNAME_ZIELSCHEIBE = "​Zielscheibe";</​code>​
  
 +  * 3.1.3 - Der Schalter ist nur ein Fake und hat mit dem gezählten Treffer nichts zu tun. Er gibt lediglich den Namen an (Zielscheibe) und lenkt den Pfeil auf sein Koordinatenkreuz (gelb,​braun,​ weiss).
  
 +**3.2.0 - Einschlag registrieren ....**
  
 +  * 3.2.1 - Triggerscript setzen. ​
 +    * Boundingbox mindestens 20x20x20, sonst reagiert der Trigger eventuell nicht auf den Pfeil. Jetzt kommt es darauf an was man will, je kleiner die Boundingbox,​ desto mehr Fehlschüsse und umgekehrt, je grösser, desto mehr Treffer. Dabei ist die __Tiefe der Box von entscheidender Bedeutung__. Wenn der Pfeil in einen Würfel einschlägt,​ wird er eher registriert,​ als wenn du auf eine dünne Boundingbox Scheibe schiesst. Da wird der Treffer eventuell gar nicht registriert.
 +  * 3.2.2 - Boundingbox direkt in die Mitte __**vor**__ der Zielscheibe setzen.
 +  * 3.2.3 - Triggerscript auf Damage = True setzen, (reagiert nur auf Bolzen und Pfeile, nicht auf Schwert etc ..)
 + 
 +**3.3.0 - Treffer generieren** - Damit das beim Schiessen nicht so langweilig wird würde ich einen Treffer Zufallsgenerator einbauen.
  
 +  *3.3.1 - Script Trefferquote Zufallsgenerator
 +  *<​code> ​   func void ZIELSCHEIBE() //​**Scripfunc des Triggers**
 +    {
 +     var int zufall; zufall=Hlp_Random(6);​
 +      if (zufall == 0) { PRINT("​10"​);​}; ​
 +      if (zufall == 1) { PRINT( "​7"​);​}; ​   ​
 +      if (zufall == 2) { PRINT( "​9"​);​}; ​   ​
 +      if (zufall == 3) { PRINT( "​8"​);​};​
 +      if (zufall == 4) { PRINT( "​3"​);​ };
 +      if (zufall == 5) { PRINT("​KEIN TREFFER"​);​};​
 +    };
 +  *</​code>​
  
-  * Der automatisch erscheinende Eintrag, der "​FIRETREE_LARGE.ZEN" hat folgende Nachteile +  *3.3.Vielleicht noch jede getroffene Zehn als Count hochzählen und wer genug Zehner geschossen hathat auch genügend geübt ​und kann seine Belohnung abholen? (Talent hochsetzen)
-  * funktioniert eventuell in G2 nicht, da es die "​FIRETREE_LARGE.ZEN" in G2 nicht gibt\\ ​**Massnahme**importieren aus G1 +
-  * ist unbrauchbar,​ da das Feuer für euren Leuchter zu gross/​klein/​zu hell/zu dunkel/zu viel Rauch....\\ ​ - **Massnahme** - eigene FIRE.ZEN herstellen ​und eintragen oder eine passende finden in den im Modkit vorhandenen *.ZEN´s+
  
-  ​Wie stelle ich eine eigene FIRE.ZEN her? Eine FIRE.ZEN ist nichts anderes als ein **VOBTREE!**+**WICHTIG - Den Scriptfunc vom Trigger benutzen und den Schalter mit dem Trigger nicht verlinken.** 
  
-  * Wie stelle ich einen "​VOBTREE"​ her? Was ist ein "​VOBTREE"?​ - [[spacer:​vobs:​vobtrees|]] 
  
 __Die Mobeinsetz-Liste mit allen Mobs und allen zugehörigen Einträgen findet ihr hier__ __Die Mobeinsetz-Liste mit allen Mobs und allen zugehörigen Einträgen findet ihr hier__
Zeile 38: Zeile 112:
 Zurück zur Haupseite ->​[[quickstart:​spacer:​mobsplatzieren|]] Zurück zur Haupseite ->​[[quickstart:​spacer:​mobsplatzieren|]]
  
-20160207(dlz)+20160208(dlz)
  
quickstart/spacer/mobsplatzieren/ocmobswitch.txt · Zuletzt geändert: 2018/04/28 07:18 von 79.239.17.78