Erstmal ist das niemals VB sonder entweder C# oder C++ (Vom Code her)
Und der Fehler CXX0030 gibts nur bei C++ also xD
Naja gehen wir das mal durch
Code:
void Spieler::SetHealth(int newhealth)
{
health = newhealth;
[COLOR="Red"] if (health > maxhealth)
health = maxhealth;[/COLOR]
if (health < 0)
health = 0;
}
Was bringt es dir die HP auf Maximum zu stellen wenn man nicht über das Maximum kommen kann?
Code:
void deinZimmer(Spieler* spieler)
{
cout << "Du bist in deinem Zimmer und siehst ein gemuetliches Bett.\n";
char antwort;
antwort = 'm';
[COLOR="Red"]while(antwort != 'y' || antwort != 'n')
{[/COLOR]
cout << "Moechtest du ne Runde schlafen? (y/n)\n";
cout << ">";
cin >> antwort;
cout << endl;
if(antwort = 'y')
{
cout << "Du legst dich hin und schlaefst bis zum Sonnenaufgang.";
spieler->SetHealth(spieler->GetMaxHealth());
}
if(antwort = 'n')
{
atlantis(spieler);
}
[COLOR="Red"] }[/COLOR]
}
Hier kannst du dir die while schleife sparen da mit cin>> antwort; Das Programm wartet bis der Spieler eine Eingabe macht
Das rote ist also eigentlich unnötig xD
Zum eigentlichen Fehler:
Versuch es mal mit:
Code:
int maxh = spieler->GetMaxHealth();
spieler->SetHealth(maxh);
statt
Code:
spieler->SetHealth(spieler->GetMaxHealth());
Der Fehler ist nämlich ein Windows spezifischer Fehler, für den es so direkt keine Lösung gibt