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

Austausch | 
 

 Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Patta
Großadmiral
Großadmiral
avatar

Männlich Alter : 23
Anmeldedatum : 22.05.09

BeitragThema: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 7:12 pm

oben stehts ja im grunde schon.

etwas genauer: ich arbeite zuer Zeit an ein paar neuen Artefakten u.ä. für InExantros, und eins davon soll eben eine Partikellinie aus "MSpark" Partikeln malen. und zwar so: in Blickrichtung wird der nächste Feind gesucht, und zu diesem eine Partikellinie gezogen und er bekommt dann Schaden.
Nach oben Nach unten
Benutzerprofil anzeigen http://sites.google.com/site/clonkprojekte/star-wars
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 7:38 pm

In einigen Theards hier wurde in letzter Zeit der Befehl DrawParticleLine() erwähnt. Dieser macht es möglich. er erzeugt eine Linie aus einem Partikel deiner Wahl.
Nach oben Nach unten
Benutzerprofil anzeigen
Patta
Großadmiral
Großadmiral
avatar

Männlich Alter : 23
Anmeldedatum : 22.05.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 7:54 pm

das wusst ich selber, mir gings eher um das
in Blickrichtung wird der nächste Feind gesucht, und zu diesem eine Partikellinie gezogen und er bekommt dann Schaden.
da brauch ich dann ja die Koordinaten des Feinds, wie ich das hinbekomm, das meinte ich. er soll ja schliesslich den nächsten feindlichen Clonk (die Gegner aus InExantros, um genauer zu sein) suchen und zu denen ne Linie ziehen.
Nach oben Nach unten
Benutzerprofil anzeigen http://sites.google.com/site/clonkprojekte/star-wars
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 9:00 pm

Erstmal musst du überlegen: Was bedeutet Blickrichtung? Zum einen muss der Clonk auf den Gegner schauen, dann muss der Gegner auch noch die richtige Position zu schauen haben. Bleiben wir erstmal dabei.

Zuerst suchst du den Gegner. Diesen findest du mit FindObjects und einer entsprechenden for-Schleife.

Wenn der Clonk nach links schaut, muss der Gegner eine Position links vom Clonk haben, also muss der x-Wert des Gegners niedriger sein als der des Clonks, damit der Clonk den Gegner sehen kann. Sollte der Clonk nach rechts schauen, muss die x-Koordinate des Feindes entsprechend höher sein. Also überprüfst du jeden gefundenen Gegner darauf, ob der Clonk ihn sieht. Solltest du einen gefunden haben, zeichnest du die Linie und verlässt die Funktion mit einem return.


Wenn du noch Blickwinkel mit einbeziehen möchtest, wird das ganze natürlich noch ""etwas"" komplizierter.
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 9:02 pm

Zitat :
das wusst ich selber
Hättest du es selber gewusst, wüsstest du, dass der Befehl ne Zielkoordinate benötigt. Razz Also einfach mal zuerst den Feind mit FindObject2() suchen. Dann speicherst du von dem gefunden Gegner die x und y Koordinate. Die mit Koordinaten-gefüllte-Variablen setzt du dann in den Befehl hinein, und schwupps, der Partikelstrahl geht direkt zu ihm. Anschließend eben noch ein Explode reinsetzen und dann kommt noch ne Explosion
Nach oben Nach unten
Benutzerprofil anzeigen
Patta
Großadmiral
Großadmiral
avatar

Männlich Alter : 23
Anmeldedatum : 22.05.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 9:08 pm

danke, mit findObject2 gehts, aber auch danke an Flinti
Nach oben Nach unten
Benutzerprofil anzeigen http://sites.google.com/site/clonkprojekte/star-wars
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 9:14 pm

Dann suchst du aber auch Objekte außerhalb der Sichtlinie, wenn du den Gegner nur simpel suchst ^^
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 10:07 pm

