hi leutz!
Ich möchte euch fragen, ob ihr eine Idee zu meinem Problem habt:
Ich mach gerade ein RPG und da müssen die NPCs natürlich reden
Zuerst einmal die Funktion, durch die ich eine Textnachricht anzeige:
Delphi-Quellcode:
function Textmessage(Headline,Text:string;Picture:string=''):boolean;
begin
if Headline = '' then Headline := 'FeHlEr:';
if Text = '' then Text := '+++ EMPTY +++';
if Picture <> '' then begin
if FileExists(Picture) then begin
end else Picture := '';
end;
Headline := ReplaceString(Headline, '%playername%', character.name);
unit9.mHeadline := Headline;
Text := ReplaceString(Text, '%playername%', character.name);
unit9.mText := Text;
unit9.mPicture := Picture;
form9.ShowModal;
result := true;
end;
Mmmh... also "Headline" ist die Überschrift, die in der Textnachricht angezeigt werden soll und "Text" natürlich der Text
Gut...
bis jetzt habe ich es so gemacht, dass jeder NPC einen Namen für sein Gespräch hat.
Die ganzen Gespräche sind alsp derzeit in meiner .exe mit drinnen.
Wenn ich also den Gesprächsnamen "galakk1" gegeben habe, so sucht Delphi per "if Talkname = '' then ..." in der .dpr-Datei nach diesem Gespräch und führt eben die "Textmessage"-Funktionen aus.
Hier ein kleiner Überblick der "Gesprächsfunktion":
Delphi-Quellcode:
procedure NPCTalking(Talkname,NPCName,NPCPic:String);
begin
if Talkname = 'galakk1' then begin
Textmessage('%playername%'+':','Na da sieh doch einer her! %playername%',NPCPic);
Textmessage(NPCName+':','ES KLAPPT!!!!!!',NPCPic);
end;
end;
Tja...
Jetzt das Problem:
Das Spiel ist damit ein wenig "doof" zum Updaten, da ich ja immer die .exe mitliefern muss bei einem Patch...
Jetzt hab ich mir also gedacht, die Gespräche in eine .DLL zu packen.
Jetzt kommt wieder ein Problem:
Wie? Also... wie schreibe ich es in die .DLL und wie les ich es aus? Array? String zum Zerteilen? etc...
Ein String zum Zerteilen ist natürlich einfach, doch...
Ich brauch ja für jedes Gespräch einmal die "Überschrift", dann den "Text" und dann den String zum Pfad des "Charakterbildes"...
habt ihr eine Lösung für mich?
Die Frage quält mich schon seit Tagen
[edit=alcaeus]Code-Tags durch Delphi-Tags ersetzt. Mfg, alcaeus[/edit]