|
 |
Verni@hter
*bM.Verni@hter~
Dabei seit: 24.01.2006
Beiträge: 1.461

|
|
Moin,
ich bräuchte mal Hilfe bei einem Script.
Das ganze soll folgendes machen:
Ich laufe über einen Trigger -> es wird ein Sound ausgelöst/abgespielt (wo ich per Koordinaten) angeben kann wo dieser zu hören ist, wie laut dieser ist (er soll nämlich nur in einem bestimmten Radius zu hören sein)
Wenn ich also diesen Trigger ausgelöst habe soll dieser erst in einer von mir bestimmten Zeit wieder aktivierbar sein (einfach nur durch berühren reicht schon) damit hier kein Soundcaos entsteht.
Ich möchte einfach das wenn man durch ne Stadt läuft man 1km weit entfernt ein Polizeiauto hört was natürlich nicht ständig an der selben Stelle fährt deshalb der Trigger.
Sound an einer bestimmten Stelle abspielen zu lassen ist nicht so das Problem sondern wie ich diesen durch ein Trigger auslösen kann.
Jemand ne Idee wie des funktioniert?
__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook
|
|
|
|
|
|
|
| RE: Hilfe beim Sound Trigger |
 |
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:
|
triggerd_sound()
{
level.wait_for_retrigger = false;
soundtrigger = getent( "the_sound_trigger", "targetname" ); // trigger_multiple
soundpos = getent( "position_of_sound", "targetname" );
while( 1 )
{
if( !level.wait_for_retrigger )
{
soundtrigger waittill( "trigger" );
level.wait_for_retrigger = true;
soundpos thread play_the_sound();
}
wait 0.1;
}
}
play_the_sound()
{
self playsound( "sirene" );
wait 30;
level.wait_for_retrigger = false;
} |
|
Nur mal das Grundlegende.
Den Rest kannst du dann selber ausbauen.
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
Verni@hter
*bM.Verni@hter~
Dabei seit: 24.01.2006
Beiträge: 1.461

|
|
Also hier erstmal des wie ich das nun eingeben habe.
meine .gsc:
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:
|
main()
{
maps\createfx\mp_bfmap_fx::main();
maps\mp\mp_bfmap_fx::main();
maps\mp\_load::main();
triggerd_sound();
thread fanSpin();
maps\mp\_destructables_obj::main();
//maps\mp\_compass::setupMiniMap("compass_map_mp_bfmap");
ambientPlay("ambient_overgrown_day");
setExpFog(150, 5000, 0.4, 0.425, 0.44, 0.0);
game["allies"] = "marines";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";
setdvar( "r_specularcolorscale", "1" );
setdvar("r_glowbloomintensity0",".25");
setdvar("r_glowbloomintensity1",".25");
setdvar("r_glowskybleedintensity0",".3");
setdvar("compassmaxrange","1800");
if(getDvar("g_gametype") == "ctf" || getDvar("g_gametype") == "ctfb"){
addobj("allied_flag", (3695.22, 3538.54, 194), (0, 0, 0));
addobj("axis_flag", (-992.571, -276.212, 93.9724), (0, 0, 0));
}
if(getDvar("g_gametype") == "re"){
level.objective_vcr = [];
level.objective_vcr[0] = spawn("script_model", (1561.5, 2633.5, 239.468));
level.objective_vcr[0].angles = (0, 0, 0);
level.objective_vcr[1] = spawn("script_model", (-1016, 1328, 253));
level.objective_vcr[1].angles = (0, 0, 0);
level.objective_vcr[2] = spawn("script_model", (3652.5, -625, 399.5));
level.objective_vcr[2].angles = (0, 0, 0);
level.objective_vcrcase = [];
level.objective_vcrcase[0] = spawn("script_model", (331.5, -870, 218.416));
level.objective_vcrcase[0].angles = (0, 0, 0);
level.objective_vcrcase[1] = spawn("script_model", (3695.22, 3538.54, 194));
level.objective_vcrcase[1].angles = (0, 0, 0);
level.objective_vcrcase[2] = spawn("script_model", (2833, 1478.5, 338.241));
level.objective_vcrcase[2].angles = (0, 0, 0);
addobj_base("objective_base", (1452, 908.5, 447), (0, 0, 0));
}
}
addobj(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
addobj_base(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 40, 48);
ent.targetname = name;
ent.angles = angles;
}
triggerd_sound()
{
level.wait_for_retrigger = false;
soundtrigger = getent( "sirenen_trigger", "targetname" ); // trigger_multiple
soundpos = getent( "position_of_sound", "targetname" );
while( 1 )
{
if( !level.wait_for_retrigger )
{
soundtrigger waittill( "sirenen_trigger" );
level.wait_for_retrigger = true;
soundpos thread play_the_sound();
}
wait 0.1;
}
}
play_the_sound()
{
self playsound( "sirene" );
wait 30;
level.wait_for_retrigger = false;
}
fanSpin(){
/*Code by AmishThunder
www.kramerartanddesign.com*/
fan1 = getEnt( "fan1" , "targetname" );
// fan2 = getEnt( "fan2" , "targetname" );
while (1){
fan1 rotateyaw( 360, 5, 0, 0 );
/* fan1 rotateyaw( degrees, time in seconds, 0, 0 );
fan2 rotateyaw( 360, 5, 0, 0 );
*/
wait 4.9;
}
} |
|
folgendes hab ich nun geändert:
1.)
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
|
soundtrigger = getent( "sirenen_trigger", "targetname" ); // trigger_multiple |
|
hier hab ich also den Namen meines Triggers angegeben
2.)
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
|
soundtrigger waittill( "sirenen_trigger" );
|
|
hier hab ich wieder den Namen meines Triggers eingegeben
3.)
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
|
self playsound( "sirene" ); |
|
hab ich so gelassen.
Und so schaut meine .csv aus:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
|
#Music,,,,,,,,,,,,,,,,,,,,,,,,,
sirene,,music/sirene.mp3,0.85,,,,,,,music,streamed,,,nonlooping
sirene ,1,music/fuselage_stress.wav,0.8,0.85,,0.95,1.05,7,1500,auto,streamed,,,,mp_bfmap,,,,,,,,,,,,, |
|
Ich versteh nur nicht wirklich wo denn die Koordinaten hin sollen. Denn hier kanns doch nicht sein...
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
|
soundpos = getent( "position_of_sound", "targetname" ); |
|
und so kann ich des auch net machen denn sonst wird der Sound direkt abgespielt.
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
|
ent = maps\mp\_createfx::createLoopSound();
ent.v[ "origin" ] = ( -17.8488, -551.8, -166.982 );
ent.v[ "angles" ] = ( 0, 270, 0 );
ent.v[ "soundalias" ] = "sirene"; |
|
Ich bekomme keine Fehlermeldung aber es passiert auch nix.
Ich brauch mehr Input mir ist warm und der Kopf raucht.
__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Verni@hter: 01.07.2010 19:58.
|
|
|
|
|
|
|
Original von Verni@hter
hier hab ich also den Namen meines Triggers angegeben
2.)
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
|
soundtrigger waittill( "sirenen_trigger" );
|
|
Falsch. Da gehört das Wort "trigger" rein und nicht der Name des triggers.
Dein triggerentity "soundtrigger" soll ja hier warten, bis es von einem Spieler ausgelöst (getriggert) wird. Sobald ein Spieler den trigger_multiple berührt wird das Event "trigger" ausgelöst und genau darauf wartet der script hier (und auf nichts anderes).
Original von Verni@hter
Und so schaut meine .csv aus:
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
|
#Music,,,,,,,,,,,,,,,,,,,,,,,,,
sirene,,music/sirene.mp3,0.85,,,,,,,music,streamed,,,nonlooping
sirene ,1,music/fuselage_stress.wav,0.8,0.85,,0.95,1.05,7,1500,auto,streamed,,,,mp_bfmap,,,,,,,,,,,,, |
|
Nimm mal Zeile 2 raus und bei Zeile 4 das Leerzeichen hinter sirene
Original von Verni@hter
Ich versteh nur nicht wirklich wo denn die Koordinaten hin sollen. Denn hier kanns doch nicht sein...
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
|
soundpos = getent( "position_of_sound", "targetname" ); |
|
Doch genau da
Pack ein script_origin in deine Map und gib ihm den targetname "position_of_sound". genau an diesem script_origin wird dann der Sound abgespielt. Das script_origin kannst du per script dann auch an jede x-beliebige Stelle bewegen.
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
Verni@hter
*bM.Verni@hter~
Dabei seit: 24.01.2006
Beiträge: 1.461