Naja, mithilfe von Find_InRect müsste man ja auch etwas einschränken können. Zusammen mit ner Richtungsabfrage, müsste man das hinbekommen können.
Nach oben Nach unten
Benutzerprofil anzeigen
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 10:32 pm

Das ist aber nichtmal eine Pseudosichtlinie, sondern bloß ein Kasten; der Clonk sieht auch das, was über seinem Kopf ist.
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   So Okt 25, 2009 11:14 pm

Wenn man das Rechteck clonkgroß machen würde, oder mit Find_Distance macht, und das so abändert, dass es nur in nem Bestimmten Bereich des Kreises suchen würde, wäre es ja auch möglich. Ich weiß mal, wie man im Halbkreis sucht aber noch weniger wird schwierig.
Nach oben Nach unten
Benutzerprofil anzeigen
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 1:20 am

Ok. Also dann hast du schonmal eine Pseudosichtlinie Wink

Hier einmal eine Funktion, die überprüft, ob der Clonk den Gegner sehen kann. Eigentlich sollte das jetzt noch niemand sehen, aber egal Wink So kompliziert kann es sein, mit statischen konstanten Variablen, um alles einfach anpassen zu können. Sollte jemand das script verwenden und veröffentlichen, ohne mich zu fragen und es verstanden zu haben, gibt's Ärger Twisted Evil

Code:


static const gNPC_SeeRange = 240;

static const gNPC_SeeAngleLeft1 = 215; //225
static const gNPC_SeeAngleLeft2 = 330; //315
static const gNPC_SeeAngleRight1 = 30; //45
static const gNPC_SeeAngleRight2 = 145; // 135

public func NPC_HasSightTo(object obj)
{
   if(GetObjectLayer(obj) != GetObjectLayer(this)) //In meinem Layer?
      return;
   if(GetVisibility(obj) != VIS_All) //Ist der überhaupt da?
      return;
   if(ObjectDistance(this, obj) > gNPC_SeeRange) //Zu weit weg?
      return;
   if(FindObject(LGCN, GetX(obj)-GetX()-120, GetY(obj)-GetY()-120, 240,240)) //Verblendung?
      return;
   
   var fOk;
   
   //Gegner ist rechts, ich gucke ihn halbwegs an
   if(GetDir() == DIR_Left && GetX(obj) < GetX(this))
      if(Inside(Angle(GetX(), GetY(), GetX(obj), GetY(obj)), gNPC_SeeAngleLeft1, gNPC_SeeAngleLeft2))
         fOk = true;
      else;
   //Gegner links
   else if(GetDir() == DIR_Right && GetX(obj) > GetX(this))
      if(Inside(Angle(GetX(), GetY(), GetX(obj), GetY(obj)), gNPC_SeeAngleRight1, gNPC_SeeAngleRight2))
         fOk = true;
   
   //Kann ich überhaupt vernünftig darauf gucken?
   if(fOk)
      if(PathFree(GetX(), GetY(), GetX(obj), GetY(obj))  )// ||
        // PathFree(GetX()+(GetX(obj)>GetX())*40-20, GetY()-20, GetX(obj), GetY(obj)))
       //return true;
       return Message("Ich kann ihn sehen!", this);
 
  return;
}

Selbst diese Sichtlinie ist alles andere als realistisch. Es wird nämlich vom Mittelpunkt aus "gesehen", und bekanntlich hat der Clonk den Kopf nicht am Bauch Very Happy. Trotzdem reicht es für eine einigermaßen "schlaue" KI Smile


EDIT: WTF? KONSTANTE VARIABLEN? Was erfinde ich denn für einen Mist? XD Suspect
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 11:40 am

Naja, man muss es ja nicht so machen, dass alles der Realität entspricht, man muss nur einen ähnlichen Effekt erzielen und den Spieler glauben lassen, es käme vom Kopf raus Wink
Nach oben Nach unten
Benutzerprofil anzeigen
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 6:41 pm

Genau Smile Es funzt ja auch Smile
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 6:46 pm

