Hallo zusammen,
In einem meiner Räume befindet sich eine Konsole mit fünf Lampen. Jedesmal wenn der Spieler darauf klickt, soll eine davon rot aufleuchten. Habe dafür fünf Objekte mit jeweils einer anderen roten Lampe platziert. Soweit so gut.
Wollte das ganze eigentlich simpel mit einer Variable 'schalter' kontrollieren, doch es funktioniert nur beim ersten anklicken.
Verwende ich die Variabeln falsch oder hab ich etwas am falschen Ort platziert? Habe halt nur Qbasic und VB-Kenntnisse, dort fände ich das Problem lachhaft, doch irgendwie stell ich mich bei der AGS-Scriptsprache noch dämlich an!
[code]
// room script file
int schalter;
#sectionstart hotspot2_a // DO NOT EDIT OR REMOVE THIS LINE
function hotspot2_a() {
// script for hotspot2: Interact hotspot
schalter+=1;
}
#sectionend hotspot2_a // DO NOT EDIT OR REMOVE THIS LINE
#sectionstart room_a // DO NOT EDIT OR REMOVE THIS LINE
function room_a() {
// script for room: Player enters screen (before fadein)
ObjectOff(0);
ObjectOff(1);
ObjectOff(2);
ObjectOff(3);
ObjectOff(4);
}
#sectionend room_a // DO NOT EDIT OR REMOVE THIS LINE
#sectionstart room_b // DO NOT EDIT OR REMOVE THIS LINE
function room_b() {
// script for room: Repeatedly execute
if (schalter==1) {
ObjectOn(0);
}
if (schalter==2) {
ObjectOff(0);
ObjectOn(1);
}
if (schalter==3) {
ObjectOff(1);
ObjectOn(2);
}
if (schalter==4) {
ObjectOff(2);
ObjectOn(3);
}
if (schalter==5) {
ObjectOff(3);
ObjectOn(4);
}
if (schalter==6) {
ObjectOff(4);
schalter-=6;
}
}
#sectionend room_b // DO NOT EDIT OR REMOVE THIS LINE
[/code]
Für alle die Helfen wollen, schon mal danke
Steven
Anfängerfrage zu Variabeln
- steven
- Verpackungs-Wegwerfer
- Beiträge: 64
- Registriert: 26.01.2006, 23:32
- Wohnort: Schweiz
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
Um es direkt zu sagen: Du machst es zu kompliziert. Um eine Lampe anzuschalten, reicht es vollkommen, ObjectOn(1) (als Beispiel) zu schreiben. Um zu prüfen, ob sie dann auch eingeschaltet ist, benutzt du einfach IsObjectOn(1)
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.
Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
- steven
- Verpackungs-Wegwerfer
- Beiträge: 64
- Registriert: 26.01.2006, 23:32
- Wohnort: Schweiz
Zum Schluss
Hallo Zensiert,
Danke für deinen Ratschlag, werd ich so umsetzten ! (Zur Vereinfachung) Mein eigentliches Problem war nur deshalb da, weil eine Walk-Behind mein Objekt verdeckt hatte. Zu dumm auch von mir.
Danke trotzdem
Steven
Danke für deinen Ratschlag, werd ich so umsetzten ! (Zur Vereinfachung) Mein eigentliches Problem war nur deshalb da, weil eine Walk-Behind mein Objekt verdeckt hatte. Zu dumm auch von mir.
Danke trotzdem
Steven
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
1. Mach in Room Editor/Objects die Haken raus bei "Object is initially visible"
2. Der Code sollte nicht in der rep_ex stehen, das ist in diesem Fall unnötig. Er schadet dort nicht, aber für die Zukunft
3. Ändere das script so ab:
(Den Rest brauchst Du nicht.)
2. Der Code sollte nicht in der rep_ex stehen, das ist in diesem Fall unnötig. Er schadet dort nicht, aber für die Zukunft

3. Ändere das script so ab:
Code: Alles auswählen
// room script file
int schalter;
#sectionstart hotspot2_a // DO NOT EDIT OR REMOVE THIS LINE
function hotspot2_a() {
// script for hotspot2: Interact hotspot
schalter+=1;
if (schalter<6) object[schalter-1].Visible=true;
if (schalter>1) object[schalter-2].Visible=false;
if (schalter==6) schalter=0;
}
#sectionend hotspot2_a // DO NOT EDIT OR REMOVE THIS LINE
Use gopher repellent on funny little man