[8774] Implement SCRIPT_COMMAND_KILL_CREDIT (8).

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2009-11-04 17:44:32 +01:00
parent 6b1e76a150
commit adde82b73c
4 changed files with 42 additions and 1 deletions

View file

@ -2988,6 +2988,36 @@ void Map::ScriptsProcess()
break;
}
case SCRIPT_COMMAND_KILL_CREDIT:
{
// accept player in any one from target/source arg
if (!target && !source)
{
sLog.outError("SCRIPT_COMMAND_KILL_CREDIT call for NULL object.");
break;
}
// must be only Player
if((!target || target->GetTypeId() != TYPEID_PLAYER) && (!source || source->GetTypeId() != TYPEID_PLAYER))
{
sLog.outError("SCRIPT_COMMAND_KILL_CREDIT call for non-player (TypeIdSource: %u)(TypeIdTarget: %u), skipping.", source ? source->GetTypeId() : 0, target ? target->GetTypeId() : 0);
break;
}
Player* pSource = target && target->GetTypeId() == TYPEID_PLAYER ? (Player*)target : (Player*)source;
if (step.script->datalong2)
{
pSource->RewardPlayerAndGroupAtEvent(step.script->datalong, pSource);
}
else
{
pSource->KilledMonsterCredit(step.script->datalong, 0);
}
break;
}
case SCRIPT_COMMAND_TEMP_SUMMON_CREATURE:
{
if(!step.script->datalong) // creature not specified