Scripter gesucht für Wandbewegung! |
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
| Scripter gesucht für Wandbewegung! |
 |
so ich schon wieder mit einem scriptproblem!
also ich würde gerne über ein script eine tür öffnen, hört sich leicht an ist es aber für mich nicht weil die tür eine schiebetür ist aus 4 teilen.
das komplette teil sieht so aus.

und in so einer art soll sie dann offen sein

nun hätte ich gerne das sich das obere teil nach oben bewegt das untere nach unten. die zwei an der seite auch nach ihre seite jeweils.
nun ist mein problem das man da ja nicht im elevator script right oder left für height eingeben kann. also wie bestimme ich da die koordinaten bin nicht so der scripter?!
hab mal das script von badman genommen und will versuch es mal an meine tür anzupassen. leider versteh ich die positonsangaben nicht wirklich also in welche richtung sich es jeweils bewegt. für mich ist das nicht wirklich ersichtlich.
main()
{
level.plattenMoving = false;
level.pos_platte01 = true;
level.pos_platte02 = true;
level.pos_platte03 = true;
/*
platte01_dmg01 = getent ("platte01_dmg_01", "targetname");
platte01_dmg02 = getent ("platte01_dmg_02", "targetname");
platte02_dmg01 = getent ("platte02_dmg_01", "targetname");
platte02_dmg02 = getent ("platte02_dmg_02", "targetname");
platte03_dmg01 = getent ("platte03_dmg_01", "targetname");
platte03_dmg02 = getent ("platte03_dmg_02", "targetname");
*/
thread platte01_start();
thread platte02_start();
thread platte03_start();
/* while(1)
{
platte01_dmg01 Hide();
platte01_dmg02 Hide();
platte02_dmg01 Hide();
platte02_dmg02 Hide();
platte03_dmg01 Hide();
platte03_dmg02 Hide();
}*/
}
platte01_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte01_move();
}
}
platte02_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte02_move();
}
}
platte03_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte03_move();
}
}
platte01_move()
{
plattenmodel_01 = getent ("platte01", "targetname");
platte01_dmg01 = getent ("platte01_dmg_01", "targetname"); platte01_dmg02 = getent ("platte01_dmg_02", "targetname");
//platte01_dmg01 linkto(plattenmodel_01);
//platte01_dmg02 linkto(plattenmodel_01);
level.plattenMoving = true;
way = 112; //-
speed = 5;
if (level.pos_platte01) {
//platte01_dmg01 show();
plattenmodel_01 movex (way - (way * 2), speed);
plattenmodel_01 waittill ("movedone");
//platte01_dmg01 hide();
level.pos_platte01 = false;
}
else
{
//platte01_dmg02 show();
plattenmodel_01 movex (way, speed);
plattenmodel_01 waittill ("movedone");
//platte01_dmg02 hide();
level.pos_platte01 = true;
}
level.plattenMoving = false;
}
platte02_move()
{
plattenmodel_02 = getent ("platte02", "targetname");
platte02_dmg01 = getent ("platte02_dmg_01", "targetname"); platte02_dmg02 = getent ("platte02_dmg_02", "targetname");
//platte02_dmg01 linkto(plattenmodel_02);
//platte02_dmg02 linkto(plattenmodel_02);
level.plattenMoving = true;
way = 96; //-
speed = 5;
if (level.pos_platte02) {
//platte02_dmg01 show();
plattenmodel_02 moveY (way - (way * 2), speed);
plattenmodel_02 waittill ("movedone");
//platte02_dmg01 hide();
level.pos_platte02 = false;
}
else
{
//platte02_dmg02 show();
plattenmodel_02 moveY (way, speed);
plattenmodel_02 waittill ("movedone");
//platte02_dmg02 hide();
level.pos_platte02 = true;
}
level.plattenMoving = false;
}
platte03_move()
{
plattenmodel_03 = getent ("platte03", "targetname");
platte03_dmg01 = getent ("platte03_dmg_01", "targetname"); platte03_dmg02 = getent ("platte03_dmg_02", "targetname");
//platte03_dmg01 linkto(plattenmodel_03);
//platte03_dmg02 linkto(plattenmodel_03);
level.plattenMoving = true;
way = 96; //-
speed = 5;
if (level.pos_platte03) {
//platte03_dmg01 show();
plattenmodel_03 moveY (way, speed);
plattenmodel_03 waittill ("movedone");
//platte03_dmg01 hide();
level.pos_platte03 = false;
}
else
{
//platte03_dmg02 show();
plattenmodel_03 moveY (way - (way * 2), speed);
plattenmodel_03 waittill ("movedone");
//platte03_dmg02 hide();
level.pos_platte03 = true;
}
level.plattenMoving = false; }
kann mir dabei jemand helfen? würd mich sehr freuen wenn mir zumindest jemand einen tip geben würde.
mfg animus
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Animus: 06.01.2009 17:25.
|
|
|
|
|
steinacker
Milupa-Fan
  
