Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie in einem RPG Gespräche für ein NPC speichern/festlegen? (https://www.delphipraxis.net/46046-wie-einem-rpg-gespraeche-fuer-ein-npc-speichern-festlegen.html)

Master_RC 17. Mai 2005 13:49


Wie in einem RPG Gespräche für ein NPC speichern/festlegen?
 
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]

Fingolfin 17. Mai 2005 14:13

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
Hallo. Mit einem RPG hast du dir ja eine Menge vorgenommen. ;)

Daten, wie die Namen deiner NPCs und deren Dialoge lagert man ab besten aus. Sowas in den Quellcode zu schreiben, wird dich über kurz oder lang wahnsinnig machen. Da hilft auch keine Dll.

Suche doch mal nach Streams und Speicherung von Daten im Allgemeinen. Da wirst du eine Menge im Board finden und Tutorials gibt's zuhauf. Denkbar wäre natürlich noch eine Datenbank, um solche Informationen abzulegen.

Master_RC 17. Mai 2005 14:16

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
Was sind eigentlich diese Streams?

und warum sollte eine DLL nicht reichen?
immerhin kann die ja auch mal größer sein ;)

oder ich mach für jeden NPC eine eigene DLL :P

malo 17. Mai 2005 14:35

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
Zitat:

Zitat von Master_RC
Was sind eigentlich diese Streams?

--><--


Zitat:

Zitat von Master_RC
und warum sollte eine DLL nicht reichen?
immerhin kann die ja auch mal größer sein ;)

Das steht nirgendwo, dass sie nicht reicht. Nur es ist nicht hilfreich, eine zu benutzen. Da kann man das auch gleich im Quellcode machen ;)


Zitat:

Zitat von Master_RC
oder ich mach für jeden NPC eine eigene DLL :P

:shock: Ich hoffe, du wirst dann nicht sehr viele NPCs haben :shock:

Master_RC 17. Mai 2005 15:25

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
das letztere war ja nur ein schwerz ^^

naja, welche datenbank könnt ihr mir denn empfehlen? ich hab immerhin D7Pers.....

und das mit den streams muss ich mir noch genauer anschauen... :(

PS:
kennt ihr eine MySQL-Verbindung für D7Pers? wenn ja, dann sagen :)

malo 17. Mai 2005 15:26

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
MySQL für Delphi

freak4fun 17. Mai 2005 15:33

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
Ich denka mal alle NPC´s haben in etwa die gleichen Eigenschaften. Dann kannst du also eine KLasse benutzen und die verschiedenen NPC´s sind dann die verschiedenen Instanzen. Die Frage ist ja nun, wie man die Daten der einzelnen NPC´s speichert. ICh würde es wahrscheinlich mit einer Ini-Datei versuchen. Als Section den NPC-Name und dann die entsprechenden eigenschaften.

Ist nur eine Idee.
MfG
freak

malo 17. Mai 2005 15:36

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
Zitat:

Zitat von freak4fun
Ich denka mal alle NPC´s haben in etwa die gleichen Eigenschaften. Dann kannst du also eine KLasse benutzen und die verschiedenen NPC´s sind dann die verschiedenen Instanzen. Die Frage ist ja nun, wie man die Daten der einzelnen NPC´s speichert. ICh würde es wahrscheinlich mit einer Ini-Datei versuchen. Als Section den NPC-Name und dann die entsprechenden eigenschaften.

Ist nur eine Idee.
MfG
freak

Inis sind unpraktisch, weil man dann ja jederzeit die NPC-Eigenschaften ändern könnte. Dann doch lieber Datenbanken ;)

freak4fun 17. Mai 2005 15:39

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
Da hast du allerdings recht. Ich weiß ja nicht wie professionel das Spiel wird. Zum üben dürfte es allemal reichen.

MfG
freak

Master_RC 17. Mai 2005 15:40

Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
 
hab ich mir auch schon überlegt, nur...

wie lese ich eben dann die einzelnen texte aus?!
außerdem sind die wieder net sicher vor "hackern", enn man das bei inis so bezeichnen kann ;)

@malo: wo find eich eine TDataSource oder so?
ich brauch ja auch die ganzen komponenten dazu :(

PS:
naja... so professionell iss es auch net :D
abba es sollte wenigstens *etwas* professionell sein ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz