[Modding] Moderstellung - Fragen

Wedge

Wedgetarian
Registriert
04.07.2007
Beiträge
9.373
Naja, CHAINs sind ja ne "relativ" neue Sache (3-4 Jahre oder so? :D) und APPENDs gabs halt vorher schon. Und CHAINS enthalten ja auch ein paar kleinere Trickysachen, die man beachten muss, von daher kann ich zwar durchaus verstehen, wenn so mancher lieber mit normalen States (oder einer Mischung aus States und CHAINs) arbeitet und die dann mit Trick17 in der Dialogreihenfolge anordnet, finde es aber trotzdem viel zu aufwendig in der Aufwands<=>Vereinfachungs-Rechnung.

Wenn man ganz genau ist, dann haben CHAINs in sofern keine Daseinsberechtigung, weil man alles auch mit Normalen States machen kann, ob man die jetzt in APPENDs und EXTEND_Xs oder I_C_Ts verpackt, sei mal dahin gestellt.

Wenn man sich aber einfach mal die Vorteile von CHAINs ansieht, dann gibt es eigentlich keinen wirklichen Grund, noch irgendwas in normalen States zu machen, von APPENDs, EXTENDs und ICTs in vorhandenem Content mal abgesehen.

Aber da es natürlich kein falsch und kein richtig gibt, soll das jeder so machen, wie er/sie es will und am besten klarkommt. Das ist ja auch klar.
 

Aeri

Senior Member
Registriert
03.10.2010
Beiträge
201
Welche Vorteile siehst du denn genau in der Verwendung der Chains?
Ich sehe da eigentlich weder Vor- noch Nachteile gegenüber den normalen States.
Ok, ich kann sehr easy andere NPCs was reinquatschen lassen, aber wars das schon? Ich bin ja durchaus gewillt mir den bestmöglichen Stil anzueignen, aber noch schöner ists wenn man weiß warum man das tut ;-)
 

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Ganz einfach: Chain ist am einfachsten und elegantesten und du hättest keinerlei Probleme mit irgendwelchen States, die nicht korrekt angesteuert werden.

;)
 

Aeri

Senior Member
Registriert
03.10.2010
Beiträge
201
Ok prima, ich geb mich geschlagen ^^
Ich schreib dann mal alles um :-P
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.920
Wedge: Dass alle States einer dlg in einer d stehen müssen, habe ich auch nicht behauptet.

Ich verwende weiterhin jedenfalls auch normale States und APPEND um die dlg meines eigenen NPC zu erweitern. Warum soll ich jeden State als CHAIN deklarieren, wenn ich eine d-Datei voll mit Dialogen von nur diesem NPC habe?

Kinderkram. PFF! ;)
 

Wedge

Wedgetarian
Registriert
04.07.2007
Beiträge
9.373
Ich habe mich auf diesen Satz bezogen.

Geht aber eben nur, wenn alle dlgs in derselben .d stehen.

Und ich habe ja auch extra betont, dass jeder das bitte so machen soll, wie er/sie das möchte.
 

Aeri

Senior Member
Registriert
03.10.2010
Beiträge
201
Anscheinend gibts hier auch wieder verschiedene Meinungen :-P
Ich hab jetzt grad in mühevoller Kleinstarbeit alles in Chains geändert (hab natürlich n backup ^^) das lass ich nun einfach mal so.
Ich persönlich finde es nicht übersichtlicher, mein Code Highlighter hat bei Chains viel weniger zum highlighten :D

Aber mal eine andere Frage (wiedermal^^):
Ich hab jetzt ein paar "Kämpfer" NPCs als Gegner erstellt und denen das Classcript "FIGHTER04" zugewissen, hörte sich für mich ganz vernünftig an.
Nun ists aber leider so, dass die Kerle ab und an einfach sinnlos rumlaufen, obwohl ich direkt neben ihnen stehe :O
Gibts ein anderes vorgefertigtes Script das man hier ohne Gewissensbisse nehmen kann, oder muss ich da selbst Hand anlegen?
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.920
Ne, im Zweifelsfall auf die jüngeren Modder hören, also nicht mich. ;)

Wedge: Stimmt, das war missverständlich formuliert.

Mit Skripten kenne ich mich nicht so aus.
 

Wedge

Wedgetarian
Registriert
04.07.2007
Beiträge
9.373
Klar gibts verschiedene Meinungen. Und nein, es gibt kein richtig und auch kein falsch. ^^

Genauso wie du 5 verschiedene Versionen von Conditions schreiben kannst, die alle dasselbe bewirken, so kannst du halt auch verschiedene Formen von Dialogcoding benutzen/vermischen und im Spiel ist es nachm Installieren alles gleich.
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
972
Ich nutze diesen Thread einfach auch mal für eine Frage an die hiesigen Modder.

Das Problem ist folgendes:
Ich will per Dialog einen Tagebucheintrag setzen und ihn per Script - EraseJournalEntry() - dann später wieder streichen.
Damit das Spiel das begreift muss ja in beiden Fällen dieselbe String genutzt werden. Ich habe also sowohl in die d.-Datei als auch in die .baf eine "999999" eingetragen, die dann in der tp2 durch den entsprechenden Text ersetzt werden soll:

COMPILE ~JA#BGT_AdvPack/BAF/JA#MERC3.BAF~
~JA#BGT_AdvPack/DLG/JA#MERC3.D~
REPLACE ~999999~ @1008

