| Autor |
|
|
|
|
Administrator 880 Beiträge - Forenjunkie
|
 |
|
Zitat Original geschrieben von gboeck
...........Ich muss per script auch ne Tür öffnen und schliessen.
Wie man Türen macht weiss ich, aber nicht wie und wann man die offen und abgeschlossen scriptet..........
|
hi gerrie,
ich habe mir mal die sache mit der verriegelten tür angeschaut.
wenn ich deinen post richtig verstanden habe, willst du eine tür bauen, die zuerst verschlossen ist,
später im spiel in abhängigkeit des spielverlaufs freigeschaltet wird, damit der player sie dann öffnen kann.
nach langer sucherei habe ich eine tür gefunden, die den durchgang vom dorf zum strand zulässt.
es ist diese schmiedeeiserne tür. siehe bild

ich habe den türanschlag auf die rechte seite gesetzt.
nachdem der türbrush und der originbrush (türanschlag) zusammen zu einer func_rotatingdoor gemacht wurden, trägt man noch den öffnungswinkel ein.
auf beide seiten der tür setzt du dann jeweils einen trigger_use. diese steuern später die türöffnungsfunktion.
so sieht es dann in der draufsicht aus.

folgende einträge sind bei den verschiedenen entitys vorzunehmen.
bei der tür:

beachte bitte die gesetzten markierungen bei "NOT PLAYER" und "TARGETED".
- mit "NOT PLAYER" wird die autoöffnungsfunktion mittels der benutzentaste für die tür deaktiviert, wenn ein player in türnähe diese drückt.
- mit "TARGETED" wird der tür mitgeteilt, dass sie erst reagieren darf, wenn sie durch ein anderes eintity (z.B. Trigger oder thread-ausruf) angewählt wird.
- spawnflags ist die ziffernsumme der gesetzten flags "NOT PLAYER" und "TARGETED", bitte nicht verändern.
- bei dieser tür ist 90° der richtige öffnungswinkel, deshalb angle 90.
- als targetname habe ich "gittertuer" gewählt, die namensgebung ist jedoch deiner phantasie freigestellt.
bei den triggern:
ich habe jeweils einen auf die beiden türseiten gesetzt. der triggertyp ist trigger_use, der targetname ist wiederum frei.
zur einfacheren orientierung für mich habe diese "gittertuer_stadttrigger" für den den trigger von der startseite her
und "gittertuer_strandtrigger" auf der strandseite, genannt.
als target ist die func_rotatingdoor "gittertuer" bei beiden triggern eingetragen.
im radiant wird diese beziehung "auslöser : Ziel" durch einen pfeil vom trigger zum origin der tür dargestellt.
in der konsequenz bedeutet dies, dass die tür nur noch auslöst wird, wenn einer der beiden trigger betätigt wird.


hiermit sind die arbeiten in der map abgeschlossen, die map compielen.
jetzt kommen einige einträge im mapscript.
//----------------------------------------
main:
level.script= "maps/test_duenkirchen2.scr"
exec global/auto.scr
level waittill prespawn
exec global/door_locked.scr::lock
$gittertuer_stadttrigger nottriggerable
$gittertuer_strandtrigger nottriggerable
level waittill spawn
level.t = 60
thread tmp_countdown
end
//threads---------------------------------
tmp_countdown:
wait 1
level.t = level.t - 1
//iprintlnbold (level.t)
iprintln (level.t)
if (level.t == 0)
{
thread tmp_gittertuer_auf
end
}
goto tmp_countdown
end
tmp_gittertuer_auf:
iprintlnbold "Die Gittertuer ist freigeschaltet zum oeffnen!"
$gittertuer_stadttrigger triggerable
$gittertuer_strandtrigger triggerable
end
hier die einträge nochmal mit erläuterungen

im countdownthread habe ich eine zeitspanne von 60 sekunden gewählt. diese zeit langt aus,
um vom playerstart zu der gittertür zu gelangen und festzustellen. dass diese verschlossen ist.
nach ablauf der zeit werden die trigger aktiviert, und die tür ist nutzbar.
edit: wie immer viel zu ausführlich...... aber auch als tutorial nutzbar 
 |

"Jeder kann sagen, was er will, auch wenn es falsch ist.
Denn jeder hat das Grundrecht auf Irrtum"
Altbundespräsident Roman Herzog 10/95 |
Dieser Beitrag wurde 2 mal editiert, zuletzt von cubus am 27.12.2011 - 18:00.
|
| Beitrag vom 27.12.2011 - 15:02 |
|