Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Tutorials / Wiki » [Tutorial] Tür öffnen mit Sound & Adminfunktion » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [Tutorial] Tür öffnen mit Sound & Adminfunktion
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Verni@hter
*bM.Verni@hter~


images/avatars/avatar-1604.png


Dabei seit: 24.01.2006
Beiträge: 1.461


[Tutorial] Tür öffnen mit Sound & Adminfunktion Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Was macht/kann diese Tür?

  • 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 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:
    
    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 einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

    code:
    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 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:
    
    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 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:
    
    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 einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

    code:
    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!

__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Verni@hter: 14.08.2012 00:22.

Verni@hter ist offline Beiträge von Verni@hter suchen Nehmen Sie Verni@hter in Ihre Freundesliste auf
BadMan
Turnbeutelvergesser


images/avatars/avatar-1043.jpg


Dabei seit: 31.01.2008
Beiträge: 278


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Schönes Tutorial

Hätte da aber noch was anzubieten, und zwar hab ich das ganze mal so abgeändert das man in der mp_meine_map.gsc wie gewohnt die Zeile
maps\mp\_door::main();
einfügen muss

Das schaut dann so aus

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:
main()
{
     
    maps\mp\_load::main();
    
    maps\mp\_door::main(); 
 

    game["allies"] = "sas";
    game["axis"] = "russian";
    game["attackers"] = "axis";
    game["defenders"] = "allies";
    game["allies_soldiertype"] = "woodland";
    game["axis_soldiertype"] = "woodland";

}



Und die _door.gsc schaut dann so aus

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:
main()
{

level.gtdoor = false;
    tmp = getDvar("mp_dein_mapname_door_open");
    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 door_start();
        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 door_start();
}

door_start()
{
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;
}



Der Rest bleibt wie beim Tutorial oben



edit:

Genau, was mir aufgefallen ist du hast überall mp_dein_mapname als Bezeichnung der DVAR benutzt unten steht dann aber das man mp_dein_mapname_door_open in der server.cfg verwenden soll.
Das könnte für Verwirrung sorgen Augenzwinkern

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BadMan: 23.10.2010 21:03.

BadMan ist offline E-Mail an BadMan senden Beiträge von BadMan suchen Nehmen Sie BadMan in Ihre Freundesliste auf
Verni@hter
*bM.Verni@hter~


images/avatars/avatar-1604.png


Dabei seit: 24.01.2006
Beiträge: 1.461


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

2 Wege die zum Ziel führen. Freude Danke

In der ReadMe sollte man natürlich mp_dein_mapname mit dem Consolennamen seiner eigenen Map ersetzen sonst bekommt der Admin ne Kriese. Augenzwinkern

__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook
Verni@hter ist offline Beiträge von Verni@hter suchen Nehmen Sie Verni@hter in Ihre Freundesliste auf
Jamie H.
Weichei


Dabei seit: 13.08.2012
Beiträge: 8


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Der Download ist leider tot-wäre geil, wenn du 'nen neuen machen könntest ; )
Jamie H. ist offline Beiträge von Jamie H. suchen Nehmen Sie Jamie H. in Ihre Freundesliste auf
Verni@hter
*bM.Verni@hter~


images/avatars/avatar-1604.png


Dabei seit: 24.01.2006
Beiträge: 1.461


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hier ein neuer Link Wenn das ganze wieder mal down sein sollte dann einfach hier hinein schreiben und ich werds neu hochladen. Bin öfter hier nur hab ich im Moment nicht wirklich Zeit um was zu posten.

__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook
Verni@hter ist offline Beiträge von Verni@hter suchen Nehmen Sie Verni@hter in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Tutorials / Wiki » [Tutorial] Tür öffnen mit Sound & Adminfunktion

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv