Scripter gesucht für Wandbewegung! |
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
@steinacker das ist mir schon klar das ist auch net das was mich interessiert!
mir geht es um die trigger_hurt nicht um die tgigger_touch(da hab ich die befehle jetzt die ich brauche).
mir gehts hautsächlich um die damage_trigger
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
hm gut also wie ich das jetzt mitbekommen hab ist der trigger in der mitte und vernichted wieder alles wenn die tür zufällt!
kann ich an den trigger ne zeit ran machen das der zb erst 6sek spähter aktiviert wird. also tür geht zu sagen wir 10sek lang der trigger soll aber erst 4 sek da sein nach dem die tür angefanngen hat sich zu schließen.
aber soll ja auch wieder weg sein wenn die tür zu ist. sonst kann es ja sein das einer die tür wieder auf macht und der trigger immernoch schaden macht oder so!
|
|
|
|
|
BadMan
Turnbeutelvergesser
 
Dabei seit: 31.01.2008
Beiträge: 278

|
|
Ich habe das jetzt so gestaltet dass, man nicht verletzt werden kann wenn die Wand steht.
Also der normale weg Wand – Trigger_hurt an die Seite klatschen gefällt mir irgendwie nicht.
Da es irgendwie dämlich ist wenn man gegen ne Wand läuft und stirbt/verletzt wird.
Daher habe ich den Trigger jetzt in die Wand gesetzt bündig mit vorderkante,
Vorteil einem passiert nichts wenn die Wand/Tür steht und man gegen läuft.
Da sich der Trigger nicht alleine bewegen lässt, habe ich noch ein script_origin dazu gepackt
Beide mit eigenem targetname.
Erst mal das Skript
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
|
platte01_move()
{
plattenmodel_01 = getent ("platte01", "targetname");
platte01_origin01 = getent ("platte01_dmg_origin_01", "targetname");
platte01_origin02 = getent ("platte01_dmg_origin_02", "targetname");
platte01_dmg01 = getent ("platte01_dmg_01", "targetname");
platte01_dmg02 = getent ("platte01_dmg_02", "targetname");
platte01_dmg01 linkto(platte01_origin01);
platte01_dmg02 linkto(platte01_origin02);
level.plattenMoving = true;
level.platten01Moving = true;
way = 112;
speed = 5;
speed_dmg = 1.2;
if (level.pos_platte01) {
platte01_origin02 linkto(plattenmodel_01);
plattenmodel_01 movex (way - (way * 2), speed);
platte01_origin01 movex (way - (way * 2), speed * speed_dmg);
plattenmodel_01 waittill ("movedone");
platte01_origin02 unlink();
level.pos_platte01 = false;
}
else
{
platte01_origin01 linkto(plattenmodel_01);
plattenmodel_01 movex (way, speed);
platte01_origin02 movex (way , speed * speed_dmg);
plattenmodel_01 waittill ("movedone");
platte01_origin01 unlink();
level.pos_platte01 = true;
}
level.plattenMoving = false;
level.platten01Moving = false;
}
|
|
Da wird jetzt der Trigger an den origin gehaftet und der origin bewegt
(linkto : Zeile 12 u. 13 Bewegung: Zeile 32 und 48). Da es eine schiebende Bewegung ist,
habe ich den Trigger noch etwas abgebremst was man einstellen kann wenn man die Zahl von speed_dmg erhöht oder verringert
(1 = selbe zeit wie wand, <1 Trigger ist langsamer wie Wand, >1 Trigger ist schneller wie Wand)
Das bringt den Vorteil, wenn die Wand angehalten wird (Spieler steckt dazwischen) läuft der Trigger weiter und
kommt aus der Wand und entfernt den Schmutz das die Wand weiterlaufen kann.
Bei ner Tür bzw. bei einer rotate Bewegung würde ich´s auf die gleiche Zeit einstellen, da sonst der Trigger auf der anderen Seite der Tür rauskommt.
Was vielleicht auch noch wichtig ist ist das der Trigger der verletzen soll bewegt wird,
der andere wird mit der Wand erst verbunden (linkto) nach der Bewegung wieder
getrennt (unlink).
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
@badman
danke für den tip ich probier das mal aus!
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|