Thema: Leiche suchen -> SetGraphis So Nov 22, 2009 12:52 pm
Also, ich habe einen Clonk der Gegner erstechen kann. Der soll auch per Kontextmenü, wenn Liechen in seiner nähe sind, deren Klamotten nehmen und sdich somit tarnen. Das ganze soll über SetGraühics laufen. Wie aber kreige ichs hin dass er ne Leiche sucht und dann Den Clonktyp rausfindet? er soll halt einfach die nächste Leiche in einem kleinen Bereich vor ihm suchen. Wie liesse sich das realisieren?
edit: und er soll auch die Farbe des Spieler annehmen dem die Leiche gehörte.
und, wie kann ichs hinbekommen dass man Leichen schieben kann? ich sollte ein Append schreiben. Aber es sollte halt natürlich noch immer das Aussehen des Clonks der gestorben ist bleiben.
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 12:58 pm
Also FindObject2 und Get_ID() müssten glaub helfen können. Wenn dann die ID CLNK zurückgegeben wird, soll er dann eben die jeweilige Grafik(SetGraphics() ) annehmen.
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 1:04 pm
OK, so werd ichs versuchen. muss ichs dann nur noch hinbekommen mit der Farbe.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 2:19 pm
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 4:10 pm
Also ich würds ungefähr so machen:
Code:
#strict
func Such(){ var pLeiche; //Variable erstellen /*nun müssen wir nurnoch nach objekten suchen!*/ pLeiche=FindObject2(Find_Distance(10),Find_Exclude(this()),Find_Func("IsClonk")); /*jetzt wird das nächstbeste objekt gefunden das max 10 Pixel entfernt ist und ein Clonk ist*/ if(GetAlive(pLeiche) == 0){ //überprüfen ob er tot ist SetColorDw(GetColorDw(pLeiche)); //Overlay von der Leiche übernehmen } else { //wenn nicht tot return(1); } //dann nichts machen
return(1); }
Das musst du nurnoch in den Timer vom Clonk packen und dann müsste es im Umkreis von 10 Pixeln jeden toten clonk erkennen und dem eigenen das Overlay verpassen.
Hoffe konnte dir helfen, Gamer.
EDIT: GetLiving() zu GetAlive() gemacht
Zuletzt von Gamer am So Nov 22, 2009 8:32 pm bearbeitet; insgesamt 1-mal bearbeitet
Bowserkoopa Staatsrat
Alter : 30 Anmeldedatum : 21.12.08
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 5:56 pm
Müsste man nicht strict2 verwenden um den Operator == zu verwenden? Bin mir jetzt nicht sicher, ob das auch bei strict schon funktionierte, aber bei Skripts mit Operatoren setze ich normalerweise immer auf strict2
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 6:17 pm
das osollte ja net so das Problem sein danke gamer, ich änders dann so um dass des übers Kontextmenü geht.
Faby Generalleutnant
Ort : italien Anmeldedatum : 19.08.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 6:50 pm
Bowserkoopa schrieb:
Müsste man nicht strict2 verwenden um den Operator == zu verwenden? Bin mir jetzt nicht sicher, ob das auch bei strict schon funktionierte, aber bei Skripts mit Operatoren setze ich normalerweise immer auf strict2
Die operatoren funzen auch mit #strict
Gamer schrieb:
Also ich würds ungefähr so machen:
Code:
#strict
func Such(){ var pLeiche; //Variable erstellen /*nun müssen wir nurnoch nach objekten suchen!*/ pLeiche=FindObject2(Find_Distance(10),Find_Exclude(this()),Find_Func("IsClonk")); /*jetzt wird das nächstbeste objekt gefunden das max 10 Pixel entfernt ist und ein Clonk ist*/ if(GetLiving(pLeiche) == 0){ //überprüfen ob er tot ist SetColorDw(GetColorDw(pLeiche)); //Overlay von der Leiche übernehmen } else { //wenn nicht tot return(1); } //dann nichts machen
return(1); }
Das musst du nurnoch in den Timer vom Clonk packen und dann müsste es im Umkreis von 10 Pixeln jeden toten clonk erkennen und dem eigenen das Overlay verpassen.
Hoffe konnte dir helfen, Gamer.
Sowas wie GetLiving gibts afaik nicht das kannsst du noch in findobject reinhängen mit Find_OCF(OCF_Alive)
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 8:06 pm
also, GetLiving gibts nicht laut Konsole. und noch eine Frage: Kennt sich hier wer mit Actmaps aus und könnte mir eine machen? Ich kriegs einfach nciht hin.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis So Nov 22, 2009 8:30 pm
Zitat :
Sowas wie GetLiving gibts afaik nicht das kannsst du noch in findobject reinhängen mit Find_OCF(OCF_Alive)
Ja, aber dann würde es ja nur nur nach Lebenden dingen suchen aber ich muss es ja verneinen Geht das so einfach mit !Find_OFC(OFC_Alive) ? Oder man könnte ja auch auch statt GetAlive() machen:
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 4:33 pm
so, also es sieht wie folgt aus im moment:
Code:
public func Contextchangeclothes() { [Verkleiden|Image=ARMR]
var pLeiche; //Variable erstellen /*nun müssen wir nurnoch nach objekten suchen!*/ pLeiche=FindObject2(Find_Distance(22),Find_Exclude(this()),Find_Func("IsClonk")); /*jetzt wird das nächstbeste objekt gefunden das max 22 Pixel entfernt ist und ein Clonk ist*/ if(GetAlive(pLeiche) == 0){ //überprüfen ob er tot ist SetColorDw(GetColorDw(pLeiche)); //Overlay von der Leiche übernehmen if(GetID(pLeiche))==CLNK{ SetGraphics(Clonk,this());} else(GetID(pLeiche))==MCLK{ SetGraphics(Zauberer,this());} else(GetID(pLeiche))==SCLK{ SetGraphics(Magier,this());} else(GetID(pLeiche))==KING{ SetGraphics(King,this());} else(GetID(pLeiche))==KNIG{ SetGraphics(Ritter,this());} else(GetID(pLeiche))==HCLK{ SetGraphics(Hydro,this());} else(GetID(pLeiche))==JCLK{ SetGraphics(Jungel,this());} else(GetID(pLeiche))==MAGE{ SetGraphics(Magus,this());} else(GetID(pLeiche))==PRST{ SetGraphics(Priester,this());} } else { //wenn nicht tot Message("Keine Leiche|in der Nähe",this()); return(1); } //dann nichts machen
return(1); }
nur kommt immer folgender Fehler: ERROR: postfix operator without first expression(in Contextchangeclothes, Ritter-Erweiterung.c4d\Spion.c4d\Script.c:367:22)
Die Farbe wird gewechstelt aber nicht die Grafik. eiss jemand was falsch ist?
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 9:14 pm
Mhm ohne Zeilenangaben weiß ich nicht wo genau der Error liegt. Markier mal die Zeile rot oder schreib sie nochmal raus.
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 9:30 pm
Code:
if(GetID(pLeiche))==CLNK{
das ists. geht anscheinen um das ==
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 9:45 pm
Vlt. ein Leerzeichen hinter das "==" Weil es müsste eig. der Richtige Operator sein und ohne das leerzeichen erkennt es es vlt. nicht als Operator.
imperatoerchen Brigadegeneral
Alter : 29 Ort : Ebersberg Anmeldedatum : 23.03.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 9:45 pm
Du musst die Klammer nach pLeiche hinter CLNK schreiben, weil erst da die If-Abfrage zu Ende ist.
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 10:04 pm
danke, nur sagt er mir jetzt dass bei dem else noch ein ; fehle. weiss einer wo? muss da eins hinter?
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 10:06 pm
Nach else kommt keine runde Klamner! Also nicht if(..) else(..) sondern if(..) else .. Wenn mehrere Befehle hinters else sollen dann macht man das mit der geschweiften Klammer. if(..) else { ... } Aber eben nicht mit einer runden Klammer.
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis Mo Nov 23, 2009 10:46 pm
edit: gehen tuts immer noch nicht, da fehlt irgendwo noch ein ;
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis Di Nov 24, 2009 6:57 pm
Ähh nein so war das nicht bemeint.. Die {} müssen direkt nach dem else hin. else { if(GetID(pLeiche) == PRST) .. } Dein code ist voll wiredo o.O Geschweifte klammer falsch gessetzt und else GetID(pLeiche == PRST) stimmt schonmal garnicht.. da muss es heißen else { if(GetID(pLeiche) == PRST) .. }
Patta Großadmiral
Alter : 30 Anmeldedatum : 22.05.09
Thema: Re: Leiche suchen -> SetGraphis Di Nov 24, 2009 7:10 pm
ahh OK danke, das mit else konnt ich bei Clonk noch nier, weil bei allem anderen was ich in richtung scripts mache gibts entweder else (nur, ohne einzelnes if dahinter) oder elseif, aber nicht else { if...}
und in der Doku steht zu else gar nichts, hab zumindest nichts gefunden. Danke nochmal.
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Leiche suchen -> SetGraphis Di Nov 24, 2009 7:14 pm
Ja, schon komisch o.O "if" gibts als Befehl in der Doku xD Bloß else gibts nich?