Angriffsreihenfolge [3D]
Übersicht

![]() |
DottakopfBetreff: Angriffsreihenfolge [3D] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo !
Vorab muss ich zugeben, dass ich so einen Theard schon hatte. Und mir da auch versucht wurde, mit mir das Problem zu lösen. Ich weis auch wie es zu lösen ist, doch ich komm beim umsetzten nicht dahinter. Dann war ich noch ne Woche Krank und da lag das ganze erstmal... Hab heut mal wieder den alten Theard gesucht und studiert ---> und bin so schlau wie vorher. Ich bin einfach zu blöde. ![]() ![]() ![]() Das hab ich damals als Beschreibung gepostet: siehe auch : ( http://87.230.14.1/forum/viewt...ht=#229867 ) Ok so schauts kurzgefasst aus: Ich kann mit nem player "Soldaten" erschaffen welche mir auch im "Def_modus" kontinuirlich folgen. Sobald ich in den "Angriffs_modi" wechsle stürzen sich diese auf diewerse Feinde in der Umgebung und deleten diese bei Kontakt auch. Das Problem : Wenn gerade mal mehr Gegener auf einem Haufen stehen können sich meine "Soldaten" nicht entscheiden wen sie zuerst angreifen sollen und machen ne kleine Kaffepause genau in der Mitte des Gegnerischen Haufens. Das ist aber nicht das Ziel ^^. Sie sollen ja Objekt(Soldat) für Objekt abarbeiten. Ich glaube auch zu wissen woran das liegt: Jeder Soldat hat eine Art "Angrifsradius" er liegt zwischen 1 und 70. Sobalt ich den Befehl zum Angriff gebe pointet er auf alle Objekte innerhalb seines Radiuses und düst auf sie zu. Und genau dan passiert es, er merkt das da ja 2 Gegner sind und versucht dann dumm wie er ist(ok ich hab ihn erschaffen... ) beide gleichzeitig zu deleten ! Das geht aber nicht also bleibt er genau in der Mitte stehen.... Meine Aktuelle Angriffsfunktion schaut so aus: (ein teil davon) Code: [AUSKLAPPEN] For info2.enemy = Each enemy For info.ant = Each ant ;Angriff If info\ant_ATK = True And EntityDistance(info\ant_entity,info\eny_entity) Then TurnEntity info\ant_entity,0,DeltaYaw(info\ant_entity,info2\eny_entity),0 MoveEntity info\ant_entity,0,0,0.8 End If Next Next JaJa ich weis, dass da ja nix drin steht wobei die Ameise(info\ant_entity) auch nur annähernd darauf kommen würde sich den am nächsten liegenden Enemy auszusuchen.... Aber dan wären da soviele Zeilenumbrüche drin gewesen, dass keine mehr was verstanden hätte. Aber so inetwa habs ich versucht zu lösen: Code: [AUSKLAPPEN] Save = MaxRadius if distance(x,y) < MaxRadius and distance(xy) < Save then save = distance(x,y) pointentity ant,enemy (so wie bring ich jetzt save nei ??) moveentiy ant,0,0,0.8 end if boa ich hab sowas von keine Ahnung ^^. Bitte helft mir weiter. (ich poste mal gesammten Quellcode im code Pasting, da da auch noch andere Sachen drin sind welche bestimmt überarbeitet werden können...) und wenn wer mal bock hat darf er da gerne drann rumtüfteln. ( http://87.230.14.1/upload/code.php ) mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach doch für deinen Soldaten eine Variable (bzw. ein Field), z.B. "Target".
Dann soll er sich einmal entscheiden, welchen Gegner er angreifen will, speichert diesen in der Variable und jagt ihn. Du kannst dann ja noch einbaun, dass er sich wieder ein neues Ziel sucht, wenn er das alte nach einer gewissen Zeit nicht kriegt oder so ^^ |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab ne bessere idee...
mach doch einfach einen timer... aller 3-10 schleifendurchlüfe wird nur die Entscheidung eines Angreifers für einen Gegner getroffen... also wenn das genau in der mitte ist dürfe sich das zuerst für einen entscheiden. Ein ganz paar Schleifenduchläufe später ist er an einem näher als an dem Anderen. Da gibts auch keine entscheidungsschwierigkeiten mehr ![]() versuchs also mal damit Code: [AUSKLAPPEN] DecCount=DecCount+1
if DecCount>5 then DecCount=1 UPDATE_NPC_DECISION endif ferdsch ^^ |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Finde deine Methode nicht besser. Denn da sich die Gegner ja bewegen, kann es auch passieren, dass der Soldat planlos in der Gegend herumirrt, weil immer wieder ein anderer Gegner in den Weg läuft ^^ | ||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ah ok danke für eure Antworten. Bin grad im Computerunterricht von unserer Schule und kann daher etz ned an bb. (habt ihr mal mein progi im codepasting angeguckt ?? wie findet ihr die Idee).
wenn ich irgendwann heut Abend :cry wieder daheim bin probier ich mal beides durch ![]() mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group