Forum

> > CS2D > Allgemein > Editor: Bei Fensterbruch Alarm
Forums overviewCS2D overviewAllgemein overviewLog in to reply

German Editor: Bei Fensterbruch Alarm

9 replies
To the start Previous 1 Next To the start

old Editor: Bei Fensterbruch Alarm

Jermuk
User Off Offline

Quote
Hallo an alle,

ich versuche es hinzukriegen, das wenn ein Gegenstand kaputtgeht (In diesem Fall ein Fenster) ein Sound (In diesem Fall ein Alarm) ausgelöst wird. Ich habe jetzt das Fenster als Trigger für den Alarm genutzt. Problem: Wenn ich noch ein Fenster zerschiesse, geht der Alarm wieder aus. Wie kann man das vermeiden?

Vielen Dank im Voraus,

Gruß Jermuk

old Re: Editor: Bei Fensterbruch Alarm

Alpha Beta
User Off Offline

Quote
1
2
3
4
5
6
7
8
9
trigger(trigger,source)					on trigger (once per trigger)

-trigger: trigger name

-source: triggered by 0=map/1=script

>return:	0 - proceed normally

		1 - don't trigger

So:
Mithilfe eines Ifs wird überprüft ,ob fenster_zerstoert null ist, falls ja:
Wenn irgendeiner das Fenster zerstört, dann wird es getriggert ,der komische Alarmsound da abgespielt und eine variable wird gesetzt. (fenster_zerstoert = 1)

wenn man noch ein fenster zerstören würde, dann würde dein script failen ,da fenster_zerstoert 1 ist

Viel spaß ,mehr helf ich nicht T_T

old Re: Editor: Bei Fensterbruch Alarm

Jermuk
User Off Offline

Quote
THX!
Mehr wollte ich auch nicht!
Will ja selber was lernen!

EDIT:
So, ich habe nun ein Problem:
Da ich noch nie vorher mit Lua gearbeitet habe, ist das was ich geschrieben habe bestimmt nur Unsinn. Kann das jemand mal bitte überprüfen? Weil ich finde keine ausführlichen Tutorials zu Lua!

1
2
3
4
5
6
7
8
9
AlarmLua = 0
addhook("trigger","luaalarm")
function luaalarm(trigger,source)
	if (trigger=="Alarm2") then
		if (AlarmLua==0) then
			AlarmLua=1
	if (AlarmLua==1) then
		parse("trigger Alarm")
end
Wenn irgendein Fenster zerbricht, dann wird in der Map "Alarm2" ausgelöst. Zum Auslösen des Alarms, braucht man einen Trigger namens "Alarm".

EDIT2:
Geschafft!
Der fertige Code ist:
1
2
3
4
5
6
7
8
9
10
11
12
AlarmLua = 0

addhook("trigger","luaalarm")

function luaalarm(trigger,source)
	if (trigger=="Alarm2") then
		if (AlarmLua==0) then
			AlarmLua=1
			parse("trigger Alarm")
		end
	end
end

Vielen Dank schonmal im Voraus,

Gruß Jermuk
edited 4×, last 19.11.09 12:47:39 pm

old Re: Editor: Bei Fensterbruch Alarm

Alpha Beta
User Off Offline

Quote
Wenn du uns die Map auch noch geben würdest, wärs einfacher.

Probiers mal so (keine Garantie ,dass es funktioniert):
1
2
3
4
5
6
7
8
9
10
11
Alarm_active = 0
addhook("trigger","luaalarm")
function luaalarm(trigger,source)
if (source==0) then
	if (trigger=="Alarm2") and (Alarm_active==0) then
		parse("trigger Alarm")
		Alarm_active=1
	elseif (Alarm_active==1) then
		return 1;
	end
end

old Re: Editor: Bei Fensterbruch Alarm

Jermuk
User Off Offline

Quote
Vielen Dank für die Antwort!
Ich hatte jedoch das Problem schon gelöst!
1
2
3
4
5
6
7
8
9
10
11
AlarmLua = 0

addhook("trigger","luaalarm")
function luaalarm(trigger,source)
	if (trigger=="Alarm2") then
		if (AlarmLua==0) then
			AlarmLua=1
			parse("trigger Alarm")
		end
	end
end
Wie könnte man da noch einen Schalter einbauen, der das immer ein oder ausschakten kann?
Wenn ich das mache, dann kommt immer: "XXX.lua:27: <eof> expected near end"
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
AlarmLua = 0

addhook("trigger","luaalarm")
addhook("trigger","luaalarm2")

function luaalarm(trigger,source)
	if (trigger=="Alarm2") then
		if (AlarmLua==0) then
			AlarmLua=1
			parse("trigger Alarm")
		end
	end
end

function luaalarm2(trigger,source)
	if (trigger=="Alarm3") then
		if (AlarmLua==0) then
			AlarmLua=1
			parse("trigger Alarm")
		elseif (AlarmLua==1) then
			AlarmLua=0
			parse("trigger Alarm")
		end
	end
			
end

Aber trotzdem danke für die Antwort!

EDIT: Funktioniert nun!
Oh, man ist Lua simple!
Ich muss mich von einigen Reflexen von C++ umgewöhnen.
edited 1×, last 19.11.09 01:23:19 pm

old Re: Editor: Bei Fensterbruch Alarm

DC
Admin Off Offline

Quote
doch, gibt es. trigger_once. damit hätte man sich Lua komplett sparen können.

man hätte einfach einen trigger_once zwischen fenster und alarm schalten müssen

fenster > trigger_once > alarm

so wird der alarm nur einmal ausgelöst und geht auch nicht mehr aus. egal wieviele fenster man danach zerschießt. genau für solche dinge gibt es das entity

old Re: Editor: Bei Fensterbruch Alarm

Jermuk
User Off Offline

Quote
Ist doch gut so!
Jetzt verstehe ich endlich Lua!
Warum gibt es den keine ausführliche Beschreibung zum Map-Editor mit den ganzen Funktionen?
Erst jetzt weiß ich was trigger_once heißt.

Gruß Jermuk
To the start Previous 1 Next To the start
Log in to replyAllgemein overviewCS2D overviewForums overview