本文整理汇总了C++中CMobEntity::SetSJob方法的典型用法代码示例。如果您正苦于以下问题:C++ CMobEntity::SetSJob方法的具体用法?C++ CMobEntity::SetSJob怎么用?C++ CMobEntity::SetSJob使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMobEntity
的用法示例。
在下文中一共展示了CMobEntity::SetSJob方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InstantiateAlly
CMobEntity* InstantiateAlly(uint32 groupid, uint16 zoneID, CInstance* instance)
{
const char* Query =
"SELECT zoneid, name, \
respawntime, spawntype, dropid, mob_groups.HP, mob_groups.MP, minLevel, maxLevel, \
modelid, mJob, sJob, cmbSkill, cmbDmgMult, cmbDelay, behavior, links, mobType, immunity, \
systemid, mobsize, speed, \
STR, DEX, VIT, AGI, `INT`, MND, CHR, EVA, DEF, \
Slash, Pierce, H2H, Impact, \
Fire, Ice, Wind, Earth, Lightning, Water, Light, Dark, Element, \
mob_pools.familyid, name_prefix, entityFlags, animationsub, \
(mob_family_system.HP / 100), (mob_family_system.MP / 100), hasSpellScript, spellList, ATT, ACC, mob_groups.poolid, \
allegiance, namevis, aggro, mob_pools.skill_list_id, mob_pools.true_detection, mob_family_system.detects, packet_name \
FROM mob_groups INNER JOIN mob_pools ON mob_groups.poolid = mob_pools.poolid \
INNER JOIN mob_family_system ON mob_pools.familyid = mob_family_system.familyid \
WHERE mob_groups.groupid = %u";
int32 ret = Sql_Query(SqlHandle, Query, groupid);
CMobEntity* PMob = nullptr;
if (ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0)
{
if (Sql_NextRow(SqlHandle) == SQL_SUCCESS)
{
PMob = new CMobEntity;
PMob->PInstance = instance;
PMob->name.insert(0, (const char*)Sql_GetData(SqlHandle, 1));
PMob->packetName.insert(0, (const char*)Sql_GetData(SqlHandle, 61));
PMob->m_RespawnTime = Sql_GetUIntData(SqlHandle, 2) * 1000;
PMob->m_SpawnType = (SPAWNTYPE)Sql_GetUIntData(SqlHandle, 3);
PMob->m_DropID = Sql_GetUIntData(SqlHandle, 4);
PMob->HPmodifier = (uint32)Sql_GetIntData(SqlHandle, 5);
PMob->MPmodifier = (uint32)Sql_GetIntData(SqlHandle, 6);
PMob->m_minLevel = (uint8)Sql_GetIntData(SqlHandle, 7);
PMob->m_maxLevel = (uint8)Sql_GetIntData(SqlHandle, 8);
memcpy(&PMob->look, Sql_GetData(SqlHandle, 9), 23);
PMob->SetMJob(Sql_GetIntData(SqlHandle, 10));
PMob->SetSJob(Sql_GetIntData(SqlHandle, 11));
PMob->m_Weapons[SLOT_MAIN]->setMaxHit(1);
PMob->m_Weapons[SLOT_MAIN]->setSkillType(Sql_GetIntData(SqlHandle, 12));
PMob->m_dmgMult = Sql_GetUIntData(SqlHandle, 13);
PMob->m_Weapons[SLOT_MAIN]->setDelay((Sql_GetIntData(SqlHandle, 14) * 1000) / 60);
PMob->m_Weapons[SLOT_MAIN]->setBaseDelay((Sql_GetIntData(SqlHandle, 14) * 1000) / 60);
PMob->m_Behaviour = (uint16)Sql_GetIntData(SqlHandle, 15);
PMob->m_Link = (uint8)Sql_GetIntData(SqlHandle, 16);
PMob->m_Type = (uint8)Sql_GetIntData(SqlHandle, 17);
PMob->m_Immunity = (IMMUNITY)Sql_GetIntData(SqlHandle, 18);
PMob->m_EcoSystem = (ECOSYSTEM)Sql_GetIntData(SqlHandle, 19);
PMob->m_ModelSize = (uint8)Sql_GetIntData(SqlHandle, 10);
PMob->speed = (uint8)Sql_GetIntData(SqlHandle, 21);
PMob->speedsub = (uint8)Sql_GetIntData(SqlHandle, 21);
/*if(PMob->speed != 0)
{
PMob->speed += map_config.speed_mod;
// whats this for?
PMob->speedsub += map_config.speed_mod;
}*/
PMob->strRank = (uint8)Sql_GetIntData(SqlHandle, 22);
PMob->dexRank = (uint8)Sql_GetIntData(SqlHandle, 23);
PMob->vitRank = (uint8)Sql_GetIntData(SqlHandle, 24);
PMob->agiRank = (uint8)Sql_GetIntData(SqlHandle, 25);
PMob->intRank = (uint8)Sql_GetIntData(SqlHandle, 26);
PMob->mndRank = (uint8)Sql_GetIntData(SqlHandle, 27);
PMob->chrRank = (uint8)Sql_GetIntData(SqlHandle, 28);
PMob->evaRank = (uint8)Sql_GetIntData(SqlHandle, 29);
PMob->defRank = (uint8)Sql_GetIntData(SqlHandle, 30);
PMob->attRank = (uint8)Sql_GetIntData(SqlHandle, 52);
PMob->accRank = (uint8)Sql_GetIntData(SqlHandle, 53);
PMob->setModifier(Mod::SLASHRES, (uint16)(Sql_GetFloatData(SqlHandle, 31) * 1000));
PMob->setModifier(Mod::PIERCERES, (uint16)(Sql_GetFloatData(SqlHandle, 32) * 1000));
PMob->setModifier(Mod::HTHRES, (uint16)(Sql_GetFloatData(SqlHandle, 33) * 1000));
PMob->setModifier(Mod::IMPACTRES, (uint16)(Sql_GetFloatData(SqlHandle, 34) * 1000));
PMob->setModifier(Mod::FIRERES, (int16)((Sql_GetFloatData(SqlHandle, 35) - 1) * -100)); // These are stored as floating percentages
PMob->setModifier(Mod::ICERES, (int16)((Sql_GetFloatData(SqlHandle, 36) - 1) * -100)); // and need to be adjusted into modifier units.
PMob->setModifier(Mod::WINDRES, (int16)((Sql_GetFloatData(SqlHandle, 37) - 1) * -100)); // Higher RES = lower damage.
PMob->setModifier(Mod::EARTHRES, (int16)((Sql_GetFloatData(SqlHandle, 38) - 1) * -100)); // Negatives signify lower resist chance.
PMob->setModifier(Mod::THUNDERRES, (int16)((Sql_GetFloatData(SqlHandle, 39) - 1) * -100)); // Positives signify increased resist chance.
PMob->setModifier(Mod::WATERRES, (int16)((Sql_GetFloatData(SqlHandle, 40) - 1) * -100));
PMob->setModifier(Mod::LIGHTRES, (int16)((Sql_GetFloatData(SqlHandle, 41) - 1) * -100));
PMob->setModifier(Mod::DARKRES, (int16)((Sql_GetFloatData(SqlHandle, 42) - 1) * -100));
PMob->m_Element = (uint8)Sql_GetIntData(SqlHandle, 43);
PMob->m_Family = (uint16)Sql_GetIntData(SqlHandle, 44);
PMob->m_name_prefix = (uint8)Sql_GetIntData(SqlHandle, 45);
PMob->m_flags = (uint32)Sql_GetIntData(SqlHandle, 46);
//.........这里部分代码省略.........
示例2: LoadMOBList
void LoadMOBList()
{
const int8* Query =
"SELECT zoneid, name, mobid, pos_rot, pos_x, pos_y, pos_z, \
respawntime, spawntype, dropid, mob_groups.HP, mob_groups.MP, minLevel, maxLevel, \
modelid, mJob, sJob, cmbSkill, cmbDmgMult, cmbDelay, behavior, links, mobType, immunity, \
systemid, mobsize, speed, \
STR, DEX, VIT, AGI, `INT`, MND, CHR, EVA, DEF, \
Slash, Pierce, H2H, Impact, \
Fire, Ice, Wind, Earth, Lightning, Water, Light, Dark, Element, \
mob_pools.familyid, name_prefix, unknown, animationsub, \
(mob_family_system.HP / 100), (mob_family_system.MP / 100), hasSpellScript, spellList, ATT, ACC, mob_groups.poolid \
FROM mob_groups INNER JOIN mob_pools ON mob_groups.poolid = mob_pools.poolid \
INNER JOIN mob_spawn_points ON mob_groups.groupid = mob_spawn_points.groupid \
INNER JOIN mob_family_system ON mob_pools.familyid = mob_family_system.familyid \
WHERE NOT (pos_x = 0 AND pos_y = 0 AND pos_z = 0);";
int32 ret = Sql_Query(SqlHandle, Query);
if( ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0)
{
while(Sql_NextRow(SqlHandle) == SQL_SUCCESS)
{
uint16 ZoneID = (uint16)Sql_GetUIntData(SqlHandle, 0);
CMobEntity* PMob = new CMobEntity;
PMob->name.insert(0,Sql_GetData(SqlHandle,1));
PMob->id = (uint32)Sql_GetUIntData(SqlHandle,2);
PMob->targid = (uint16)PMob->id & 0x0FFF;
PMob->m_SpawnPoint.rotation = (uint8)Sql_GetIntData(SqlHandle,3);
PMob->m_SpawnPoint.x = Sql_GetFloatData(SqlHandle,4);
PMob->m_SpawnPoint.y = Sql_GetFloatData(SqlHandle,5);
PMob->m_SpawnPoint.z = Sql_GetFloatData(SqlHandle,6);
PMob->m_RespawnTime = Sql_GetUIntData(SqlHandle,7) * 1000;
PMob->m_SpawnType = (SPAWNTYPE)Sql_GetUIntData(SqlHandle,8);
PMob->m_DropID = Sql_GetUIntData(SqlHandle,9);
PMob->HPmodifier = (uint32)Sql_GetIntData(SqlHandle,10);
PMob->MPmodifier = (uint32)Sql_GetIntData(SqlHandle,11);
PMob->m_minLevel = (uint8)Sql_GetIntData(SqlHandle,12);
PMob->m_maxLevel = (uint8)Sql_GetIntData(SqlHandle,13);
memcpy(&PMob->look,Sql_GetData(SqlHandle,14),23);
PMob->SetMJob(Sql_GetIntData(SqlHandle,15));
PMob->SetSJob(Sql_GetIntData(SqlHandle,16));
PMob->m_Weapons[SLOT_MAIN]->setMaxHit(1);
PMob->m_Weapons[SLOT_MAIN]->setSkillType(Sql_GetIntData(SqlHandle,17));
PMob->m_dmgMult = Sql_GetUIntData(SqlHandle, 18);
PMob->m_Weapons[SLOT_MAIN]->setDelay((Sql_GetIntData(SqlHandle,19) * 1000)/60);
PMob->m_Weapons[SLOT_MAIN]->setBaseDelay((Sql_GetIntData(SqlHandle,19) * 1000)/60);
PMob->m_Behaviour = (uint16)Sql_GetIntData(SqlHandle,20);
PMob->m_Link = (uint8)Sql_GetIntData(SqlHandle,21);
PMob->m_Type = (uint8)Sql_GetIntData(SqlHandle,22);
PMob->m_Immunity = (IMMUNITY)Sql_GetIntData(SqlHandle,23);
PMob->m_EcoSystem = (ECOSYSTEM)Sql_GetIntData(SqlHandle,24);
PMob->m_ModelSize += (uint8)Sql_GetIntData(SqlHandle,25);
PMob->speed = (uint8)Sql_GetIntData(SqlHandle,26);
PMob->speedsub = (uint8)Sql_GetIntData(SqlHandle,26);
/*if(PMob->speed != 0)
{
PMob->speed += map_config.speed_mod;
// whats this for?
PMob->speedsub += map_config.speed_mod;
}*/
PMob->strRank = (uint8)Sql_GetIntData(SqlHandle,27);
PMob->dexRank = (uint8)Sql_GetIntData(SqlHandle,28);
PMob->vitRank = (uint8)Sql_GetIntData(SqlHandle,29);
PMob->agiRank = (uint8)Sql_GetIntData(SqlHandle,30);
PMob->intRank = (uint8)Sql_GetIntData(SqlHandle,31);
PMob->mndRank = (uint8)Sql_GetIntData(SqlHandle,32);
PMob->chrRank = (uint8)Sql_GetIntData(SqlHandle,33);
PMob->evaRank = (uint8)Sql_GetIntData(SqlHandle,34);
PMob->defRank = (uint8)Sql_GetIntData(SqlHandle,35);
PMob->attRank = (uint8)Sql_GetIntData(SqlHandle,57);
PMob->accRank = (uint8)Sql_GetIntData(SqlHandle,58);
PMob->setModifier(MOD_SLASHRES, (uint16)(Sql_GetFloatData(SqlHandle,36) * 1000));
PMob->setModifier(MOD_PIERCERES,(uint16)(Sql_GetFloatData(SqlHandle,37) * 1000));
PMob->setModifier(MOD_HTHRES, (uint16)(Sql_GetFloatData(SqlHandle,38) * 1000));
PMob->setModifier(MOD_IMPACTRES,(uint16)(Sql_GetFloatData(SqlHandle,39) * 1000));
PMob->setModifier(MOD_FIREDEF, (int16)((Sql_GetFloatData(SqlHandle, 40) - 1) * -1000)); // These are stored as floating percentages
PMob->setModifier(MOD_ICEDEF, (int16)((Sql_GetFloatData(SqlHandle, 41) - 1) * -1000)); // and need to be adjusted into modifier units.
PMob->setModifier(MOD_WINDDEF, (int16)((Sql_GetFloatData(SqlHandle, 42) - 1) * -1000)); // Higher DEF = lower damage.
PMob->setModifier(MOD_EARTHDEF, (int16)((Sql_GetFloatData(SqlHandle, 43) - 1) * -1000)); // Negatives signify increased damage.
PMob->setModifier(MOD_THUNDERDEF, (int16)((Sql_GetFloatData(SqlHandle, 44) - 1) * -1000)); // Positives signify reduced damage.
PMob->setModifier(MOD_WATERDEF, (int16)((Sql_GetFloatData(SqlHandle, 45) - 1) * -1000)); // Ex: 125% damage would be 1.25, 50% damage would be 0.50
PMob->setModifier(MOD_LIGHTDEF, (int16)((Sql_GetFloatData(SqlHandle, 46) - 1) * -1000)); // (1.25 - 1) * -1000 = -250 DEF
PMob->setModifier(MOD_DARKDEF, (int16)((Sql_GetFloatData(SqlHandle, 47) - 1) * -1000)); // (0.50 - 1) * -1000 = 500 DEF
PMob->setModifier(MOD_FIRERES, (int16)((Sql_GetFloatData(SqlHandle, 40) - 1) * -100)); // These are stored as floating percentages
//.........这里部分代码省略.........