Seite 1 von 1

Re: Begleiter

Verfasst: Samstag 4. November 2006, 20:46
von Lord_Lukas_IV
Hi Leute
Ich versuche in meinem RPG Söldner (Begleiter) einzubauen.
Man kann immer höchstens einen Begleiter haben: z.B. Jagender Wolf oder irgendein Krieger.
Ich habe einen Spieler (S 6) zur Verfügung. Alle Begleiter werden von diesem Spieler kontrolliert. Sie sollen jetzt einfach bei meinem Helden mitlaufen und ihn in Kämpfen unterstützen. PS: Der Hauptheld wechselt mehrmals (Man kann sich immer wieder "umziehen" z.B Schwertkämpfer, Bogenschütze oder Ritter). Ich habe im Sinn, dieses Problem mit einem KI-Skript zu lösen, kann mir jemand helfen oder sogar ein Skript posten/verlinken??? Habe mir schon überlegt, ob man im Skript befehlen kann, dass alle Einheiten vom Spieler 6 diejenige vom Spieler 1 "bewachen"...
Meldet euch!

Re: Begleiter

Verfasst: Montag 6. November 2006, 01:05
von Ingo
Mit KI klappt das nicht. Wenn du alle "umgezogene" Versionen des Helden schon vor Spielbeginn auf der Karte hast, kannst du verbündete Einheiten mit Schalter zuweisen und jeweils dann das Ziel dieser Einheiten wechseln, je nachdem welche Heldenfigur du gerade spielst. Wenn du deinen Helden jedoch erst im Spiel mit Schaltern neu erschaffst, klappt das nicht.

Wenn der Held sich unbegrenzt umziehen soll, mach irgendwo eine "Invisible Tile" hin. Darin sollte dann jeweils der "umgezogene" Held schon drinstehen (z.B. wenn dein Schwertkämpfer sich in der Invisible Tile umziehen will, sollte dort schon ein Bogenschütze stehen und einem Verbündeten gehören). Sobald dein Schwertkämpfer-Held in das unsichtbare Feld reinläuft, wechselt die Figur den Besitzer zum Verbündeten. Gleichzeitig (oder besser: im Effekt davor) wechselt der Bogenschützen-Held den Besitzer zu dir und läuft aus der Invisible Tile heraus. Dann muss ein Schalter auch deinen Verbündeten den Befehl geben, ab jetzt dem Bogenschützen zu folgen.

Ingo

Re: Begleiter

Verfasst: Montag 6. November 2006, 11:54
von Lord_Lukas_IV
Ja, ich habe schon alle Helden mit Invisible Tiles "versteckt". Aber ich wollte eigentlich erreichen, dass ich 1. nicht so viele Schalter machen muss (Hab sowieso schon zu viele) 2. einen einigermassen "Intelligenten" Begleiter habe.
Mit Schaltern ist das "Intelligent" ein wenig schwierig, weil die Begleiter manchmal neu erschaffen werden...
Wär auch zu schön gewesen... Geht aber auch so!
Trotzdem Danke

Re: Begleiter

Verfasst: Mittwoch 8. November 2006, 23:42
von Lord_Lukas_IV
Ich hätte da gleich nochmal eine Frage:
Ich möchte, dass die KI von Spieler 7 ihm 100 Nahrung hinzufügt, wenn er einen Gegner in Angriffsreichweite hat und dann den Gegner angreift.
Wie mach ich das? Habe es selber nicht geschafft...
Lukas

Re: Begleiter

Verfasst: Samstag 18. November 2006, 15:43
von Entdecker
@Lord_Lukas_IV
Befindet sich der Gegener bereits im Vorfeld, d.h. auf der MAP? Wenn ja:

Schalter0
Bedingung0: Objekt X (Held) zu Objekt Y (Gegner) bringen
Bedingung1 (fakultativ, wenn du z.b. nicht willst, das er sofort angreift, sondern etwas wartet): Zeit 10 sek., 5 sek, etc.
Effekt0: Tribut entrichten SP7 --> SP1 100 Nahrung (SP7 muss allerding ueber entspr. Nahrungseinh. verfuegen, ansonsten kannst Du auch anstelle von SP7 den GAIA-Spieler nehmen)
Effekt1: Objekt Y (Gegner) zuweisen auf Objekt X (Held)

Anmerkung: Bei dieser Variante hast Du 1. einiges an Schaltern, wenn Du mehrere Gegner zuweisen willst und 2. ist bei Schlatern IMMER die Problematik, ob sie den richtig funktionieren. Gerade der Effekt <Objekt zuweisen> hat einiges an Fehlerquellen wenn eine bestimmte Einheit zu einer anderen gebracht werden soll ==> Absturzgefahr!!

Wenn Du den Gegner dauerhaft auf den Helden ansetzten willst, musst Du den Schalter0 auf SCHLEIFE stellen! Allerdings erhaelt SP1 dann auch immer wieder 100 Nahrung. Um dies zu vermeiden, musst die Schalter0 trennen, wie folgt:

Schalter0
Anweisungen: Nein
Ausgangsstellung: Ein
Schleife: Aus
Bedingung0: Objekt X zu Objekt Y bringen
Bedingung1: (fakultativ) Zeit ??? sek.
Effekt0: Tribut entrichten SP7 (GAIA) -- SP1: 100 Nahrung
Effekt1: Schalter aktivieren: Schlater1

Schalter1
Anweisungen: Nein
Ausgangsstellung: AUS
Schleife: Ja
Bedingung0: Zeit 5-15 sek. (je nach gewuenschter Agressivitaet)
Effekt0: Objekt zuweisen: Objekt Y --> Objekt X

Wenn Du willst, dass der Gegner innerhalb eines bestmmten Gebietes den Spieler angreif, allerdings nicht bedinungslos bis zum "juengsten Gericht" durch die Map folgt, dann aendere Schalter1 wie folgt ab (Schalter0 kann bleiben wie oben beschrieben):

Schalter1
Anweisungen: Nein
Ausgangsstellung: Aus
Schleife: Ja
Bedingung1: Zeit 5 -15 sek.
Bedingung2: Objekt X zu Objekt Y bringen
Bedingung3: Objekt X in Gebiet (Gebiet auswaehlen)
Effekt0: Objekt zuweisen: Objekt Y --> Objekt X

Somit hast Du sichergestellt, dass wenn der Held das Gebiet, in dem sich die gegnerische Einheit bzw. gegnerischen Einheiten befindet verlaesst, diese im nicht bedingungslos nachfolgt.

Ueber KI kannst Du lediglich den Tribut steuern, nicht aber das eine bestimmte Einheit einer anderen bestimmten Einheiten folgt. Fuer Tributzahlung ueber KI muessen allerdings beide Spieler uber Marktplatze verfuegen. Dann kannst Du anstelle von Tribut entrichten (wie oben beschrieben) auch ueber KI-Signal ein Signal zu deiner Script senden. In der KI schreibst DU folgendes:

(defrule
(player-number 7)
(event-detected trigger 1)
=>
(tribute-to-player any-human resource-food 100)
(disable-self)
)

Hoffe, konnte Die helfen

Re: Begleiter

Verfasst: Mittwoch 22. November 2006, 12:44
von Lord_Lukas_IV
@Entdecker
Bei mir besteht gerade eben das Problem, dass die Gegner sich nicht von Spielbeginn an auf der Map befinden...
Trotzdem nochmal danke

@Alle
Aber es gibt wohl wirklich keine Lösung... Oder hat irgendjemand eine Idee? Also nochmal vereinfacht: Der Begleiter soll dem Helden nachlaufen und jeden Gegner in Reichweite angreifen.