Problem mit script für bewegende Mauern!

lillJack
Hi ich habe drei Wände die sich alle in richtung X bewegen. Sie sollen sich immer von rechts nach links bzw. andersrum bewegen.
An ihnen sint auf jeweils beiden trigger_hurt verlint.
Doch seit ich das script ungebaut habe weil ich problemem mit den triggern bekommen habe bewegt sich mauer1(platte01) noch normal aber mauer2(platte02)
und mauer3(platte03) bewegen sich immer in eine richtung, also sie wechseln nicht die richtung nach den angegebenen 88 bzw -88.


hier mein script:



Code einblendenCode 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:
main()
{
level.plattenMoving = false;


level.pos_platte01 = true;
level.pos_platte02 = true;
level.pos_platte03 = true;



thread platte01_start();

}


platte01_start()
{
plattenmodel_01 = getent ("platte01", "targetname");
plattenmodel_02 = getent ("platte02", "targetname");
plattenmodel_03 = getent ("platte03", "targetname");

trigger_hurt = getent("platte01_dmg_01","targetname");
trigger_hurt enablelinkto();

trigger_hurt2 = getent("platte01_dmg_02","targetname");
trigger_hurt2 enablelinkto();

trigger_hurt3 = getent("platte02_dmg_01","targetname");
trigger_hurt3 enablelinkto();

trigger_hurt4 = getent("platte02_dmg_02","targetname");
trigger_hurt4 enablelinkto();

trigger_hurt5 = getent("platte03_dmg_01","targetname");
trigger_hurt5 enablelinkto();

trigger_hurt6 = getent("platte03_dmg_02","targetname");
trigger_hurt6 enablelinkto();

while(1)
{
wait .1;
if (!level.plattenMoving)
thread platte01_move();
thread platte02_move(); 
thread platte03_move();
}




}


platte01_move()
{
plattenmodel_01 = getent ("platte01", "targetname");
platte01_dmg_01 = getent ("platte01_dmg_01", "targetname");
platte01_dmg_02 = getent ("platte01_dmg_02", "targetname");


trigger_hurt = getent("platte01_dmg_01","targetname");
trigger_hurt2 = getent("platte01_dmg_02","targetname");

level.plattenMoving = true;

way = -88;  
speed = .5;

if (level.pos_platte01) {

trigger_hurt linkto(plattenmodel_01);
trigger_hurt2 linkto(plattenmodel_01);

plattenmodel_01 movex (way - (way * 2), speed);
plattenmodel_01 waittill ("movedone");



level.pos_platte01 = false;

}

else
{

trigger_hurt linkto(plattenmodel_01);
trigger_hurt2 linkto(plattenmodel_01);

plattenmodel_01 movex (way, speed);
plattenmodel_01 waittill ("movedone");



level.pos_platte01 = true;
}

level.plattenMoving = false;
}



platte02_move()
{
plattenmodel_02 = getent ("platte02", "targetname");
platte02_dmg_01 = getent ("platte02_dmg_01", "targetname");
platte02_dmg_02 = getent ("platte02_dmg_02", "targetname");


trigger_hurt3 = getent("platte02_dmg_01","targetname");
trigger_hurt4 = getent("platte02_dmg_02","targetname");

level.plattenMoving = true;

way = 88;  
speed = .5;

if (level.pos_platte02) {

trigger_hurt3 linkto(plattenmodel_02);
trigger_hurt4 linkto(plattenmodel_02);

plattenmodel_02 movex (way - (way * 2), speed);
plattenmodel_02 waittill ("movedone");



level.pos_platte02 = false;

}

else
{

trigger_hurt3 linkto(plattenmodel_02);
trigger_hurt4 linkto(plattenmodel_02);

plattenmodel_02 movex (way, speed);
plattenmodel_02 waittill ("movedone");



level.pos_platte02 = true;
}

level.plattenMoving = false;
}



platte03_move()
{
plattenmodel_03 = getent ("platte03", "targetname");
platte03_dmg_01 = getent ("platte03_dmg_01", "targetname");
platte03_dmg_02 = getent ("platte03_dmg_02", "targetname");


trigger_hurt5 = getent("platte03_dmg_01","targetname");
trigger_hurt6 = getent("platte03_dmg_02","targetname");


level.plattenMoving = true;

way = -88;  
speed = .5;

if (level.pos_platte03) {

trigger_hurt5 linkto(plattenmodel_03);
trigger_hurt6 linkto(plattenmodel_03);

plattenmodel_03 movex (way - (way * 2), speed);
plattenmodel_03 waittill ("movedone");



level.pos_platte03 = false;

}

else
{

trigger_hurt5 linkto(plattenmodel_03);
trigger_hurt6 linkto(plattenmodel_03);

plattenmodel_03 movex (way, speed);
plattenmodel_03 waittill ("movedone");



level.pos_platte03 = true;
}

level.plattenMoving = false;
}

Animus
hast du die console mal geöffnet und mal geschaut ob ne fehlermeldung kommt? irgendwas rot geschrieben mit error oder so.

kann das sein das in deim script oben das hier noch fehlt
thread platte02_start();
thread platte03_start();
OLD MAN WITH GUN

Zitat:

Original von Animus
kann das sein das in deim script oben das hier noch fehlt
thread platte02_start();
thread platte03_start();
Nein, es gibt nur platte01_start() (ist vom Begriffer von ihm etwas unglücklich gewählt). In diesem thread werden schon alle 3 Platten definiert und 3 move-threads (für jede Platte einen) gestartet.


@lillJack:
Einen Fehler den ich bereits gefunden habe ist der, das du bei der if-Abfrage, ob die Platten sich nicht bewegen, die Klammern vergessen hat. Der teil müsste so aussehen:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
while(1)
{
  wait .1;
  if (!level.plattenMoving)
  {
    thread platte01_move();
    thread platte02_move(); 
    thread platte03_move();
  }
}

Ohne die zusätzlichen Klammern fällt nur thread platte01_move(); unter die if-Bedingung, die zwei anderen nicht.
lillJack
jop danke das war das problem grosses Grinsen
jetzt gehts!