void 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 }