rendered paste bodyvoid CreatureDieHook(BYTE *pSomething, CCreature *pCreature)
{
if(pCreature->isNPC())
{
if(ConfigFile::In()->ConfigData.bZaricheSystem) //zariche system turned on
if(!ConfigFile::In()->ConfigData.ZaricheInfo.bExists) //Zariche doesnt exist in the world
if(pCreature->GetSharedData()->nLevel >= ConfigFile::In()->ConfigData.nMinLvlDrop) //npc got equal or higher lvl -settings from config file
{
if(wcscmp(pCreature->GetSharedData()->wszName, L"wasted_corpse"))
{
int nRandom = rnd(1000);
if(nRandom <= ConfigFile::In()->ConfigData.nChanceToDrop)
{
pCreature->AddItemToInventory(8190, 1);
CLog::Log()->AddAnsi(CLog::SystemConsoleBlue, "[C5Ext] NPC[%ls] has dropped zariche in %d/%d/%d .", pCreature->GetSharedData()->wszName, (int) pCreature->GetSharedData()->x, (int) pCreature->GetSharedData()->y, (int) pCreature->GetSharedData()->z);
BroadcastToAllUser("cdddddddd", 0x64, 1815, 2, 7,
(int) pCreature->GetSharedData()->x,
(int) pCreature->GetSharedData()->y,
(int) pCreature->GetSharedData()->z,
3, 8190); //SendInfo that zariche has been dropped
BroadcastToAllUser("chd", 0xFE, 0x40, 3); //RedSky
BroadcastToAllUser("cddddd", 0xc4,
(int) pCreature->GetSharedData()->x,
(int) pCreature->GetSharedData()->y,
(int) pCreature->GetSharedData()->z,
30, 5); //EarthQuake
ConfigFile::In()->ConfigData.ZaricheInfo.nX = (int) pCreature->GetSharedData()->x;
ConfigFile::In()->ConfigData.ZaricheInfo.nY = (int) pCreature->GetSharedData()->y;
ConfigFile::In()->ConfigData.ZaricheInfo.nZ = (int) pCreature->GetSharedData()->z;
ConfigFile::In()->ConfigData.ZaricheInfo.nTime = (int) time(NULL);
ConfigFile::In()->ConfigData.ZaricheInfo.bExists = true;
ConfigFile::In()->ConfigData.ZaricheInfo.bOwnerOnline = true;
ConfigFile::In()->SaveConfigFile();
}
}
}
}
CDoNothingMessage(pSomething, pCreature); //Normal Execution
}