bool Object::Process(){ if(m_type == OT_DROPPEDITEM && decay_timer.Enabled() && decay_timer.Check()) { // Send click to all clients (removes entity on client) EQApplicationPacket* outapp = new EQApplicationPacket(OP_ClickObject, sizeof(ClickObject_Struct)); ClickObject_Struct* click_object = (ClickObject_Struct*)outapp->pBuffer; click_object->drop_id = GetID(); entity_list.QueueClients(nullptr, outapp, false); safe_delete(outapp); // Remove object database.DeleteObject(m_id); return false; } if(m_ground_spawn && respawn_timer.Check()){ RandomSpawn(true); } return true; }
int main(int argc, char **argv) { std::string board = std::string(BOARD_WIDTH*BOARD_HEIGHT, '='); int p1Move = 1; int p2Move = -1; int p1Score = 0; int p2Score = 0; int fruitPos = 0; std::vector<int> player1; std::vector<int> player2; ResetBoard(board, player1, player2, fruitPos, p1Move, p2Move); bool quit = false; while (!quit) { //REMOVE FOR FINAL CODE system("cls"); //REMOVE FOR FINAL CODE //Change to receive client comamnds if (_kbhit()) { switch (_getch()) { //Player 1 Movement case 'a': if(p1Move != 1) p1Move = -1; break; case 'd': if(p1Move != -1) p1Move = 1; break; case 'w': if(p1Move != BOARD_WIDTH) p1Move = BOARD_WIDTH*-1; break; case 's': if(p1Move != BOARD_WIDTH*-1) p1Move = BOARD_WIDTH*1; break; //Player 2 Movement case 75: if(p2Move != 1) p2Move = -1; break; case 77: if(p2Move != -1) p2Move = 1; break; case 72: if(p2Move != BOARD_WIDTH) p2Move = BOARD_WIDTH*-1; break; case 80: if(p2Move != BOARD_WIDTH*-1) p2Move = BOARD_WIDTH * 1; break; } } bool gameover = false; int p1Next = player1.front() + p1Move; player1.insert(player1.begin(),p1Next); int p2Next = player2.front() + p2Move; player2.insert(player2.begin(), p2Next); if (HitBoundary(player1.front(), p1Move)) { p2Score++; gameover = true; } if (HitBoundary(player2.front(), p2Move)) { p1Score++; gameover = true; } if (!gameover) { if (fruitPos != player1.front()) player1.pop_back(); else { RandomSpawn(fruitPos, board); p1Score++; } if (fruitPos != player2.front()) player2.pop_back(); else { RandomSpawn(fruitPos, board); p2Score++; } } ClearBoard(board); if(gameover || !UpdateBoard(board, player1,player2,fruitPos,p1Score,p2Score,p1Move,p2Move)) ResetBoard(board, player1, player2, fruitPos, p1Move, p2Move); //REMOVE FOR FINAL CODE DisplayState(board,p1Score,p2Score); Sleep(100); } return 0; }
void UpdateAI(const uint32 uiDiff) { if (!UpdateVictim()) return; if (me->hasUnitState(UNIT_STAT_CASTING)) return; if (m_uiIntroText == 1 || m_uiIntroText == 2 || m_uiIntroText == 3 || m_uiIntroText == 4 || m_uiIntroText == 5 || m_uiIntroText == 6) { if (m_uiIntroTextTimer < uiDiff) { switch(m_uiIntroText) { case 1: DoScriptText(SAY_INTRO_2, me); break; case 2: DoScriptText(SAY_INTRO_3, me); break; case 3: DoScriptText(SAY_INTRO_4, me); break; case 4: DoScriptText(SAY_INTRO_5, me); break; case 5: DoScriptText(SAY_INTRO_6, me); break; case 6: DoScriptText(SAY_INTRO_7, me); break; } m_uiIntroText++; m_uiIntroTextTimer = 10500; } else m_uiIntroTextTimer -= uiDiff; } if (m_uiResetTimer <= uiDiff) { if (me->GetDistance2d(me->GetHomePosition().GetPositionX(), me->GetHomePosition().GetPositionY()) > 100) EnterEvadeMode(); m_uiResetTimer = 5000; } else m_uiResetTimer -= uiDiff; if (m_uiBerserkTimer < uiDiff) { DoCast(me, SPELL_BERSERK); DoScriptText(SAY_BERSERK, me); m_uiBerserkTimer = 600000; } else m_uiBerserkTimer -= uiDiff; if (m_uiDeathandDecayTimer < uiDiff) { Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1); DoCast(pTarget, RAID_MODE(SPELL_DEATH_AND_DECAY_10_NORMAL,SPELL_DEATH_AND_DECAY_25_NORMAL,SPELL_DEATH_AND_DECAY_10_HEROIC,SPELL_DEATH_AND_DECAY_25_HEROIC)); m_uiDeathandDecayTimer = 11000; } else m_uiDeathandDecayTimer -= uiDiff; if (m_uiDarkEmpoweredTimer < uiDiff) { DoScriptText(SAY_EMPOWERMENT, me); switch(rand() % 2) { case 0: AdherentList(me); break; case 1: FanaticList(me); break; } m_uiDarkEmpoweredTimer = 20000; } else m_uiDarkEmpoweredTimer -= uiDiff; if (m_uiDominateMindTimer < uiDiff) { uint32 count = RAID_MODE(0,1,1,3); for (uint8 i = 1; i <= count; i++) { Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1); if (pTarget && !pTarget->HasAura(71289)) { DoCast(pTarget, SPELL_DOMINATE_MIND); DoScriptText(SAY_DOMINATE_MIND, me); } } m_uiDominateMindTimer = 12000; } else m_uiDominateMindTimer -= uiDiff; if (m_uiPhase == 1) { if (me->GetPower(POWER_MANA) == 100000) { me->MonsterTextEmote(EMOTE_MANA_BARRIER,NULL); } if (m_uiShadowBoltTimer < uiDiff) { Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1); DoCast(pTarget, RAID_MODE(SPELL_SHADOW_BOLT_10_NORMAL,SPELL_SHADOW_BOLT_25_NORMAL,SPELL_SHADOW_BOLT_10_HEROIC,SPELL_SHADOW_BOLT_25_HEROIC)); m_uiShadowBoltTimer = 5000; } else m_uiShadowBoltTimer -= uiDiff; if (m_uiSummonWaveTimer < uiDiff) { if (getDifficulty() == RAID_DIFFICULTY_10MAN_NORMAL || getDifficulty() == RAID_DIFFICULTY_10MAN_HEROIC) { RandomSpawn(); } if (getDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL || getDifficulty() == RAID_DIFFICULTY_25MAN_HEROIC) { me->SummonCreature(NPC_CULT_FANATIC,-619.006,2158.104,50.848,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); me->SummonCreature(NPC_CULT_ADHERENT,-598.697,2157.767,50.848,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); me->SummonCreature(NPC_CULT_FANATIC,-577.992,2156.989,50.848,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); me->SummonCreature(NPC_CULT_ADHERENT,-618.748,2266.648,50.849,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); me->SummonCreature(NPC_CULT_FANATIC,-598.573,2266.870,50.849,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); me->SummonCreature(NPC_CULT_ADHERENT,-578.360,2267.210,50.849,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); me->SummonCreature(RAND(NPC_CULT_FANATIC, NPC_CULT_ADHERENT), -555.643,2211.281,49.476,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); } m_uiSummonWaveTimer = 60000; } else m_uiSummonWaveTimer -= uiDiff; if ((me->GetPower(POWER_MANA)*100 / me->GetMaxPower(POWER_MANA)) < 1) { me->MonsterTextEmote(EMOTE_MANA_BARRIER,NULL); DoScriptText(SAY_PHASE_2, me); DoResetThreat(); m_uiPhase = 2; } } if (m_uiPhase == 2) { if (me->HasAura(SPELL_MANA_BARRIER)) me->RemoveAurasDueToSpell(SPELL_MANA_BARRIER); if (me->HasAura(SPELL_ROOT)) me->RemoveAurasDueToSpell(SPELL_ROOT); if (m_uiFrostBoltTimer < uiDiff) { Unit* pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,0); me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, false); DoCast(pTarget, RAID_MODE(SPELL_FROST_BOLT_10_NORMAL,SPELL_FROST_BOLT_25_NORMAL,SPELL_FROST_BOLT_10_HEROIC,SPELL_FROST_BOLT_25_HEROIC)); m_uiFrostBoltTimer = 5000; } else m_uiFrostBoltTimer -= uiDiff; if (m_uiFrostValleyTimer < uiDiff) { me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, true); DoCastAOE(RAID_MODE(SPELL_FROST_BOLT_VALLEY_10_NORMAL,SPELL_FROST_BOLT_VALLEY_25_NORMAL,SPELL_FROST_BOLT_VALLEY_10_HEROIC,SPELL_FROST_BOLT_VALLEY_25_HEROIC)); m_uiFrostValleyTimer = 15000; } else m_uiFrostValleyTimer -= uiDiff; if (m_uiInsignificanceTimer < uiDiff) { Unit* pTarget = SelectUnit(SELECT_TARGET_TOPAGGRO,0); DoCast(pTarget, SPELL_INSIGNIFICANCE); m_uiInsignificanceTimer = 30000; } else m_uiInsignificanceTimer -= uiDiff; if (m_uiSummonWaveTimer < uiDiff) { if (getDifficulty() == RAID_DIFFICULTY_10MAN_HEROIC) { Unit* pSummoned= NULL; me->SummonCreature(RAND(NPC_CULT_FANATIC, NPC_CULT_ADHERENT), -555.643,2211.281,49.476,0,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,10000); } if (getDifficulty() == RAID_DIFFICULTY_25MAN_HEROIC) { RandomSpawn(); } m_uiSummonWaveTimer = 60000; } else m_uiSummonWaveTimer -= uiDiff; if (m_uiShadeTimer < uiDiff) { uint32 count = RAID_MODE(0,1,1,1); for (uint8 i = 1; i <= count; i++) { Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1); DoCast(pTarget, SPELL_SUMMON_SHADE); m_uiShadeTimer = 15000; } } else m_uiShadeTimer -= uiDiff; DoMeleeAttackIfReady(); } }
void UpdateAI(const uint32 uiDiff) { if(m_uiPhase == 1) DoStartNoMovement(me->getVictim()); else if(m_uiPhase == 2) DoStartMovement(me->getVictim()); if (m_uiIntroTimer <= uiDiff && bIntro && m_uiIntroPhase < 7) { switch (m_uiIntroPhase) { case 1: DoScriptText(SAY_INTRO_2, me); m_uiIntroTimer = 10000; break; case 2: DoScriptText(SAY_INTRO_3, me); m_uiIntroTimer = 7000; break; case 3: DoScriptText(SAY_INTRO_4, me); m_uiIntroTimer = 12000; break; case 4: DoScriptText(SAY_INTRO_5, me); m_uiIntroTimer = 7000; break; case 5: DoScriptText(SAY_INTRO_6, me); m_uiIntroTimer = 11000; break; case 6: DoScriptText(SAY_INTRO_7, me); m_uiIntroTimer = 20000; break; } ++m_uiIntroPhase; } else m_uiIntroTimer -= uiDiff; if (!UpdateVictim()) return; if (m_uiBerserkTimer < uiDiff) { DoCast(me, SPELL_BERSERK); DoScriptText(SAY_BERSERK, me); m_uiBerserkTimer = 600000; } else m_uiBerserkTimer -= uiDiff; if (m_uiCultTimer < uiDiff) { EmpowerCultist(); m_uiCultTimer = urand(20000, 23000); } else m_uiCultTimer -= uiDiff; if (m_uiDeathandDecayTimer < uiDiff) { if(Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1)) DoCast(pTarget, SPELL_DEATH_AND_DECAY); m_uiDeathandDecayTimer = 11000; } else m_uiDeathandDecayTimer -= uiDiff; if (m_uiDominateMindTimer < uiDiff) { for (uint8 i = 1; i <= RAID_MODE(0,1,1,3); ++i) { if(Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true, -SPELL_DOMINATE_MIND)) DoCast(pTarget, SPELL_DOMINATE_MIND); } DoScriptText(SAY_DOMINATE_MIND, me); m_uiDominateMindTimer = 15000; } else m_uiDominateMindTimer -= uiDiff; if (m_uiPhase == 1) { if (m_uiShadowBoltTimer < uiDiff) { if(Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 1)) DoCast(pTarget, SPELL_SHADOW_BOLT); m_uiShadowBoltTimer = 6000; } else m_uiShadowBoltTimer -= uiDiff; if (m_uiSummonWaveTimer < uiDiff) { if (Difficulty() == RAID_DIFFICULTY_10MAN_NORMAL || Difficulty() == RAID_DIFFICULTY_10MAN_HEROIC) RandomSpawn(); else { DoSummon(CREATURE_FANATIC, SpawnLoc[0]); DoSummon(CREATURE_ADHERENT, SpawnLoc[1]); DoSummon(CREATURE_FANATIC, SpawnLoc[2]); DoSummon(CREATURE_ADHERENT, SpawnLoc[3]); DoSummon(CREATURE_FANATIC, SpawnLoc[4]); DoSummon(CREATURE_ADHERENT, SpawnLoc[5]); DoSummon(RAND(CREATURE_FANATIC,CREATURE_ADHERENT), SpawnLoc[6]); } bFirstSummon = false ? true : true; m_uiSummonWaveTimer = !bFirstSummon ? 10000 : 60000; } else m_uiSummonWaveTimer -= uiDiff; } if (m_uiPhase == 2) { if (m_uiFrostBoltTimer < uiDiff) { DoCast(me->getVictim(), SPELL_FROST_BOLT); m_uiFrostBoltTimer = 10000; } else m_uiFrostBoltTimer -= uiDiff; if (m_uiFrostValleyTimer < uiDiff) { DoCast(SPELL_FROST_BOLT_VALLEY); m_uiFrostValleyTimer = 19000; } else m_uiFrostValleyTimer -= uiDiff; if (m_uiInsignificanceTimer < uiDiff) { DoCast(me->getVictim(), SPELL_INSIGNIFICANCE); m_uiInsignificanceTimer = 8000; } else m_uiInsignificanceTimer -= uiDiff; if (m_uiSummonWaveTimer < uiDiff) { if (Difficulty() == RAID_DIFFICULTY_10MAN_HEROIC) DoSummon(RAND(CREATURE_FANATIC,CREATURE_ADHERENT), SpawnLoc[6]); if (Difficulty() == RAID_DIFFICULTY_25MAN_HEROIC) RandomSpawn(); m_uiSummonWaveTimer = 60000; } else m_uiSummonWaveTimer -= uiDiff; if (m_uiShadeTimer < uiDiff) { DoCast(SPELL_SUMMON_SHADE); m_uiShadeTimer = 15000; } else m_uiShadeTimer -= uiDiff; DoMeleeAttackIfReady(); } }