Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
quickstart:spacer:mobsplatzieren:ocmobswitch [2016/02/08 12:12] 85.180.75.135 [oCMobSwitch] |
quickstart:spacer:mobsplatzieren:ocmobswitch [2018/04/28 05:18] (aktuell) 79.239.17.78 [2.Einstellungen] PC_HERO --> self |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | |||
| ====== oCMobSwitch ====== | ====== oCMobSwitch ====== | ||
| - | |||
| - | |||
| - | |||
| - | .............................................................{{: | ||
| - | |||
| * 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. | ||
| Zeile 15: | Zeile 11: | ||
| *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. Einsetzen |
| * **1.1.0 oCVob(abstract) -> oCMob -> oCMobInter -> oCMobSwitch** | * **1.1.0 oCVob(abstract) -> oCMob -> oCMobInter -> oCMobSwitch** | ||
| Zeile 22: | Zeile 17: | ||
| {{: | {{: | ||
| - | 1.1.0 - Einstellungen und Eintragungen im Objektfenster | + | ===== 2.Einstellungen ===== |
| - | * vobName: | + | |
| + | 2.0.0 - Einstellungen und Eintragungen im Objektfenster | ||
| + | |||
| + | | ||
| * **cdDyn: | * **cdDyn: | ||
| + | |||
| * **vobFarClipZScale: | * **vobFarClipZScale: | ||
| - | * Wenn ihr ein wichtiges Vob/Mob hättet in einem grossen Saal, und dieses wird ausgeblendet, | + | * Wenn ihr ein wichtiges Vob/Mob hättet in einem grossen Saal und dieses wird ausgeblendet, |
| - | * focusName | + | |
| - | =====2. Switch mit FKW beschiessen===== | + | * **focusName: |
| - | 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 | + | * **triggerTaget: |
| - | * 2.0.1 - Zielscheibe setzen als Vob (Kollission geben) | + | {{: |
| - | * 2.1.0 - Schalter setzen (Touchplate_Stone) | + | * **useWithItem: |
| - | | + | |
| - | | + | |
| - | | + | |
| - | * 2.1.4 - Schalter mit focusname: | + | |
| - | * - focusName in der Datei Text.d eintragen - const string MOBNAME_ZIELSCHEIBE = " | + | |
| - | * 2.1.5 - Der Schalter ist nur ein Fake und hat mit dem gezählten Treffer nichts | + | |
| - | 3.0.0 - Jetzt wird der Einschlag registriert .... | + | * **conditionFunc: |
| + | * Beispiel für den Eintrag im Spacer Objektfenster - __B_MYSWITCH__ (GROSSBUCHSTABEN) | ||
| - | | + | |
| - | | + | < |
| - | | + | { |
| + | if (Npc_IsPlayer(self)) | ||
| + | | ||
| + | | ||
| + | return TRUE; | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | return FALSE | ||
| + | }; // Nur der Hero darf den Switch bedienen | ||
| + | };</ | ||
| + | * **onStateFunc** | ||
| + | * Beispiel für den Eintrag im Spacer Objektfenster - __MYSWITCH__ (GROSSBUCHSTABEN & KEIN _S1) | ||
| + | * Beispiel für das Script | ||
| + | < | ||
| + | { | ||
| + | Wld_SendTrigger(" | ||
| + | };</ | ||
| + | * **rewind: | ||
| + | =====3. Switch mit FKW beschiessen===== | ||
| + | | ||
| + | **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, |
| + | * 3.1.2 - **Objectfenster - Einträge** | ||
| + | | ||
| + | * - __focusOverride: | ||
| + | * - __focusname: | ||
| + | * focusName in der Datei Text.d eintragen < | ||
| - | | + | * 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) |
| - | 3.a Boundingbox in die Mitte vor der Zielscheibe setzen | + | |
| - | | + | |
| - | PC = False, NPC = False, sonst kann das durch körperliche Berührung ausgelöst werden. | + | |
| - | Jetzt sollte das funzen. | + | **3.2.0 - Einschlag registrieren ....** |
| - | | + | * 3.2.1 - Triggerscript setzen. |
| - | Code: | + | * Boundingbox mindestens 20x20x20, sonst reagiert der Trigger eventuell nicht auf den Pfeil. Jetzt kommt es darauf an was man will, je kleiner die Boundingbox, |
| + | * 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 |
| + | *< | ||
| { | { | ||
| - | | + | var int zufall; zufall=Hlp_Random(6); |
| - | | + | if (zufall |
| - | { | + | if (zufall |
| - | PRINT(" | + | if (zufall |
| - | }; | + | if (zufall |
| - | | + | if (zufall == 4) { PRINT( " |
| - | { | + | if (zufall |
| - | PRINT(" | + | |
| - | }; | + | |
| - | | + | |
| - | { | + | |
| - | PRINT(" | + | |
| - | }; | + | |
| - | | + | |
| - | { | + | |
| - | PRINT(" | + | |
| - | | + | |
| - | | + | |
| - | { | + | |
| - | PRINT(" | + | |
| - | }; | + | |
| }; | }; | ||
| + | *</ | ||
| - | | + | *3.3.2 - Vielleicht noch jede getroffene |
| - | + | ||
| - | EDIT WICHTIG Den Scriptfunc vom Trigger benutzen, nicht den vom Schalter und den Schalter mit dem Trigger nicht verlinken. | + | |
| - | + | ||
| - | + | ||
| + | **WICHTIG - Den Scriptfunc vom Trigger benutzen und den Schalter mit dem Trigger nicht verlinken.** | ||