Thema: Ein Koffer mit Attach So Jun 28, 2009 1:30 pm
Vor ewigkeiten wurde mal ein Tutorial gewünscht das erklärt wie man einen Koffer an einen Clonk "ranhängt" ich habe mich jetzt mal entschlossen so eins zu machen.
Zuerst einmal braucht man einen einfachen Koffer in den man Sachen reinlegen kann und so dafür wird nicht viel vorwissen benötigt:
Ich bin kein Grafiker also empfele ich die Grafik selber zu machen, das hier ist meine:
So das wäre der DefCore:
Spoiler:
[DefCore] Einfach eine ID nehmen Name und so festlegen id=CA9K Name=Case Version=4,9,5 Category=18960 MaxUserSelect=5 Höhe,Weite,Offset und Picture ergeben sich aus den Grafiken Width=10 Height=8 Offset=-5,-4 Picture=10,0,65,57 Der Wert wird später nach Inhalt berechnet werden also ist er hier egal Value=0 Mass=10 Components=CA9K=1; Ein Vertex damit er nicht durchfällt Vertices=1 VertexY=3 VertexFriction=20 Rebuy=1 So jetzt wird es wichtiger Grab macht das man ihn anfassen kann und GrabPutGet stellt die einfache steuerung für das raus und reinlegen von Objekten bereit also wie bei einer Lore bis Maximal so viele Objekte wie CollectionLimit vorgibt Grab=1 CollectionLimit=10 GrabPutGet=C4D_GrabGet|C4D_GrabPut
So jetzt fehlt aber noch ein script mit dem man den Koffer aufnehmen kann:
Code:
/*-- Der Koffer --*/
#strict 2
//Der Rückgabewert von CalcValue wird im Spiel //als verkaufs und KaufsWert genommen protected func CalcValue() { //zwei variablen eine zum Zählen und eine zum //speichern des Wertes des Inhaltes var i,value;
//So jetzt lassen wir eine while-Schleife so oft //durchlaufen wie objekte im Koffer sind while(i<ContentsCount()){
//Und Zählen jedesmal den Wert des Inhaltsobjekts // mit dem Index des durchlaufes (fängt bei 0 an) //zu value dazu value+=GetValue(Contents(i)); i++;
}
//Rückgabewert ist jetzt der Wert des gesammten //Inhaltes+35 wasich als Wert für den Koffer nehme return(35+value); }
//So und jetzt die Funktion zum Aufnehmen des Koffers //Es wird vorausgesetzt das der Clonk einen Locale namens //Koffer hat in der wir den Koffer speichern protected func ControlDigDouble(Caller){
//Wenn der Clonk schon nen Koffer hat(Koffer!=0) //kann keiner mehr aufgenommen werden if(LocalN("Koffer",Caller)!=0){ PlayerMessage(GetOwner(Caller),"%s hat schon einen Koffer",Caller,GetName(Caller)); return(1);}
//Ansonsten setzen wir die ID auf die des //des getragenen Koffers der gleich folgen wird //und setzten seine Action auf Feshalten ChangeDef(C19K); SetAction("Festhalten",Caller); //So hier werden die Vertices die aneinandergehängt werden sollen //Festgelegt mehr dazu gleich SetActionData(1,this);
//und hier wird der Localen des Clonks der Kffer zugewiesen LocalN("Koffer",Caller)=this; }
So nun brauchen wir aber den zweiten Koffer(wenn er am Clonk hängt) für diesen nehmen wir die Selbe Grafik wie für den ersten nur der DefCore und der script sind anders.Ich stelle sie jetzt vor.
DefCore:
Spoiler:
[DefCore] id=C19K Name=Case Version=4,9,5 Category=18960 MaxUserSelect=0 bis hier nichts neues (Masse und Wert sind hier ganz egal weil er nie verkauft wird) Width=10 Height=8 Offset=-5,-4 Value=0 Mass=0 Components=C19K=1; Picture=10,0,65,57 Die Vertices sind natürlich anders wir haben hier auch nur einen der zusätzlich durch VertexCNAT=64 auch noch Kollieionsfrei ist. mit diesem Vertex wird der Koffer später am Clonk hängen Vertices=1 VertexY=-9 VertexCNAT=64 Damit der Koffer nicht verkauft oder rausgelegt werden kann müssen hier nich schnell zwei werte hin die das unmöglich machen NoSell=1 NoGet=1
Es fehlt jetzt eine Aktion mit der Der Koffer Feshängt.
Wie Funktioniert SetActionData mit der Prozedur ATTACH?
Die Doku schrieb:
ATTACH richtet Objektposition Vertex a an Vertex b des Zielobjekts aus. a und b sind die beiden niederwertigen Bytes von ActionData (Siehe SetActionData für Beispiel). Erweitert ab CE.
Eine DwordInteger-Variable (Ganzahl-Variable)besteht bei Clonk aus vier bytes es können also 2³² Zahlen damit dargestellt werden. Jede dieser Zahlen kann in vier Bytes aufgeteillt werden: x+y*256+z*256*256+c*256*256*256und damit ergeben sich x und y als niederwertige Bytes:
Wenn also wie in Unserem Beispiel der erste Vertices des Koffers an den zweiten Vertices des Clonks gehängt werden soll dann muss es SetActionData(1+0*256,this); lauten denn die Zählung der Vertices beginnt mit 0.
Einen script für den Koffer brauchen wir auch noch:
Code:
/*-- Koffer getragen --*/
#strict 2 public func AttachTargetLost(){ChangeDef(CA9K);}
Der ist aber wie man sieht nicht sehr aufwendig er stellt nur sicher das beim verschwinden des Clonks(auf welchem Wege auch immer) der Koffer wieder normal wird.
Zuletzt fehlt noch ein Clonk-#Appendto damit der Koffer wieder abglegt wird.
//So das ist dann die Variable die den //KOffer speichert und die wir vorhin //verwendet haben: local Koffer; //Enthält den Koffer
//Diese Funktion gibt den Koffer zurück //damit kann man prüfen ob der Clonk //einen hat func HasCase(){return(Koffer);}
//Das ist dann die Funktion zum Ablegen des Koffers //Sie ist im Kontextmenu hat den Namen //Koffer Ablegen das Icon des Koffers(CA9K) //und ist nur verfügbar wenn der Clonk //einen Koffer trägt also HasCase //einen Wert ungleich 0 zurückgibt public func ContextAblegen(pCaller) { [Koffer Ablegen|Image=CA9K|Condition=HasCase]
//Hier wird der Koffer wieder normal gemacht un //die Variable Koffer wird wieder zu 0(Kein Koffer) Koffer->ChangeDef(CA9K); Koffer=0;
return(1); }
Wenn alles fertig ist sollte das ganze dann so aussehen:
Damit wäre ich dann fertig ich hoffe es hat euch gefallen schwierigkeitsgrad kann ich schlecht einschätzen schreibt bitte und sagt dazu(und zum Tutorial insgesammt) eure Meinung.
Mit Freundlichen Grüßen Toastbrot
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 2:38 pm
Wow, ziemlich viel geschrieben. Schade, dass man dafür 3 IDs verbrauchen muss, aber da lässt sich nichts ändern. Wobei man das Hilfsobjekt sicher auch ins System.c4g schreiben könnte.
Also ich finde das Tutorial toll gemacht und schön erklärt. Gäbe es hier ein Bewertungssystem, gäbe es 5 Sterne.
EDIT: Glaube man sollte den Koffer schon aufnehmen können, richtig? In die erste DefCore noch Collectible=1 EDIT2: Ansonsten wird bei mir auch nicht ControlDigDouble aufgerufen. Bin da aber schon am Fehlersuchen dran.
Toastbrot Kadett
Anmeldedatum : 10.03.09
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 3:19 pm
Nein man muss den Koffer nicht aufnehmen können es funktioniert auch so denn ControlDigDouble() lässt den Clonk den Koffer ja ATTACHEN.
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 5:53 pm
Achso. Ich dachte du willst, dass der Clonk den Koffer aufnimmt, und ihn anschließend mit DoppelDig attacht. Jetzt wird mir erst alles klar. Sorry, hab mich geirrt. Und wie lässt man sachen z.B. an den Ganzen Clonk attachen? Also zum Tarnen.
Toastbrot Kadett
Anmeldedatum : 10.03.09
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 6:22 pm
Was meinst du mit an den ganzen Clonk attachen? Wenn du ihn Tarnen willst geht das mit SetClrModulation(RGBa(0,0,0,x))
x von 0-255 setzt dann den Alpha-Wert.
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 6:37 pm
er mient glaube ich dass der ganze Clonk versdeckt ist. Wenn er z.B. einen Busch oder was mit sich herumträgt, hinter dem man dann den Clonk nicht mehr sehen kann.
Toastbrot Kadett
Anmeldedatum : 10.03.09
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 6:43 pm
Patta schrieb:
er mient glaube ich dass der ganze Clonk versdeckt ist. Wenn er z.B. einen Busch oder was mit sich herumträgt, hinter dem man dann den Clonk nicht mehr sehen kann.
Dafür nimmt man das selbe Sytem der Busch wird einfach mithilfe der Prozedur ATTACH mit einem seiner Vertices an einen des Clonks gehängt.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 7:07 pm
Jup habs grade selbst geschafft^^. So ne Statue, hinter der man sich vor feindlichen Clonks tarnen kann
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Ein Koffer mit Attach So Jun 28, 2009 8:59 pm
hei. das war meine Idee. Hatte ich auch gerade, als ich zum ersten mal dieses Tut gelesen habe.^^ Immer werden meine Ideen geklaut. Sag mal, kann man deine Statuer denn auch mit sich herumtragen? Ich hab mich noch nicht frangesetzt, modde momentan für Oblivion, nicht für Clonk. Wenn dus fertig kriegst, kannst du mir die dann evtl zukommen lassen (hier hochladen oder so? KÖnnt die gut gebrauchen. Hab aber momentan kaum Zeit noch was für Clonk zu machen. nur so nebenbei was für Bonezone, aber sonst...
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Ein Koffer mit Attach Mo Jun 29, 2009 9:42 am
Also man geht zu ihr hin, drückt Doppelgraben und dann ist sie vor einem. Man kann damit auch rumlaufen, aber laufende Statuen fallen nun mal den Gegnern ins auge^^
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Ein Koffer mit Attach Mo Jun 29, 2009 9:53 am
OK. wärst du so nett mir die hochzuladen? wie gesagt, brauch die für ein Szen (nein, nicht Bonezone, obwohl laufende Statuen als Gegner schon lustig wären) nur hab halt grad keine Zeit für Clonk ( )
YoCed Vizeadmiral
Alter : 28 Ort : Rheine Anmeldedatum : 23.05.09
Thema: Re: Ein Koffer mit Attach Mo Jul 06, 2009 12:25 am
Hast du da als Grafik die normale Statue genommen? Wenn ja, würde ich die vlt ein bisschen verändern, also graphisch jetzt
EDIT: Also, vermutlich hab ich zu wenig gemacht, aber man kann sich schonmal hinter der Statue verstecken:[url=clonka.cl.funpic.de/anderes/Koffer2.c4d]Koffer[/url] Sie hat sogar ein geheimfach^^
Zuletzt von YoCed am Mo Jul 06, 2009 12:43 am bearbeitet; insgesamt 1-mal bearbeitet (Grund : Upload)
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Ein Koffer mit Attach Mo Jul 06, 2009 2:45 pm
also bei mir kann man sich hinter deiner Statue nicht verstecken. Die hängt sich immer schräg über mienem Clonk auf.
YoCed Vizeadmiral
Alter : 28 Ort : Rheine Anmeldedatum : 23.05.09
Thema: Re: Ein Koffer mit Attach Mo Jul 06, 2009 2:51 pm
Ja, aber man kann dahinter herlaufen
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Ein Koffer mit Attach Mo Jul 06, 2009 2:53 pm
achso.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Ein Koffer mit Attach Mo Jul 06, 2009 2:59 pm
Man muss mit Offset oder Vertex rumarbeiten bis man es schafft, die Grafik genau über den Clonk zu legen. Weiß nur nicht mehr, was ich damals dazu gemacht habe Jedenfalls kannste du Grafik der Statue leicht austauschen, ist eben aus dem SM-Pack 5.3 Beta. Hat genaue Clonk Größe:
Alter : 28 Ort : In einem gaaaaanz kleinen Kaff in Austria Anmeldedatum : 21.03.09
Thema: Re: Ein Koffer mit Attach Di Sep 01, 2009 4:43 pm
kann man auch iwie Sachen an Fahrzeuge ATTACHEN ?
Dragonclonk Kadett
Alter : 31 Ort : Lübeck Anmeldedatum : 11.12.08
Thema: Re: Ein Koffer mit Attach Mo Okt 12, 2009 10:04 am
An sich ist das Tutorial nicht schlecht, aber man müsste den Script anpassen, wenn man schwimmt, springt etc, da der Koffer nur attached wird, und nicht dynamisch sich an die Bewegungen des Clonkes angepasst ist.
Wipfhunter Brigadegeneral
Alter : 29 Ort : Am Ort, den niemand kennt.... Bielefeld Anmeldedatum : 01.12.09
Thema: Re: Ein Koffer mit Attach Do März 11, 2010 11:14 pm
Wie funktioniert denn das Overlay bei InExantros? (meine das Objekt, dass sich vor den Clonk attached und die Rüstungen etc. anzeigt!) Wie kann das immer die Actions ausführen, die der Clonk auch macht und trotzdem an ihm attached bleiben?
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Ein Koffer mit Attach Mo März 15, 2010 3:35 am
All diese Overlays sind in einem Objekt namens Overlay.c4d (OVRL) gespeichert, das im Helpers-Ordner steckt. Das Overlay wird dann einfach über SetGraphics gesetzt. (Einfach? Ich wüsste zwar, wie man es macht, aber könnte es trotzdem nicht)