Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Inhalt nehmen Mo Mai 31, 2010 3:38 pm
Hi Leute ich bins wieder!
Ich bräuchte mal eure Hilfe!
Wenn ein SFT was aus einer Lore holen will muss er (dank dem fehlenden Kontexmenü) alles reinlegen, bis er ans Inhaltsmenü kommt! Deshalb wäre die überlegung per [Graben] Genau dieses Menü zu öffnen! Nur weiß ich nicht, wie der Befehl für dieses Menü heißt! Oder muss ich das sogar alles per hand machen?
Code:
for(var i;i = ContentsCount();i++) AddMenuItem(...); //Halt alles ausfüllen
Danke für eure Hilfe
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Inhalt nehmen Mo Mai 31, 2010 3:44 pm
Mhm ja es gibt leider keinen Befehl wie "CreateContentsMenu()" Da muss man wirklich dieses Menü nachmachen. Sowas wie:
Code:
var iElement; var pLore; // Eben diese Lore finden, das muss man in die ControlDig() Funktion schreiben CreateMenu(GetID(),this()); while(Contents(pLore,iElement)){ iElement++; AddMenuItem(""...); } //Eben die ganzen Menü Parameter reinmachen
Wipfmagus Konteradmiral
Alter : 28 Anmeldedatum : 06.03.10
Thema: Re: Inhalt nehmen Mo Mai 31, 2010 10:45 pm
Ich würde statt des Whiledings eine For-Schleife mit "in" machen, weil das Ganze mit den Parametern dadurch besser übergeben werden kann. Aber das ist wohl Geschmackssache... An sich ist der Ansatz schon mal sehr gut...
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Inhalt nehmen Mo Mai 31, 2010 11:52 pm
Ich will eure Schleifenträume ja nicht stören, muss euch aber darauf hinweisen das Menüs die man mit einer Schleife gefüllt hat eine kritische Angelegenheit sind. Die Variable iElement wird gelöscht sobald die Funktion fertig ist. Daher ist sie nicht mehr definiert wenn man etwas im Menü auswählt. Übergibt man jetzt Contents(iElement) mit dem Menükommando, so erhält man einen Error.
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Inhalt nehmen Di Jun 01, 2010 12:32 am
Zitat :
Übergibt man jetzt Contents(iElement) mit dem Menükommando, so erhält man einen Error.
Dafür gibts eine simple Lösungsmöglichkeit: Als übergebene Funktion Format("Contents(%d)", iElement) nehmen, und die Sache hat sich. Ist natürlich ungeschickt, wenn sich zwischen Erstellung und Auswahl der Inhalt ändert (wenn zB 2 die Lore anfassen). Da wär es sicherer, eine Schleife zu schreiben, die jede ID nur einmal ins Menü einbaut und stattdessen anzeigt, wieviele von der Sorte drin sind (wie beim normalen Loren-Menü der Fall). Dann nimmt man als aufzurufende Funktion nur den Funktionsnamen (zB "Funktion"), die ID wird ja übergeben.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Inhalt nehmen Di Jun 01, 2010 2:43 am
Meinst du so:
Code:
for( var i; i < ContentsCount(); i++) { AddMenuItem("Objekt nehmen", "Format(\"Contents(%d)\", i)()", ROCK, Contained()); }
Und dann eine Funktion Contents(int i)?
Wenn du das so meinst, hier kommt genauso: Unknown identifier "i" in Menucommand [...].
Limeox Admiral
Anmeldedatum : 25.04.10
Thema: Re: Inhalt nehmen Di Jun 01, 2010 3:39 am
Die Anführungszeichen vor und hinter Format sind falsch. Format selbst gibt ja den Funktionsstring zurück.
Code:
for( var i; i < ContentsCount(); i++) { AddMenuItem("Objekt nehmen", Format("Contents(%d)", i), ROCK, Contained()); }
Pitri Feldmarschall
Alter : 30 Ort : Karlsruhe Anmeldedatum : 02.03.09
Thema: Re: Inhalt nehmen Sa Jun 05, 2010 3:04 pm
Danke an alle, die geschrieben haben, aber ich hätte nicht gedacht, dass das So einfach geht: