[C++] 2 Fragen (Werte Speichern) & (#define oder ähnliches)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [C++] 2 Fragen (Werte Speichern) & (#define oder ähnliches)

      Hallo,
      Ich bin gerade dabei ein Spiel in C++ zu programmieren. Erst kam ich auch ganz gut klar ( bin noch nicht lange bei C++ bei...). Doch nun bin ich an 2 probleme gestossen...und zwar das wären

      1. Weiß ich nicht, ob und wie man Werte speichern kann. Also, dass z.b. ich spiel und dann auf Save klicke (bzw. schreibe (ist ein konsolen Spiel :> )) und die Werte iwo gespeichert werden, dass sie trotz schliessen des programms nicht gelöscht werden. Und beim nächsten ausführen (womöglich auch nach pc neustart) wieder aufgerufen werden können...

      2. Soll man sich natürlich Waffen kaufen können...Nun das krieg ich alles hin...doch hab ich zurzeit pro waffe / gegenstand einen doch recht langen code... und da hab ich ne frage, ob man es nicht i.wie verkürzen kann? Also dass es automatisch da eingefügt wird... Für die jenigen, die sich auch nur minimal mit flyff p.servern auskennen - so etwas wie bspl. die propItem.txt
      für diejenigen, die sich nicht auskennen - in der propItem.txt werden werden werte von Waffen/ Gegenständen gespeichert...ne bspl. Zeile :

      Quellcode

      1. 6 II_DEFAULT IDS_PROPITEM_TXT_000000 1 1 IK1_SYSTEM = = = = = = 1 = = = = = = = 0 = = = = = = = = = = = _NONE 0 0 0 = = = = = = = = = = = = = 0.07 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """""" 0 """""" IDS_PROPITEM_TXT_000001
      jeder wert, nach einem TAB hat eine funktion...ich bräuchte jetzt zwar nicht sooo viele...xD eig. nur schaden, womöglich haltbarkeit, kosten,....vllt. so um die 5-10 Werte...Also hoffe ihr könnt meine definitionenen einwenig verstehen und wisst, was ich meine....


      Und auch einwenig helfen, entweder einen fertigen Code *.*, oder ein link zu einem solchen tutorial schicken, oder wenigstens einen Stichpunkt nennen...wie bsplweise solche variablen oder was es auch immer in Punkt 1 ist heißen...
      lg. Trinity :D
      rechtscheibfÊhler und co. sind eingebaut, damit man sich auf das lezen noch konzentriert.... :P
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • [COLOR="#4169e1"]Zu 1.:
      Du könntest dafür ein Textdokument benutzen.
      Pro Zeile würdest du eben die verschiedenen Werte speichern.
      (Zeile 1 - Level / Zeile 2 - HP, usw.)

      Zu 2.:
      Da könntest du pro Waffe/Gegenstand ein Textdokument verwenden, das wäre aber nicht gerade die optimale Lösung aber eine Option ;)[/COLOR]
    • Um die Werte zu speichern bietet sich die bereits implementierte Klasse "LevelSaver" der STL an. Einfach das Objekt des Levels übergeben und der Rest geschieht von allein.
      Für deine zweite Frage: Nutze am Besten die Funktion "loadFlyffResource()". Die ist in der Headerdatei linux/kernel/resource.h (Linux) bzw. win32/resource.h (Windows) definiert.

      Wenn dir das nicht weiterhilft, konzentriere dich auf meinen Vorposter oder lern programmieren ...
    • Grandcore;243221 schrieb:

      Zu 1.:
      Du könntest dafür ein Textdokument benutzen.
      Pro Zeile würdest du eben die verschiedenen Werte speichern.
      (Zeile 1 - Level / Zeile 2 - HP, usw.)

      Zu 2.:
      Da könntest du pro Waffe/Gegenstand ein Textdokument verwenden, das wäre aber nicht gerade die optimale Lösung aber eine Option ;)


      Zu 1
      Also seinen Vorschlag verstehe ich wunderbar :D...habs auch hingekriegt, dass die werte die ich haben will auch gespeichert werden in einer datei bspl. weise leben=80 oder sonst was... also kann sie in beiden formaten speichern...
      1.
      leben=80
      stärke=10
      ...=....
      2.
      80
      10
      ....

      mit :
      ofstream schreiben;
      schreiben.open("test.txt");
      schreiben <<"lvl="<< lvl <<"\nhp="<< hp <<"\ncash="<< cash ;
      schreiben.close();
      cout << "Dein Spielstand wurde erfolreich gespeichert."<<endl;
      So nun hab ich ne frage, wie ich das wieder auslesen kann... :o

      das hab ich copy & paste :
      ifstream lesen;string data;
      lesen.open("test.txt");
      getline(lesen,data);
      So...aber wie kann ich nun zuordnen, dass die erste zeile nun wieder der integer variable lvl enstpricht? Oder geht das überhaupt?

      Zu 2 hat Grandcore mir nacher per chat den Tipp gegeben, dass ich ne .ini datei verweden könnte/sollte ...das mach ich auch :)..aber das mache ich erst, wenn problem 1 gelöst ist... :P
    • [FELD="Headerdateien"]#include<iostream>
      #include<fstream>
      #include<string>[/FELD]

      [FELD="Main"]ifstream file("test.txt");
      string level;
      string hp;
      string cash;

      getline(file,level); //1 Zeile
      cout << "Level: " << level << endl;

      getline(file,hp); //2 Zeile
      cout << "HP: " << hp << endl;

      getline(file,cash); //3 Zeile
      cout << "Cash: " << cash << endl;

      file.close();[/FELD]

      [COLOR="#4169e1"]Das auslesen geht irgendwie nur mit strings, aber du kannst ja strings in int umwandeln.[/COLOR]
    • [FELD="INI Datei schreiben (Falls du das benötigst)"]#include <Windows.h>

      int main()

      {
      WritePrivateProfileString("Schwert","DMG","100","c:\\test.ini");
      WritePrivateProfileString("Schwert","Preis","500","c:\\test.ini");
      WritePrivateProfileString("Schwert","Haltedauer","7","c:\\test.ini");

      WritePrivateProfileString("Helm","Verteidigung","23","c:\\test.ini");
      WritePrivateProfileString("Helm","Preis","250","c:\\test.ini");


      return 0;
      }[/FELD]

      [FELD="INI Datei lesen"]#include <Windows.h>

      int main()
      {
      char Preis[10];
      char Verteidigung[5];


      DWORD destSize;

      destSize=100;

      GetPrivateProfileString("Schwert","Preis","NULL",Preis,destSize,"c:\\test.ini"); //Preis von Schwert in 'Preis' gespeichert
      GetPrivateProfileString("Helm","Verteidigung","NULL",Verteidigung,destSize,"c:\\test.ini"); //Def von Helm in 'Verteidigung' gespeichert

      return 0;
      }[/FELD]

      [COLOR="#4169e1"]PS: Keine Ahnung warum, aber da sind Leerzeichen die da nicht hingehören, wie z.B. bei Preis & NULL -.-'[/COLOR]