c语言求助,请大佬解答
本帖最后由 dmxayjn 于 2022-1-18 23:35 编辑if(pItemBase &&(((FLOAT)g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F || pItemBase->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint()))
{
if( g_pPlayer->m_cooltimeMgr.CanUse( g_pPlayer->m_cooltimeMgr.GetGroup(pItemBase->GetProp() )))
{
g_DPlay.SendDoUseItem( MAKELONG( ITYPE_ITEM, pItemBase->m_dwObjId ), NULL_ID, pItemBase->GetProp()->dwParts );
}
}
这个代码是自动吃药的代码,g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F这一句是计算了当前HP的 50%吗?如果是的话,怎么可以改成70%。。
易语言的话,我知道怎么实现,,对C语言还不是很明白。。请求大佬支个招,,有些能看懂,但是不知道怎么去改。。。
----------------------------------------------------------------------
问题已经解决,把2.0F改成1.74F就解决了。。谢谢各位大佬的解答。 就是当前血量最大值/当前血量>2如果你想写70的话 你反过来 当前血量/当前血量最大值>0.7f 就行了 chenlun 发表于 2022-1-18 17:43
就是当前血量最大值/当前血量>2如果你想写70的话 你反过来 当前血量/当前血量最大值>0.7f 就行了
好的,我试试,随后过来反馈。 当前血量/当前血量最大值 < 0.7f
应该是<,不是>,不然满血状态还在嗑药... unmask 发表于 2022-1-18 19:29
当前血量/当前血量最大值 < 0.7f
应该是,不然满血状态还在嗑药...
我突然想到,把2.0 改成 1.7试试。。正在测试 (FLOAT)g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F
等效
(FLOAT)g_pPlayer->GetHitPoint()/ g_pPlayer->GetMaxHitPoint() ) > 0.5F
(FLOAT)g_pPlayer->GetHitPoint()/ g_pPlayer->GetMaxHitPoint() ) > 0.7F
(FLOAT)g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F
等效
(FLOAT)g_pPlayer->GetHitPoint()/ g_pPlayer->GetMaxHitPoint() ) < 0.5F
(FLOAT)g_pPlayer->GetHitPoint()/ g_pPlayer->GetMaxHitPoint() ) < 0.7F 孤梦拾遗 发表于 2022-1-18 20:37
(FLOAT)g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F
等效
(FLOAT)g_pPlayer->Ge ...
好的,谢谢回答。我测试后,会统一回复一下。。
页:
[1]