![]() |
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:
Mmmh... also "Headline" ist die Überschrift, die in der Textnachricht angezeigt werden soll und "Text" natürlich der Text ;)
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; 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:
Tja...
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; 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] |
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. |
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 |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Zitat:
![]() Zitat:
Zitat:
|
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 :) |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
|
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 |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Zitat:
|
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 |
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 ;) |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Zitat:
|
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
oh... geht das auch ohne?
mmh... überall wird mir gesagt, dass es NICHT ohne geht.. naja... tut mir leid, dass ich so beschränkt bin ;) THX! wegen er DB: ist die dann auch transportabel und einsetzbar, OHNE dass jemand einen MySQL-Server installierrt hat? ohne dass wer ins netz muss? |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Zitat:
Zitat:
|
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
also...
wenn die MySQL ja nicht transportabel ist, dann hilft die mir ja nicht viel, weil ich ja nicht bei jedem user eine installieren sollte... auf "netz" komm ich, wenn ich internet meine, also meine datenbank bei mir aufrufen möchte... dann müssten abba alle spieler wieder online sein, was ja auch ziemlich doof ist... mmh... |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Wenn du gerade erst am Delphi-Lernen bist, ist es vielleicht ein bißchen viel auch noch SQL dazuzupacken, gerade wenn du mit der PE etwas eingeschränkt bist.
Was deine Angst vor Hackern angeht. Nicht ist jemals sicher ;) Wenn du nicht willst, daß deine Dateien bearbeitbar sind, sind Binärdateien schon ganz gut (sprich Streams). Alternativ kannst du auch XML oder sonstwas verwenden und es später per RAR verschlüsseln. |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
joa...
dann mach ich das per streams :) ich such mir noch schnell ein tuto aus meinr hosentasche hraus ;) SQL kann ich, ich mach ja immerhin auch PHP ;) naja... dann... wäre dieses thema evtl. auf weiteres besiegelt... |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Hi
wenn ich noch mal was einbringen dürfte: Wenn du auf eine DB verzichten möchtest würde ich dir eine Resource-DLL vorschlagen! Texte leicht verschlüsseln (wenn nötig) und dann für jedes Gespräch eine txt-File anlegen und die alle als Resource in die DLL packen so musst du nur die DLL updaten und dort könntest du dann auch direkt die entsprechenden Funktionen auslagern für die Text-Outs so kannst du das auch jederzeit Updaten ohne die exe tauschen zu müssen! Greetz Boombuler |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
@boombuler:
sehr gute idee! aus der textdatei die einzelnen textpassagen auszulesen ist ja dann einfach :) nur... wie lese ich die dann aus?! hab noch nie mit solchen ressourcen-dlls (oder auch .rc) gearbeitet :( |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
Hi
CodeLib hilft weiter :) ![]() Wenn du die Resource erstellt hast musst du nur in die DLL
Delphi-Quellcode:
schreiben und compilieren.
{$R MeineResource.res}
Hab gerad keinen Plan ob das mit HInstance geht (Sonst das LibHandle der geladenen DLL) sollte aber wenn du direkt in der DLL eine Funktion zum Auslesen einbaust! Denk aber immer daran das du keine Strings als Parameter oder Rückgabewert nehmen solltest! Wenn sonst noch fragen sind kann ich (oder auch die andern) dir weiterhelfen! Greetz Boombuler |
Re: Wie in einem RPG Gespräche für ein NPC speichern/festleg
THX! :top:
ich werd mal ausporbieren und dann darüber meckern ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz