void OnActivate(PlayerPointer pPlayer) { if(pPlayer->getLevel() >= 70) { //pPlayer->SafeTeleport(530, 4080, 12803.374023f, -6907.089844f, 41.114765f, 2.251736f); pPlayer->CastSpell(pPlayer, dbcSpell.LookupEntry(44870), true); } else if(pPlayer->getLevel() <= 69) { pPlayer->BroadcastMessage("You must be level 70 to use this!"); } }
void OnActivate(PlayerPointer pPlayer) { if(pPlayer->HasFinishedQuest(7761) && pPlayer->getLevel() >= 58 && pPlayer->InGroup() == true) { pPlayer->SafeTeleport(469, 0, -7672.939941f, -1107.307617f, 396.649994f, 0.616532f); } else if(pPlayer->getLevel() <= 57 || pPlayer->HasFinishedQuest(7761) == false) { pPlayer->BroadcastMessage("You need to be level 58 and have completed the quest : Blackhand's Command"); } else if(pPlayer->HasFinishedQuest(7761) == true && pPlayer->getLevel() >= 58 && pPlayer->InGroup() == false) { pPlayer->BroadcastMessage("You need to be in a raid group to be able to enter this instance"); } }
void Antispam::addMessage(const std::string& msg, uint32 type, PlayerPointer from, PlayerPointer to) { if (!m_enabled || from->isGameMaster()) return; if (from->getLevel() > m_restrictionLevel) return; uint8 chatType = getConvertedChatType(type); if (chatType == A_CHAT_TYPE_MAX) return; if (m_chatMask && (m_chatMask & (1 << chatType)) == 0) return; MessageBlock messageBlock; messageBlock.fromGuid = from->GetObjectGuid(); messageBlock.fromAccount = from->GetSession()->GetAccountId(); messageBlock.toGuid = (to && !m_mergeAllWhispers ? to->GetObjectGuid() : ObjectGuid()); messageBlock.msg = msg; messageBlock.type = chatType; messageBlock.count = 1; messageBlock.time = time(nullptr); m_messageQueue.push(messageBlock); }
void ArathiBasin::HookGenerateLoot(PlayerPointer plr, CorpsePointer pCorpse) { // add some money float gold = ((float(plr->getLevel()) / 2.5f)+1) * 100.0f; // fix this later gold *= sWorld.getRate(RATE_MONEY); // set it pCorpse->m_loot.gold = float2int32(gold); }
void GossipSelectOption(ObjectPointer pObject, PlayerPointer plr, uint32 Id, uint32 IntId, const char * Code) { GossipMenu * Menu; switch (IntId) // switch and case 0 can be deleted, but I added it, because in future maybe we will have to expand script with more options. { case 0: GossipHello(pObject, plr, true); break; case 1: { if (!plr->_HasSkillLine(164) || plr->_GetSkillLineCurrent(164, false) < 300) { //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Only skilled blacksmiths can obtain this knowledge." ); SendQuickMenu(20001); } else if (!plr->HasSpell(9787)) { //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You need to know Weaponsmith first to learn anything more from me." ); SendQuickMenu(20002); } else if (plr->HasSpell(17040)) { //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You already know that." ); SendQuickMenu(20003); } else if (plr->HasSpell(17041) || plr->HasSpell(17039) || plr->HasSpell(9788)) { //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You already know one specialization." ); SendQuickMenu(20004); } else { if ( plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 600 ) { //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You need 6 silver coins to learn this skill."); SendQuickMenu(20005); } else { //pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Make good use of this knowledge." ); SendQuickMenu(20006); CreaturePointer Trainer = TO_CREATURE(pObject); Trainer->CastSpell(plr, 39099, true); int32 gold = plr->GetUInt32Value(PLAYER_FIELD_COINAGE); plr->SetUInt32Value(PLAYER_FIELD_COINAGE, gold - 600); } } }break; case 2: { if (!plr->HasSpell(17040)) { SendQuickMenu(20007); } else if ((plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 250000 && plr->getLevel() <= 50) || (plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 500000 && plr->getLevel() > 50 && plr->getLevel() <= 65) || (plr->GetUInt32Value(PLAYER_FIELD_COINAGE) < 1000000 && plr->getLevel() > 65)) { SendQuickMenu(20008); } else { int32 unlearnGold; if (plr->getLevel() <= 50) unlearnGold = 250000; if (plr->getLevel() > 50 && plr->getLevel() <= 65) unlearnGold = 500000; if (plr->getLevel() > 65) unlearnGold = 1000000; plr->SetUInt32Value(PLAYER_FIELD_COINAGE, plr->GetUInt32Value(PLAYER_FIELD_COINAGE) - unlearnGold); plr->removeSpell(17040, false, false, 0); SendQuickMenu(20009); } }break; } }