Benutzer-Werkzeuge

Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
quickstart:triggerscript [2016/02/21 13:56]
zollaidal
quickstart:triggerscript [2016/02/22 20:45] (aktuell)
85.180.72.156
Zeile 1: Zeile 1:
-................................................................ {{:​spacer:​omega7497construction.gif|}} ................................... ​ 
- 
 ====== oCTriggerScript ====== ====== oCTriggerScript ======
  
Zeile 94: Zeile 92:
   *oder ein NPC/PC muss den oCTriggerScript berühren.   *oder ein NPC/PC muss den oCTriggerScript berühren.
  
-  * Wir haben z.B eine Pendelklingenfalle,​ die der Hero bei Annäherung an die Pendelklingen auslösen soll. Wer diese nachbauen will oder nicht kennt, der kann sich hier informieren -> [[quickstart:​spacer:​mover2|]]+  * Wir haben z.B eine Pendelklingenfalle,​ die der Hero bei Annäherung an die Pendelklingen auslösen soll. Wer diese nachbauen willoder nicht kennt, der kann sich hier informieren -> [[quickstart:​spacer:​mover2|]]
   * Da gibt es auch mehrere Möglichkeiten das bei Annäherung auszulösen:​   * Da gibt es auch mehrere Möglichkeiten das bei Annäherung auszulösen:​
