似乎无法使用结构中的整数

发布于 2024-11-01 15:57:06 字数 842 浏览 5 评论 0原文

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 内部的第一行大喊大叫

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);
}

Gives the following error:

ERROR: Conversion from 'int' to non-scalar type 'stVitals' requested

I work with ints within various stVital instances all around my program in this manner with no problems... what's going on here that I'm missing?

edit: It is hollering about the first line inside of getATK

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〗斷ホ乔殘χμё〖 2024-11-08 15:57:06

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

What's missing here is the code in which you call getATK. Presumably, you're incorrectly passing an int argument rather than an stVitals argument when you call that function.

定格我的天空 2024-11-08 15:57:06

doAttack() 正在使用 stVitals 调用 getLvl;

getLvl is being called with a stVitals by doAttack();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文