CNDG
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.


Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  SuchenSuchen  Neueste BilderNeueste Bilder  AnmeldenAnmelden  LoginLogin  

 

 Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten

Nach unten 
3 verfasser
AutorNachricht
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 6:52 pm

Aaalso, ich versuch schon ewig ne Funktion zu basteln,mit der man alle Objekte auf der Karte in einem Menü aufgelistet bekommt und diese dann zerstören bzw. zu sich teleportieren kann aber iwie komm ich da nicht wirklich weiter...
Muss man das mithilfe eines arrays machen oder wie sonst?
Ich hab echt keine Ahnung Smile
Nach oben Nach unten
Extremclonk
Staatsrat
Staatsrat
Extremclonk


Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 7:22 pm

Ich bin mir nicht sicher ob es die beste Lösung ist, aber es ist immerhin eine.

FindObjects() gibt die gefundenen Objekte bekanntlich als Array aus. Nun muss man FindObjects nur noch dazu bringen alle Objekte in die Suche einzubeziehen. Am einfachsten nimmst man hier wohl Find_InRect(0,0, LandscapeWidth(), LandscapeHeight()). So bekommt man eine Array in dem alle Objekte in der Landschaft drin sind. Wir erstellen einen Array "Objects" und dann:
Code:

Objects = FindObjects(Find_InRect(0,0, LandscapeWidth(), LandscapeHeight()));
Denke das funktioniert so.
Zum Ordnen von Array hat B_E
hier etwas geschrieben, ersten Kommentar.
Und dann ein Menü erstellen.
Allerdings hatte ich bei Menüs und Arrays immer das Problem das das Menü fehlerhaft wird sobald sich im Menükommando eine Variable befindet, da diese beim Aufruf des Eintrags nicht mehr zwangsläufig das ist was sie war als der Eintrag erstellt wurde. Aber vllt. weiß ja wer eine Lösung oder einen Ansatz der das Problem umgeht.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 7:42 pm

Mh okay und wie pack ich das dann in ein Menü Question
Smile
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 8:01 pm

Extremclonk: Das Find_InRect ist nicht nötig. Wenns nicht da ist, werden einfach alle gefunden.
Blöderweise muss mindestens ein Parameter angegeben werden, aber da tuts auch einfach ein leeres Find_Not().
SetObjectOrder ist was ganz anderes, Arrays sortiert man mit den Sort_-Funktionen (zu finden in System.c4g/FindObject.c).

In ein Menü gepackt wird das Ganze zB so:
Code:
for (var obj in FindObjects(Find_Not()))
  AddMenuItem("%s zerstören", Format("Explode(10, Object(%d))", ObjectNumber(obj)), GetID(obj));
"%s zerstören"
Name des Eintrags. Für %s wird der Name des 3. Parameters eingefügt, hier also die ID des gefundenen Objekts.
Format("Explode(10, Object(%d))", ObjectNumber(obj))
Hässlich, aber tut: Die Objektnummer wird in das Kommando gequetscht und bei Ausführung in ein Objekt zurückverwandelt und explodiert dann.

for (&ref in array a)
geht alle Objekte (bzw Integer oder Strings, was halt drin ist) im array "a" durch und speichert den jeweiligen Eintrag in "ref". Der kann dann im Block verwendet werden.
Hier werden alle Objekte, die FindObjects zurückliefert, in "obj" gespeichert und dann ins Menü gepackt.


Edit: Find_Not() geht doch nicht. Du könntest aber zB Find_Category(~0) nehmen. Extremclonks Methode findet halt zB nicht Objekte außerhalb der Landschaft, auch wenn das eher selten stört.
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 8:44 pm

Irgendwie gehts nich,entweder bin ich zu doof oder zu schlau Wink

Code:
/*-- Neues Objekt --*/

#strict


func Activate(object pClonk)
{
 CreateMenu(GetID(),pClonk);
 for(var obj in FindObjects(Find_Category(C4D_Object)))
  AddMenuItem("%s zerstören",Format("Explode(10,Object(%d)))", ObjectNumber(obj),GetID(obj),pClonk));
}

Passt doch so oder?
Das Menü erscheint auch aber ohne einträge :O
Nach oben Nach unten
Limeox
Admiral
Admiral
Limeox


Männlich Anmeldedatum : 25.04.10

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 9:59 pm

Fehler bei den Klammern Razz
Code:
AddMenuItem("%s zerstören", Format("Explode(10, Object(%d))", ObjectNumber(obj)), GetID(obj), pClonk);
Nach oben Nach unten
Tundanér
Fregattenkapitän
Fregattenkapitän
Tundanér


Männlich Alter : 29
Ort : Rödental
Anmeldedatum : 03.02.09

Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten EmptyDo Aug 26, 2010 10:04 pm

Thx jetzt funzts Very Happy
Nach oben Nach unten
Gesponserte Inhalte





Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty
BeitragThema: Re: Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten   Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten Empty

Nach oben Nach unten
 
Alle Objekte/Lebewesen/Fahrzeuge auf der Map auflisten
Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Reload bei Lebewesen

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Anfragen-
Gehe zu: