- Timestamp:
- 11/19/08 13:39:06 (17 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 10 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/Chat.cpp
r129 r132 387 387 { "info", SEC_ADMINISTRATOR, false, &ChatHandler::HandleNpcInfoCommand, "", NULL }, 388 388 { "playemote", SEC_ADMINISTRATOR, false, &ChatHandler::HandlePlayEmoteCommand, "", NULL }, 389 { "follow", SEC_GAMEMASTER, false, &ChatHandler::HandleNpcFollowCommand, "", NULL }, 390 { "unfollow", SEC_GAMEMASTER, false, &ChatHandler::HandleNpcUnFollowCommand, "", NULL }, 389 391 390 392 //{ TODO: fix or remove this commands … … 511 513 { "explorecheat", SEC_ADMINISTRATOR, false, &ChatHandler::HandleExploreCheatCommand, "", NULL }, 512 514 { "hover", SEC_ADMINISTRATOR, false, &ChatHandler::HandleHoverCommand, "", NULL }, 515 { "waterwalk", SEC_ADMINISTRATOR, false, &ChatHandler::HandleWaterwalkCommand, "", NULL }, 513 516 { "levelup", SEC_ADMINISTRATOR, false, &ChatHandler::HandleLevelUpCommand, "", NULL }, 514 517 { "showarea", SEC_ADMINISTRATOR, false, &ChatHandler::HandleShowAreaCommand, "", NULL }, … … 536 539 { "damage", SEC_ADMINISTRATOR, false, &ChatHandler::HandleDamageCommand, "", NULL }, 537 540 { "combatstop", SEC_GAMEMASTER, false, &ChatHandler::HandleCombatStopCommand, "", NULL }, 538 { "chardelete", SEC_CONSOLE, true, &ChatHandler::HandleC ombatStopCommand, "", NULL },541 { "chardelete", SEC_CONSOLE, true, &ChatHandler::HandleCharDeleteCommand, "", NULL }, 539 542 { "sendmessage", SEC_ADMINISTRATOR, true, &ChatHandler::HandleSendMessageCommand, "", NULL }, 543 { "repairitems", SEC_GAMEMASTER, false, &ChatHandler::HandleRepairitemsCommand, "", NULL }, 540 544 { "freeze", SEC_ADMINISTRATOR, false, &ChatHandler::HandleFreezeCommand, "", NULL }, 541 545 { "unfreeze", SEC_ADMINISTRATOR, false, &ChatHandler::HandleUnFreezeCommand, "", NULL }, … … 1208 1212 } 1209 1213 1214 const char *ChatHandler::GetName() const 1215 { 1216 return m_session->GetPlayer()->GetName(); 1217 } 1218 1219 bool ChatHandler::needReportToTarget(Player* chr) const 1220 { 1221 Player* pl = m_session->GetPlayer(); 1222 return pl != chr && pl->IsVisibleGloballyFor(chr); 1223 } 1224 1210 1225 const char *CliHandler::GetTrinityString(int32 entry) const 1211 1226 { … … 1223 1238 m_print(str); 1224 1239 m_print("\r\n"); 1240 } 1241 1242 const char *CliHandler::GetName() const 1243 { 1244 return GetTrinityString(LANG_CONSOLE_COMMAND); 1245 } 1246 1247 bool CliHandler::needReportToTarget(Player* /*chr*/) const 1248 { 1249 return true; 1225 1250 } 1226 1251 -
trunk/src/game/Chat.h
r112 r132 72 72 int ParseCommands(const char* text); 73 73 74 virtual char const* GetName() const; 74 75 protected: 75 76 explicit ChatHandler() : m_session(NULL) {} // for CLI subclass … … 78 79 79 80 virtual bool isAvailable(ChatCommand const& cmd) const; 81 virtual bool needReportToTarget(Player* chr) const; 80 82 81 83 void SendGlobalSysMessage(const char *str); … … 151 153 bool HandleModifyRepCommand(const char* args); 152 154 bool HandleModifyArenaCommand(const char* args); 155 156 bool HandleNpcFollowCommand(const char* args); 157 bool HandleNpcUnFollowCommand(const char* args); 153 158 154 159 bool HandleReloadCommand(const char* args); … … 350 355 bool HandleNpcInfoCommand(const char* args); 351 356 bool HandleHoverCommand(const char* args); 357 bool HandleWaterwalkCommand(const char* args); 352 358 bool HandleLevelUpCommand(const char* args); 353 359 bool HandleShowAreaCommand(const char* args); … … 417 423 bool HandleComeToMeCommand(const char *args); 418 424 bool HandleCombatStopCommand(const char *args); 425 bool HandleCharDeleteCommand(const char *args); 419 426 bool HandleSendMessageCommand(const char * args); 427 bool HandleRepairitemsCommand(const char* args); 420 428 bool HandleFlushArenaPointsCommand(const char *args); 421 429 … … 474 482 bool isAvailable(ChatCommand const& cmd) const; 475 483 void SendSysMessage(const char *str); 484 char const* GetName() const; 485 bool needReportToTarget(Player* chr) const; 476 486 477 487 private: -
trunk/src/game/Group.cpp
r111 r132 45 45 m_looterGuid = 0; 46 46 m_lootThreshold = ITEM_QUALITY_UNCOMMON; 47 m_subGroupsCounts = NULL; 47 48 48 49 for(int i=0; i<TARGETICONCOUNT; i++) … … 74 75 for(BoundInstancesMap::iterator itr = m_boundInstances[i].begin(); itr != m_boundInstances[i].end(); ++itr) 75 76 itr->second.save->RemoveGroup(this); 77 if (m_subGroupsCounts) 78 delete[] m_subGroupsCounts; 76 79 } 77 80 … … 82 85 83 86 m_groupType = isBGGroup() ? GROUPTYPE_RAID : GROUPTYPE_NORMAL; 87 88 if (m_groupType == GROUPTYPE_RAID) 89 _initRaidSubGroupsCounter(); 90 84 91 m_lootMethod = GROUP_LOOT; 85 92 m_lootThreshold = ITEM_QUALITY_UNCOMMON; … … 137 144 138 145 m_groupType = (*result)[13].GetBool() ? GROUPTYPE_RAID : GROUPTYPE_NORMAL; 146 147 if (m_groupType == GROUPTYPE_RAID) 148 _initRaidSubGroupsCounter(); 149 139 150 m_difficulty = (*result)[14].GetUInt8(); 140 151 m_mainTank = (*result)[0].GetUInt64(); … … 179 190 member.assistant = assistant; 180 191 m_memberSlots.push_back(member); 192 193 SubGroupCounterIncrease(subgroup); 194 181 195 return true; 196 } 197 198 void Group::ConvertToRaid() 199 { 200 m_groupType = GROUPTYPE_RAID; 201 202 _initRaidSubGroupsCounter(); 203 204 if(!isBGGroup()) CharacterDatabase.PExecute("UPDATE groups SET isRaid = 1 WHERE leaderGuid='%u'", GUID_LOPART(m_leaderGuid)); 205 SendUpdate(); 182 206 } 183 207 … … 387 411 } 388 412 389 void Group::SendLootRoll( uint64 SourceGuid, uint64TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r)413 void Group::SendLootRoll(const uint64& SourceGuid, const uint64& TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r) 390 414 { 391 415 WorldPacket data(SMSG_LOOT_ROLL, (8+4+8+4+4+4+1+1)); … … 411 435 } 412 436 413 void Group::SendLootRollWon( uint64 SourceGuid, uint64TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r)437 void Group::SendLootRollWon(const uint64& SourceGuid, const uint64& TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r) 414 438 { 415 439 WorldPacket data(SMSG_LOOT_ROLL_WON, (8+4+4+4+4+8+1+1)); … … 454 478 } 455 479 456 void Group::GroupLoot( uint64playerGUID, Loot *loot, Creature *creature)480 void Group::GroupLoot(const uint64& playerGUID, Loot *loot, Creature *creature) 457 481 { 458 482 std::vector<LootItem>::iterator i; … … 510 534 } 511 535 512 void Group::NeedBeforeGreed( uint64playerGUID, Loot *loot, Creature *creature)536 void Group::NeedBeforeGreed(const uint64& playerGUID, Loot *loot, Creature *creature) 513 537 { 514 538 ItemPrototype const *item; … … 564 588 } 565 589 566 void Group::MasterLoot( uint64playerGUID, Loot* /*loot*/, Creature *creature)590 void Group::MasterLoot(const uint64& playerGUID, Loot* /*loot*/, Creature *creature) 567 591 { 568 592 Player *player = objmgr.GetPlayer(playerGUID); … … 600 624 } 601 625 602 void Group::CountRollVote( uint64 playerGUID, uint64Guid, uint32 NumberOfPlayers, uint8 Choise)626 void Group::CountRollVote(const uint64& playerGUID, const uint64& Guid, uint32 NumberOfPlayers, uint8 Choise) 603 627 { 604 628 Rolls::iterator rollI = GetRoll(Guid); … … 936 960 // get first not-full group 937 961 uint8 groupid = 0; 938 std::vector<uint8> temp(MAXRAIDSIZE/MAXGROUPSIZE); 939 for(member_citerator itr = m_memberSlots.begin(); itr != m_memberSlots.end(); ++itr) 940 { 941 if (itr->group >= temp.size()) continue; 942 ++temp[itr->group]; 943 if(temp[groupid] >= MAXGROUPSIZE) 944 ++groupid; 962 if (m_subGroupsCounts) 963 { 964 bool groupFound = false; 965 for (; groupid < MAXRAIDSIZE/MAXGROUPSIZE; ++groupid) 966 { 967 if (m_subGroupsCounts[groupid] < MAXGROUPSIZE) 968 { 969 groupFound = true; 970 break; 971 } 972 } 973 // We are raid group and no one slot is free 974 if (!groupFound) 975 return false; 945 976 } 946 977 … … 964 995 member.assistant = isAssistant; 965 996 m_memberSlots.push_back(member); 997 998 SubGroupCounterIncrease(group); 966 999 967 1000 if(player) … … 1002 1035 member_witerator slot = _getMemberWSlot(guid); 1003 1036 if (slot != m_memberSlots.end()) 1037 { 1038 SubGroupCounterDecrease(slot->group); 1004 1039 m_memberSlots.erase(slot); 1040 } 1005 1041 1006 1042 if(!isBGGroup()) … … 1095 1131 } 1096 1132 1097 void Group::_convertToRaid()1098 {1099 m_groupType = GROUPTYPE_RAID;1100 1101 if(!isBGGroup()) CharacterDatabase.PExecute("UPDATE groups SET isRaid = 1 WHERE leaderGuid='%u'", GUID_LOPART(m_leaderGuid));1102 }1103 1104 1133 bool Group::_setMembersGroup(const uint64 &guid, const uint8 &group) 1105 1134 { … … 1109 1138 1110 1139 slot->group = group; 1140 1141 SubGroupCounterIncrease(group); 1142 1111 1143 if(!isBGGroup()) CharacterDatabase.PExecute("UPDATE group_member SET subgroup='%u' WHERE memberGuid='%u'", group, GUID_LOPART(guid)); 1144 1112 1145 return true; 1113 1146 } … … 1165 1198 if (!player) 1166 1199 { 1200 uint8 prevSubGroup; 1201 prevSubGroup = GetMemberGroup(guid); 1202 1203 SubGroupCounterDecrease(prevSubGroup); 1204 1167 1205 if(_setMembersGroup(guid, group)) 1168 1206 SendUpdate(); 1169 1207 } 1170 else ChangeMembersGroup(player, group); 1208 else 1209 ChangeMembersGroup(player, group); 1171 1210 } 1172 1211 … … 1178 1217 if(_setMembersGroup(player->GetGUID(), group)) 1179 1218 { 1219 uint8 prevSubGroup; 1220 prevSubGroup = player->GetSubGroup(); 1221 1222 SubGroupCounterDecrease(prevSubGroup); 1223 1180 1224 player->GetGroupRef().setSubGroup(group); 1181 1225 SendUpdate(); -
trunk/src/game/Group.h
r111 r132 184 184 185 185 // member manipulation methods 186 bool IsMember( uint64guid) const { return _getMemberCSlot(guid) != m_memberSlots.end(); }187 bool IsLeader(uint64guid) const { return (GetLeaderGUID() == guid); }186 bool IsMember(const uint64& guid) const { return _getMemberCSlot(guid) != m_memberSlots.end(); } 187 bool IsLeader(const uint64& guid) const { return (GetLeaderGUID() == guid); } 188 188 bool IsAssistant(uint64 guid) const 189 189 { … … 195 195 } 196 196 197 bool SameSubGroup(uint64 guid1, uint64guid2) const197 bool SameSubGroup(uint64 guid1,const uint64& guid2) const 198 198 { 199 199 member_citerator mslot2 = _getMemberCSlot(guid2); … … 212 212 return (mslot1->group==slot2->group); 213 213 } 214 215 bool HasFreeSlotSubGroup(uint8 subgroup) const 216 { 217 return (m_subGroupsCounts && m_subGroupsCounts[subgroup] < MAXGROUPSIZE); 218 } 214 219 215 220 bool SameSubGroup(Player const* member1, Player const* member2) const; … … 229 234 230 235 // some additional raid methods 231 void ConvertToRaid() 232 { 233 _convertToRaid(); 234 SendUpdate(); 235 } 236 void ConvertToRaid(); 237 236 238 void SetBattlegroundGroup(BattleGround *bg) { m_bgGroup = bg; } 237 239 uint32 CanJoinBattleGroundQueue(uint32 bgTypeId, uint32 bgQueueType, uint32 MinPlayerCount, uint32 MaxPlayerCount, bool isRated, uint32 arenaSlot); … … 240 242 void ChangeMembersGroup(Player *player, const uint8 &group); 241 243 242 void SetAssistant( const uint64 &guid, const bool &state)244 void SetAssistant(uint64 guid, const bool &state) 243 245 { 244 246 if(!isRaidGroup()) … … 247 249 SendUpdate(); 248 250 } 249 void SetMainTank( const uint64 &guid)251 void SetMainTank(uint64 guid) 250 252 { 251 253 if(!isRaidGroup()) … … 255 257 SendUpdate(); 256 258 } 257 void SetMainAssistant( const uint64 &guid)259 void SetMainAssistant(uint64 guid) 258 260 { 259 261 if(!isRaidGroup()) … … 286 288 287 289 void SendLootStartRoll(uint32 CountDown, const Roll &r); 288 void SendLootRoll( uint64 SourceGuid, uint64TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r);289 void SendLootRollWon( uint64 SourceGuid, uint64TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r);290 void SendLootRoll(const uint64& SourceGuid, const uint64& TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r); 291 void SendLootRollWon(const uint64& SourceGuid, const uint64& TargetGuid, uint8 RollNumber, uint8 RollType, const Roll &r); 290 292 void SendLootAllPassed(uint32 NumberOfPlayers, const Roll &r); 291 void GroupLoot( uint64playerGUID, Loot *loot, Creature *creature);292 void NeedBeforeGreed(uint64playerGUID, Loot *loot, Creature *creature);293 void MasterLoot(uint64playerGUID, Loot *loot, Creature *creature);293 void GroupLoot(const uint64& playerGUID, Loot *loot, Creature *creature); 294 void NeedBeforeGreed(const uint64& playerGUID, Loot *loot, Creature *creature); 295 void MasterLoot(const uint64& playerGUID, Loot *loot, Creature *creature); 294 296 Rolls::iterator GetRoll(uint64 Guid) 295 297 { … … 305 307 } 306 308 void CountTheRoll(Rolls::iterator roll, uint32 NumberOfPlayers); 307 void CountRollVote( uint64 playerGUID, uint64Guid, uint32 NumberOfPlayers, uint8 Choise);309 void CountRollVote(const uint64& playerGUID, const uint64& Guid, uint32 NumberOfPlayers, uint8 Choise); 308 310 void EndRoll(); 309 311 … … 324 326 void _removeRolls(const uint64 &guid); 325 327 326 void _convertToRaid();327 328 bool _setMembersGroup(const uint64 &guid, const uint8 &group); 328 329 bool _setAssistantFlag(const uint64 &guid, const bool &state); … … 331 332 332 333 void _homebindIfInstance(Player *player); 334 335 void _initRaidSubGroupsCounter() 336 { 337 // Sub group counters initialization 338 if (!m_subGroupsCounts) 339 m_subGroupsCounts = new uint8[MAXRAIDSIZE / MAXGROUPSIZE]; 340 341 memset((void*)m_subGroupsCounts, 0, (MAXRAIDSIZE / MAXGROUPSIZE)*sizeof(uint8)); 342 343 for (member_citerator itr = m_memberSlots.begin(); itr != m_memberSlots.end(); ++itr) 344 ++m_subGroupsCounts[itr->group]; 345 } 333 346 334 347 member_citerator _getMemberCSlot(uint64 Guid) const … … 351 364 return m_memberSlots.end(); 352 365 } 366 367 void SubGroupCounterIncrease(uint8 subgroup) 368 { 369 if (m_subGroupsCounts) 370 ++m_subGroupsCounts[subgroup]; 371 } 372 373 void SubGroupCounterDecrease(uint8 subgroup) 374 { 375 if (m_subGroupsCounts) 376 --m_subGroupsCounts[subgroup]; 377 } 353 378 354 379 MemberSlotList m_memberSlots; … … 368 393 Rolls RollId; 369 394 BoundInstancesMap m_boundInstances[TOTAL_DIFFICULTIES]; 395 uint8* m_subGroupsCounts; 370 396 }; 371 397 #endif -
trunk/src/game/GroupHandler.cpp
r102 r132 552 552 if(!group->IsLeader(GetPlayer()->GetGUID()) && !group->IsAssistant(GetPlayer()->GetGUID())) 553 553 return; 554 555 if (!group->HasFreeSlotSubGroup(groupNr)) 556 return; 554 557 /********************/ 555 558 -
trunk/src/game/Language.h
r112 r132 168 168 LANG_SOUND_NOT_EXIST = 170, 169 169 LANG_TELEPORTED_TO_BY_CONSOLE = 171, 170 // Room for more level 1 172-199 not used 170 LANG_CONSOLE_COMMAND = 172, 171 // Room for more level 1 173-199 not used 171 172 172 173 // level 2 chat … … 317 318 LANG_GM_CHAT_ON = 334, 318 319 LANG_GM_CHAT_OFF = 335, 319 // Room for more level 2 336-399 not used 320 LANG_YOU_REPAIR_ITEMS = 336, 321 LANG_YOUR_ITEMS_REPAIRED = 337, 322 LANG_YOU_SET_WATERWALK = 338, 323 LANG_YOUR_WATERWALK_SET = 339, 324 LANG_CREATURE_FOLLOW_YOU_NOW = 340, 325 LANG_CREATURE_NOT_FOLLOW_YOU = 341, 326 LANG_CREATURE_NOT_FOLLOW_YOU_NOW = 342, 327 // Room for more level 2 343-399 not used 320 328 321 329 // level 3 chat … … 709 717 // Room for more level 3 1119-1199 not used 710 718 711 // Trinity custom patches 5000-9999719 // Trinity strings 5000-9999 712 720 LANG_COMMAND_FREEZE = 5000, 713 721 LANG_COMMAND_FREEZE_ERROR = 5001, … … 717 725 LANG_COMMAND_LIST_FREEZE = 5005, 718 726 LANG_COMMAND_FROZEN_PLAYERS = 5006, 719 // Room for more Trinity custom patches 5007-9999 727 LANG_INSTANCE_MUST_RAID_GRP = 5007, 728 LANG_INSTANCE_NOT_AS_GHOST = 5008, 729 // Room for more Trinity strings 5009-9999 720 730 721 731 // Use for not-in-svn patches 10000-10999 -
trunk/src/game/Level1.cpp
r112 r132 325 325 326 326 sLog.outDebug("Player %s GPS call for %s '%s' (%s: %u):", 327 m_session->GetPlayer()->GetName(),327 GetName(), 328 328 (obj->GetTypeId() == TYPEID_PLAYER ? "player" : "creature"), obj->GetName(), 329 329 (obj->GetTypeId() == TYPEID_PLAYER ? "GUID" : "Entry"), (obj->GetTypeId() == TYPEID_PLAYER ? obj->GetGUIDLow(): obj->GetEntry()) ); … … 397 397 398 398 PSendSysMessage(LANG_SUMMONING, chr->GetName(),""); 399 400 if (m_session->GetPlayer()->IsVisibleGloballyFor(chr)) 401 ChatHandler(chr).PSendSysMessage(LANG_SUMMONED_BY, m_session->GetPlayer()->GetName()); 399 if (needReportToTarget(chr)) 400 ChatHandler(chr).PSendSysMessage(LANG_SUMMONED_BY, GetName()); 402 401 403 402 // stop flight if need … … 698 697 699 698 PSendSysMessage(LANG_YOU_CHANGE_HP, chr->GetName(), hp, hpm); 700 ChatHandler(chr).PSendSysMessage(LANG_YOURS_HP_CHANGED, m_session->GetPlayer()->GetName(), hp, hpm); 699 if (needReportToTarget(chr)) 700 ChatHandler(chr).PSendSysMessage(LANG_YOURS_HP_CHANGED, GetName(), hp, hpm); 701 701 702 702 chr->SetMaxHealth( hpm ); … … 741 741 742 742 PSendSysMessage(LANG_YOU_CHANGE_MANA, chr->GetName(), mana, manam); 743 ChatHandler(chr).PSendSysMessage(LANG_YOURS_MANA_CHANGED, m_session->GetPlayer()->GetName(), mana, manam); 743 if (needReportToTarget(chr)) 744 ChatHandler(chr).PSendSysMessage(LANG_YOURS_MANA_CHANGED, GetName(), mana, manam); 744 745 745 746 chr->SetMaxPower(POWER_MANA,manam ); … … 785 786 786 787 PSendSysMessage(LANG_YOU_CHANGE_ENERGY, chr->GetName(), energy/10, energym/10); 787 ChatHandler(chr).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, m_session->GetPlayer()->GetName(), energy/10, energym/10); 788 if (needReportToTarget(chr)) 789 ChatHandler(chr).PSendSysMessage(LANG_YOURS_ENERGY_CHANGED, GetName(), energy/10, energym/10); 788 790 789 791 chr->SetMaxPower(POWER_ENERGY,energym ); … … 831 833 832 834 PSendSysMessage(LANG_YOU_CHANGE_RAGE, chr->GetName(), rage/10, ragem/10); 833 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_RAGE_CHANGED), m_session->GetPlayer()->GetName(), rage/10, ragem/10); 835 if (needReportToTarget(chr)) 836 ChatHandler(chr).PSendSysMessage(LANG_YOURS_RAGE_CHANGED, GetName(), rage/10, ragem/10); 834 837 835 838 chr->SetMaxPower(POWER_RAGE,ragem ); … … 908 911 909 912 PSendSysMessage(LANG_YOU_CHANGE_FACTION, chr->GetGUIDLow(),factionid,flag,npcflag,dyflag); 910 911 //sprintf((char*)buf,"%s changed your Faction to %i.", m_session->GetPlayer()->GetName(), factionid);912 //FillSystemMessageData(&data, m_session, buf);913 914 //chr->GetSession()->SendPacket(&data);915 913 916 914 chr->setFaction(factionid); … … 959 957 960 958 PSendSysMessage(LANG_YOU_CHANGE_SPELLFLATID, spellflatid, val, mark, chr->GetName()); 961 if (chr != m_session->GetPlayer())962 ChatHandler(chr).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, m_session->GetPlayer()->GetName(), spellflatid, val, mark);959 if (needReportToTarget(chr)) 960 ChatHandler(chr).PSendSysMessage(LANG_YOURS_SPELLFLATID_CHANGED, GetName(), spellflatid, val, mark); 963 961 964 962 WorldPacket data(SMSG_SET_FLAT_SPELL_MODIFIER, (1+1+2+2)); … … 1016 1014 chr->SetTaxiCheater(true); 1017 1015 PSendSysMessage(LANG_YOU_GIVE_TAXIS, chr->GetName()); 1018 1019 if(chr != m_session->GetPlayer()) 1020 // to send localized data to target 1021 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_TAXIS_ADDED), m_session->GetPlayer()->GetName()); 1016 if (needReportToTarget(chr)) 1017 ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_ADDED, GetName()); 1022 1018 return true; 1023 1019 } … … 1027 1023 chr->SetTaxiCheater(false); 1028 1024 PSendSysMessage(LANG_YOU_REMOVE_TAXIS, chr->GetName()); 1029 1030 if(chr != m_session->GetPlayer()) 1031 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_TAXIS_REMOVED), m_session->GetPlayer()->GetName()); 1025 if (needReportToTarget(chr)) 1026 ChatHandler(chr).PSendSysMessage(LANG_YOURS_TAXIS_REMOVED, GetName()); 1032 1027 1033 1028 return true; … … 1070 1065 1071 1066 PSendSysMessage(LANG_YOU_CHANGE_ASPEED, ASpeed, chr->GetName()); 1072 1073 if(chr != m_session->GetPlayer()) 1074 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_ASPEED_CHANGED), m_session->GetPlayer()->GetName(), ASpeed); 1067 if (needReportToTarget(chr)) 1068 ChatHandler(chr).PSendSysMessage(LANG_YOURS_ASPEED_CHANGED, GetName(), ASpeed); 1075 1069 1076 1070 chr->SetSpeed(MOVE_WALK, ASpeed,true); … … 1113 1107 1114 1108 PSendSysMessage(LANG_YOU_CHANGE_SPEED, Speed, chr->GetName()); 1115 1116 if(chr != m_session->GetPlayer()) 1117 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_SPEED_CHANGED), m_session->GetPlayer()->GetName(), Speed); 1109 if (needReportToTarget(chr)) 1110 ChatHandler(chr).PSendSysMessage(LANG_YOURS_SPEED_CHANGED, GetName(), Speed); 1118 1111 1119 1112 chr->SetSpeed(MOVE_RUN,Speed,true); … … 1153 1146 1154 1147 PSendSysMessage(LANG_YOU_CHANGE_SWIM_SPEED, Swim, chr->GetName()); 1155 1156 if(chr != m_session->GetPlayer()) 1157 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_SWIM_SPEED_CHANGED), m_session->GetPlayer()->GetName(), Swim); 1148 if (needReportToTarget(chr)) 1149 ChatHandler(chr).PSendSysMessage(LANG_YOURS_SWIM_SPEED_CHANGED, GetName(), Swim); 1158 1150 1159 1151 chr->SetSpeed(MOVE_SWIM,Swim,true); … … 1193 1185 1194 1186 PSendSysMessage(LANG_YOU_CHANGE_BACK_SPEED, BSpeed, chr->GetName()); 1195 1196 if(chr != m_session->GetPlayer()) 1197 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_BACK_SPEED_CHANGED), m_session->GetPlayer()->GetName(), BSpeed); 1187 if (needReportToTarget(chr)) 1188 ChatHandler(chr).PSendSysMessage(LANG_YOURS_BACK_SPEED_CHANGED, GetName(), BSpeed); 1198 1189 1199 1190 chr->SetSpeed(MOVE_WALKBACK,BSpeed,true); … … 1226 1217 1227 1218 PSendSysMessage(LANG_YOU_CHANGE_FLY_SPEED, FSpeed, chr->GetName()); 1228 1229 if(chr != m_session->GetPlayer()) 1230 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_FLY_SPEED_CHANGED), m_session->GetPlayer()->GetName(), FSpeed); 1219 if (needReportToTarget(chr)) 1220 ChatHandler(chr).PSendSysMessage(LANG_YOURS_FLY_SPEED_CHANGED, GetName(), FSpeed); 1231 1221 1232 1222 chr->SetSpeed(MOVE_FLY,FSpeed,true); … … 1258 1248 1259 1249 PSendSysMessage(LANG_YOU_CHANGE_SIZE, Scale, chr->GetName()); 1260 1261 if(chr != m_session->GetPlayer()) 1262 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_SIZE_CHANGED), m_session->GetPlayer()->GetName(), Scale); 1250 if (needReportToTarget(chr)) 1251 ChatHandler(chr).PSendSysMessage(LANG_YOURS_SIZE_CHANGED, GetName(), Scale); 1263 1252 1264 1253 chr->SetFloatValue(OBJECT_FIELD_SCALE_X, Scale); … … 1502 1491 1503 1492 PSendSysMessage(LANG_YOU_GIVE_MOUNT, chr->GetName()); 1504 1505 if(chr != m_session->GetPlayer()) 1506 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_MOUNT_GIVED), m_session->GetPlayer()->GetName()); 1493 if (needReportToTarget(chr)) 1494 ChatHandler(chr).PSendSysMessage(LANG_MOUNT_GIVED, GetName()); 1507 1495 1508 1496 chr->SetUInt32Value( UNIT_FIELD_FLAGS , 0x001000 ); … … 1551 1539 { 1552 1540 PSendSysMessage(LANG_YOU_TAKE_ALL_MONEY, chr->GetName()); 1553 1554 if(chr != m_session->GetPlayer()) 1555 ChatHandler(chr).PSendSysMessage(ChatHandler(chr).GetTrinityString(LANG_YOURS_ALL_MONEY_GONE), m_session->GetPlayer()->GetName()); 1541 if (needReportToTarget(chr)) 1542 ChatHandler(chr).PSendSysMessage(LANG_YOURS_ALL_MONEY_GONE, GetName()); 1556 1543 1557 1544 chr->SetMoney(0); … … 1560 1547 { 1561 1548 PSendSysMessage(LANG_YOU_TAKE_MONEY, abs(addmoney), chr->GetName()); 1562 if (chr != m_session->GetPlayer())1563 ChatHandler(chr).PSendSysMessage( ChatHandler(chr).GetTrinityString(LANG_YOURS_MONEY_TAKEN), m_session->GetPlayer()->GetName(), abs(addmoney));1549 if (needReportToTarget(chr)) 1550 ChatHandler(chr).PSendSysMessage(LANG_YOURS_MONEY_TAKEN, GetName(), abs(addmoney)); 1564 1551 chr->SetMoney( newmoney ); 1565 1552 } … … 1568 1555 { 1569 1556 PSendSysMessage(LANG_YOU_GIVE_MONEY, addmoney, chr->GetName()); 1570 if (chr != m_session->GetPlayer())1571 ChatHandler(chr).PSendSysMessage( ChatHandler(chr).GetTrinityString(LANG_YOURS_MONEY_GIVEN), m_session->GetPlayer()->GetName(), addmoney);1557 if (needReportToTarget(chr)) 1558 ChatHandler(chr).PSendSysMessage(LANG_YOURS_MONEY_GIVEN, GetName(), addmoney); 1572 1559 chr->ModifyMoney( addmoney ); 1573 1560 } … … 1662 1649 // id, or string, or [name] Shift-click form |color|Htele:id|h[name]|h|r 1663 1650 GameTele const* tele = extractGameTeleFromLink((char*)args); 1651 1664 1652 if (!tele) 1665 1653 { … … 2075 2063 2076 2064 PSendSysMessage(LANG_TELEPORTING_TO, chr->GetName(),"", tele->name.c_str()); 2077 2078 if (m_session) 2079 { 2080 if(m_session->GetPlayer()->IsVisibleGloballyFor(chr)) 2081 ChatHandler(chr).PSendSysMessage(LANG_TELEPORTED_TO_BY, m_session->GetPlayer()->GetName()); 2082 } 2083 else 2084 ChatHandler(chr).SendSysMessage(LANG_TELEPORTED_TO_BY_CONSOLE); 2065 if (needReportToTarget(chr)) 2066 ChatHandler(chr).PSendSysMessage(LANG_TELEPORTED_TO_BY, GetName()); 2085 2067 2086 2068 // stop flight if need … … 2159 2141 2160 2142 PSendSysMessage(LANG_TELEPORTING_TO, pl->GetName(),"", tele->name.c_str()); 2161 2162 if (m_session->GetPlayer() != pl && m_session->GetPlayer()->IsVisibleGloballyFor(pl)) 2163 ChatHandler(pl).PSendSysMessage(LANG_TELEPORTED_TO_BY, m_session->GetPlayer()->GetName()); 2143 if (needReportToTarget(pl)) 2144 ChatHandler(pl).PSendSysMessage(LANG_TELEPORTED_TO_BY, GetName()); 2164 2145 2165 2146 // stop flight if need … … 2253 2234 2254 2235 PSendSysMessage(LANG_SUMMONING, pl->GetName(),""); 2255 2256 if (m_session->GetPlayer()->IsVisibleGloballyFor(pl)) 2257 ChatHandler(pl).PSendSysMessage(LANG_SUMMONED_BY, m_session->GetPlayer()->GetName()); 2236 if (needReportToTarget(pl)) 2237 ChatHandler(pl).PSendSysMessage(LANG_SUMMONED_BY, GetName()); 2258 2238 2259 2239 // stop flight if need -
trunk/src/game/Level2.cpp
r112 r132 44 44 #include <map> 45 45 #include "GlobalEvents.h" 46 47 #include "TargetedMovementGenerator.h" // for HandleNpcUnFollowCommand 46 48 47 49 static uint32 ReputationRankStrIndex[MAX_REPUTATION_RANK] = … … 4053 4055 return true; 4054 4056 } 4057 4058 bool ChatHandler::HandleRepairitemsCommand(const char* /*args*/) 4059 { 4060 Player *target = getSelectedPlayer(); 4061 4062 if(!target) 4063 { 4064 PSendSysMessage(LANG_NO_CHAR_SELECTED); 4065 SetSentErrorMessage(true); 4066 return false; 4067 } 4068 4069 // Repair items 4070 target->DurabilityRepairAll(false, 0, false); 4071 4072 PSendSysMessage(LANG_YOU_REPAIR_ITEMS, target->GetName()); 4073 if(needReportToTarget(target)) 4074 ChatHandler(target).PSendSysMessage(LANG_YOUR_ITEMS_REPAIRED, GetName()); 4075 return true; 4076 } 4077 4078 bool ChatHandler::HandleNpcFollowCommand(const char* /*args*/) 4079 { 4080 Player *player = m_session->GetPlayer(); 4081 Creature *creature = getSelectedCreature(); 4082 4083 if(!creature) 4084 { 4085 PSendSysMessage(LANG_SELECT_CREATURE); 4086 SetSentErrorMessage(true); 4087 return false; 4088 } 4089 4090 // Follow player - Using pet's default dist and angle 4091 creature->GetMotionMaster()->MoveFollow(player, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); 4092 4093 PSendSysMessage(LANG_CREATURE_FOLLOW_YOU_NOW, creature->GetName()); 4094 return true; 4095 } 4096 4097 bool ChatHandler::HandleNpcUnFollowCommand(const char* /*args*/) 4098 { 4099 Player *player = m_session->GetPlayer(); 4100 Creature *creature = getSelectedCreature(); 4101 4102 if(!creature) 4103 { 4104 PSendSysMessage(LANG_SELECT_CREATURE); 4105 SetSentErrorMessage(true); 4106 return false; 4107 } 4108 4109 if (creature->GetMotionMaster()->empty() || 4110 creature->GetMotionMaster()->GetCurrentMovementGeneratorType ()!=TARGETED_MOTION_TYPE) 4111 { 4112 PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU); 4113 SetSentErrorMessage(true); 4114 return false; 4115 } 4116 4117 TargetedMovementGenerator<Creature> const* mgen 4118 = static_cast<TargetedMovementGenerator<Creature> const*>((creature->GetMotionMaster()->top())); 4119 4120 if(mgen->GetTarget()!=player) 4121 { 4122 PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU); 4123 SetSentErrorMessage(true); 4124 return false; 4125 } 4126 4127 // reset movement 4128 creature->GetMotionMaster()->MovementExpired(true); 4129 4130 PSendSysMessage(LANG_CREATURE_NOT_FOLLOW_YOU_NOW, creature->GetName()); 4131 return true; 4132 } -
trunk/src/game/Level3.cpp
r112 r132 748 748 if(targetPlayer) 749 749 { 750 ChatHandler(targetPlayer).PSendSysMessage(LANG_YOURS_SECURITY_CHANGED, m_session->GetPlayer()->GetName(), gm);750 ChatHandler(targetPlayer).PSendSysMessage(LANG_YOURS_SECURITY_CHANGED,GetName(), gm); 751 751 targetPlayer->GetSession()->SetSecurity(gm); 752 752 } … … 3729 3729 { 3730 3730 PSendSysMessage(LANG_YOU_SET_EXPLORE_ALL, chr->GetName()); 3731 if (chr!=m_session->GetPlayer())3732 ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_ALL, m_session->GetPlayer()->GetName());3731 if (needReportToTarget(chr)) 3732 ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_ALL,GetName()); 3733 3733 } 3734 3734 else 3735 3735 { 3736 3736 PSendSysMessage(LANG_YOU_SET_EXPLORE_NOTHING, chr->GetName()); 3737 if (chr!=m_session->GetPlayer())3738 ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_NOTHING, m_session->GetPlayer()->GetName());3737 if (needReportToTarget(chr)) 3738 ChatHandler(chr).PSendSysMessage(LANG_YOURS_EXPLORE_SET_NOTHING,GetName()); 3739 3739 } 3740 3740 … … 3771 3771 3772 3772 return true; 3773 } 3774 3775 bool ChatHandler::HandleWaterwalkCommand(const char* args) 3776 { 3777 if(!args) 3778 return false; 3779 3780 Player *player = getSelectedPlayer(); 3781 if(!player) 3782 { 3783 PSendSysMessage(LANG_NO_CHAR_SELECTED); 3784 SetSentErrorMessage(true); 3785 return false; 3786 } 3787 3788 if (strncmp(args, "on", 3) == 0) 3789 player->SetMovement(MOVE_WATER_WALK); // ON 3790 else if (strncmp(args, "off", 4) == 0) 3791 player->SetMovement(MOVE_LAND_WALK); // OFF 3792 else 3793 { 3794 SendSysMessage(LANG_USE_BOL); 3795 return false; 3796 } 3797 3798 PSendSysMessage(LANG_YOU_SET_WATERWALK, args, player->GetName()); 3799 if(needReportToTarget(player)) 3800 ChatHandler(player).PSendSysMessage(LANG_YOUR_WATERWALK_SET, args, GetName()); 3801 return true; 3802 3773 3803 } 3774 3804 -
trunk/src/game/MapManager.cpp
r102 r132 166 166 // probably there must be special opcode, because client has this string constant in GlobalStrings.lua 167 167 // TODO: this is not a good place to send the message 168 player->GetSession()->SendAreaTriggerMessage( "You must be in a raid group to enter %s instance", mapName);168 player->GetSession()->SendAreaTriggerMessage(player->GetSession()->GetTrinityString(810), mapName); 169 169 sLog.outDebug("MAP: Player '%s' must be in a raid group to enter instance of '%s'", player->GetName(), mapName); 170 170 return false; … … 198 198 if (!instance_map) 199 199 { 200 player->GetSession()->SendAreaTriggerMessage( "You cannot enter %s while in a ghost mode", mapName);200 player->GetSession()->SendAreaTriggerMessage(player->GetSession()->GetTrinityString(811), mapName); 201 201 sLog.outDebug("MAP: Player '%s' doesn't has a corpse in instance '%s' and can't enter", player->GetName(), mapName); 202 202 return false;