Das schöne ist ja auch, dass Flinti noch zusätzliche Abfragen wie den Verblendungszauber und ähnliches eingebracht hat, also so, dass der Clonk bzw. der Spieler den Gegner wirklich sehen muss.
Nach oben Nach unten
Benutzerprofil anzeigen
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 6:48 pm

Ja. Aber bitte nich einfach die Funktion kopieren. Sich davon Anregung zu holen ist ja auch ok Wink
Nach oben Nach unten
Benutzerprofil anzeigen
Patta
Großadmiral
Großadmiral
avatar

Männlich Alter : 23
Anmeldedatum : 22.05.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 10:16 pm

hehe, nein, ixh kopiers nicht, ich änder die Variablen Wink (Scherz beiseite: ichw erds schon net klauen. Aber als Anregung ists echt net schlecht und ich glaub ich habs sogar verstanden.)
Nach oben Nach unten
Benutzerprofil anzeigen http://sites.google.com/site/clonkprojekte/star-wars
YoCed
Vizeadmiral
Vizeadmiral
avatar

Männlich Alter : 21
Ort : Rheine
Anmeldedatum : 23.05.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 11:02 pm

Öhm, wofür denn FindObject2? Eigentlich wär da doch ein Clonk viel besser? Ich meine, wenn da son Typ ne Mega Armee aufstellt, dann könnte das Spiel doch ein bisschen laggen, oder?
Nach oben Nach unten
Benutzerprofil anzeigen
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Mo Okt 26, 2009 11:31 pm

Eher nicht. Meine Funktion wird von der KI alle 3 Frames aufgerufen, dazu noch eine Funktion, die ein ganzes großes Array durchläuft - Dabei fängt es ab 50 KIs, die nahe aneinanderstehen, leicht an zu laggen. Du kannst zigmal alle Clonks in einer bestimmten Reichweite suchen Smile
Nach oben Nach unten
Benutzerprofil anzeigen
Simsi
Staatssekretär
Staatssekretär
avatar

Männlich Alter : 24
Ort : Vaihingen/Enz
Anmeldedatum : 30.03.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Di Okt 27, 2009 4:06 pm

Wie wär es wenn man gegen das Scriptkopieren Schreibfehler ins Script tut Wink hat glaub ich schonmal jemand gemacht.

Btw.: schönes Script Very Happy

_________________
Copy this into your signature to have it in your signature.
Nach oben Nach unten
Benutzerprofil anzeigen
Bowserkoopa
Staatsrat
Staatsrat
avatar

Männlich Alter : 23
Anmeldedatum : 21.12.08

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Di Okt 27, 2009 4:32 pm

Ja, die Rechtschreibfehler waren mal irgendwo in nem Tutorial drinnen. Aber wenn das objekt später veröffentlicht wird, hat ohnehin jeder das Skript.
Nach oben Nach unten
Benutzerprofil anzeigen
Flinti
Kadett
Kadett


Männlich Alter : 24
Anmeldedatum : 07.04.09

BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   Di Okt 27, 2009 7:05 pm

Zitat :
Wie wär es wenn man gegen das Scriptkopieren Schreibfehler ins Script tut Wink hat glaub ich schonmal jemand gemacht.

Ich war das. Ich verzichte aber in meinem nächsten Tutorial weitestgehen darauf, da auch fertige Objekte dabei sein werden. Ich selber kopiere auch immer meine eigenen Effekte und mache neue draus ^^
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden   

Nach oben Nach unten
 
Partikellineie geradeaus bis zum nächsten Clonk ziehen und diesem Schaden
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1
 Ähnliche Themen
-
» Problem mit der funktion die Kategoriebilder über die ganze kat. zu ziehen
» Kalender - Ereignisse für die fünf nächsten Tage
» Kalender: Die Ereignisse der fünf nächsten Tage
» Geburtstage in den nächsten 7 Tagen
» Neuheiten im Spiel (05.10.11)

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