Hi all,
ich habe ein Problem : Ich progge z.Z. an einem RPG, dort habe ich eine Klasse "Charakter" die diverse Variablen (Str, Agi, etc) enthält. Abgeleitet von dieser ist die Klasse "Monster", die ihre eigenen Werte für Str, Agi etc braucht. Leider starten meine Monster egal wie ich es drehe und wende immer mit den Startattributen des Charakters, selbst wenn ich sie dort als private deklariere. :bahnhof:
Hier mal die relevanten Stellen im Code :
Charakter.class :
Monster.class :
Habe auch schon versucht, die Werte des Monsters durch eine Methode zu überschreiben - hilft nicht. Ob es über einen Konstruktor funktionieren würde weiss ich nicht, würde es aber nur sehr ungern so lösen..vielleicht fällt euch ja was ein, danke schonmal!
ich habe ein Problem : Ich progge z.Z. an einem RPG, dort habe ich eine Klasse "Charakter" die diverse Variablen (Str, Agi, etc) enthält. Abgeleitet von dieser ist die Klasse "Monster", die ihre eigenen Werte für Str, Agi etc braucht. Leider starten meine Monster egal wie ich es drehe und wende immer mit den Startattributen des Charakters, selbst wenn ich sie dort als private deklariere. :bahnhof:
Hier mal die relevanten Stellen im Code :
Charakter.class :
Java:
public class Charakter
{
private int level;
private int HP_Max;
private int MP_Max;
private int STAM_Max;
private int HP;
private int MP;
private int STAM;
private int exp;
private int exp_tnl;
private int str;
private int agi;
private int intel;
private int aspd;
private int aspd_delay;
private int extraDamage;
private int lastAttackDamage;
private int exp_old;
Random rnd = new Random();
public Charakter (int lv)
{
level = lv;
exp = 0;
str = 15;
agi = 15;
intel = 15;
HP_Max = (5 + level) * (1 + str / 5);
MP_Max = (1 + level / 2) * (1 + intel / 3);
STAM_Max = (2 + level) * (1 + str / 10 + agi / 20);
HP = HP_Max;
MP = MP_Max;
STAM = STAM_Max;
extraDamage = 0;
aspd = 50 + agi;
}
.
.
.
Monster.class :
Java:
public class Monster extends Charakter
{
private int level;
private int HP_Max;
private int MP_Max;
private int STAM_Max;
private int HP;
private int MP;
private int STAM;
private int exp;
private int exp_tnl;
private int str;
private int agi;
private int intel;
private int aspd;
private int aspd_delay;
private int extraDamage;
private int lastAttackDamage;
public int strbonus;
private int agibonus;
private int intelbonus;
private int extraDamage2;
Random rnd = new Random();
private int exp_value;
private String mobName;
public Monster (int lv, int type)
{
super(lv);
level = lv;
exp_value = level / 2 + rnd.nextInt(level) + level ;
this.str = 10000; /// Versuch 1, funzt nicht
int agi = 140; /// Versuch 2, funzt nicht
int intel = 1;
if(type == 0)
{
mobName = "Ogre";
str = (level + rnd.nextInt(level)) / 2 + 1;
intel = rnd.nextInt(level) + 1;
agi = rnd.nextInt(level) + rnd.nextInt(level) + 1;
extraDamage2 += level;
}
else if (type == 1)
{
mobName = "Spider";
str = level / 2 + 1;
intel = level;
agi = level + rnd.nextInt(level);
}
else if (type == 2)
{
mobName = "Dark Magus";
str = rnd.nextInt(level) + 1;
intel = 2 * level;
agi = level;
}
}
Habe auch schon versucht, die Werte des Monsters durch eine Methode zu überschreiben - hilft nicht. Ob es über einen Konstruktor funktionieren würde weiss ich nicht, würde es aber nur sehr ungern so lösen..vielleicht fällt euch ja was ein, danke schonmal!