Dabei seit: 13.03.2008
Beiträge: 662

|
|
das script um die platten zu bewegen arbeitet ohne trigger, das würde bedeuten, dass deine türe immer auf und zu geht
bei sowas z.b. nehm ich immer das script vom elevator und pass mir das dann an und wenn du anstatt einen trigger use touch einen trigger multipple verwendest, dann geht die türe auf, sobald einer den trigger passiert, und beim zweiten wieder zu
der einzigste nachteil ist, dass sich die türe in dem beispiel immer auf und zu bewegt, so lange ein player im trigger stehen bleibt...
hab hier mal was gebastelt:

(die rote linie gehört nich dazu)
und so schauts aus
  
die einzelnen tür teile bestehen jeweils aus 3 brushes, die ich zu einem scrpt_brushmodel gemacht hab, und dann jeweils den targetname plate1 bis plate 4 gegeben habe (oben angefangen)
und die trigger haben den targetname switch
und hier das script dazu:
_doorMover.gsc
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:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
|
main()
{
level.plateDown1 = true;
level.plateMoving1 = false;
level.plateDown2 = true;
level.plateMoving2 = false;
level.plateDown3 = true;
level.plateMoving3 = false;
level.plateDown4 = true;
level.plateMoving4 = false;
thread plate_start1();
thread plate_start2();
thread plate_start3();
thread plate_start4();
}
////////////////////////////////////////////plate1////////////////////
plate_start1()
{
plate1 = getentarray ("switch","targetname");
if ( isdefined(plate1) )
for (i = 0; i < plate1.size; i++)
plate1[i] thread plate_think1();
}
plate_think1()
{
while (1)
{
self waittill ("trigger");
if (!level.plateMoving1)
thread plate_move1();
}
}
plate_move1()
{
platemodel1 = getent ("plate1", "targetname");
level.plateMoving1 = true;
speed = 3;
height = 52;
if (level.plateDown1)
{
platemodel1 movez (height, speed); //bewegt sich nach oben um 52 WE
platemodel1 waittill ("movedone");
level.plateDown1 = false;
}
else
{
platemodel1 movez (height - (height * 2), speed); //und dann wieder zurück um 52 WE
platemodel1 waittill ("movedone");
level.plateDown1 = true;
}
level.plateMoving1 = false;
}
////////////////////////////////////////////plate2////////////////////
plate_start2()
{
plate2 = getentarray ("switch","targetname");
if ( isdefined(plate2) )
for (j = 0; j < plate2.size; j++)
plate2[j] thread plate_think2();
}
plate_think2()
{
while (1)
{
self waittill ("trigger");
if (!level.plateMoving2)
thread plate_move2();
}
}
plate_move2()
{
platemodel2 = getent ("plate2", "targetname");
level.plateMoving2 = true;
speed = 3;
height = 52;
if (level.plateDown2)
{
platemodel2 movex (height, speed); //platte2 nach rechts
platemodel2 waittill ("movedone");
level.plateDown2 = false;
}
else
{
platemodel2 movex (height - (height * 2), speed); //und wieder zurück
platemodel2 waittill ("movedone");
level.plateDown2 = true;
}
level.plateMoving2 = false;
}
////////////////////////////////////////////plate3////////////////////
plate_start3()
{
plate3 = getentarray ("switch","targetname");
if ( isdefined(plate3) )
for (i = 0; i < plate3.size; i++)
plate3[i] thread plate_think3();
}
plate_think3()
{
while (1)
{
self waittill ("trigger");
if (!level.plateMoving3)
thread plate_move3();
}
}
plate_move3()
{
platemodel3 = getent ("plate3", "targetname");
level.plateMoving3 = true;
speed = 3;
height = -52;
if (level.plateDown3)
{
platemodel3 movez (height, speed); //platte 3 nach unten
platemodel3 waittill ("movedone");
level.plateDown3 = false;
}
else
{
platemodel3 movez (height - (height * 2), speed); //und wieder zurück
platemodel3 waittill ("movedone");
level.plateDown3 = true;
}
level.plateMoving3 = false;
}
////////////////////////////////////////////plate4////////////////////
plate_start4()
{
plate4 = getentarray ("switch","targetname");
if ( isdefined(plate4) )
for (i = 0; i < plate4.size; i++)
plate4[i] thread plate_think4();
}
plate_think4()
{
while (1)
{
self waittill ("trigger");
if (!level.plateMoving4)
thread plate_move4();
}
}
plate_move4()
{
platemodel4 = getent ("plate4", "targetname");
level.plateMoving4 = true;
speed = 3;
height = -52;
if (level.plateDown4)
{
platemodel4 movex (height, speed); //platte 4 nach links
platemodel4 waittill ("movedone");
level.plateDown4 = false;
}
else
{
platemodel4 movex (height - (height * 2), speed); //und wieder zurück
platemodel4 waittill ("movedone");
level.plateDown4 = true;
}
level.plateMoving4 = false;
} |
|
Edit:
und hier noch das prefab mit der gsc-datei zum download bei
rapidshare
__________________ Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von steinacker: 06.01.2009 20:12.
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
also ich hab jetzt mal ein bisl rumgescriptet aber wie gesagt ahnung hab ich da nicht wirklich viel von. bei mir bewegt sich jetzt das ding nur einmal weil keine schleife da ist!!! wie gesagt jetzt will ich das ja nur über den trigger noch machen!
main()
{
level.plattenMoving = false;
level.pos_platte01 = true;
thread platte01_start();
}
platte01_start()
{
while(1)
{
time = 6;
wait time;
if(!level.plattenMoving)
thread platte01_move();
}
}
platte01_move(){
plattenmodel_01 = getent ("platte01", "targetname");
platte01_dmg01 = getent ("platte01_dmg_01", "targetname"); platte01_dmg02 = getent ("platte01_dmg_02", "targetname");
level.plattenMoving = true;
way = 112; //- speed = 15;
if (level.pos_platte01)
{
plattenmodel_01 movex (way - (way * 2), speed);
plattenmodel_01 waittill ("movedone");
level.pos_platte01 = false;
} else {
plattenmodel_01 movex (way, speed);
plattenmodel_01 waittill ("movedone");
level.pos_platte01 = true;
}
}
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
hab jetzt mal versucht das script warten zu lassen bis ein trigger gestartet wird
hab einfach oben an das script ein auszug vom elevator script angepasst:
das ding sieht dann so aus:
main(){
level.plattenMoving = false;
level.pos_platte01 = true;
thread platte01_start();
}
platte01_start(){
while(1){
time = 6;
wait time;
if(!level.plattenMoving)
thread platte01_think();
}
}
platte01_think(){
while (1){
self waittill ("trigger");
if (!level.plattenMoving)
thread platte01_move();
}
}
platte01_move(){
plattenmodel_01 = getent ("platte01", "targetname");
platte01_dmg01 = getent ("platte01_dmg_01", "targetname");
platte01_dmg02 = getent ("platte01_dmg_02", "targetname");
level.plattenMoving = true;
way = 112; //-
speed = 5;
if (level.pos_platte01) {
plattenmodel_01 movex (way - (way * 2), speed);
plattenmodel_01 waittill ("movedone");
level.pos_platte01 = false;
}else{
plattenmodel_01 movex (way, speed);
plattenmodel_01 waittill ("movedone");
level.pos_platte01 = true;
}
}
hab jetzt nur in problem wenn ich einen trigger erstelle und ihn dann über w verbinden will mit dem brush verschwindet der trigger und ich kann ihn wieder neu machen
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
gut das mit dem trigger war ein fehler von mir kann ihn auch mit dem brush verbinden nur auslösen kann ich ihn nicht das model bleibt an der stelle wo es ist da passiert nix!
hilfe
ich werde noch blöd man man man.....
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
so alles schön und gut funktioniert auch soweit dein script. hab es noch umgeschrieben das bei einem trigger multi. die tür nicht auf und zu geht wenn der player den die ganze zeit berührt. auch bleibt die tür jetzt 6sek. auf und schließt dann auto. wieder.
jetzt steh ich aber wieder vor einem problem!!!
wie kann ich da damage trigger mit einbinden die sich mitbewegen?
der player soll schaden nehmen wenn er in der tür steht und sie zu geht!
ich kann weder so einen trigger mitbewegen noch noch irgendetwas. bekomme jedesmal scriptfehler egal wie ich es mache!
hast du da noch ne idee wie sowas gehen könnte?
|
|
|
|
|
BadMan
Turnbeutelvergesser
 
