Sorkan
Es tut mir leid, aber ich raffs alleine nicht. Habe genau das unten stehende Script eins zu eins per copy and paste übertragen. Habe auch die Trigger in meinem Tür-Prefab so bezeichnet wie im Script, also trigger_1_tuer_, und trigger_2_tuer_1...
Jedoch bringt er mir jedesmal diesen Fehler, auch wenn ichs erstmal nur mit einer Tür probiere.

Ich möchte für meine Map eben solch einen Schiebetürmechanismus a la Supermarkt. Aber auch nachdem ich im Wiki die Rubrik Scripten mir angesehen habe, verstehe ich zwar,was da (also im Script) steht, kanns aber nicht nachvollziehen, bzw. den Fehler selbst lokalisieren.
Jedoch bringt er mir jedesmal diesen Fehler, auch wenn ichs erstmal nur mit einer Tür probiere.

Ich möchte für meine Map eben solch einen Schiebetürmechanismus a la Supermarkt. Aber auch nachdem ich im Wiki die Rubrik Scripten mir angesehen habe, verstehe ich zwar,was da (also im Script) steht, kanns aber nicht nachvollziehen, bzw. den Fehler selbst lokalisieren.
Zitat:
Original von Nightwing
Script ist logischerweise auf mehrere Türen erweiterbar:
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: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 ("trigger_1_tuer_1","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 rotateroll(-90,3.8,0.5,0.5); door1 playsound ("door_open"); door1 waittill ("rotatedone"); wait 5; door1 rotateroll(90,3.3,0.5,0.5); door1 playsound ("door_close"); 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 ("trigger_2_tuer_1","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 rotateroll(90,3.8,0.5,0.5); door1 playsound ("door_open"); door1 waittill ("rotatedone"); wait 5; door1 rotateroll(-90,3.3,0.5,0.5); door1 playsound ("door_close"); door1 waittill ("rotatedone"); level.door1_open = false; thread door1_trigger_left(); thread door1_trigger_right(); return; } } } door2(){ level.door2_open = false; thread door2_trigger_right(); thread door2_trigger_left(); } door2_trigger_right(){ door2 = getent ("door2","targetname"); door2_trigger_right = getent ("trigger_1_tuer_2","targetname"); while (1){ door2_trigger_right waittill ("trigger"); if (level.door2_open == true){ thread door2_trigger_left(); return; } else if (level.door2_open == false){ level.door2_open = true; door2 rotateroll(-90,3.8,0.5,0.5); door2 playsound ("door_open"); door2 waittill ("rotatedone"); wait 5; door2 rotateroll(90,3.3,0.5,0.5); door2 playsound ("door_close"); door2 waittill ("rotatedone"); level.door2_open = false; thread door2_trigger_right(); thread door2_trigger_left(); return; } } } door2_trigger_left(){ door2 = getent ("door2","targetname"); door2_trigger_left = getent ("trigger_2_tuer_2","targetname"); while (1){ door2_trigger_left waittill ("trigger"); if (level.door2_open == true){ thread door2_trigger_right(); return; } else if (level.door2_open == false){ level.door1_open = true; door2 rotateroll(90,3.8,0.5,0.5); door2 playsound ("door_open"); door2 waittill ("rotatedone"); wait 5; door2 rotateroll(-90,3.3,0.5,0.5); door2 playsound ("door_close"); door2 waittill ("rotatedone"); level.door2_open = false; thread door2_trigger_left(); thread door2_trigger_right(); return; } } }
Anstelle des rotateRoll, rotateYaw oder rotatePitch kann man auch moveX, moveY oder moveZ eingeben für eine Schiebetür a la Supermarkt bzw einen Fahrstuhl.
Dann heissts eben waittill ("movedone"); anstelle von waittill ("rotatedone");
ToM
Zitat:
