struct stVitals // Entity vitals
{
int str;
int xp;
int batk;
};
int doAttack(stVitals Aggressor, stVitals Defender) // Calculate attack results
{
doHit(getATK(Aggressor), getDEF(Defender), getDDG(Defender), getLVL(Aggressor), getLVL(Defender));
}
int doHit([...] // Calculate damage
int getATK(stVitals sourcemob) // Calculate attack value
{
int output = ((sourcemob.str * getLVL(sourcemob.xp)) * 0.1) + sourcemob.batk;
return output;
}
int getLVL(int xp) // Return level from XP
{
return (xp * 0.001);
}
donne l'erreur suivante:Apparemment incapable de travailler avec ints dans struct
ERROR: Conversion from 'int' to non-scalar type 'stVitals' requested
Je travaille avec ints dans différentes instances stVital autour de mon programme de cette manière sans problème ... ce qui se passe ici que j'ai manqué?
edit: Il est braillements de la première ligne à l'intérieur de getATK
Pouvez-vous poster la ligne exacte qui correspond à l'erreur. Le code que vous avez posté semble correct (à l'exception du double '0.1' qui multiplie une valeur entière puis converti - implicitement? - en un' int'). –
Je parie que vous avez oublié de faire un opérateur d'accès membre pour obtenir l'une des variables membres de votre structure; oh, et votre compilateur devrait crier à propos du numéro de ligne ......... –
edit: Il hurle sur la première ligne à l'intérieur de getATK (le truc int/double est bien, car il produit la plage de nombres particulière Je cherche en isolation) – motioneffector