Ergebnis 1 bis 7 von 7

Thema: Eigenes Echtzeit-Aktion-KS: Brauche Hilfe bei NPC KI plz !!

  1. #1

    Eigenes Echtzeit-Aktion-KS: Brauche Hilfe bei NPC KI plz !!

    Hi Leute !!
    Ich habe für mein Projekt "Resident Evil - Night of the Dead"
    ein Echtzeit-Aktion-Kampfsystem entwickelt !
    Jetzt will ich dieses durch einen computergesteuerten
    NPC erweitern...
    Im Normalfall folgt der NPC dem Helden, doch sobald
    Feinde in Sicht sind, soll er sich vom Helden lösen,
    die Feinde umkreisen und bei Zeiten angreifen...
    (sich wieder etwas zurückziehen und dann wieder angreifen, usw.)
    wichtig dafür ist ja, dass der NPC die Gegner als solche erkennt
    und das die Gegner den NPC als Feind erkennen und
    auch diesen angreifen !!!
    kann mir da jemand bei helfen bitte ???
    mir is alles recht ^^ skript, code-auszug, etc...
    bitte helft mir

    ty Vampire

  2. #2
    Da kann ich mal wieder auf das Spiel "The Sky of Arcana" von Dark_Ryu verweisen welches auf dieser seite zu finden sein müsste.Dort ist es Genau wie du beschrieben hast nur das es nicht mit schusswaffen ist.


  3. #3
    oh, echt ?
    das schau ich mir mal an, danke

    // noch nich closen plz ~~

  4. #4
    Naja, das dein NPC den Gegner als Feind erkennt bzw. erkennt wo der Feind gerade ist ist ja nicht wirklich schwer: Dazu kann man ja die Koordinaten-Variablen des Gegner Events und deines NPCs abfragen.
    Wenn dein NPC beispielsweise den Gegner von hinten angreifen fragst du am besten zuerst einmal per Bedingung ab in welche Richtung der Gegner blickt( logisch, oder ). Wenn er nach unten blickt und dein NPC den Gegner direkt von hinten angreifen soll muss die Y-Koordinate kleiner werden als die des Gegners. Das machst du meiner Meinung nach am besten mit einem Label-Befehl, dem eigentlichen Bewegungs-Befehl wenn der Y-Wert immer noch nicht die gewünschte Größe hat benutzt du den Gehe zu einem Label-Befehl.

    Naja, das war mal ne kurze Erklärung wie man so was machen kann. Hoffe es war nicht zu unverständlich. Falls du es nicht verstanden hast kann ich mich ja nochma hinsetzen und eine etwas längere Version schreiben.

    cya
    Deathball

  5. #5
    also bei "the sky of arcana" is das zwar schon ganz nett
    gemacht, aber der typ läuft eigentlich nur hinter
    dem helden her und greift nur an, wenn man einem gegner
    sehr nahe kommt... (und das auch nich sehr oft)
    ich will ja, dass der npc in kampfposition geht,
    sobald man eine karte betritt auf der gegner sind...
    (und dem helden nur folgt, wenn die luft rein ist ^^)

  6. #6
    Also du könntest ja auch wie du es sagst den NPC dazu bringen in Kampfhaltung zu gehen, wenn er in eine Map kommt, in der Gegner sind.
    Dann könnte es auch eine Auswahlmöglichkeit für die Aggrssivität des NPCs geben...
    Naja wenn du aber eine größere Map hast, dann sagst du in einem Parallel Process Event etwa folgendes:

    Zitat Zitat
    change Variable [0001] - Gegner's X Postion
    change Variable [0002] - Gegner's Y Position
    change Variable [0003] - NPC's X Position
    change Variable [0004] - NPC's Y Position
    Wait 0.1
    Dann Machst du so ugf das in einem weiteren Parallel Process:

    Zitat Zitat
    change Variable [0005] (set) [0001]
    change Variable [0006] (set) [0002]
    change Variable [0005] (-) [0003]
    change Variable [0006] (-) [0004]

    if (Variable [0005] <= 20)
    (Hier jetzt den Code für das Verhalten des NPC's reinschreiben oder einen Switch aktivieren)
    else
    if (Variable [0005] => -20)
    (Hier jetzt den Code für das Verhalten des NPC's reinschreiben oder einen Switch aktivieren)
    if (Variable [0006] <= 15)
    (Hier jetzt den Code für das Verhalten des NPC's reinschreiben oder einen Switch aktivieren)
    else
    if (Variable [0006] => 15)
    (Hier jetzt den Code für das Verhalten des NPC's reinschreiben oder einen Switch aktivieren)
    So ugf
    Das ist jetzt immer wenn der Gegner sich entweder 20 Chips links oder rechts vom NPC befindet oder 15 Chips über oder unter ihm.

    Wenn du willst, dass der NPC erst in diese Position geht, wenn dfer Gegner ins Bild läuft, dannbenutze die Scene Abfrage (In nem Parallel Process):

    Zitat Zitat
    change Variable [0001] - Gegner's X Scene
    change Variable [0002] - Gegner's Y Scene
    Und noch ein Parallel Process:

    Zitat Zitat
    If (variable [0001] => 0)
    If (variable [0001] <= 320)
    (Hier jetzt den Code für das Verhalten des NPC's reinschreiben oder einen Switch aktivieren)
    End Case
    If (variable [0002] => 0)
    If (variable [0001] <= 240)
    (Hier jetzt den Code für das Verhalten des NPC's reinschreiben oder einen Switch aktivieren)
    End Case
    Hoffe ich konnte helfen.
    Angeben ohne Gewähr (hab das ganze ausm Kopf und ohne Maker gemacht)

    greetz Beril aka Fuzzi

  7. #7
    Zitat Zitat von Vampire_Master
    also bei "the sky of arcana" is das zwar schon ganz nett
    gemacht, aber der typ läuft eigentlich nur hinter
    dem helden her und greift nur an, wenn man einem gegner
    sehr nahe kommt... (und das auch nich sehr oft)
    ich will ja, dass der npc in kampfposition geht,
    sobald man eine karte betritt auf der gegner sind...
    (und dem helden nur folgt, wenn die luft rein ist ^^)
    Stell deinen Mitspieler auf Aggresiv dann leuft das anders <__<"

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •