本文整理汇总了C++中CMobEntity::saveModifiers方法的典型用法代码示例。如果您正苦于以下问题:C++ CMobEntity::saveModifiers方法的具体用法?C++ CMobEntity::saveModifiers怎么用?C++ CMobEntity::saveModifiers使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CMobEntity
的用法示例。
在下文中一共展示了CMobEntity::saveModifiers方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InstantiateAlly
//.........这里部分代码省略.........
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);
//Special sub animation for Mob (yovra, jailer of love, phuabo)
// yovra 1: en hauteur, 2: en bas, 3: en haut
// phuabo 1: sous l'eau, 2: sort de l'eau, 3: rentre dans l'eau
PMob->animationsub = (uint32)Sql_GetIntData(SqlHandle, 47);
// Setup HP / MP Stat Percentage Boost
PMob->HPscale = Sql_GetFloatData(SqlHandle, 48);
PMob->MPscale = Sql_GetFloatData(SqlHandle, 49);
// Check if we should be looking up scripts for this mob
PMob->m_HasSpellScript = (uint8)Sql_GetIntData(SqlHandle, 50);
PMob->m_SpellListContainer = mobSpellList::GetMobSpellList(Sql_GetIntData(SqlHandle, 51));
PMob->m_Pool = Sql_GetUIntData(SqlHandle, 54);
PMob->allegiance = Sql_GetUIntData(SqlHandle, 55);
PMob->namevis = Sql_GetUIntData(SqlHandle, 56);
PMob->m_Aggro = Sql_GetUIntData(SqlHandle, 57);
PMob->m_MobSkillList = Sql_GetUIntData(SqlHandle, 58);
PMob->m_TrueDetection = Sql_GetUIntData(SqlHandle, 59);
PMob->m_Detects = Sql_GetUIntData(SqlHandle, 60);
// must be here first to define mobmods
mobutils::InitializeMob(PMob, zoneutils::GetZone(zoneID));
zoneutils::GetZone(zoneID)->InsertPET(PMob);
luautils::OnMobInitialize(PMob);
luautils::ApplyMixins(PMob);
PMob->saveModifiers();
PMob->saveMobModifiers();
}
}
return PMob;
}
示例2: LoadMOBList
//.........这里部分代码省略.........
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
PMob->setModifier(MOD_ICERES, (int16)((Sql_GetFloatData(SqlHandle, 41) - 1) * -100)); // and need to be adjusted into modifier units.
PMob->setModifier(MOD_WINDRES, (int16)((Sql_GetFloatData(SqlHandle, 42) - 1) * -100)); // Higher RES = lower damage.
PMob->setModifier(MOD_EARTHRES, (int16)((Sql_GetFloatData(SqlHandle, 43) - 1) * -100)); // Negatives signify lower resist chance.
PMob->setModifier(MOD_THUNDERRES, (int16)((Sql_GetFloatData(SqlHandle, 44) - 1) * -100)); // Positives signify increased resist chance.
PMob->setModifier(MOD_WATERRES, (int16)((Sql_GetFloatData(SqlHandle, 45) - 1) * -100));
PMob->setModifier(MOD_LIGHTRES, (int16)((Sql_GetFloatData(SqlHandle, 46) - 1) * -100));
PMob->setModifier(MOD_DARKRES, (int16)((Sql_GetFloatData(SqlHandle, 47) - 1) * -100));
PMob->m_Element = (uint8)Sql_GetIntData(SqlHandle,48);
PMob->m_Family = (uint16)Sql_GetIntData(SqlHandle,49);
PMob->m_name_prefix = (uint8)Sql_GetIntData(SqlHandle,50);
PMob->m_unknown = (uint32)Sql_GetIntData(SqlHandle,51);
//Special sub animation for Mob (yovra, jailer of love, phuabo)
// yovra 1: en hauteur, 2: en bas, 3: en haut
// phuabo 1: sous l'eau, 2: sort de l'eau, 3: rentre dans l'eau
PMob->animationsub = (uint32)Sql_GetIntData(SqlHandle,52);
// Setup HP / MP Stat Percentage Boost
PMob->HPscale = Sql_GetFloatData(SqlHandle,53);
PMob->MPscale = Sql_GetFloatData(SqlHandle,54);
PMob->PBattleAI = new CAIMobDummy(PMob);
if (PMob->m_AllowRespawn = PMob->m_SpawnType == SPAWNTYPE_NORMAL)
{
PMob->PBattleAI->SetCurrentAction(ACTION_SPAWN);
}
// Check if we should be looking up scripts for this mob
PMob->m_HasSpellScript = (uint8)Sql_GetIntData(SqlHandle,55);
PMob->m_SpellListContainer = mobSpellList::GetMobSpellList(Sql_GetIntData(SqlHandle,56));
PMob->m_Pool = Sql_GetUIntData(SqlHandle,59);
// must be here first to define mobmods
mobutils::InitializeMob(PMob, GetZone(ZoneID));
GetZone(ZoneID)->InsertMOB(PMob);
luautils::OnMobInitialize(PMob);
PMob->saveModifiers();
PMob->saveMobModifiers();
}
}
// attach pets to mobs
const int8* PetQuery =
"SELECT zoneid, mob_mobid, pet_offset \
FROM mob_pets \
LEFT JOIN mob_spawn_points ON mob_pets.mob_mobid = mob_spawn_points.mobid \
LEFT JOIN mob_groups ON mob_spawn_points.groupid = mob_groups.groupid;";
ret = Sql_Query(SqlHandle, PetQuery);
if( ret != SQL_ERROR && Sql_NumRows(SqlHandle) != 0)
{
while(Sql_NextRow(SqlHandle) == SQL_SUCCESS)
{
uint16 ZoneID = (uint16)Sql_GetUIntData(SqlHandle, 0);
uint32 masterid = (uint32)Sql_GetUIntData(SqlHandle,1);
uint32 petid = masterid + (uint32)Sql_GetUIntData(SqlHandle,2);
CMobEntity* PMaster = (CMobEntity*)GetZone(ZoneID)->GetEntity(masterid & 0x0FFF, TYPE_MOB);
CMobEntity* PPet = (CMobEntity*)GetZone(ZoneID)->GetEntity(petid & 0x0FFF, TYPE_MOB);
if(PMaster == NULL)
{
ShowError("zoneutils::loadMOBList PMaster is null. masterid: %d. Make sure x,y,z are not zeros, and that all entities are entered in the database!\n", masterid);
}
else if(PPet == NULL)
{
ShowError("zoneutils::loadMOBList PPet is null. petid: %d. Make sure x,y,z are not zeros!\n", petid);
}
else if(masterid == petid)
{
ShowError("zoneutils::loadMOBList Master and Pet are the same entity: %d\n", masterid);
}
else
{
// pet is always spawned by master
PPet->m_AllowRespawn = false;
PPet->m_SpawnType = SPAWNTYPE_SCRIPTED;
PPet->PBattleAI->SetCurrentAction(ACTION_NONE);
PPet->SetDespawnTimer(0);
PMaster->PPet = PPet;
PPet->PMaster = PMaster;
}
}
}
}