-    L    ​* Wir setzen einen Waypoint und schreiben in das Script unseres TimeLoop´s -> [[quickstart:​triggerscript#​timeloop|]] ​+  ​* Wir setzen einen Waypoint und schreiben in das Script unseres TimeLoop´s -> [[quickstart:​triggerscript#​timeloop|]] ​ 
 +     
 +<​code>​ 
 +var int aufruf; 
 +func void MY_TIMELOOP() // Scriptfunc des oCTriggerScript 
 +
 +  if (Npc_GetDistToWP (PC_Hero, "​WP_FALLE"​)<​ 800) // kleiner 8m 
 +  && (aufruf == 0) 
 +  { 
 +     ​Wld_SendTrigger("​NAME"​);​ 
 +     ​aufruf = 1; 
 +  }; 
 +   
 +  Wld_SendTrigger("​TS_TIMELOOP_05"​);//​ Am Ende des TimeLoop ruft die    
 +};                                  // Zeitschleife sich selbst wieder auf 
 +</​code>​ 
 + 
 +  * oder ihr setzt beim oCTriggerScript den Eintrag "​numCanBeActivated:​1",​ dann kann der oCTriggerScript nur 1x ausgelöst werden und ihr benötigt nicht die Variable "​aufruf"​. 
 + 
 +  * oder wir setzen in angemessener Entfernung von der Falle eine Triggerbox, in die der NPC reinlatschen muss um den oCTriggerScript auszulösen. 
 +  
 +  *2.1 Wir setzen uns einen oCTriggerScript,​ wie unter 1.1 beschrieben -> [[quickstart:​triggerscript#​einsetzen_triggerscript|]] ​  
 + 
 +  *2.2 Wir geben dem oCTriggerScript einen vobName:​FALLESTART 
 + 
 +  *2.3 Wir klicken im Objektfenster auf die Zeile "Edit the Box" 
 +{{:​quickstart:​octrig_08.jpg|}} 
 + 
 +  *2.4 und danach auf den Button "​Define"​ 
 +{{:​quickstart:​octrig_09.jpg|}} 
 + 
 +  *2.5 und erhalten das BoundingBox-GrössenEinstellfenster 
 +{{:​quickstart:​octrig_10.jpg|}} 
 + 
 +  *2.6 Da ich weiss, dass mein Flur 4,8m breit ist gebe ich für "​X"​ 480 ein. Ihr müsst halt probieren, bis dass die BoundingBox des oCTriggerScript die Breite eures Raumes einnimmt. Für die Höhe "​Y"​ habe ich 150cm gewählt, damit der Hero nicht darüber springen kann und die Tiefe "​Z"​ 50cm. Wenn die Boundingbox zu dünn ist, löst sie unter Umständen nicht aus. 
 +{{:​quickstart:​octrig_11.jpg|}} 
 + 
 +  *2.7 Wir klicken auf "​OK"​ und anschliessend auf den Button Stop 
 + 
 +  *2.8 Wir stellen numCanBeActivated:​1 (kann nur einmal ausgelöst werden), oder wir belassen das auf -1 (unendlich) und sperren weitere Auslösungen per Script. 
 + 
 +  *2.9 Einstellung cdDyn:TRUE Wenn der Player nicht mit der Box kollidieren kann, dann spricht sie nicht an. 
 + 
 +Jetzt gibt es nur noch das Problem, dass an solch einer TriggerBox Pfeile und Bolzen abprallen. Ein Problem das wir lösen könnten, wenn wir die Triggerbox breitflächig anlegen, so dass man ebenfalls nicht drüber springen kann und extrem flach, ca 20 cm, was dem Bogenschiessen ja keinen Abbruch tut. 
 +{{:​quickstart:​octrig_12.jpg|}} 
 + 
 +... oder aber ihr strebt eine Lösung mit Ikarus an -> [[http://​forum.worldofplayers.de/​forum/​threads/​1299679-Skriptpaket-Ikarus-4]] 
 + 
 +  *2.10 Fassen wir mal zusammen. Damit ein oCTriggerScript reagiert, wenn der Hero in die BoundingBox läuft, die BoundinBox berührt oder von einer sich bewegenden BoundingBox berührt wird, müssen folgende Voraussetzungen erfüllt sein: __Das sind jetzt nur die Einstellungen die verändert werden müssen__ 
 +    *VobName:​NAME_TRIGGER 
 +    *cdDyn:​TRUE 
 +    *respondToPC:​TRUE (so belassen) 
 +    *respondToNPC:​FALSE (es sei denn, der Trigger soll auch auf alle anderen NPC reagieren) 
 +    *numCanBeActivated:​alles ausser Null 
 +    *fireDelaySec:​Verzögerung kann man einstellen wenn man das benötigt 
 +    *scriptFunc:​Um ein Script aufzurufen, wo dann reguliert wird, was geschehen soll. 
 + 
 +  *triggerTarget:​ könnt ihr nutzen, wenn ihr im Spacer direkt auf ein anderes Objekt, wie z.B. Mover, TriggerList,​ MoverControler usw. verlinken wollt. Ihr erhaltet dann im Spacer immer eine"​Blaue Linie" zwischen den verlinkten Objekten. 
 + 
 +==== 2.A Mobiler Schadenstrigger ==== 
 + 
 +Für unsere Pendelbeilfalle -> [[quickstart:​spacer:​mover2|]] benötigen wir jetzt noch die Auslösung, damit ein NPC/PC, der von der Beilklinge berührt wird einen Schaden erleidet. 
 + 
 +  *Wir klicken auf den Mover (eine von den Beilklingen)und anschliessend auf die Taste "​M"​ und stellen die Beilklinge senkrecht. (jetzt nicht mehr mit der linken Maustaste auf den Mover klicken, sonst springt der zurück in seine Ausgangsstellung) 
 +{{:​quickstart:​octrig_13.jpg|}} 
 + 
 +  *Wir klicken im Objektfenster auf "​Create"​ und wählen dort den Eintrag "​oCTriggerScript"​ 
 +  *Wir klicken auf eine leere Stelle im Spacer Hauptfenster (**linke Maustaste**) 
 +  *Anschliessend auf unsere Beilklinge mit der **rechten Maustaste** und wir ehalten das Vobfenster mit der Option einen oCTriggerScript als Child of Mover einzusetzen. 
 +{{:​quickstart:​octrig_14.jpg|}} 
 + 
 +  * Wir klicken mit der **linken Maustaste** auf "​Insert(oCTriggerScript)as child of "​Name_Mover"​ 
 +  * Ein Blick in das Objekt**List**Fenster 
 +{{:​quickstart:​octrig_15.jpg|}} 
 + 
 +  * Wir editieren die BoundingBox des Triggers und vollziehen die Schritte 2.2 -> 2.5, oberhalb beschrieben ​ nach 
 +  * und stellen jetzt die Boundingbox des Schadentriggers von der Grösse her so ein, dass die BoundingBox die Beilklinge umschliesst.  
 +{{:​quickstart:​octrig_16.jpg|}} 
 + 
 +  *Wir benennen den oCTriggerScript mit vobName:​TS_BEILSCHADEN_D und wenn wir jetzt den Mover bewegen, bewegt sich der an die Beilklinge gehängte Schadenstrigger mit. 
 +{{:​quickstart:​octrig_17.jpg|}} {{:​quickstart:​octrig_18.jpg|}} 
 + 
 +  *Das wiederholen wir jetzt mit den 3 anderen Beilklingen. 
 +  *Wir stellen den Schadenstrigger so ein, dass er Berührung reagiert (siehe oben 2.10) 
 +  *Beispiel scriptFunc:​DAMAGE_D  
 +  *Und jetzt benötigen wir noch ein Script um den Schaden zu erzeugen: Beispiel Schaden Hero 
 +<​code>​ 
 +func void damage_d() 
 +
 +  if (Npc_IsPlayer(PC_Hero)) 
 +  { 
 +    PRINT("​AUA!"​);​ //​TESTPRINT 
 +    Npc_ChangeAttribute(hero,​ ATR_HITPOINTS,​ -50); 
 +  }; 
 +}; 
 +</​code>​ 
 + 
 +Dieses Script ebenfalls noch 3x schreiben, für die anderen Klingen. 
 + 
 +Dazu könnt ihr noch den Sound eintragen wenn ihr wollt, dass das Opfer schreit bei einem Treffer (DUMMY_WOUND) 
 +und/oder Blut spritzen lassen..... wie es euch gefällt. 
 + 
 +{{:​quickstart:​octrig_last.jpg|}} 
 + 
 +2016/​02/​22(dlz) 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
  
    
quickstart/triggerscript.1456059419.txt.gz · Zuletzt geändert: 2016/02/21 13:56 von zollaidal