[Modding] Probleme und Extras für die "7. Gruppenmitglieder"

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Momentan haben alle meine NPCs im "7. Gruppenmitgliedsmodus" (7. GMM) das DEFAULT Skript aus dem Spiel zugewiesen. Dieses lässt sie Feinde nur bekämpfen, wenn sie direkt vor ihnen stehen. Bei Brandock bedeutet das, dass er wahrscheinlich im Kampf gar nichts macht. Bei Grey (und Solaufein) führt das dazu, dass sie eventuell im Kampf nur noch rumstehen und nicht mehr weiter mitkämpfen, obwohl die Gruppe noch mit Feinden beschäftigt ist.

Ein agressiveres Skript (z.B. FIGHTER2) würde das zwar verhindern. Doch besteht das Problem, dass das Toggeln der KI im Spiel die Skripte der 7. GMM nicht deaktiviert. Das heißt mit einem aggressiven Angriffsskript würden sie alles angreifen, auch wenn man die KI ausschaltet und einen anderen Befehl gibt (der wird von ihnen abgebrochen um wieder anzugreifen, solange sie die Feinde sehen).

Eine Möglichkeit wäre, dass man das Skript über PID (Klickdialog)-Antwortoptionen ändern kann. Es gibt jetzt schon die Option, dass der 7.GMM das Spiel pausiert (oder nicht), wenn seine LP zu niedrig werden. Großer Nachteil: im Kampf müsste die HC zum NPC hinlaufen und mit ihm reden - das ist nicht praktikabel.

Zweite Möglichkeit, die mir momentan sehr gut gefällt: Tastenbelegungen, so dass man den 7.GMM schnell in brenzligen Situationen das Verhalten anpassen lassen kann:
- NPC auswählen und "a" drücken gibt das Skript FIGHTER2 (oder Brandock entsprechend ein offensives Magierskript)
- "p" gibt "DEFAULT" (nur angreifen wenn er angegriffen wird oder direkt beim Feind ist) bzw. Brandock ein verteidigendes Magierskript und Husam ein defensives Fallensichen und Verteidigen Skript etc.
- "n" machen die NPC wirklich gar nichts (entsprechend "KI aus"). Hier könnte man überlegen, ob man über PID die NPC bei Feindsicht / Angriff das Spiel pausieren lässt (sofern sie das nicht automatisch bei entsprechender Spieleinstellung machen als "Familiar").

Habt Ihr noch andere Ideen / Wünsche / Anmerkungen?

--Wie macht man in diesen Fenstern egentlich eine Auflistung?
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Generische Magierskripte sind imho Murks. Ich denke, dass man Magier im Kampf immer steuern sollte. Von daher sehe ich bei Brandock auch eher kein Problem. Und da er keine Angriffe auf sich ziehen sollte, wäre ein "n" als Default bei ihm sicherlich angebracht.

Grey: mein Problem ist, dass ich ihn auswähle, ihm ein Ziel zuweise und er dann bis zum Ende der Runde läuft (wird er mitten in der Runde losgeschickt, ist das häufig nur ein kurzer Weg). "Sieht" er dann das Ziel nicht, bleibt er stehen. Da er ja als 7. Mitglied in der Regel hinter der Gruppe herläuft, ist das sehr häufig der Fall. Hier müsste man ihm ein Skript schreiben, dass er weiter auf das Ziel zu läuft. Aber da wüsste ich gar nicht, wie man das schreibt; also wie man die Angriffszuweisung im Skript wiedergibt oder abfragt...

Der Ghoul als 7. Gruppenmitglied hat wohl so ein FIGHTER-Skript. Den muss man dann immer "wegholen" und er greift danach wieder automatisch an. Ist für Grey vllt suboptimal. Irgendwas dazwischen wäre schön... Oder man muss damit leben, dass 7. Gruppenmitglieder halt keine vollwertigen Gefährten sind...

Das mit den Buchstaben und dem Skriptwechsel ist natürlich interessant. Müsste man halt ausprobieren, wie es sich spielt...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
@Maus dass Grey den Befehl abbricht könnte an Skriptbefehlen liegen, die in seinen Custom-Skripten stehen. Das hieße aber, dass das nur einmal pro Kampf passieren dürfte.
Das hier grätscht Dir wahrscheinlich rein:
/* refresh min HP spell before a fight */
IF
Global("C#Grey_Has1HPEffect","GLOBAL",1)
Global("C#GreyJoined","GLOBAL",2) //follows as 7th party member
See([ENEMY])
THEN
RESPONSE #100
SetInterrupt(FALSE)
SetGlobal("C#Grey_Has1HPEffect","GLOBAL",2)
ReallyForceSpellRES("C#MIN5HP","C#Grey")
SetInterrupt(TRUE)
END
Das sieht nicht wirklich gut aus. Das wird jedes mal ausgeführt, wenn er (wieder) einen Feind sieht, nicht nur vor jedem Kampf. Das kan so nicht bleiben. :eek:

Das erwähnte DEFAULT.bcs ist recht überschaubar. Daran liegt es nicht, dass er Befehle abbricht.
IF
InWeaponRange(NearestEnemyOf(Myself))
THEN
RESPONSE #100
AttackOneRound(NearestEnemyOf(Myself))
END

IF
AttackedBy([ANYONE],DEFAULT)
ActionListEmpty()
THEN
RESPONSE #100
AttackOneRound(LastAttackerOf(Myself))
END
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Hm, so vom Gedanken her müsste das bei jeder Kampfrunde passieren. Aber dann könnte Grey ja gar nicht für länger bewusstlos werden und müsste permanent die minHP haben. Und das ist nicht der Fall. Ich vermute, dass im Kampf dann das Default-Skript übernimmt und erst wenn das abgearbeitet ist, dann kommt das andere zum tragen. Sprich: solange er einen Gegner in Kampfreichweite hat, wird er den angreifen und das minHP-Skript greift nur dann, wenn das nicht der Fall ist.
 

Gerri

Senior Member
Registriert
21.11.2006
Beiträge
920
Ich glaube, bei Afaaq dem Dschinn funzt das sehr gut. Schaut doch bei dem nach wie das gescriptet wurde. Nur mal so am Rande...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.925
Achtung: Wie es aussieht, klappt der "PartyHasItem" Check nicht mit Gegenständen, die im Inventar der 7. Gruppenmitglieder sind.

Das wäre ein ziemlicher Gau - die wichtigsten Gegenstände sind ja als "kritisch" markiert, so dass sie im Inventar der Hauptgruppe/des HC verbleiben wenn ein NPC die Gruppe verlässt. Das betrifft aber natürlich nicht Allerweltsgegenstände wie Edelsteine, Winterwolfpelze, Ankhegpanzer, Bücher für Elfenhaar und ähnliches.
Das heißt schlicht und ergreifend, dass man den NPCs im "7. Gruppenmodus" nichts lassen darf, was man eventuell als Schmiedezutaten / Questzutaten brauchen könnte bzw. sich dessen immer bewusst sein muss.

Das ist gelinde gesagt etwas plöt.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.381
Naja, das finde ich nicht so dramatisch. Wenn man es weiß, dann plant man einfach passend. Grey hat bei mir nur "seine" Items...
 
Oben