aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.cpp
diff options
context:
space:
mode:
authorMachiavelli <none@none>2010-06-04 14:37:23 +0200
committerMachiavelli <none@none>2010-06-04 14:37:23 +0200
commit54ee0f6483a5f68fff55f7aedff6b8868cb87508 (patch)
treea4a3e0fb551957a9eb46c7815a81626ed8ac5610 /src/game/Map.cpp
parenta388b76a8c261f08477ae624b044978fe05bb642 (diff)
Fix SCRIPT_COMMAND_TALK to be used in gossip scripts.
+ A few trivial typo´s in the same function. Fixes issue #980 Update issue #2502 --HG-- branch : trunk
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r--src/game/Map.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index d74de74996f..507076a8ad7 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -3013,19 +3013,21 @@ void Map::ScriptsProcess()
{
if (!source)
{
- sLog.outError("SCRIPT_COMMAND_TALK (script id: %u) call for NULL creature.", step.script->id);
+ sLog.outError("SCRIPT_COMMAND_TALK (script id: %u) call for NULL source.", step.script->id);
break;
}
- Creature* cSource = source->ToCreature();
+ Creature* cSource = NULL;
+ cSource = source->ToCreature() != NULL ? source->ToCreature() : target->ToCreature();
+
if (!cSource)
{
- sLog.outError("SCRIPT_COMMAND_TALK (script id: %u) call for non-creature (TypeId: %u, Entry: %u, GUID: %u), skipping.",
- step.script->id, source->GetTypeId(),source->GetEntry(),source->GetGUIDLow());
+ sLog.outError("SCRIPT_COMMAND_TALK (script id: %u) call for non supported source (TypeId: %u, Entry: %u, GUID: %u), skipping.",
+ step.script->id, source->GetTypeId(), source->GetEntry(), source->GetGUIDLow());
break;
}
- if (step.script->datalong > 4)
+ if (step.script->datalong > CHAT_TYPE_WHISPER)
{
sLog.outError("SCRIPT_COMMAND_TALK (script id: %u) invalid chat type (%u), skipping.", step.script->id, step.script->datalong);
break;
@@ -3866,7 +3868,7 @@ void Map::ScriptsProcess()
break;
}
- source->ToCreature()->SetDisplayId(step.script->datalong);
+ cSource->SetDisplayId(step.script->datalong);
break;
}
@@ -3932,7 +3934,7 @@ void Map::ScriptsProcess()
break;
}
- if (step.script->datalong > maxOffset || !step.script->datalong)
+ if (step.script->datalong >= maxOffset || !step.script->datalong)
{
sLog.outError("SCRIPT_COMMAND_MOD_UPDATEFIELD (script id: %u). invalid index parameter (%u). maximum offset: (%u) for typeid %u",
step.script->id, step.script->datalong, maxOffset, source->GetTypeId());