1
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 实例中使用整数,没有任何问题......我错过了什么?

编辑:它对 getATK 内部的第一行大喊大叫

4

2 回答 2

0

这里缺少的是您调用getATK. 据推测,当您调用该函数时,您错误地传递了一个int参数而不是一个参数。stVitals

于 2011-04-14T23:40:59.160 回答
0

getLvl 被 doAttack() 用 stVitals 调用;

于 2011-04-14T23:54:49.013 回答