首頁
社區(qū)
課程
招聘
c語言求助,請各位老師解答
dmxayjn 2022-1-18 1092

if(pItemBase &&(((FLOAT)g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F || pItemBase->GetProp()->nAdjParamVal1 + g_pPlayer->GetHitPoint() <= g_pPlayer->GetMaxHitPoint()) )
{

1
2
3
4
5
        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è)代碼是自動吃藥的代碼,g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F這一句是計(jì)算了當(dāng)前HP的 50%嗎?如果是的話,怎么可以改成70%。。

 

易語言的話,我知道怎么實(shí)現(xiàn),,對C語言還不是很明白。。請求大佬支個(gè)招,,有些能看懂,但是不知道怎么去改。。。

收藏
2條回答
AlphaYang 2022-1-19 2022-1-19編輯

很好解決,首先理解代碼邏輯

g_pPlayer->GetMaxHitPoint() / g_pPlayer->GetHitPoint() ) > 2.0F 是指如果最大血量在當(dāng)前血量的兩倍以上,也就是如果血量小于50%,執(zhí)行操作。按照你的要求,小于70%就執(zhí)行的話,可以改成g_pPlayer->GetHitPoint() ) < g_pPlayer->GetMaxHitPoint() *0.7 意思是當(dāng)前血量在最大血量的70%以下,加上If條件句就可以實(shí)現(xiàn)你的功能啦~

回復(fù)
dmxayjn: 好的,謝謝大佬解答,我目前把  2.0F  改成  了  1.74F  就解決了。。
回復(fù) 2022-1-19
mb_nwrlvgzr 2022-2-15

稍微試試就能知道答案了

回復(fù)