Dabei seit: 31.01.2008
Beiträge: 278

|
|
Gib Obacht is ganz leicht. Du erstellst ein script_origin, bei so einer Tür würd ichs einfach in der Mitte platzieren, kannst ihn aber auch mit linkto befestigen. Dem origin gibste einen targetname z.b dmg01
Im Skript rufst du es dann einfach an der gewünschten stelle auf.
Das sieht dann wenn ich das Skript von steinacker nehme so aus
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:
|
plate_move1()
{
platemodel1 = getent ("plate1", "targetname");
level.plateMoving1 = true;
speed = 3;
height = 52;
if (level.plateDown1)
{
platemodel1 movez (height, speed); //bewegt sich nach oben um 52 WE
thread dmg01();
platemodel1 waittill ("movedone");
level.plateDown1 = false;
}
else
{
platemodel1 movez (height - (height * 2), speed); //und dann wieder zurück um 52 WE
thread dmg01();
platemodel1 waittill ("movedone");
level.plateDown1 = true;
}
level.plateMoving1 = false;
}
|
|
Und dies fügst du unten an das Skript dran musste aber für jeden orgin neu machen
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:
|
dmg01()
{
dmg01 = getent ("dmg01", "targetname");
while(1)
{
if (!level.plateMoving1)
return;
radiusDamage(dmg01.origin,60, 500, 0);
wait .5;
}
}
|
|
Und wenn der damage nicht sofort erfolgen soll machste über
Code angehängt. Klicke hier zum Ein-/Ausblenden
einfach noch nen
Code angehängt. Klicke hier zum Ein-/Ausblenden
oder so ist so nach der hälfte der zeit.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BadMan: 07.01.2009 12:38.
|
|
|
|
|
steinacker
Milupa-Fan
  
