*Update to Trinity 676.
--HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
UPDATE `trinity_string` SET `content_default`='Player |cffff0000%s|r kicked by |cffff0000%s|r. Reason: |cffff0000%s|r.' WHERE (`entry`='282');
|
||||||
|
UPDATE `command` SET `help`='Syntax: .kick [$charactername] [$reason]\r\n\r\nKick the given character name from the world with or without reason. If no character name is provided then the selected player (except for yourself) will be kicked. If no reason is provided, default is \"No Reason\".' WHERE (`name`='kick');
|
||||||
+29
-2
@@ -1680,6 +1680,8 @@ bool ChatHandler::HandleNpcFactionIdCommand(const char* args)
|
|||||||
bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
||||||
{
|
{
|
||||||
char* kickName = strtok((char*)args, " ");
|
char* kickName = strtok((char*)args, " ");
|
||||||
|
char* kickReason = strtok(NULL, "\n");
|
||||||
|
|
||||||
if (!kickName)
|
if (!kickName)
|
||||||
{
|
{
|
||||||
Player* player = getSelectedPlayer();
|
Player* player = getSelectedPlayer();
|
||||||
@@ -1698,11 +1700,22 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(player->GetSession()->GetSecurity() > m_session->GetSecurity())
|
||||||
|
{
|
||||||
|
SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on
|
||||||
|
SetSentErrorMessage(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
player->GetSession()->KickPlayer();
|
player->GetSession()->KickPlayer();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string name = kickName;
|
std::string name = kickName;
|
||||||
|
std::string reason = "No Reason";
|
||||||
|
if(kickReason)
|
||||||
|
reason = kickReason;
|
||||||
|
|
||||||
if(!normalizePlayerName(name))
|
if(!normalizePlayerName(name))
|
||||||
{
|
{
|
||||||
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
SendSysMessage(LANG_PLAYER_NOT_FOUND);
|
||||||
@@ -1717,12 +1730,26 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(objmgr.GetPlayer(kickName)->GetSession()->GetSecurity() > m_session->GetSecurity())
|
||||||
|
{
|
||||||
|
SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on
|
||||||
|
SetSentErrorMessage(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if(sWorld.KickPlayer(name))
|
if(sWorld.KickPlayer(name))
|
||||||
{
|
{
|
||||||
PSendSysMessage(LANG_COMMAND_KICKMESSAGE,name.c_str());
|
if(sWorld.getConfig(CONFIG_SHOW_KICK_IN_WORLD) == 1)
|
||||||
|
{
|
||||||
|
sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PSendSysMessage(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER,name.c_str());
|
PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1190,6 +1190,10 @@ void Aura::TriggerSpell()
|
|||||||
uint64 originalCasterGUID = GetCasterGUID();
|
uint64 originalCasterGUID = GetCasterGUID();
|
||||||
|
|
||||||
SpellEntry const *triggeredSpellInfo = sSpellStore.LookupEntry(trigger_spell_id);
|
SpellEntry const *triggeredSpellInfo = sSpellStore.LookupEntry(trigger_spell_id);
|
||||||
|
SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(triggeredSpellInfo->rangeIndex);
|
||||||
|
if(!GetSpellMaxRange(srange))
|
||||||
|
target = caster; //for druid dispel poison
|
||||||
|
|
||||||
SpellEntry const *auraSpellInfo = GetSpellProto();
|
SpellEntry const *auraSpellInfo = GetSpellProto();
|
||||||
uint32 auraId = auraSpellInfo->Id;
|
uint32 auraId = auraSpellInfo->Id;
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -900,13 +900,13 @@ void Unit::CastSpell(Unit* Victim,SpellEntry const *spellInfo, bool triggered, I
|
|||||||
{
|
{
|
||||||
if(spellmgr.SpellTargetType[spellInfo->EffectImplicitTargetA[i]] == TARGET_TYPE_UNIT_TARGET)
|
if(spellmgr.SpellTargetType[spellInfo->EffectImplicitTargetA[i]] == TARGET_TYPE_UNIT_TARGET)
|
||||||
{
|
{
|
||||||
SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(spellInfo->rangeIndex);
|
/*SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(spellInfo->rangeIndex);
|
||||||
if(srange && GetSpellMaxRange(srange) == 0.0f)
|
if(srange && GetSpellMaxRange(srange) == 0.0f)
|
||||||
{
|
{
|
||||||
Victim = this;
|
Victim = this;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if(!Victim)
|
else */if(!Victim)
|
||||||
{
|
{
|
||||||
sLog.outError("CastSpell: spell id %i by caster: %s %u) does not have unit target", spellInfo->Id,(GetTypeId()==TYPEID_PLAYER ? "player (GUID:" : "creature (Entry:"),(GetTypeId()==TYPEID_PLAYER ? GetGUIDLow() : GetEntry()));
|
sLog.outError("CastSpell: spell id %i by caster: %s %u) does not have unit target", spellInfo->Id,(GetTypeId()==TYPEID_PLAYER ? "player (GUID:" : "creature (Entry:"),(GetTypeId()==TYPEID_PLAYER ? GetGUIDLow() : GetEntry()));
|
||||||
return;
|
return;
|
||||||
@@ -7781,8 +7781,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
|
|||||||
|
|
||||||
if(basepoints0)
|
if(basepoints0)
|
||||||
CastCustomSpell(target,trigger_spell_id,&basepoints0,NULL,NULL,true,castItem,triggeredByAura);
|
CastCustomSpell(target,trigger_spell_id,&basepoints0,NULL,NULL,true,castItem,triggeredByAura);
|
||||||
else if(spellmgr.GetSpellCustomAttr(trigger_spell_id) & SPELL_ATTR_CU_AURA_SPELL)
|
//else if(spellmgr.GetSpellCustomAttr(trigger_spell_id) & SPELL_ATTR_CU_AURA_SPELL)
|
||||||
AddAura(trigger_spell_id, target);
|
// AddAura(trigger_spell_id, target);
|
||||||
else
|
else
|
||||||
CastSpell(target,trigger_spell_id,true,castItem,triggeredByAura);
|
CastSpell(target,trigger_spell_id,true,castItem,triggeredByAura);
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ WaypointMovementGenerator<Creature>::Initialize(Creature &u)
|
|||||||
waypoints = WaypointMgr.GetPath(path_id);
|
waypoints = WaypointMgr.GetPath(path_id);
|
||||||
if(waypoints && waypoints->size())
|
if(waypoints && waypoints->size())
|
||||||
{
|
{
|
||||||
Traveller<Creature> traveller(unit);
|
Traveller<Creature> traveller(u);
|
||||||
node = *(waypoints->at(i_currentNode));
|
node = *(waypoints->at(i_currentNode));
|
||||||
InitTraveller(u,node);
|
InitTraveller(u,node);
|
||||||
i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z);
|
i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z);
|
||||||
|
|||||||
@@ -1019,6 +1019,7 @@ void World::LoadConfigSettings(bool reload)
|
|||||||
if(m_configs[CONFIG_PVP_TOKEN_COUNT] < 1)
|
if(m_configs[CONFIG_PVP_TOKEN_COUNT] < 1)
|
||||||
m_configs[CONFIG_PVP_TOKEN_COUNT] = 1;
|
m_configs[CONFIG_PVP_TOKEN_COUNT] = 1;
|
||||||
m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false);
|
m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false);
|
||||||
|
m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false);
|
||||||
|
|
||||||
std::string forbiddenmaps = sConfig.GetStringDefault("ForbiddenMaps", "");
|
std::string forbiddenmaps = sConfig.GetStringDefault("ForbiddenMaps", "");
|
||||||
char * forbiddenMaps = new char[forbiddenmaps.length() + 1];
|
char * forbiddenMaps = new char[forbiddenmaps.length() + 1];
|
||||||
|
|||||||
@@ -201,6 +201,7 @@ enum WorldConfigs
|
|||||||
CONFIG_PVP_TOKEN_ID,
|
CONFIG_PVP_TOKEN_ID,
|
||||||
CONFIG_PVP_TOKEN_COUNT,
|
CONFIG_PVP_TOKEN_COUNT,
|
||||||
CONFIG_NO_RESET_TALENT_COST,
|
CONFIG_NO_RESET_TALENT_COST,
|
||||||
|
CONFIG_SHOW_KICK_IN_WORLD,
|
||||||
|
|
||||||
CONFIG_VALUE_COUNT
|
CONFIG_VALUE_COUNT
|
||||||
};
|
};
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user