*Update to Trinity 676.

--HG--
branch : trunk
This commit is contained in:
megamage
2008-12-26 18:22:01 -06:00
8 changed files with 1316 additions and 8 deletions
+2
View File
@@ -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');
+28 -1
View File
@@ -1680,6 +1680,8 @@ bool ChatHandler::HandleNpcFactionIdCommand(const char* args)
bool ChatHandler::HandleKickPlayerCommand(const char *args)
{
char* kickName = strtok((char*)args, " ");
char* kickReason = strtok(NULL, "\n");
if (!kickName)
{
Player* player = getSelectedPlayer();
@@ -1698,11 +1700,22 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
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();
}
else
{
std::string name = kickName;
std::string reason = "No Reason";
if(kickReason)
reason = kickReason;
if(!normalizePlayerName(name))
{
SendSysMessage(LANG_PLAYER_NOT_FOUND);
@@ -1717,9 +1730,23 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
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))
{
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
PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str());
+4
View File
@@ -1190,6 +1190,10 @@ void Aura::TriggerSpell()
uint64 originalCasterGUID = GetCasterGUID();
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();
uint32 auraId = auraSpellInfo->Id;
+4 -4
View File
@@ -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)
{
SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(spellInfo->rangeIndex);
/*SpellRangeEntry const* srange = sSpellRangeStore.LookupEntry(spellInfo->rangeIndex);
if(srange && GetSpellMaxRange(srange) == 0.0f)
{
Victim = this;
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()));
return;
@@ -7781,8 +7781,8 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, Aura* triggeredB
if(basepoints0)
CastCustomSpell(target,trigger_spell_id,&basepoints0,NULL,NULL,true,castItem,triggeredByAura);
else if(spellmgr.GetSpellCustomAttr(trigger_spell_id) & SPELL_ATTR_CU_AURA_SPELL)
AddAura(trigger_spell_id, target);
//else if(spellmgr.GetSpellCustomAttr(trigger_spell_id) & SPELL_ATTR_CU_AURA_SPELL)
// AddAura(trigger_spell_id, target);
else
CastSpell(target,trigger_spell_id,true,castItem,triggeredByAura);
+1 -1
View File
@@ -41,7 +41,7 @@ WaypointMovementGenerator<Creature>::Initialize(Creature &u)
waypoints = WaypointMgr.GetPath(path_id);
if(waypoints && waypoints->size())
{
Traveller<Creature> traveller(unit);
Traveller<Creature> traveller(u);
node = *(waypoints->at(i_currentNode));
InitTraveller(u,node);
i_destinationHolder.SetDestination(traveller, node.x, node.y, node.z);
+1
View File
@@ -1019,6 +1019,7 @@ void World::LoadConfigSettings(bool reload)
if(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_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false);
std::string forbiddenmaps = sConfig.GetStringDefault("ForbiddenMaps", "");
char * forbiddenMaps = new char[forbiddenmaps.length() + 1];
+1
View File
@@ -201,6 +201,7 @@ enum WorldConfigs
CONFIG_PVP_TOKEN_ID,
CONFIG_PVP_TOKEN_COUNT,
CONFIG_NO_RESET_TALENT_COST,
CONFIG_SHOW_KICK_IN_WORLD,
CONFIG_VALUE_COUNT
};
File diff suppressed because it is too large Load Diff