Dabei seit: 13.03.2008
Beiträge: 662

|
|
also ich hab mal das mit script_origin getestet und es funzt prima
allerdings rufe ich den thread dmg01(); nur auf, wenn die türe zu geht und es reicht, wenn ein script_origin drin ist
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:
|
plate_move1()
{
platemodel1 = getent ("plate1", "targetname");
level.plateMoving1 = true;
speed = 3;
height = 52;
if (level.plateDown1)
{
platemodel1 movez (height, speed); //bewegt sich nach oben um 52 WE
platemodel1 waittill ("movedone");
level.plateDown1 = false;
}
else //hier geht die türe zu und das erste (obere) türenteil bewegt sich nach unten
{
platemodel1 movez (height - (height * 2), speed); //und dann wieder zurück um 52 WE
thread dmg01();
platemodel1 waittill ("movedone");
level.plateDown1 = true;
}
level.plateMoving1 = false;
} |
|
und am ende nach plate_move4() dann den code zu der funktion dmg01()
und so schauts dann im radiant aus

und so im game, der player bleibt an einem türteil hängen

jetzt stellt sich für mich noch die frage, wo ich OMWG's trigger_hurt code einfüge
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
|
hurt_trigger = getent("trigger_hurt","targetname");
hurt_trigger enablelinkto();
hurt_trigger linkto(wasauchimmer); |
|
so könnt ich mir das vorstellen
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:
|
plate_move1()
{
platemodel1 = getent ("plate1", "targetname");
hurt_trigger = getent("trigger_hurt","targetname"); //hier
level.plateMoving1 = true;
hurt_trigger enablelinkto(); //hier
speed = 3;
height = 52;
if (level.plateDown1)
{
platemodel1 movez (height, speed); //bewegt sich nach oben um 52 WE
platemodel1 waittill ("movedone");
level.plateDown1 = false;
}
else //hier geht die türe zu und das erste (obere) türenteil bewegt sich nach unten
{
platemodel1 movez (height - (height * 2), speed); //und dann wieder zurück um 52 WE
hurt_trigger linkto (platemodel1); //und hier
platemodel1 waittill ("movedone");
level.plateDown1 = true;
}
level.plateMoving1 = false;
} |
|
__________________ Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende
|
|
|
|
|
steinacker
Milupa-Fan
  
