trigger sound/effekt

Banana2077
Achwas kein Problem danke nochmal! smile
serthy
hey
muss mich nochma dazwischenwerfen ^^
bin ja noch ein laie was das scripten angelangt
aber kannst du mir eventuell mal das for in deinem script erklären?, bin noch nich ganz dahintergestiegen ...
und zwar meine ich den part hier:

main()
{

sound_fx_trig = getentarray ("sound_fx_trig","targetname");

for(i=0;i<sound_fx_trig.size;i++)
{
sound_fx_trig[i] thread sound_fx_trig();
}

}

d.h. es werden alle sound_trigger angesprochen?
oder wie muss ich mir das vorstellen?
und was bedeutet trig.size? (das ist doch nicht wirklich die 'größe' oder ist damit die anzahl der trigger gemeint?)

ach und noch etwas, falls es nicht allzu viel jz von mir verlangt ist
wie und wann wird immer dieses self. definiert?
wär sehr nett falls sich jmd die mühe macht um das versucht etwas zu erklären
=)

mfg serthy
BadMan
Gut ich versuche es mal recht einfach zu erklären.

Gegeben ist erst mal 5 Trigger mit dem targetname sound_fx_trig


for(i=0;i<sound_fx_trig.size;i++)
{
sound_fx_trig[i] thread sound_fx_trig();
}

Das ist eine Schleife so in der Art wie
while(1)
{
}
Wenn du zum beispiel
for ( ; ; )
{
}
hat das den gleichen effekt wie while(1), das ganze lässt sich aber anderst steuern wie while. Klar bei while haste 1 Wert bei for 3.
Der erste Wert definiert einen wert z.B. i i = 0 kann aber auch was anderes sein z.B. 7 oder so spielt im Grunde keine rolle.

Der zweite Wert definiert wann die schleife beendet wird i < sound_fx_trig.size ende wenn i gröser ist als die Anzahl der sound_fx_trig was das auch erklärt

Der dritte wert definiert was nach jedem abspielen passieren soll i++ heißt i + 1


So also for startet (sound_fx_trig.size = 5 da ja 5 Trigger existieren)

sound_fx_trig[0] thread sound_fx_trig();
mehr ist nicht also auf start
i + 1
sound_fx_trig[1] thread sound_fx_trig();
I +1
sound_fx_trig[2] thread sound_fx_trig();
I + 1
…
sound_fx_trig[5] thread sound_fx_trig();
I +1
So I ist jetzt größer als sound_fx_trig was ja 5 ist also ende und weiter in Script, hier pasiert nichts mehr weil nichts mehr kommt.

Man kann das auch anderst machen z.B.

For ( i = 10 ; i ; i-- )
Das würde 10 mal laufen



sound_fx_trig[i] thread sound_fx_trig();
Heißt soviel wie sound_fx_trig[i] starte in thread sound_fx_trig();
thread sound_fx_trig();
Heißt starte nur thread sound_fx_trig();

sound_fx_trig();
kann mit sound_fx_trig[i] nicht mehr anfangen, da es nicht weis was das ist, dass ganze wurde aber mit dem thread geladen wird also zu self

main()
{
Temp = getent ("car","targetname");
Temp thread test();
}

Test()
{
Self movex (10 , 1);
}

So sieht das dann aus, du nimmst temp mit in den thread test()

So würde es auch gehen
main()
{
Temp = getent ("car","targetname");
thread test(temp);
}

Test(model)
{
model movex (10 , 1);
}
So nimmst du den wert temp mit also das auto, wenn thread test(model) gestartet wird ist der erste wert model = wert hier temp
Ist aber eher für sowas in der art eher geeignet

main()
{
Temp = getent ("car","targetname");
thread test(temp);
thread main2()
}

Main2()
{
plane = getent ("plane","targetname");
thread test(plane);
}

Test(model)
{
model movex (10 , 1);
}

Einmal wird test(model) mit temp einmal mit plane gestartet test liest beides als model.
Mehrere werte gehen auch
Test(wert1, wert2, wert3)
{
}
Das kann auch nur mit einem Wert gestartet werden, aber du musst dann halt dafür sorgen das die anderen werte definiert werden wenn sie es nicht sind sonst gibt’s halt je nachdem nen Fehler.
serthy
ich danke dir vielmals dass du dir hier so viel mühe machst und nen halben roman schreibst
hab es zwar nich auf anhieb kapiert, muss aber sagen klingt logisch für mich smile
dank dir kann ich nun arrays verwenden, ohne es immer aus anderen scripten zu kopiern
GROßES LOB Grins 2 Grins 1