Das Problem ist nun, dass WeiDu dennoch zwei verschiedene Strings anlegt :hae:

In der JA#MERC3.BCS steht dann:
EraseJournalEntry(257714)

und in der JA#MERC3.DLG
Journal Entry (StrRef:257724)

Weiß jemand Rat?

Gruß Jarl
 

Ascalon

Senior Member
Registriert
08.04.2008
Beiträge
2.730
Mach's dir einfacher:

du wirst doch sicherlich eine Setup.tra anlegen wollen. In die trägst du Strings mit einer recht hohen nummer ein, z.B.:

Code:
@10000 = ~Tagebucheintrag

blablabla~

Und in den Text kommt dann: AddJournalEntry(@10000,QUEST) und EraseJournalEntry(@10000)

Dann kommt in den Kopf der TP2 noch:

Code:
LANGUAGE ~Deutsch~ ~german~ ~MyMod/TRA/german/setup-MyMod.tra~

und alles ist gut.
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
972
Aah, gut zu wissen. Ich dachte, weil ich AUTO_TRA benutze, greift Weidu dann bei der Kompilierung der JA#MERC3.D nur auf die JA#MERC3.TRA zurück. Ich wusste nicht, das man in derselben .D auch noch zur setup.tra verweisen kann. Daher das mit dem REPLACE ;)
Danke dafür!

Das Problem lag, wie mir jetzt aufgefallen ist, aber ganz woanders. Mal wieder reine Schusseligkeit. Was auch sonst?! :rolleyes:

Hat sich also erledigt.
 

Aeri

Senior Member
Registriert
03.10.2010
Beiträge
201
Heyho!

Weis von euch zufällig jemand welches Script ich einem NPC verpassen muss, damit er den Spieler anspricht OHNE auf ihn zuzulaufen?
 

De Lorean

Junior Member
Registriert
21.09.2012
Beiträge
20
NPC-Rauswurfproblem

Moin!

Ich hab hier ein Problem. Das hätte mir eigendlich auch schon früher auffallen können. Ist mir aber irgendwie entgangen, was wohl daran liegt, das es zu keinen grundsätzlichen Ablaufproblemen kommt:

Wenn ich einen zusammengebastelten NPC aus der Gruppe werfe, reagiert dieser nicht auf die von mir geschriebene Weise, sonder fährt offensichtlich einen Standard-Dialog ab und verschwindet von der Karte.

Sagen tut er:
"Gute Nacht, meine Damen, gute Nacht."
oder:
"Es war mir eine Freude, mit Euch zu reisen. So lebt denn wohl."

Mein Code sieht so aus:
Code:
BEGIN RCRinceP

IF ~Global("RCRinceJoined","LOCALS",1)~ THEN BEGIN LeaveGroup
SAY ~Das wars schon?~
IF ~~ THEN REPLY ~Tut mir Leid, mein Fehler!~ DO ~JoinParty()~ EXIT
IF ~~ THEN REPLY ~Es währe am besten Ihr wartet hier.~
DO ~SetGlobal("RCRinceJoined","LOCALS",0)~ EXIT
END

IF ~Global("RCRinceJoined","LOCALS",0)~ THEN BEGIN ComeBack
SAY ~Wieder wie in alten Zeiten?~
IF ~~ THEN REPLY ~Wieder wie in alten Zeiten!~
DO ~SetGlobal("RCRinceJoined","LOCALS",1)JoinParty()~ EXIT
IF ~~ THEN REPLY ~Eigendlich wollte ich nur mal Hallo sagen~ EXIT
END

Und ich finde den Fehler einfach nicht.
Im Dialogblock der davorkommt (und der auch funktioniert), füge ich den Character über
Code:
DO ~SetGlobal("RCRinceJoined","LOCALS",1) JoinParty()~ EXIT
in die Gruppe ein.

Was mach ich falsch?
 

Wedge

Wedgetarian
Registriert
04.07.2007
Beiträge
9.373
Ich würde wild geraten auch dazu tendieren, dass dir die entsprechenden Einträge in den zwei 2das fehlen.

Das ganze muss in den tp2 und sollte irgendwie so aussehen:

APPEND ~pdialog.2da~
~PWeli PWeliP PWeliJ PWeliD PWeli25P PWeli25J PWeli25D PWeli25~
UNLESS ~PWeli~

APPEND ~interdia.2da~
~PWeli PWeliB PWeli25B~
UNLESS ~PWeli~

Wobei du natürlich die Namen der dlg-Dateien ersetzen musst mit deinen. ^^
 

De Lorean

Junior Member
Registriert
21.09.2012
Beiträge
20
Ah!

Ja, da fehlt was in meiner .tp2!
Ich bin nicht auf die Idee gekommen da zu gucken...

Ich nehme an, dass er, wenn ich das fehlende ergänze, diese Pdialog.2da beim installieren anlegt - oder muss ich da selbst noch eine Datei anlegen?

Im Moment habe ich eine *.baf, eine *.cre und eine *.d.


edit: Ha, cool, es funktioniert, Danke!
(Es war die *.tp2)
 
Zuletzt bearbeitet:

Wedge

Wedgetarian
Registriert
04.07.2007
Beiträge
9.373
Das Anlegen der DLG-Dateien hast du in deinen d-Dateien. Dein "BEGIN RCRinceP" legt die RCRinceP.DLG an. Die Dateien in den 2das müssen mit denen übereinstimmen, die du angelegt hast.
 
Oben