Thema: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 2:04 pm
Also ich versuche einen Block hinzukriegen, der, wenn man ihn von unten berührt/anspringt, einen Gegenstand erscheinen lässt. Am besten wenn ich einstellen könnte das per Zufall nur eines der Items GOLD, WOOD, METL oder so erscheinen. Dann würde sich der Block deaktivieren(für 1-2 Minuten) und dann ist er wieder aktivierbar.
Ich glaube da müsste ich Contaktcalls anwenden(die ich aber nicht verstehe).
EDIT: Ich habe eine Animation angefertigt. Eine Grafik ist 16x16 Pixel groß. Nach 2 weiteren Pixeln ist das nächste Bild der Animation. Aber wie erscheint es flüssig?
Simsi Staatssekretär
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 3:49 pm
also contactcalls gehen glaub ich nich, da die nur aufgerufen werden wenn die vertices eines objektes mit festem material kollidieren. (berichtigt mich wenn ich falsch lieg).
dass die animation flüssig abläuft, musst du wahrscheinlich in der ActMap Delay runtersetzen...
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 3:54 pm
Na gut, die Animation versuch ich selber, aber wie das mit dem Block funktioniert, weiß ich nicht. Weil er schwebt, vielleicht protected Hit()?
EDIT: Animation geschafft. Nur wie ich im Skript machen könnte, dass es zufällig zwischen 5 bestimmten Gegenständen aussucht weiß ich nicht.
mOwl Oberst
Anmeldedatum : 07.01.09
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 4:36 pm
Zitat :
func RandomID() { var a = [BLA1]; return (a[Random(x)]); }
Wichtig: für BLA1 die ObjecID's eingeben und bei x die Anzahl der ID's Das ganze ist aus dem Toutorial Arrays wo du das ganze auch nochmal durchlesen kannst wenn es nicht funktioniert oder du es nicht verstehst. rulez
_________________ "Hier könnte ihre Werbung stehen anfrage per PM an mOwl."
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 5:56 pm
ich denke da wirst du nicht drumrum kommen nach objekten unterhalb des blocks zu suchen und beim finden den block auszulösen.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 6:17 pm
Und wie schaffe ich das? Ein Hilfsobjekt?
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 6:59 pm
Nö. Das musst auch so gehn. probiers doch mit findobject.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 9:14 pm
Aber dann wird er auch aktiviert, wenn sich der Clonk auf den Block stellt. Und der Gegenstand soll ja auf dem Block erscheinen.
Liech Fregattenkapitän
Alter : 33 Anmeldedatum : 02.02.09
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 10:29 pm
Nein, du musst den suchbereich so eingrenzen das er nur unter dem block sucht.
Simsi Staatssekretär
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: Gegenstand erscheint durch Sprung Mo Feb 09, 2009 10:53 pm
müsste doch klappen wenn man das jedes frame überprüft, und dann beim gefundenen objekt die y-geschwindigkeit auf 0 setzt. wobei, dann "hängt" es da und es kommen immer neue items. wobei, es wird ja nur einmal pro zeit aktiviert *Kopfhau*
das objekt selber würd ich aber trotzdem fest machen, dass man von oben nich durchkommt
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Di Feb 10, 2009 12:32 pm
Simsi schrieb:
müsste doch klappen wenn man das jedes frame überprüft, und dann beim gefundenen objekt die y-geschwindigkeit auf 0 setzt. wobei, dann "hängt" es da und es kommen immer neue items. wobei, es wird ja nur einmal pro zeit aktiviert *Kopfhau*
das objekt selber würd ich aber trotzdem fest machen, dass man von oben nich durchkommt
Aber wenn es jeden Frame untersucht, wird doch Spiel ziemlich laggig? Vorallem beim Netzwerk würds nicht besonders gut hinhauen. Aber wie schaffe ich es, dass es auserhalb des Objektes sucht?
PS: Wie lautet eigentlich der Befehl für Clonk-Berührung?
EDIT: Ok, ich stelle meine Forderungen etwas um. Wie mache ich es, dass der Block bei (irgendeiner) Berührung mit einem Clonk, Items ausspuckt?
Simsi Staatssekretär
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 30.03.08
Thema: Re: Gegenstand erscheint durch Sprung Di Feb 10, 2009 4:37 pm
dass es nicht laggt musst du dann halt im script machen, also so früh wie möglich die funktion beenden, also irgendwie:
Thema: Re: Gegenstand erscheint durch Sprung Di Feb 10, 2009 4:42 pm
Aber das wirkt sich doch nur auf normale Clonks aus. Also der Magus kann das dann nicht aktivieren. Kann man Find_Clonk auch außerhalb des objektbereiches einsetzten?
EDIT: So sieht es bei mir aus. Beim ersten Versuch wurden andauernd Items erzeugt. Nun passiert gar nichts.
Thema: Re: Gegenstand erscheint durch Sprung Di Feb 10, 2009 8:04 pm
1. Etwas zum laggen zu bringen ist mit geringen mengen an objekten und nicht übertriebenen befehlen nahezu unmöglich. Davon solltest du dich nicht abschrecken lassen. Ich würde das ganze etwas anders angehen: 2. if(!FindObject(CLNK,-8,9,17,16)) CreateObject(PLZ1); spuckt pilze wenn der Clonk nicht gefunden wird, du willst allerdings das gegenteil 3. Ich würde FindObject2 benutzen, das ist flexibler. Den suchbereich solltest du auch irgendwie verändern, momentan suchst du ja irgendwo, nurnicht unter dem objekt.
Beschäftigungs therapie für den armen Liech:
Spoiler:
/*-- Block --*/
#strict
local Pilz;
func Initialize() { SetAction("Wandel"); Pilz++;//wir tun ein pilz in den behälter return(1); }
func Timer() if(!Pilz) return();//wenn kein pilz mehr da ist, dann auch nichts tun { //Tausch sachen wie ObjektBreite durch die jeweilige Objekteigenschaft aus var x = ObjektBreite/2*-1;//der untere rechte objektrand var y = GetDefBottom();//der untere rechte objektrand var width = ObjektBreite; var height = 11;//Clonkhöhe/2+1 Log("%d,%d,%d,%d",x,y,widht,heigth); //da das ergebniss immer gleich sein wird kannst du es im script ersetzen um es nicht jedesmal neubestimmen zu lassen if(FindObject2(Find_OCF(OCF_CrewMember(),Find_InRect(x,y,width,height))) { CreateObject(PLZ1); Pilz--; } }
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Di Feb 10, 2009 8:24 pm
Liech schrieb:
1. Etwas zum laggen zu bringen ist mit geringen mengen an objekten und nicht übertriebenen befehlen nahezu unmöglich. Davon solltest du dich nicht abschrecken lassen. Ich würde das ganze etwas anders angehen: 2. if(!FindObject(CLNK,-8,9,17,16)) CreateObject(PLZ1); spuckt pilze wenn der Clonk nicht gefunden wird, du willst allerdings das gegenteil 3. Ich würde FindObject2 benutzen, das ist flexibler. Den suchbereich solltest du auch irgendwie verändern, momentan suchst du ja irgendwo, nurnicht unter dem objekt.
Beschäftigungs therapie für den armen Liech:
Spoiler:
/*-- Block --*/
#strict
local Pilz;
func Initialize() { SetAction("Wandel"); Pilz++;//wir tun ein pilz in den behälter return(1); }
func Timer() if(!Pilz) return();//wenn kein pilz mehr da ist, dann auch nichts tun { //Tausch sachen wie ObjektBreite durch die jeweilige Objekteigenschaft aus var x = ObjektBreite/2*-1;//der untere rechte objektrand var y = GetDefBottom();//der untere rechte objektrand var width = ObjektBreite; var height = 11;//Clonkhöhe/2+1 Log("%d,%d,%d,%d",x,y,widht,heigth); //da das ergebniss immer gleich sein wird kannst du es im script ersetzen um es nicht jedesmal neubestimmen zu lassen if(FindObject2(Find_OCF(OCF_CrewMember(),Find_InRect(x,y,width,height))) { CreateObject(PLZ1); Pilz--; } }
Ein Error wird ausgespuckt: ERROR: unknown identifier: ObjektBreite (in Timer, Zeitreise.c4s\Spawn-Block.c4d\Script.c:17:23)
Wusste aber selbst nicht mal, dass der Befehlt GetDefBottom existiert. Aber mit den ganzen Erklärungen deines Skripts habe ich das ganze verstanden. Aber ich habe das Gefühl, dass wir schon ganz nah dran sind.
Sag mal, woher weißt du das ein Pilz erzeugt wird ?
Mozart Kanzler
Alter : 31 Ort : Vaihingen/Enz Anmeldedatum : 24.02.08
Thema: Re: Gegenstand erscheint durch Sprung Di Feb 10, 2009 8:26 pm
Bowserkoopa schrieb:
Aber das wirkt sich doch nur auf normale Clonks aus. Also der Magus kann das dann nicht aktivieren. Kann man Find_Clonk auch außerhalb des objektbereiches einsetzten?
EDIT: So sieht es bei mir aus. Beim ersten Versuch wurden andauernd Items erzeugt. Nun passiert gar nichts. /*-- Block --*/
einfach am script hinten anhängen (Ich hoff doch dass man in einem script auch funktionen überladen kann...)
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Mi Feb 11, 2009 12:19 pm
Es kommt ein ERROR und eine WARNING. Ich habe versucht sie auszubessern, aber es bleibt(und aktualisiert es irgendwie auch nicht :S)
So weit sind wir bereits:
Spoiler:
Code:
/*-- Block --*/
#strict
local Pilz;
func Initialize() { SetAction("Wandel"); Pilz++;//wir tun ein pilz in den behälter return(1); }
func Timer() if(!Pilz) return();//wenn kein pilz mehr da ist, dann auch nichts tun { //Tausch sachen wie ObjektBreite durch die jeweilige Objekteigenschaft aus var x = 17/2*-1;//der untere rechte objektrand var y = GetDefBottom();//der untere rechte objektrand var width = 17; var height = 11;//Clonkhöhe/2+1 Log("%d,%d,%d,%d",x,y,widht,heigth); //da das ergebniss immer gleich sein wird kannst du es im script ersetzen um es nicht jedesmal neubestimmen zu lassen ;) if(FindObject2(Find_OCF(OCF_CrewMember(),Find_InRect(x,y,width,height))) { CreateObject(PLZ1); Pilz--; } }
Thema: Re: Gegenstand erscheint durch Sprung Mi Feb 11, 2009 12:26 pm
Hast du keine Schule? Was denn für errors?
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Mi Feb 11, 2009 1:05 pm
Schule? Habt ihr etwa welche? Es sind doch Semesterferien, zumindest in Österreich Kein Wunder das das CNDG so leer wirkt.
Die ERRORs sind:
WARNING: 'func': expecting opening block ('{') after func declaration (in Timer, Zeitreise.c4s\Fragezeichen-Block.c4d\Script.c:14:3) ERROR: ',' or ')' expected, but found '{' (in Timer, Zeitreise.c4s\Fragezeichen-Block.c4d\Script.c:22:4) 1 Definitionen geladen. ERROR: ',' or ')' expected, but found '{' (in Timer, Zeitreise.c4s\Fragezeichen-Block.c4d\Script.c:22:4) C4AulScriptEngine linked - 25248 lines, 1 warning, 1 error
Ich konnte es anfangs auf einen ERROR beschränken, aber gefunzt hat es trotzdem nicht.
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Gegenstand erscheint durch Sprung Mi Feb 11, 2009 1:19 pm
Ich hab grad Politik. Bei einer Funktion( ich glaub timer), fehlt die gescheifte Klammer
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Gegenstand erscheint durch Sprung Mi Feb 11, 2009 1:52 pm
Politik und im Internet? Weiß den der Lehrer bescheid ? Also da müsste noch etwas anderes als das { fehlen. Jedenfalls müssste ich, laut Engine, einen Beistrich nach CreateObject machen ?
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Gegenstand erscheint durch Sprung Mi Feb 11, 2009 2:07 pm
1.jetzt ist Politik vorbei und wir ham Mathe. 2.ist der eine error jetzt weg?