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 » Fix-Dateien, Modding-Fragen, Scripting » Licht an/aus script » 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 Licht an/aus script
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
jtms
Hat kein Zuhause


Dabei seit: 30.10.2012
Beiträge: 86


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

Hallo Leute,
ich möchte in meine map eine Lampe einbauen, die einen Wackelkontackt hat und deshalb immer vor sich hin blinkt.

Dazu hab ich folgendes Skript geschrieben:

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:
main()
{
	dmglamp = getentarray ("dmglamp", "targetname");
	if(isdefined(dmglamp))
	{
   	for (i = 0; i < dmglamp.size; i++)
   	{
      	dmglamp[i] thread think();
   	}
	}
}

think()
{
	for (;;)
	{
		if(randomint(3) > 1)
		{
			self moveZ(-1000, 0.05);
		}
		else
		{
   		self moveZ(174, 0.05);
		}
		wait(50);
	}
}  



Da ich noch ein skripting-Anfänger bin gehts nicht grosses Grinsen
Kann mir einer sagen wo der Fehler liegt?

mfg
JTMS

__________________
jtms-mapping.jimdo.com/
jtms ist offline Homepage von jtms Beiträge von jtms suchen Nehmen Sie jtms in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

hey

versuch mal das ganze mit show/hide und zum testen immer schöööön viele iPrintLn() einbauen, da sieht man dann wo der fehler liegt Augenzwinkern

while( true )
{
wait( randomFloat( 1.0 ) );
model_an show();
model_aus hide();
wait( randomFloat( 2.0 ) );
model_an hide();
model_aus show();
}

bei dir ist momentan der fehler das sich das model einmal um -1000 nach unten bewegt, aber nur um 174 wieder nach oben, es wird auch nie wieder die ausgangsposition erreicht
bei sowas immer am besten die position merken und dann einfach wieder setzen:

self.old_origin = self.origin; << position speichern
self.origin -= ( 0 , 0 , 10000 ); << model um 10000 nach unten
self.origin = self.old_origin; << und wieder zurück

um das ganze noch schöner zu machen, denn im moment ist es ja nur ein model, musst du aber noch ein effect einfügen, so wie hier in etwa:

http://www.youtube.com/watch?v=OFp8rj58BmA

einfach weiterfragen bei problemen
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
jtms
Hat kein Zuhause


Dabei seit: 30.10.2012
Beiträge: 86


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

Danke schonmal, auch für das vid, so in etwa hab ichs mir vorgestellt grosses Grinsen

Die Fragen:
was meinst du mit model? meinst du damit das light oder was?

Den satz blick ich nicht: "denn im moment ist es ja nur ein model, musst du aber noch ein effect einfügen"

sonst ist klar, danke schön smile

EDIT: Ich hab das mal mit deiner origin -= ... Lösung versucht, weil ich das andere nicht blick. Hab es so gemacht:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
wait(randomFloat(1.0));
self.origin -= (0, 0, 10000);
wait(randomFloat(2.0));
self.origin = self.old_origin;



Tut sich aber auch nichts. unglücklich

P.S.: ich dachte, dass moveZ AUF -1000 verschiebt und nicht UM -1000 Augenzwinkern

__________________
jtms-mapping.jimdo.com/

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von jtms: 18.02.2013 15:44.

jtms ist offline Homepage von jtms Beiträge von jtms suchen Nehmen Sie jtms in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

>> moveX moveY und moveZ bewegen dein objekt in eine richtung um eine bestimmte strecke
>>moveTo bewegt dein objekt zu einem bestimmten punkt

mit model meinte ich die dmglamp = getentarray ("dmglamp", "targetname"); - entities

was ist es denn dann, wenn keine models?

wie gesagt, baue überall da wo du nicht weißt was ganz genau passiert, iPrintLn()'s ein!

zb kann es hier sein das es keine "dmglamp" finden kann und es deshalb nicht funktioniert... oder oder oder..

EDIT:
wenn es so aussehen soll wie in dem video, brauchst du garnix direkt in der map machen
einfach einen effekt nehmen oder selber erstellen und dann einfach an der stelle abspielen lassen (weiß nicht ob es bei cod4 schon auto looping effekte gibt)

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 18.02.2013 18:18.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
jtms
Hat kein Zuhause


Dabei seit: 30.10.2012
Beiträge: 86


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

Zitat:


>> moveX moveY und moveZ bewegen dein objekt in eine richtung um eine bestimmte strecke
>>moveTo bewegt dein objekt zu einem bestimmten punkt


Ok, danke smile

Also als models würde ich jetzt xModels bezeichnen, allgemeiner (also alles was du mit getentarray findest) als entity. Meine meinung, da das sonst verwirrt.

Zu dem mit dem FX-Editor - weißt du, wie man sowas macht?

__________________
jtms-mapping.jimdo.com/

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jtms: 18.02.2013 18:39.

