/* ------------------------------------------------ // 加点确认 参数1 INT 骑宠下标 参数2 INT 力量 参数3 INT 敏捷 参数4 INT 体力 参数5 INT 智力 ------------------------------------------------ */ INT Mount::SetAttrAddRequest(LuaPlus::LuaState* state) { LuaStack args(state); if (!(args[2].IsInteger())) KLThrow("Mount::SetAttrAddRequest[2] param parameter error"); INT nMountIndex = args[2].GetInteger(); if (!(args[3].IsInteger())) KLThrow("Mount::SetAttrAddRequest[3] param parameter error"); INT nStrAdd = args[3].GetInteger(); if (!(args[4].IsInteger())) KLThrow("Mount::SetAttrAddRequest[4] param parameter error"); INT nDexAdd = args[4].GetInteger(); if (!(args[5].IsInteger())) KLThrow("Mount::SetAttrAddRequest[5] param parameter error"); INT nConAdd = args[5].GetInteger(); if (!(args[6].IsInteger())) KLThrow("Mount::SetAttrAddRequest[6] param parameter error"); INT nIntAdd = args[6].GetInteger(); // 发送加点消息 const SDATA_PET* pPet = CDataPool::GetMe()->Pet_GetPet(nMountIndex); if (pPet && FALSE == pPet->m_GUID.IsNull()) { CGSetPetAttrib Msg; Msg.SetGUID(pPet->m_GUID); Msg.SetStrIncrement(nStrAdd); Msg.SetDexIncrement(nDexAdd); Msg.SetConIncrement(nConAdd); Msg.SetIntIncrement(nIntAdd); CNetManager::GetMe()->SendPacket(&Msg); } return 0; }
// 宠物加属性点。 INT Pet::Add_Attribute(LuaPlus::LuaState* state) { LuaStack args(state); if (!(args[2].IsInteger()) || !(args[3].IsInteger()) || !(args[4].IsInteger()) || !(args[5].IsInteger()) || !(args[6].IsInteger()) || !(args[7].IsInteger()) ) { KLThrow("LUA:Pet Add_Attribute parameter error"); } INT nPetNum = args[2].GetInteger(); INT nStr = args[CATTR_LEVEL1_STR+3].GetInteger(); // INT nInt = args[CATTR_LEVEL1_SPR+3].GetInteger(); INT nInt = 0; INT nDex = args[CATTR_LEVEL1_CON+3].GetInteger(); INT nPF = args[CATTR_LEVEL1_INT+3].GetInteger(); INT nSta = args[CATTR_LEVEL1_DEX+3].GetInteger(); SDATA_PET* My_Pet= CDataPool::GetMe()->Pet_GetPet(nPetNum); if( (!My_Pet) || ( !My_Pet->m_pModelData ) ) { KLThrow("LUA:Pet Add_Attribute parameter error"); return 0; } if( (nStr + nInt + nDex + nPF +nSta == 0) || My_Pet->m_nPotential == 0) return 0; if(nStr + nInt + nDex + nPF +nSta > My_Pet->m_nPotential ) return 0; //向服务器发送 CGSetPetAttrib Msg; // Msg.SetIndex(nPetNum); Msg.SetGUID(My_Pet->m_GUID); if(nStr > 0) Msg.SetStrIncrement(nStr); if(nSta > 0) Msg.SetIntIncrement(nSta); if(nDex > 0) Msg.SetDexIncrement(nDex); if(nPF > 0) Msg.SetConIncrement(nPF); // if(nInt > 0) Msg.SetSprIncrement(nInt); CNetManager::GetMe()->SendPacket(&Msg); return 0; }