Thema: Tür bei Clonkfund öffnen So Nov 08, 2009 1:20 pm
Ich habe eine Tür die sich öffnen soll wenn sich ein bestimmter Clonk nähert. Aber wenn er im Umkreis von 50 Pixeln dort ist, führt sich die Aktion "Open" immer wieder aus und kommt nie zu ihrem Ende. Wenn ein Clonk dort ist, soll sich die die Tür öffnen, und sobald er weg ist, also nicht in der Nähe, soll sich die Tür wieder schließen. Soweit bin ich:
protected func DoSolidMask() //End call wenn der clonk weg ist { SetSolidMask(0,0,7,35,0,0,); Sound("Door"); }
protected func Checker() { var Finder=FindObject2(Find_ID(BOWS),Find_Distance(50));
if(Finder) SetAction("Open");
}
kevda Feldmarschall
Anmeldedatum : 08.05.08
Thema: Re: Tür bei Clonkfund öffnen So Nov 08, 2009 1:54 pm
er checkt immer wieder ob der clonk da ist und dann führtr er immer wieder die action open aus. also muss du zusätzlich prüfen ob die action open schon ausgeführt wird.
Lucutus Marine
Alter : 27 Anmeldedatum : 30.08.09
Thema: Re: Tür bei Clonkfund öffnen So Nov 08, 2009 3:20 pm
ich weiß nicht wie und mit den variablen checken ob 1(offen) oder 0(zu) ging bei mir auch nicht ganz, dann konnte man nämlich trotz geschlossener Tür durchlaufen. Könnt ihr wenigstens nen Befehl oder so nennen?
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 2:15 pm
Du sollst die Aktionen überprüfen, nicht irgendwelche Variablen(?)
Wenn die Tür also schon offen ist, brauchst du sie nicht mehr zu öffnen.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 3:01 pm
Ich glaube, er braucht nen Befehl oder so mit dem er das anstellen könnte. Aber mit variablen könnte man tatsächlich auch überprüfen ob es geht. Ist die Variable 1, soll sich nix mehr im Timer machen und bei 0 soll sich der Timer durchlaufen
Pitri Feldmarschall
Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 4:46 pm
Bowserkoopa schrieb:
Ich glaube, er braucht nen Befehl oder so mit dem er das anstellen könnte. Aber mit variablen könnte man tatsächlich auch überprüfen ob es geht. Ist die Variable 1, soll sich nix mehr im Timer machen und bei 0 soll sich der Timer durchlaufen
Dann muss man ja mit ifs vergleichen
Code:
if (variable_so_und_so == 0) Befehl() else Befehl()
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 6:11 pm
Müsste man aber dann auch 2 if-Anfragen machen oder beide mit einem logischen und ineinander setzen. Ich versuchs mal für ihn:
Code:
protected func Initialize() { local Tuer; Tuer=0 //0 macht die Tür zu }
protected func Checker() { var Finder=FindObject2(Find_ID(BOWS),Find_Distance(50));
if (Tuer == 0) //Türe zu? if(Finder) { SetAction("Open"); //aufmachen Tuer=1; //so Türe ist offen } else Tuer=0; // macht die Tür doch zu
}
Keine Garantie auf Richtigkeit, denn ohne den C4Skripter kann ichs net so gut
Zuletzt von Bowserkoopa am Mo Nov 09, 2009 7:20 pm bearbeitet; insgesamt 1-mal bearbeitet
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 7:15 pm
Locals müssen ausserhalb einer Funktion deklariert werden, dann musst du auch in Checker() kein var Tuer mehr schreiben. Bitte noch einrücken
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 7:19 pm
Naja, hier im Schnellantwortenfenster zu skripten ist nicht sehr einfach, weil da der Tabulator nicht funzt. Also einfach noch die var Tuer noch rauslöschen, ist so gut wie erledigt. Nimmt die Engine überhaupt ü,ä,ö in Funktionsnamen oder Variablen an?
Pitri Feldmarschall
Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 8:19 pm
Z-Star schrieb:
protected func Checker() { var Finder=FindObject2(Find_ID(BOWS),Find_Distance(50));
if(Finder) SetAction("Open");
}
Naja... Ich würde
Code:
var Finder=FindObject(BOWS,-25,-25,50,50);
Schreiben
Das sucht keine Objekte, die 50 pxl entfernt sind, sondern die im Umkreis von 50 Pixeln sind! :O
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 8:32 pm
Ähm... Find_Distance findet "alle Objekte, die höchstens den angegebenen Radius vom Bezugspunkt entfernt sind". @bowser: und
Code:
Local Tuer;
an den Anfang des scripts nict in eine Funktion.
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 8:52 pm
Zitat :
Nimmt die Engine überhaupt ü,ä,ö in Funktionsnamen oder Variablen an?
Nä.
Zitat :
ERROR: unexpected character 0xdc found (console script in TestszenFürAlles.c4s\Script.c:0:1)
Zitat :
Naja... Ich würde
Code:
var Finder=FindObject(BOWS,-25,-25,50,50);
Schreiben
NAIN! FindObject ist veraltet und doof
Zitat :
Code:
Local Tuer;
Programmierst du zuviel Visual Basic? =O
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 9:35 pm
Zitat :
Programmierst du zuviel Visual Basic? =O
Nö wieso?
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 10:00 pm
Weil du die Kleinschreibung nicht beachtet hast =P
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Tür bei Clonkfund öffnen Mo Nov 09, 2009 10:19 pm
Na gut, ich starte dann mal nen neuen Versuch. Hab aber mal Skripte gesehen, wo manche die Variablen einfach unter Initialize geschireben haben, und dachte das würde auch funzen. Also vielleicht das hier:
protected func DoSolidMask() //End call wenn der clonk weg ist { SetSolidMask(0,0,7,35,0,0,); Sound("Door"); }
protected func Checker() { var Finder=FindObject2(Find_ID(BOWS),Find_Distance(50));
if (Tuer == 0) //Türe zu? if(Finder) { SetAction("Open"); //aufmachen Tuer=1; //so Türe ist offen } else Tuer=0; // macht die Tür doch zu
}
@Pitri: var Finder=FindObject(BOWS,-25,-25,50,50); sucht eigenltich ja nur im 25 Pixel Radius @Flinti:
Zitat :
in TestszenFürAlles.c4s\Script.c:0:1)
Hast auch ein Testszenario für alles, genauso wie ich. Es heißt sogar genau gleich xD
Zuletzt von Bowserkoopa am Di Nov 10, 2009 5:37 pm bearbeitet; insgesamt 1-mal bearbeitet (Grund : Skriptrechtschreibfehler)
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 2:27 pm
Zitat :
Tuer=0
';' expected
Zitat :
Zitat :
in TestszenFürAlles.c4s\Script.c:0:1)
Hast auch ein Testszenario für alles, genauso wie ich. Es heißt sogar genau gleich xD
Lucutus Marine
Alter : 27 Anmeldedatum : 30.08.09
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 4:40 pm
Also wie lautet der gesamte script?
Flinti Kadett
Alter : 31 Anmeldedatum : 07.04.09
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 4:43 pm
Den darfst du dir selbst zusammensetzen.
Lucutus Marine
Alter : 27 Anmeldedatum : 30.08.09
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 5:58 pm
Äh? Immer wenn ich hin laufe geht sie icht auf und ich kann durch laufen. Gehe ich dann weiter nach vorne geht sie auf. Dann gehe ich in die nähe der Tür und sie schließt sich. Aber man kann trotzdem durch
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 7:05 pm
Da hab ich wohl irgendwie ein Variablenproblem gemacht. Also irgendwie müsste das ja gehen.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 7:25 pm
Du darfst nicht nur mit SetAction("open") die Tür öffnen, die Hazard-Hangartür hat z.B eine Open() und eine Close() Funktion die du aufrufen musst, da reicht nicht einfach nur SetActin("..") .
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 7:31 pm
Z-Star, lad vielleicht das Objekt mal hoch, dann wissen wir mehr darüber
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Tür bei Clonkfund öffnen Di Nov 10, 2009 7:51 pm
Zitat :
Weil du die Kleinschreibung nicht beachtet hast =P
Oh, sorry man kann halt nicht immer nur gewinnen
Lucutus Marine
Alter : 27 Anmeldedatum : 30.08.09
Thema: Re: Tür bei Clonkfund öffnen Mi Nov 11, 2009 12:59 pm