aboutsummaryrefslogtreecommitdiff
path: root/src/game/Level3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Level3.cpp')
-rw-r--r--src/game/Level3.cpp77
1 files changed, 46 insertions, 31 deletions
diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp
index 6bdffe0b187..c507df4c858 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -299,15 +299,6 @@ bool ChatHandler::HandleReloadLootTemplatesItemCommand(const char*)
return true;
}
-bool ChatHandler::HandleReloadLootTemplatesMillingCommand(const char*)
-{
- sLog.outString( "Re-Loading Loot Tables... (`milling_loot_template`)" );
- LoadLootTemplates_Milling();
- LootTemplates_Milling.CheckLootRefs();
- SendGlobalSysMessage("DB table `milling_loot_template` reloaded.");
- return true;
-}
-
bool ChatHandler::HandleReloadLootTemplatesPickpocketingCommand(const char*)
{
sLog.outString( "Re-Loading Loot Tables... (`pickpocketing_loot_template`)" );
@@ -1750,10 +1741,6 @@ bool ChatHandler::HandleLearnAllMySpellsCommand(const char* /*args*/)
if(!spellInfo)
continue;
- // skip server-side/triggered spells
- if(spellInfo->spellLevel==0)
- continue;
-
// skip wrong class/race skills
if(!m_session->GetPlayer()->IsSpellFitByClassAndRace(spellInfo->Id))
continue;
@@ -1762,6 +1749,8 @@ bool ChatHandler::HandleLearnAllMySpellsCommand(const char* /*args*/)
if( spellInfo->SpellFamilyName != family)
continue;
+ //TODO: skip triggered spells
+
// skip spells with first rank learned as talent (and all talents then also)
uint32 first_rank = spellmgr.GetFirstSpellInChain(spellInfo->Id);
if(GetTalentSpellCost(first_rank) > 0 )
@@ -3824,6 +3813,36 @@ bool ChatHandler::HandleHoverCommand(const char* args)
return true;
}
+bool ChatHandler::HandleWaterwalkCommand(const char* args)
+{
+ if(!args)
+ return false;
+
+ Player *player = getSelectedPlayer();
+ if(!player)
+ {
+ PSendSysMessage(LANG_NO_CHAR_SELECTED);
+ SetSentErrorMessage(true);
+ return false;
+ }
+
+ if (strncmp(args, "on", 3) == 0)
+ player->SetMovement(MOVE_WATER_WALK); // ON
+ else if (strncmp(args, "off", 4) == 0)
+ player->SetMovement(MOVE_LAND_WALK); // OFF
+ else
+ {
+ SendSysMessage(LANG_USE_BOL);
+ return false;
+ }
+
+ PSendSysMessage(LANG_YOU_SET_WATERWALK, args, player->GetName());
+ if(needReportToTarget(player))
+ ChatHandler(player).PSendSysMessage(LANG_YOUR_WATERWALK_SET, args, GetName());
+ return true;
+
+}
+
bool ChatHandler::HandleLevelUpCommand(const char* args)
{
char* px = strtok((char*)args, " ");
@@ -4439,7 +4458,7 @@ static bool HandleResetStatsOrLevelHelper(Player* player)
// set UNIT_FIELD_BYTES_1 to init state but preserve m_form value
player->SetUInt32Value(UNIT_FIELD_BYTES_1, unitfield);
- player->SetByteValue(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_PVP );
+ player->SetByteValue(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_UNK3 | UNIT_BYTE2_FLAG_UNK5 );
player->SetByteValue(UNIT_FIELD_BYTES_2, 3, player->m_form);
player->SetUInt32Value(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE);
@@ -4484,7 +4503,6 @@ bool ChatHandler::HandleResetLevelCommand(const char * args)
player->SetLevel(1);
player->InitStatsForLevel(true);
player->InitTaxiNodesForLevel();
- player->InitGlyphsForLevel();
player->InitTalentForLevel();
player->SetUInt32Value(PLAYER_XP,0);
@@ -4528,7 +4546,6 @@ bool ChatHandler::HandleResetStatsCommand(const char * args)
player->InitStatsForLevel(true);
player->InitTaxiNodesForLevel();
- player->InitGlyphsForLevel();
player->InitTalentForLevel();
return true;
@@ -6591,27 +6608,30 @@ bool ChatHandler::HandleModifyGenderCommand(const char *args)
return false;
}
- PlayerInfo const* info = objmgr.GetPlayerInfo(player->getRace(), player->getClass());
- if(!info)
- return false;
-
char const* gender_str = (char*)args;
int gender_len = strlen(gender_str);
+ uint32 displayId = player->GetNativeDisplayId();
+ char const* gender_full = NULL;
+ uint32 new_displayId = displayId;
Gender gender;
- if(!strncmp(gender_str, "male", gender_len)) // MALE
+ if(!strncmp(gender_str,"male",gender_len)) // MALE
{
if(player->getGender() == GENDER_MALE)
return true;
+ gender_full = "male";
+ new_displayId = player->getRace() == RACE_BLOODELF ? displayId+1 : displayId-1;
gender = GENDER_MALE;
}
- else if (!strncmp(gender_str, "female", gender_len)) // FEMALE
+ else if (!strncmp(gender_str,"female",gender_len)) // FEMALE
{
if(player->getGender() == GENDER_FEMALE)
return true;
+ gender_full = "female";
+ new_displayId = player->getRace() == RACE_BLOODELF ? displayId-1 : displayId+1;
gender = GENDER_FEMALE;
}
else
@@ -6623,19 +6643,14 @@ bool ChatHandler::HandleModifyGenderCommand(const char *args)
// Set gender
player->SetByteValue(UNIT_FIELD_BYTES_0, 2, gender);
- player->SetByteValue(PLAYER_BYTES_3, 0, gender);
// Change display ID
- player->SetDisplayId(gender ? info->displayId_f : info->displayId_m);
- player->SetNativeDisplayId(gender ? info->displayId_f : info->displayId_m);
-
- char const* gender_full = gender ? "female" : "male";
-
- PSendSysMessage(LANG_YOU_CHANGE_GENDER, player->GetName(), gender_full);
+ player->SetDisplayId(new_displayId);
+ player->SetNativeDisplayId(new_displayId);
+ PSendSysMessage(LANG_YOU_CHANGE_GENDER, player->GetName(),gender_full);
if (needReportToTarget(player))
- ChatHandler(player).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full, GetName());
-
+ ChatHandler(player).PSendSysMessage(LANG_YOUR_GENDER_CHANGED, gender_full,GetName());
return true;
}