Dabei seit: 13.03.2008
Beiträge: 662

|
|
Der Grund ist wenn 2X
hurt_trigger enablelinkto();
aufgerufen wird gibt’s ne Fehlermeldung, da es ja schon aktiv ist. (Der Befehl ist Global wirksam)
daher die fehlermeldung, die ich hatte...
kann das sein, dass der trigger_hurt brush im radiant noch einen targetname benötigt
Edit:
also ich hab das nochmal getestet mit dem trigger_hurt

der brush braucht noch nen targetname, sonst gibts wieder fehler
und ich hab den nur an die obere platte verlinkt im script, diesmal aber auch beim öffnen, da sich der player sonst auch beim öffnen verletzt
und der trigger_hurt wirkt nicht sofort tödlich, so dass man noch rauskommen kann - aber am besten mal selbst testen
hier noch die änderungen im script:
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:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
|
main()
{
hurt_trigger = getent("trigger_hurt","targetname");
hurt_trigger enablelinkto();
level.plateDown1 = true;
level.plateMoving1 = false;
level.plateDown2 = true;
level.plateMoving2 = false;
level.plateDown3 = true;
level.plateMoving3 = false;
level.plateDown4 = true;
level.plateMoving4 = false;
thread plate_start1();
thread plate_start2();
thread plate_start3();
thread plate_start4();
}
////////////////////////////////////////////plate1////////////////////
plate_start1()
{
plate1 = getentarray ("switch","targetname");
if ( isdefined(plate1) )
for (i = 0; i < plate1.size; i++)
plate1[i] thread plate_think1();
}
plate_think1()
{
while (1)
{
self waittill ("trigger");
if (!level.plateMoving1)
thread plate_move1();
}
}
plate_move1()
{
platemodel1 = getent ("plate1", "targetname");
hurt_trigger = getent("trigger_hurt","targetname"); //hier
level.plateMoving1 = true;
speed = 3;
height = 52;
if (level.plateDown1)
{
platemodel1 movez (height, speed); //bewegt sich nach oben um 52 WE
hurt_trigger linkto(platemodel1);
platemodel1 waittill ("movedone");
level.plateDown1 = false;
}
else //hier geht die türe zu und das erste (obere) türenteil bewegt sich nach unten
{
platemodel1 movez (height - (height * 2), speed); //und dann wieder zurück um 52 WE
hurt_trigger linkto(platemodel1);
platemodel1 waittill ("movedone");
level.plateDown1 = true;
}
level.plateMoving1 = false;
} |
|
der rest bleibt wie er ist, nur dass ich zum schluss den code mit dem radiusDamage wieder rausgenommen hab
__________________ Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von steinacker: 08.01.2009 19:35.
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
leider versteh ich im moment ein bisl bahnhof.
ich taste mich erst ran an das scripten und häng da meist sehr lange davor bis ich die hälfte verstanden habe. bitte um nachsicht!
also 1.
mein script sieht so aus mal nur die platte 1:
main()
{
level.plateDown1 = true;
level.plateMoving1 = false;
level.plateDown2 = true;
level.plateMoving2 = false;
level.plateDown3 = true;
level.plateMoving3 = false;
level.plateDown4 = true;
level.plateMoving4 = false;
thread plate_start1();
thread plate_start2();
thread plate_start3();
thread plate_start4();
}
////////////////////////////////////////////plate1////////////////////
plate_start1()
{
plate1 = getentarray ("switch","targetname");
if ( isdefined(plate1) )
for (i = 0; i < plate1.size; i++)
plate1[i] thread plate_think1();
}
plate_think1()
{
while (1)
{
self waittill ("trigger");
if (!level.plateMoving1)
thread plate_move1();
}
}
plate_move1()
{
platemodel1 = getent ("plate1", "targetname");
level.plateMoving1 = true;
speed = 1;
height = 52;
platemodel1 playsound ("xdor");
platemodel1 movez (height, speed);
platemodel1 waittill ("movedone");
level.plateDown1 = false;
wait 6;
platemodel1 playsound ("xdor");
platemodel1 movez (height - (height * 2), speed);
platemodel1 waittill ("movedone");
level.plateDown1 = true;
level.plateMoving1 = false;
}
so schön und gut geht auch wie geschniert.
meine frage ist jetzt
wenn ich den befehl nur einmal aufrufen kann ist damit das script gemeint oder kann ich den nur einmal überhaupt aufrufen. also zb wenn ich 2türen hätte und die gleichzeitig geöffnet werden gibt es einen scriptfehler oder was?
dann muß ich den erstellen? also so wie die platte1 machen und drüberlegen da würde sich das ding ja nicht mitbewegen. sobald die tür zu geht aufpoppen und alles vernichten und nix mehr mit noch schnell durchhüpfen.
oder muß ich ein script_origin erstellen dort den trigger ranhängen und er bewegt sich dann mit oder so. ich seh das ja nicht nach dem compile wie das wirkt entweder gibts einen fehler oder nicht.
ich würde jetzt in meinem script oben nach main das rein tun:
hurt_trigger = getent("trigger_hurt","targetname");
hurt_trigger enablelinkto();
und wenn die platte1 runter geht das rein tun nur leider versteh ich das nicht!
hurt_trigger linkto(platemodel1);
der trigger_hurt hat den targetname"trigger_hurt" und ist damit verlinkt per script an die platte1. soweit so gut
aber wo ist der brush mit dem trigger in der map?
ich weiß ich hab viele fragen! aber hier ist noch eine zum befehl "hintstring" im taste N menu. was muß da eingegeben werden wenn ich zum benutzen die benutzentaste angezeigt haben will. man kann da ja nicht einfach F reinschreiben weil nicht jeder F als benutzentaste hat. viele spielen ja auch A S D F oder E S D F statt W A S D?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Animus: 09.01.2009 14:32.
|
|
|
|
|
|
|
Key: hintstring
Value: Press [Use] to activate the "was auch immer"!
Wichtig ist halt [Use].
__________________

|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
@bangingbernie
danke für den hintstring!
|
|
|
|
|
|
|
Du kannst beim Hintstring übrigens auch die Farbcodes verwenden (die man z.B. auch im Ingamechat verwendet).
Also z.B.
hintring: Press [^3[Use]^7] to activate whatever
Würde dann z.B. so aussehen:
Press [F] to activate whatever
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
@OLD MAN WITH GUN
aha das is ja mal was gutes thx
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|