An und für sich könnte man auch ChangeDef nehmen, denn dann bräuchte man nur eine Zeile
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Di Jul 28, 2009 10:53 pm
ja ich habs mit remove gemacht =)
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Fr Jul 31, 2009 7:08 pm
folgendes Problem : Ich hab 4 neue mögliche Bäume gemacht , für das Samenkorn.
Ich möchte das man diese Bäume in einem Sägewerk zu einer andren "Holzart" sägen kann.
Ich hab also das Sägewerk und Holz aus dem Orginalpack ins Szen - andre ID´s verpasst und andre Grafik und den in den Scripts für Sägewerk , Bäume und Holz alle WOOD ID´s eben in die neue umbenannt. In dem Glauben das dann eben aus den neuen Bäumen ..in neuen Sägewerk das neue Holz wird.
Aber der Baum kommt einfach wieder aus dem Sägewerk unzersägt zur Tür raus. Jemand ne Idee worans happert ?
Zuletzt von leafar77 am Sa Aug 01, 2009 2:08 pm bearbeitet; insgesamt 1-mal bearbeitet
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte Fr Jul 31, 2009 7:10 pm
Also das Sägewerk ruft ja nur einen Befehl auf: SplitContents() (=in die Einzelteile zerlegen) Du kannst z.B in der DefCore deiner neuen Bäume einstellen aus was sie gemacht werden und da die ID's ändern. Dann müsste es theoretisch funktionieren. Aber ich schau grad mal im Sägewerrkscript nach..
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Fr Jul 31, 2009 7:17 pm
Ja also ich hab alle WOOD id in LWOD genannt also alle Einträge in den jeweiligen Scripts. bei Bäumen auch Components=LWOD=1
das Holzstück hat auch die LWOD Id
und im Sägewerk auch alle WOOD einträge in LWOD
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte Fr Jul 31, 2009 10:22 pm
Dann zeig doch mal den momentanigen Script.
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Sa Aug 01, 2009 12:53 am
das hier is das Sägewerk
Spoiler:
/*-- Sägewerk --*/
#strict
#include CXEC #include BAS7 #include DOOR
/* Produktion */
public func IsProducerOf (object clonk, id def) { if (def != LWOD) return (0); if (!IsBuilt ()) return (0); if (NeedsEnergy ()) if (FindSuppliedObjectCloseTo (clonk)) return (0); // if (!FindWorkTree (clonk)) return (0); return(1); }
// Kann Holz produzieren public func HowToProduce (object obj, id def) { //Eventuell erst versorgen if (NeedsEnergy ()) { AddCommand (obj, "Call", this (), LWOD, 0, 0, 0, "HowToProduce"); AddCommand (obj, "Energy", this ()); return (1); } AddCommand (obj, "Wait", 0, 0, 0, 0, 0, 70); // Arbeitsbefehl setzen Production (obj); return (1); }
public func Production(object clonk) { // Baum suchen var pTree; if (!(pTree = FindWorkTree(clonk))) { // Kein geeigneter Baum (fertig) AddMessage("$TxtNomoresuitabletrees$",clonk); // Habe ich schon erwähnt, dass ich C4Command hasse? FinishCommand (clonk, 0, 0); FinishCommand (clonk, 0, 1); return(0); /* fail command - if only the Call-Command would check the return value... */ } // Baum markieren, damit er nicht nochmal verwendet wird, falls er nicht schiebbar ist AddEffect ("IntSawmillTreeMarker", pTree, 1, 5000, this (), 0, clonk); // Baum ins Sägewerk schieben... AddCommand(clonk,"PushTo",pTree,0,0,this(), 500, 0,0, 3); // ...aber erst fällen if (!(GetOCF(pTree) & OCF_Grab())) AddCommand(clonk,"Chop",pTree, 0,0,0,0,0,0, 3); // Fertig return(1); }
private func FindWorkTree(object clonk) { // Arbeiter fällt bereits einen Baum if (GetAction(clonk) eq "Chop") return(GetActionTarget(0, clonk)); // Arbeiter hat bereits einen Baum angefaßt if (GetAction(clonk) eq "Push") if (GetActionTarget(0,clonk)->~IsTree()) return(GetActionTarget(0,clonk)); // Baum zum Anfassen suchen var obj; if (obj = FindTreeToGrab()) return(obj); // Baum zum Fällen suchen if (obj = FindTreeToChop()) return(obj); // Kein Baum gefunden return(0); }
private func FindTreeToChop() { var obj; while (obj = FindObject(0,0,0,-1,-1,OCF_Chop(),0,0,0,obj)) // Ausgewachsen if (GetOCF(obj) & OCF_Fullcon()) // Im freien Bereich if (GetOCF(obj) & OCF_InFree()) // Nicht markiert if (!GetEffectCount ("IntSawmillTreeMarker", obj)) // Nicht zu weit weg if (ObjectDistance(obj) < 500) // Brennt nicht if (!OnFire(obj)) // Baum wird nicht bereits von einem Clonk gefällt if (!FindObject(0,0,0,0,0,OCF_CrewMember(),"Chop",obj)) // Passenden Baum gefunden return(obj); // Keinen passenden Baum gefunden return(0); }
private func FindTreeToGrab() { var obj; while (obj = FindObject(0,0,0,-1,-1,OCF_Grab(),0,0,0,obj)) // Ist ein Baum if (obj->~IsTree()) // Nicht in einem Behälter if (!Contained(obj)) // Nicht markiert if (!GetEffectCount ("IntSawmillTreeMarker", obj)) // Nicht zu weit weg if (ObjectDistance(obj) < 500) // Brennt nicht if (!OnFire(obj)) // Steckt nicht fest if (!Stuck(obj)) // Baum wird nicht bereits von einem Clonk angefaßt if (!FindObject(0,0,0,0,0,OCF_CrewMember(),"Push",obj)) // Passenden Baum gefunden return(obj); // Keinen passenden Baum gefunden return(0); }
/* Kontext */
public func ContextConstruction(object clonk) { [$TxtProducewood$|Image=LWOD|Condition=IsBuilt] return(ProductionLoop(clonk)); }
Zuletzt von leafar77 am Sa Aug 01, 2009 7:10 pm bearbeitet; insgesamt 1-mal bearbeitet
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Sa Aug 01, 2009 12:58 am
wobeis wahrscheins sinn macht wenn das Sägewerk normale Bäume auch weiterhin zu normalen Holz zersägt ..und halt zusätzlich die andren Bäume zu dem neuen Holz .. aber erstma muss das so überhaupt funzen
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte Sa Aug 01, 2009 2:28 pm
Ähm nur so das sich die Admins nicht aufregen. Mach das mal zu nem Spoiler (spioler) script (/spoiler) Natürlich mit eckigen klammern. Auch zu funden unter "Andere BBCodes.
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Sa Aug 01, 2009 7:11 pm
aye aye -gemacht. Und noch ne Vermutung gefunden worans liegen könnt ?
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte So Aug 02, 2009 10:06 am
Also eigentlich kann es nur an diesem Teil hier liegen:
Spoiler:
Code:
/* Verarbeitung */
private func ContentsCheck() { [..] // Kann zersägt werden? var fSawable = GetID(obj) != LWOD && GetComponent(LWOD,0,obj) && ComponentAll(obj,LWOD) && !obj->~IsArrow(); // Nicht zersägbare empfindliche Objekte oder Fahrzeuge über den Ausgang rauswerfen if(!fSawable) if(GetDefFragile(GetID(obj)) || GetCategory(obj) & C4D_Vehicle) { SetCommand(obj, "Exit"); return(); } // Objekt zerlegen if (fSawable) { var iWoodCount = obj->GetComponent(LWOD); for (var i = 0; i < iWoodCount; i++) CreateContents(LWOD); obj->RemoveObject(); } // sonst einfach auswerfen else if(GetID(obj) != LWOD) return Exit(obj,-20,14,0,-1); // Sägen SetAction("Saw"); Sound("Sawmill"); return(1); }
Aber ich kann da keinen wirklichen Fehler erkennen.. Gibt es eig. Errors oder Warnings beim Objekt?
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte So Aug 02, 2009 5:28 pm
Nein da kommt kein Error und kein Warning .. nichts was nen Hinweis gibt - es kommt einfach nur der Baum raus ..wie andre unzersägbare Objekte ..
Da ich das Problem nicht behoben kriege - ..beschloss ich mir n neues zu machen
es ist ein blauer Kristall .. er wird gewonnen ,zusammen mit nem gelben kristall) aus einer "spaltung" von grünen Kristallen ..die ja bereits schön an den Kristallbäumen nun wachsen..
(clonkonitinfo : roter Clonkonit Kristall is als abbaubares Material vorhanden, geworfener grüner Kristall (ders fertig)(ein Aspekt des Lebens) zerbricht und setzt ein paar "heilende" Zaps frei (fertig)- benutzt man ihn erhällst du ein Samenkorn (fertig)..dieses benutzt -> pflanzt einen Clonkonitbaum (Random 4 Aussehen) an denen grünes Clonkonit wächst (fertig)(ja , Tiberium ich hab zuviel C&C gezockt früher) - zersägt (das Sägewerkproblem!)man diesen Baum erhällst du "lebendes Holz"(fertig) .. dieses Holz wirkt bei benutzen wie n Baukit(nicht fertig) - nur lässt du die pflanzenartigen Gebäude damit "wachsen"(nicht fertig)
Das erste der Gebäude die man wachsen lassen kann , stellt Forschung dar ..so n grüner Clonkonitkristalltempel in dem geforscht werden kann .. zunächst resultieren aus der forschung "grüner Kristall" ..die ja an den Bäumen wachsen (die forschung kostet ne enstprechende Anzahl grüner Kristalle) die Kenntnisse über "Kristallfusion" sowie "Kristallspaltung" mit dem dazugehörigen Gebäude welche dann zum "wachsen lassen" bereits mehr lebendes Holz benötigen und rotes Clonkonit. das Gebäude zur "Spaltung" spaltet mischfarbige Kristalle in die einfarbige Komponenten auf (grün =blau+gelb) das Gebäude zur "Fusion" mischt einfarbige zu mehrfarbigen Kristallen (zb blau + das abbaubare rot = lila) jede Farbe Clonkonitkristall hat diverse Eigenschaften
doch zurück zum blauen .. )
Bei benutzen kann man ihn wahlweise Wasser produzieren lassen - oder aber Wasser(eigtl alle Flüssigkeiten) absorbieren lassen.
Soweit funzt das nun über so n Menu ..wo jeweils Wasser produzieren ..oder absobieren wahlweise an und ausschaltet
Ich möchte nun - das die Wasserproduktion aber aufhört -sollte der Kristall länger als ..sagen wir mal 5 Sekunden rumliegen. Wohl aber solls ungestoppt Wasser weiterproduzieren solang der Clonk den Kristall hällt - insofern ers nich übers Menu abschaltet.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte So Aug 02, 2009 7:51 pm
Und du hast in der Defcore des Baumes auch festgelegt, das Category = C4D_Tree ist?
Toastbrot Kadett
Anmeldedatum : 10.03.09
Thema: Re: Erste Schritte So Aug 02, 2009 7:56 pm
Gamer schrieb:
Und du hast in der Defcore des Baumes auch festgelegt, das Category = C4D_Tree ist?
Es gibt doch gar keine Kathegorie C4D_Tree guck mal hier :
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte So Aug 02, 2009 7:58 pm
da steht Category=C4D_StaticBack|C4D_SelectVegetation wie in den orginal Bäumen.
Zu normalen Holz lies sich das ja davor auch zersägen.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte Mo Aug 03, 2009 10:03 am
Sagmal was erzähl ich heute für ne Scheiße? C4D_Tree, klar doch.. *Kopf gegen Tischkante hau* else if(GetID(obj) != LWOD)
Probier mal das gegen die ID des Baumes auszutauschen.
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Mo Aug 03, 2009 1:21 pm
Ich hab die Baum ID probiert > ging aber nich , wirfts immernoch aus. die ID war zuvor im orginal auch die des Holzes WOOD gewesen , nich die vom Baum ..damüssten ja sons auch irgendwie 4 mögliche ID`s rein.
Ich hab grad was festgestellt - in den Szenariovorgaben - wo man die Bäume aussuchen kann welche wachsen - da is nur einer der vier Baumsorten anwählbar -der 3te Baum und genau diesr 3te Baum lässt sich auch ins neue Holz zersägen ! Aber die Scripte in den Bäumen und DefCores sind alle absolut identisch ..ich hatte einen baum 4x kopiert - lediglich grafiken und die grössenangaben davon unterscheiden sich.
Nachtrag : Warums ausgerechnet mit dem 3ten funzt is mir nich klar ,hab dann folgendes experimentiert - den 3ten baum kopiert - die ID geändert -szen vorgaben und er ist ebenfalls auswählbar !! Das einzige ob der da auftaucht oder nich ändert sich mit ner andren Grafik.png wobei alle die gleiche haben - lediglich das bild selber variiert in der grösse und weite. ich hab natürlich auch geschaut das die höhe ,weite angaben in den jeweiligen Baum DefCores übereinstimmen .. aber auch dann - sobalds n andres Bild is -verschwindet es aus der Auswahl und verliert scheinbar die sägbare eigenschaft zum neuen holz ? ? ?? ? ich check das 0 !
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Erste Schritte Mo Aug 03, 2009 3:26 pm
Das ist manchmal wirklich so, dass es nicht geht. Bei mir wird die Turmgrafik(Ritterpack) nicht angezeicht, wenn ich die ändere sehe ich plötzlich die SolidMaks(sehen!). Versuche mal alles einzeln zu kopieren(in ein neues Objekt) und schau, wann der Baum verschwinden. Also ob er nur verschwindet wenn du beispielsweise die Grafik reinkopierst.
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Mo Aug 03, 2009 5:48 pm
ja sobald ich die Grafik änder , verschwindets aus den auswählbaren Bäumen - ich hab aber grad festgestellt das die KOPIE von Baum3 - obwohls auswählbar war , sich ebenfalls NICHT zersägen lässt ..das bleibt nachwievor irgendwie die alleinige Eigenschaft vom Baum3
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Erste Schritte Mo Aug 03, 2009 7:10 pm
Kann es sein, dass die grafiken verschieden groß sind? Wenn Widht, High, Offset oder Picture nicht passt, wirds nicht geladen. Musst ich selbst rausfinden. Bei dem anderen gibt warscheinlich irgendein anderes Problem.
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Mo Aug 03, 2009 10:24 pm
Das war tatsächlich des Rätsels Lösung , zwar waren Widht und High auf die neuen Bilder eingestellt - aber nicht bei Picture. Jetz zersägts alle Bäume zu dem neuen Holz Super ! Danke euch
Beim Bäume rumschieben fiel mir auf , das die mit der längeren Grafik so wirken als wäre der "Schwerpunkt" in der mitte des Baumes , dadurch verhällt der sich komisch beim rumschieben. Wo ist dieser den festgelegt ?
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Erste Schritte Di Aug 04, 2009 10:15 am
Offset. Wenn du den Offset in der mitte haben willst, dann gilt. Offset=-(Hälfte höhe),-(hälfte breite) (Achtung, '-') Oder allgemein: Bei Offset=0,0 Würde der Mittelpunkt an der obreren Linken ecke der Graphics.png sein. Da wir aber (wahrscheinlich weiter nach unten etc wollen uss man ein '-' machen, Rückwärtsgang praktisch. Die Vertexe kann man dann auch berechnen. X-Koordinate des gewünchten vertexes + erste Offset zahl. Das gleiche bei Y nur mit de3 2ten Zahl. Nehmen wir z.B an du möchtest einen Vertex in der Grafik bei 10,15 (aus einem Zeichenprogramm entnomen) und der Offset wäre bei -20,-20 Dann wäre VertexX=10 + (-20) = 10 - 20 = -10 VertexY=15 + (-20)= 15 - 20 = -5 Das Ergebnis natürlich ohne die + und =, war nur zum besseren Veständniss. Übrigens ist Picture meisten der possitive Offset. Noch Fragen?
leafar77 Oberst
Anmeldedatum : 17.07.09
Thema: Re: Erste Schritte Di Aug 04, 2009 12:35 pm
Hm glaub ich raffs so halb .. Wenn der Baum gefällt ist und geschoben wird , stellt dann der Offset den Punkt dar wo der Baum "aufliegt" am Boden .. oder sind das die Vertexpunkte ,denk ich ? Wofür is dann der Offset ? bzw. an dem orientieren sich die Vertex ? Aber danke schonma das bringt doch wieder Licht ins Dunkel ^^ Fragen kommen sicher noch