Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung Nächste Ü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/08 13:32] 85.180.75.135 [1. Einstellungen] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== oCMobSwitch ====== | ====== oCMobSwitch ====== | ||
+ | |||
+ | |||
+ | |||
+ | .............................................................{{:spacer:omega7497construction.gif|}} | ||
+ | |||
* 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. Einstellungen ===== | ||
- | 1.0.0 - Hier werden Besonderheiten angesprochen, die lediglich bei Mobs in bestimmten Klassen zu beachten sind. | ||
- | * **1.1.0 oCVob(abstract) -> oCMob -> oCMobInter** | + | * **1.1.0 oCVob(abstract) -> oCMob -> oCMobInter -> oCMobSwitch** |
- | * Das Einsetzen eines Schalters als ocMobInter erzeugt folgendes Objektfenster: | + | * Das Einsetzen eines Schalters als ocMobSwitch erzeugt folgendes Objektfenster: |
- | {{:quickstart:spacer:11_foto.jpg?300|}} | + | {{:quickstart:spacer:mobsplatzieren:12_switch.jpg|}} |
+ | 1.1.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]] | ||
+ | * **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. | ||
+ | * **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 2 oder 3 ändern (nicht höher, bringt nichts) und das entsprechende Mob/Vob wird später ausgeblendet bei zunehmender Entfernung zum Player. | ||
+ | * focusName | ||
- | * **1.2.0 oCVob(abstract) -> oCMob -> oCMobInter -> oCMobFSwitch** | + | =====2. Switch mit FKW beschiessen===== |
- | * Das Einsetzen eines Schalters als ocMobSwitch erzeugt folgendes Objektfenster: | + | |
- | {{:quickstart:spacer:11_foto.jpg?300|}} | + | 2.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 |
+ | |||
+ | * 2.0.1 - Zielscheibe setzen als Vob (Kollission geben) | ||
+ | |||
+ | * 2.1.0 - Schalter setzen (Touchplate_Stone) | ||
+ | * 2.1.1 - Den Schalter so positionieren, dass das Koordinatenkreuz in der Mitte vor der Zielscheibe sitzt, der Schalter also überhalb der Zielscheibe sich befindet. (Schalterrichtung = Schussrichtung) | ||
+ | * 2.1.2 - Dem Schalter das Visual nehmen (FALSE) | ||
+ | * 2.1.3 - Schalter eintragen FocusOverride = TRUE (Sonst kann der Bogen oder Crossbow das Ziel nicht erfassen.) | ||
+ | * 2.1.4 - Schalter mit focusname:MOBNAME_ZIELSCHEIBE versehen. | ||
+ | * - focusName in der Datei Text.d eintragen - const string MOBNAME_ZIELSCHEIBE = "Zielscheibe"; | ||
+ | * 2.1.5 - 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.0.0 - Jetzt wird der Einschlag registriert .... | ||
+ | |||
+ | * 3.0.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. | ||
+ | 3.a Boundingbox in die Mitte vor der Zielscheibe setzen | ||
+ | 3.b Triggerscript auf Damage = True setzen, (reagiert nur auf Bolzen und Pfeile, nicht auf Schwert etc ..) | ||
+ | PC = False, NPC = False, sonst kann das durch körperliche Berührung ausgelöst werden. | ||
+ | |||
+ | Jetzt sollte das funzen. | ||
+ | |||
+ | Damit das beim Schiessen nicht so langweilig wird würde ich einen Treffer Zufallsgenerator einbauen. | ||
+ | Code: | ||
+ | |||
+ | func void ZIELSCHEIBE() | ||
+ | { | ||
+ | zufall_zielscheibe = Hlp_Random (5)+1; | ||
+ | if (zufall_Zielscheibe == 1) | ||
+ | { | ||
+ | PRINT("10"); | ||
+ | }; | ||
+ | if (zufall_Zielscheibe == 2) | ||
+ | { | ||
+ | PRINT("7"); | ||
+ | }; | ||
+ | if (zufall_Zielscheibe == 3) | ||
+ | { | ||
+ | PRINT("9"); | ||
+ | }; | ||
+ | if (zufall_Zielscheibe == 4) | ||
+ | { | ||
+ | PRINT("8"); | ||
+ | }; | ||
+ | if (zufall_Zielscheibe == 5) | ||
+ | { | ||
+ | PRINT("KEIN TREFFER"); | ||
+ | }; | ||
+ | |||
+ | }; | ||
+ | Vielleicht noch die Zehn als Count hochzählen und wer die 3te Zehn geschossen hat, hat genug geübt und kann seine Belohnung abholen? | ||
+ | EDIT WICHTIG Den Scriptfunc vom Trigger benutzen, nicht den vom Schalter und den Schalter mit dem Trigger nicht verlinken. | ||
- | * Der automatisch erscheinende Eintrag, der "FIRETREE_LARGE.ZEN" hat folgende Nachteile | ||
- | * 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!** | ||
- | * 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 109: | ||
Zurück zur Haupseite ->[[quickstart:spacer:mobsplatzieren|]] | Zurück zur Haupseite ->[[quickstart:spacer:mobsplatzieren|]] | ||
- | 20160207(dlz) | + | 20160208(dlz) |