|
|
Haha very nice! Funktioniert....
Wie mach ich des jetzt mit mehreren Triggern? Ich sach jetzt einfach mal ich bräuchte 5 Trigger der selben Art mit dem selben Sound und zusätlich 1 Trigger mit einem anderen Sound wie führt man solch ein Script weiter?
Gruß
__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook
|
|
|
|
|
|
|
Keine Garantie das es klappt.
Ist nur schnell mal dahingeschrieben
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:
|
/*********************************************************************************************************
give every trigger_multiple the same targetname (e.g. sound_trigger)
add a script_origin for each trigger_multiple (6 triggers = 6 script_origins)
weld (key "w") every trigger with one of these script_origins, so every trigger has it's own script_origin
at least, give every script_origin the key script_noteworthy with the soundaliasname as value.
e.g. key: script_noteworthy value: sound_1 to play the sound sound_1 at this script_origin
*********************************************************************************************************/
trigger_init()
{
soundtriggers = getentarray( "sound_trigger", "targetname" );
for( i = 0; i < soundtriggers.size; i++ )
soundtriggers[i] thread trigger_sound();
}
trigger_sound()
{
self.wait_for_retrigger = false;
soundpos = getent( self.target, "targetname" );
while( 1 )
{
if( !self.wait_for_retrigger )
{
self waittill( "trigger" );
self.wait_for_retrigger = true;
soundpos thread play_the_sound( self, soundpos.script_noteworthy );
}
wait 0.1;
}
}
play_the_sound( used_trigger, sound )
{
self playsound( sound );
wait 30;
used_trigger.wait_for_retrigger = false;
}
|
|
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
|
|
Sollte aber eigentlich zu hören sein.
Setz einen/die Trigger doch mal vor Spawnpunkte und lass dann einfach Bots spawnen (eine Mod nehmen die Bots hat, versteht sich). Wenn du dann am script_origin stehst und ein Bot in den Trigger läuft, sollte der Sound abgespielt werden und du solltest ihn hören können.
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
Verni@hter
*bM.Verni@hter~
Dabei seit: 24.01.2006
Beiträge: 1.461

|
|
Jup haste recht man hört es!
Dank dir für das Script. Ich mach dann mal ein komplettes TUT fertig dann haben alle was von.
__________________

Frauen sind wie Signaturen, haste keine willste eine, haste eine willste ne andere.
My Facebook
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Verni@hter: 03.07.2010 11:10.
|
|
|
|
|
Verni@hter
*bM.Verni@hter~
Dabei seit: 24.01.2006
Beiträge: 1.461

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