|
 |
undefined is not an object |
Schulzi
Hat kein Zuhause
   
Dabei seit: 22.07.2010
Beiträge: 80

|
|
| undefined is not an object |
 |
Ich hab ein Problem, welches mich tierisch aufregt.
Ich wollte eine Tür erstellen, welche man auf und zu machen kann, aber dann kam mir beim testen dieser Error:
______________________________________________________________
******* script runtime error *******
undefined is not an object: (file 'maps/mp/mp_test2_doors.gsc', line 12)
door1_trig waittill ("trigger");
*
called from:
(file 'maps/mp/mp_test2_doors.gsc', line 3)
thread door1_rotate();
*
called from:
(file 'maps/mp/mp_test2.gsc', line 8)
maps\mp\mp_test2_doors::main();
*
started from:
(file 'maps/mp/mp_test2.gsc', line 1)
main()
*
************************************
writing to: C:\Program Files\Activision\Call of Duty 2\servercache.dat
Error during initialization:
script runtime error
(see console for details)
(file 'maps/mp/mp_test2.gsc', line 1)
______________________________________________________________
Ich hab als Trigger den "use_touch" genommen und dem folgende Daten gegeben:
key: targetname
value: door1_trigger
Hier mein 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:
|
main()
{
thread door1_rotate();
}
door1_rotate()
{
door1 = getent ("door1", "targetname");
door1_trig = getent("door1_trigger", "targetname");
while (1)
{
door1_trig waittill ("trigger");
door1 rotateYaw (-90, 1.5, 0.7, 0.7);
door1 waittill ("rotatedone");
wait 3;
door1 rotateYaw (90, 1.5, 0.7, 0.7);
door1 waittill ("rotatedone");
}
} |
|
Dieser wird natürlich von der Haupt GSC so aufgerufen:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
|
main()
{
maps\mp\_load::main();
maps\mp\mp_test2_doors::main();
} |
|
Ich weiß erlich gesagt nicht, woran der Fehler liegt :/.
Entweder bin ich blind oder einfach nur zu blöd.
Kann mir da jemand bitte helfen?
|
|
|
|
|
|
|
Ich hatte in meiner Map auch entsprechende Türen - finde aber leider das Skript im Moment nicht.
Schau mal in diesen Thread: Türen zum Öffnen per Script
Eins noch: Deine Tür geht nur einmal auf....
Was am Ende fehlt:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
|
self thread door1_rotate();
return;
} |
|
Edit: Rufe in Deiner main.gsc mal das Türenscript vor map\mp\_load::main(); auf.
Edit2: O.K., habe mein Script gefunden. Das weicht natürlich stark von Deinem Skript ab. Es handelt sich um zwei Türen in der Map, die sich automatisch wieder schließen und von beiden Seiten zu öffnen sind (mit Sound).
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:
|
main()
{
thread door1();
thread door2();
}
door1()
{
level.door1_open = false;
thread door1_trigger_right();
thread door1_trigger_left();
}
door1_trigger_right()
{
door1 = getent ("door1","targetname");
door1_trigger_right = getent ("door1_trigger_right","targetname");
while (1)
{
door1_trigger_right waittill ("trigger");
if (level.door1_open == true)
{
thread door1_trigger_left();
return;
}
else if (level.door1_open == false)
{
level.door1_open = true;
door1 rotateyaw (-90,2);
door1 playsound ("dooropen");
door1 waittill ("rotatedone");
wait 5;
door1 rotateyaw (90,2);
door1 playsound ("doorclose");
wait 2;
door1 playsound ("doorend");
door1 waittill ("rotatedone");
level.door1_open = false;
thread door1_trigger_right();
thread door1_trigger_left();
return;
}
}
}
door1_trigger_left()
{
door1 = getent ("door1","targetname");
door1_trigger_left = getent ("door1_trigger_left","targetname");
while (1)
{
door1_trigger_left waittill ("trigger");
if (level.door1_open == true)
{
thread door1_trigger_right();
return;
}
else if (level.door1_open == false)
{
level.door1_open = true;
door1 rotateyaw (90,2);
door1 playsound ("dooropen");
door1 waittill ("rotatedone");
wait 5; |
|
Und so wird das in der main.gsc aufgerufen:
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:
|
main()
{
maps\mp\mat_dusk_doors::main();
maps\mp\mat_dusk_barrelsnew::barrelInit();
maps\mp\mat_dusk_respawner::main();
maps\mp\mp_mat_dusk_final2_fx::main();
maps\mp\mat_dusk_planes::main();
maps\mp\_load::main();
ambientPlay("ambient_mp_mat_dusk_final2");
setExpFog(0.0002, 0.5, 0.5, 0.5, 0);
game["allies"] = "british";
game["axis"] = "german";
game["attackers"] = "allies";
game["defenders"] = "axis";
game["british_soldiertype"] = "africa";
game["german_soldiertype"] = "africa";
setcvar("r_glowbloomintensity0","1");
setcvar("r_glowbloomintensity1","1");
setcvar("r_glowskybleedintensity0",".25");
usw.
}
}
|
|
__________________

|
|
|
|
|
|
|
Probiere es mal so:
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:
|
main()
{
thread door1_rotate();
}
door1_rotate()
{
door1 = getent ("door1", "targetname");
door1_trigger = getent("door1_trigger", "targetname");
while (1)
{
door1_trigger waittill ("trigger");
door1 rotateYaw (-90, 1.5, 0.7, 0.7);
door1 waittill ("rotatedone");
wait 3;
door1 rotateYaw (90, 1.5, 0.7, 0.7);
door1 waittill ("rotatedone");
}
}
self thread door1_rotate();
return;
} |
|
__________________

|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|