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インスタンス内のintを問題なく操作しています...ここで何が起こっているのでしょうか?

編集:getATK内の最初の行について大声で叫んでいます

4

2 に答える 2

0

ここで欠落しているのは、を呼び出すコードですgetATK。おそらく、その関数を呼び出すときに、int引数ではなく引数を誤って渡しています。stVitals

于 2011-04-14T23:40:59.160 に答える
0

getLvl は、doAttack() によって stVitals で呼び出されています。

于 2011-04-14T23:54:49.013 に答える