Verni@hter
Was macht/kann diese Tür?
Ich hoffe ich hab nix vergessen. Danke an alle Mitwirkenden!
- sie lässt sich öffnen und schließen
- hat beim öffnen und schließen einen Sound
- Trigger der Tür bewegt sich beim öffnen und schließen mit
- ist die Tür offen wird ein Text + Icon angezeigt, ist sie vom Admin deaktiviert wird ein anderer Text eingeblendet und das Icon verschwindet
- Serveradmins können selbst per server.cfg entscheiden bei welchem Spielmodus man die Tür öffnen kann oder wo sie lieber geschlossen bleibt
Das Script stammt von OLD MAN WITH GUN, im Diskussionsthread dvars für Admins einbauen haben weiter geholfen Nightwing & BadMan
folgende Threads wurden genutzt:
dvars für Admins einbauen
[Tutorial] Öffnende Tür erstellen *
[Tutorial] Aufzug oder Tür mit Sound belegen
- Als erstes erstellen wir eine Tür wie in diesem Tutorial [Tutorial] Öffnende Tür erstellen *
ich hab das ganze schon vorbereitet Download, fertige Tür bei dem dort im Thread angegebene Script bewegt sich der Trigger nicht mit und es wird auch bei öffnen und schließen kein Sound abgespielt dies wurde dann nach und nach im Thread oder in neuen Threads weiter entwickelt. Wo wir dann schon bei der _door.gsc wären ->
- erstelle ein neues Textdokument und benenne es von Neues Textdokument.txt in _door.gsc um, speicher die gsc im Ordner map/mp ab
- Script Trigger bewegt sich mit und hat beim öffnen und schließen einen Sound
Code angehängt. Klicke hier zum Ein-/Ausblendencode: 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:
main() { doortriggers = getentarray("doortrig","targetname"); for(i = 0; i < doortriggers.size; i++) doortriggers[i] thread door_think(); } door_think() { self.doormoving = false; self.doorclosed = true; self.doormodel = getent(self.target, "targetname"); self enableLinkTo(); self linkto(self.doormodel); while (1) { self waittill("trigger"); if(!self.doormoving) self thread door_move(); } } door_move() { self.doormoving = true; if(self.doorclosed) { self.doormodel playsound ("dein_soundaliases_name"); //oeffnen self.doormodel rotateyaw(-90,1,0.5,0.5); self.doormodel waittill("rotatedone"); self.doorclosed = false; } else { self.doormodel playsound ("dein_soundaliases_name"); //schließen self.doormodel rotateyaw(90,1,0.5,0.5); self.doormodel waittill("rotatedone"); self.doorclosed = true; } self.doormoving = false; }
kopiere das Script und füge es in deine _door.gsc ein
ändere bitte im Code folgendes ab -> 2x dein_soundaliases_name (kann individuell vergeben werden)
WICHTIG!! Hast du für das öffnen und schließen jeweils einen extra Sound müssen hier 2 verschiedene soundaliases namen angegeben werden ansonsten 2 gleiche
WICHITG!! Wenn du Spieleigene Sounds benutzt dann solltest du auch deren soundaliases namen nutzen
- erstellt einen Ordner sound auf eurem Desktop, erstellt im Ordner sound einen Ordner music (kann auch einen anderen Namen haben. Im Tutorial nutze ich music)
- in den Ordner music kommen nun eure Custom Sounds schicke Seite für Sounds
- Das Musikstück sollte das Format Wave haben
- rechtsklick auf den Ordner sound -> Zum Archiv hinzufügen -> Archivformat ZIP wählen, dann das ganze von sound.zip in mp_dein_mapname.iwd umbenennen
- erstelle ein neues Textdokument und benenne es um von Neues Textdokument.txt in mp_dein_mapname.csv und füge folgendes ein
Code angehängt. Klicke hier zum Ein-/Ausblendencode: 1: 2: 3: 4: 5:
name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage #tuer dein_soundaliases_name,1,music/deinsoundfile.wav,0.8,0.85,,0.95,1.05,7,1500,auto,streamed,,,,mp_dein_mapname,,,,,,,,,,,,, dein_soundaliases_name,1,music/deinsoundfile.wav,0.8,0.85,,0.95,1.05,7,1500,auto,streamed,,,,mp_dein_mapname,,,,,,,,,,,,,
ändere bitte im Code folgendes ab -> mp_dein_mapname & dein_soundaliases_name & deinsoundfile.wav
- was wir nicht tun ist dies hier -> maps\mp\_door::main(); in unsere map.gsc zu schreiben
- kopiere dies -> rawfile,maps/mp/_door.gsc in dein zonefile
- kopiere dies -> sound,mp_dein_mapname,mp_dein_mapname,all_mp in dein zonefile
- nun kommen die dvars für den Admin ins Spiel
kopiere folgenden Code in den main Block deiner map.gsc
Code angehängt. Klicke hier zum Ein-/Ausblendencode: 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:
level.gtdoor = false; tmp = getDvar("mp_dein_mapname"); if( isDefined( tmp ) ) { gtarray = StrTok( toLower( tmp ), "," ); for (i = 0; i < gtarray.size; i++) { if ( gtarray[i] == level.gametype ) level.gtdoor = true; } if( level.gtdoor ) thread maps\mp\_door::main(); else { doortriggers = getentarray( "doortrig", "targetname" ); for ( i = 0; i < doortriggers.size; i++ ) { doortriggers[i] SetCursorHint( "HINT_NOICON" ); doortriggers[i] SetHintString( "Door is locked!" ); } } } else thread maps\mp\_door::main(); }
das ganze sieht dann so aus:
Code angehängt. Klicke hier zum Ein-/Ausblendencode: 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:
main() { maps\mp\_load::main(); game["allies"] = "sas"; game["axis"] = "russian"; game["attackers"] = "axis"; game["defenders"] = "allies"; game["allies_soldiertype"] = "woodland"; game["axis_soldiertype"] = "woodland"; level.gtdoor = false; tmp = getDvar("mp_dein_mapname"); if( isDefined( tmp ) ) { gtarray = StrTok( toLower( tmp ), "," ); for (i = 0; i < gtarray.size; i++) { if ( gtarray[i] == level.gametype ) level.gtdoor = true; } if( level.gtdoor ) thread maps\mp\_door::main(); else { doortriggers = getentarray( "doortrig", "targetname" ); for ( i = 0; i < doortriggers.size; i++ ) { doortriggers[i] SetCursorHint( "HINT_NOICON" ); doortriggers[i] SetHintString( "Door is locked!" ); } } } else thread maps\mp\_door::main(); }
ändere bitte im Code folgendes ab -> mp_dein_mapname das steht nacher so auch in der Server.cfg des Admins drin. Damit das dann einheitlich ausschaut würd ich das mit dem Consolennamen deiner Map machen
- der Admin hat nun die Möglichkeit per dvar zu entscheiden ob man auf seinem Server die Türen öffnen kann oder nicht, das ganze kann er nun auch noch für jeden einzelnen Gametype einstellen
- mit diesem Befehl set mp_dein_mapname_door_open "sd" welcher dann in die server.cfg geschrieben wird kann man die Tür in sd öffnen jeder weiter Gametype wird mit einem Komma getrennt hinzugefügt
- wird dieser Befehl nicht in die server.cfg geschrieben oder bleibt es zwischen den beiden "Anführungszeichen" leer bleiben die Türen geschlossen
- das ganze sollte man dann auch dem Admin per ReadMe.txt schreiben
Code angehängt. Klicke hier zum Ein-/Ausblendencode: 1: 2: 3: 4: 5: 6:
set mp_dein_mapname_door_open "sd" //Tür in Search & Destroy öffnen set mp_dein_mapname_door_open "sab" //Tür in Sabotage öffnen set mp_dein_mapname_door_open "sd,sab" //Tür in Search & Destroy und Sabotage öffnen, Gametypes mit einem Komma getrennt hinzufügen set mp_dein_mapname_door_open "" //Tür bleibt zu set mp_dein_mapname_door_open "dm,war,koth,sd,dom,sab,ctf,re,ctfb,ch,vip,htf" //Tür öffnen in allen Gametypes wenn du nicht möchtest das man auf der Map Türen öffnen kann dann schreibe diesen Befehl nicht in deine server.cfg! //Tür bleibt zu
ändere bitte im Code folgendes ab -> mp_dein_mapname
Ich hoffe ich hab nix vergessen. Danke an alle Mitwirkenden!
Danke