用途
检查当前选中珍兽技能是否是被动技能
客户端函数源码
INT Pet::GetSkillPassive(LuaPlus::LuaState* state)
{
// 创建一个 LuaStack 对象,用于管理从 Lua 栈中获取的参数
LuaStack args(state);
// 检查传入的第二个和第三个参数是否为整数类型
if ( !(args[2].IsInteger()) || (!(args[3].IsInteger())) )
{
// 如果参数不是整数,则抛出异常并返回 0,表示参数错误
TDThrow("LUA:Pet GetSkillPassive parameter error");
return 0;
}
// 获取传入的宠物编号和技能编号
INT nPetNum = args[2].GetInteger();
INT nPetSkill = args[3].GetInteger();
// 检查技能编号是否在合法范围内
if(nPetSkill < 0 || nPetSkill >= PET_MAX_SKILL_COUNT)
{
// 如果技能编号无效,推送 -1 到 Lua 栈,表示错误
state->PushNumber(-1);
// TDThrow("LUA:Pet GetSkillPassive parameter PetSkill error");
// 返回 1,表示成功执行(尽管有错误),Lua 端将看到 -1 作为返回值
return 1;
}
// 获取指定宠物编号和技能编号对应的技能数据
const PET_SKILL* pPet_Skill = CDataPool::GetMe()->Pet_GetSkill(nPetNum,nPetSkill);
// 如果技能数据无效或技能定义为空
if(!pPet_Skill || (!pPet_Skill->m_pDefine))
{
// 如果技能数据无效,推送 -1 到 Lua 栈,表示错误
state->PushNumber(-1);
// 返回 1,表示成功执行(尽管有错误),Lua 端将看到 -1 作为返回值
return 1;
}
// 检查技能的操作模式是否是“主动技能”
// 如果操作模式不是 PET_SKILL_OPERATE_NEEDOWNER,表示技能是被动技能
state->PushNumber( pPet_Skill->m_pDefine->m_nOperateModeForPetSkill != PET_SKILL_OPERATE_NEEDOWNER);
// 返回 1,表示成功执行,Lua 端将获取到技能是否是被动技能的判断结果(1 或 0)
return 1;
}
***付费内容***
剩余 11% 内容需要支付 2.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|