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);
}
给出以下错误:
ERROR: Conversion from 'int' to non-scalar type 'stVitals' requested
我以这种方式在我的程序周围的各种stVital实例中使用int进行处理,没有任何问题......这里发生了什么,我错过了?
编辑:关于getATK
内部的第一行是大喊大叫答案 0 :(得分:0)
这里缺少的是您调用getATK
的代码。据推测,当您调用该函数时,您错误地传递了int
参数而不是stVitals
参数。
答案 1 :(得分:0)
通过doAttack();
使用stVitals调用getLvl