bool NFCGuildModule::KickGuildMmember( const NFGUID& self, const NFGUID& xGuildID, const NFGUID& xMmember ) { NF_SHARE_PTR<NFIObject> pGuildObject = m_pGuildDataModule->GetGuild(xGuildID); if (!pGuildObject.get()) { return false; } NF_SHARE_PTR<NFIRecord> pMemberRecord = m_pKernelModule->FindRecord(xGuildID, NFrame::Guild::R_GuildMemberList()); if (!pMemberRecord.get()) { return false; } if (self == xMmember) { return false; } CheckPower(self, xGuildID, NFMsg::ReqAckOprGuildMember::EGAT_KICK); NFDataList varList; pMemberRecord->FindObject(NFrame::Guild::GuildMemberList_GUID, self, varList); if (varList.GetCount() == 0) { return false; } const int nRow = varList.Int(0); pMemberRecord->Remove(nRow); return true; }
bool NFCGuildModule::UpGuildMmember( const NFGUID& self, const NFGUID& xGuildID, const NFGUID& xMmember ) { NF_SHARE_PTR<NFIObject> pGuildObject = m_pGuildDataModule->GetGuild(xGuildID); if (!pGuildObject.get()) { return false; } NF_SHARE_PTR<NFIRecord> pMemberRecord = m_pKernelModule->FindRecord(xGuildID, NFrame::Guild::R_GuildMemberList()); if (!pMemberRecord.get()) { return false; } CheckPower(self, xGuildID, NFMsg::ReqAckOprGuildMember::EGAT_UP); NFDataList varList; pMemberRecord->FindObject(NFrame::Guild::GuildMemberList_GUID, self, varList); if (varList.GetCount() == 0) { return false; } const int nRow = varList.Int(0); const int nPower = pMemberRecord->GetInt(nRow, NFrame::Guild::GuildMemberList_Power); if (nPower >= NFMsg::GUILD_POWER_TYPE_PRESIDENT) { return false; } pMemberRecord->SetInt(nRow, NFrame::Guild::GuildMemberList_Power, (nPower + 1)) ; return true; }
bool NFCWorldGuildModule::DownGuildMmember( const NFIDENTID& self, const NFIDENTID& xGuildID, const NFIDENTID& xMmember ) { NF_SHARE_PTR<NFIObject> pGuildObject = m_pWorldGuildDataModule->GetGuild(xGuildID); if (!pGuildObject.get()) { return false; } NF_SHARE_PTR<NFIRecord> pMemberRecord = m_pKernelModule->FindRecord(xGuildID, "GuildMemberList"); if (!pMemberRecord.get()) { return false; } CheckPower(self, xGuildID, NFMsg::ReqAckOprGuildMember::EGAT_DOWN); NFCDataList varList; pMemberRecord->FindObject(NFMsg::GuildMemberList_GUID, self, varList); if (varList.GetCount() == 0) { return false; } const int nRow = varList.Int(0); const int nPower = pMemberRecord->GetInt(nRow, NFMsg::GuildMemberList_Power); if (nPower == 0) { return false; } pMemberRecord->SetInt(nRow, NFMsg::GuildMemberList_Power, (nPower - 1)); return true; }
void JohanCity::UpdateTime(float dt) { clock->Start(); // Optimized version of power checking... CheckPower(); // crawls from power plant outward... // Optimized version of water checking... CheckWater(); // crawls from water source outward... // TODO: optimize? CheckConnection(); checktilems = clock->Reset() * 1000.0f; // Then apply tile info to buildings CheckBuildingRequisites(); checkbuildingms = clock->Reset() * 1000.0f; // Done checking for required items? Spend the RCI for(int i = 0;i < tiles.size();i++) { for(int j = 0;j < tiles[i].size();j++) { TileType type = tiles[i][j]->type; if(type == ttResidential || type == ttCommercial || type == ttIndustrial) { tiles[i][j]->UpdateTime(dt); } // Undo checks (so they won't get invalid)? tiles[i][j]->checkid = -1; // tiles[i][j]->powered = false; // tiles[i][j]->watered = false; // tiles[i][j]->connected = false; } } updatetilems = clock->Reset() * 1000.0f; for(std::list<Building*>::iterator i = buildings.begin();i != buildings.end();i++) { Building* building = *i; building->UpdateTime(dt); } updatebuildingms = clock->Reset() * 1000.0f; snprintf(timingreport,256, "Check tile time: %.2f ms\r\nCheck building time: %.2f ms\r\nUpdate tile time: %.2f ms\r\nUpdate building time: %.2f ms\r\n", checktilems, checkbuildingms, updatetilems, updatebuildingms); UpdateBuffers(); }
// // Startup // void CrashDebugger::QuadrupleBeepAndPowerDown() { // Kern::Beep(262); // P::Wait(127); // Kern::Beep(294); // P::Wait(127); // Kern::Beep(311); // P::Wait(127); // Kern::Beep(349); // P::Wait(127); // Kern::Beep(0); CheckPower(); }
void AFPSHorrorCharacter::OnFire() { // LINE TRACE STUFF FCollisionQueryParams Traceparam; FCollisionObjectQueryParams CollisionObjectParams; FVector Start = FirstPersonCameraComponent->GetComponentLocation(); //FVector Start = FirstPersonCameraComponent FVector End = Start + FirstPersonCameraComponent->GetForwardVector() * range; FHitResult HitData(ForceInit); //ignore collision with player AFPSHorrorCharacter* myCharacter = Cast<AFPSHorrorCharacter>(this); Traceparam.AddIgnoredActor(myCharacter); GetWorld()->LineTraceSingle(HitData, Start, End, Traceparam, CollisionObjectParams); //Check the target's hit by the line trace if (HitData.GetActor() != NULL) { AGuard* newGuard = Cast<AGuard>(HitData.GetActor()); if (newGuard) { newGuard->Health -= Damage; if (newGuard->Health <= 0)//increase the power meter if the guard is dead { CurrentPower += 10; IncreaseCurrentHealth(); CheckPower(); } } } }