oCMobSwitch
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.
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
2.Einstellungen
2.0.0 - Einstellungen und Eintragungen im Objektfenster
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.
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.
-
func int B_MYSWITCH()
{
if (Npc_IsPlayer(self))
{
Wld_SendTrigger("MYMOVER");
return TRUE;
}
else
{
return FALSE
}; // Nur der Hero darf den Switch bedienen
};
func void MYSWITCH_S1() // Dieses S1 muss ins Script, in besonderen Fällen kann man auch S0 aufrufen
{
Wld_SendTrigger("MYMOVER");
};
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.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
const string MOBNAME_ZIELSCHEIBE = "Zielscheibe";
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.
WICHTIG - Den Scriptfunc vom Trigger benutzen und den Schalter mit dem Trigger nicht verlinken.
Die Mobeinsetz-Liste mit allen Mobs und allen zugehörigen Einträgen findet ihr hier
Zurück zur Haupseite →Mobs/Grundlagen/oCMobInter
20160208(dlz)