jtms ist offline Homepage von jtms Beiträge von jtms suchen Nehmen Sie jtms in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


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

bei dem fx editor kann man keine tutorials machen, es ist alles learning by doing

einfach standart effekte öffnen, unter nem anderen namen speichern und dann rumspielen, die eine hälfte ist selbsterklärend (color, velocity, rotation, lifetime etc) und der rest musst du einfach rausfinden was am besten passt
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
bangingbernie
Alter Sack ;-)


images/avatars/avatar-1034.jpg


Dabei seit: 20.05.2005
Beiträge: 2.372


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

Zeroy hat ein schönes Tutorial dazu veröffentlicht:

Ein neues Skript mit dem Namen _lights.gsc in /raw/maps/mp/ erstellen.

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:
main()
{
	precacheModel("com_studiolight_hanging_off"); // precache selected model
	thread switch_start();
}
 
switch_start()
{
	spotlight = getentarray( "switch", "targetname" ); // get triggers
 
	if ( isdefined(spotlight) )
		for ( i = 0 ; i < spotlight.size ; i++ )
			spotlight[i] thread lights_off();
}
 
lights_off()
{
	while (1)
	{
		speed = .01; // speed for moving on Z axis
		height = -36; // high in units to move on Z axis
 
		spotlight_hide = getent("spotlight_hide", "targetname"); // get script_brushmodel(s) in level
		spotlight_model = getent( "spotlight_model", "targetname" ); // get xmodel _on
 
		self waittill("trigger");
		spotlight_hide movez (height, speed); // Move script_brushmodel(s) on Z axis
		spotlight_model setmodel( "com_studiolight_hanging_off" );       // swap xmodel by _off
		self playsound("light_switch_off");
		spotlight_hide waittill ("movedone");
 
		self waittill("trigger");
		spotlight_hide movez (height - (height * 2), speed);
		spotlight_model setmodel( "com_studiolight_hanging_on" ); // switch back to _on Xmodel
		self playsound("light_switch_on");
		spotlight_hide waittill ("movedone");
	}
}



In Deiner Map GSC Datei (/raw/maps/mp/mp_yourmap.gsc) dies nach maps\mp\_load::main(); hinzufügen.

Das _off model in Deine Zone Datei einfügen, in diesem Beispiel:

xmodel,com_studiolight_hanging_off

Im Radiant (ohne das com_studiolight_hanging_on Modell):



Der Trigger ist ein trigger_usetouch und hat den targetname = switch ;
The ShadowCaster script_brushmodel is "fest" und hat den targetname = spotlight_hide ;
Der Trigger ist mit dem ShawdowCaster script_brushmodel verbunden;
Das spotlight model (nicht im Bild) ist ein script_model und hat den targetname = spotlight_model ;

Der Sound im Script ist kein Stock-Sound - Du kannst "metal_click" benutzen (stock).

Das Skript funktioniert nicht, wenn die Shadow option in den GFX settings des Spiels abgeschaltet ist!

_____________________________________________________________

Für den Flacker-Effekt musst Du dann nur im Script

self waittill("trigger");

durch

wait(randomfloat(2));

ersetzen.

Die "2" sind die Sekunden - dass kannst Du ja dann noch verändern.

Quelle: http://wiki.modsrepository.com/index.php...s_Primary_Light

__________________

bangingbernie ist offline E-Mail an bangingbernie senden Homepage von bangingbernie Beiträge von bangingbernie suchen Nehmen Sie bangingbernie in Ihre Freundesliste auf
jtms
Hat kein Zuhause


Dabei seit: 30.10.2012
Beiträge: 86


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

danke euch beiden smile

den fx-editor werd ich mir mal anschauen, jetzt nehm ich erstmal das skript von bernie (der fx-editor ist doch saukompliziert, oder?)

zwei fragen an bernie:
height - (height * 2)
kann ich nicht stattdessen einfach -height schreiben? ist ja das selbe

wenn du den caulk shaodw block über dem light hast, hast du dann nicht immer einen eckigen schatten an der decke??

__________________
jtms-mapping.jimdo.com/

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jtms: 19.02.2013 17:12.

jtms ist offline Homepage von jtms Beiträge von jtms suchen Nehmen Sie jtms in Ihre Freundesliste auf
Nightwing
Padawan ;-)


images/avatars/avatar-1617.jpg


Dabei seit: 15.01.2007
Beiträge: 4.859


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

Zitat:

Original von jtms

height - (height * 2)
kann ich nicht stattdessen einfach -height schreiben? ist ja das selbe

Macht keinen Sinn und geht auch nicht.
Das Script funktioniert ja so schon, wie es soll.

ToM

__________________

Nightwing ist offline E-Mail an Nightwing senden Homepage von Nightwing Beiträge von Nightwing suchen Nehmen Sie Nightwing in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Fix-Dateien, Modding-Fragen, Scripting » Licht an/aus script

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv