Iryont
medivia.online
- Joined
- Jun 11, 2008
- Messages
- 351
- Solutions
- 5
- Reaction score
- 311
Some in game.cpp above previous function or in tools.cpp/tools.h:
But still, again, I never tested it, also I'm not sure about names of variables (fromPos and toPos) because it may be frompos and topos (lower cased).
Basicaly it will only delay pushing if item is moved from player slot/backpack to ground, otherwise it won't be delayed.
PHP:
bool isFromPlayerToGround(position frompos, position topos)
{
if(frompos.x == 65535 && frompos.y >= 64 && frompos.y <= 79 && topos.x != 65535)
return true;
if(frompos.x == 65535 && frompos.y <= 10 && topos.x != 65535)
return true;
return false;
}
PHP:
char buffer[90];
if(g_config.getBool(ConfigManager::ANTI_PUSH) && player->hasCondition(CONDITION_EXHAUST, EXHAUST_MOVE_ITEMS) && g_config.getString(ConfigManager::ANTI_PUSH_ITEMS).find(itoa(item->getID(),buffer,10)) != std::string::npos && isFromPlayerToGround(fromPos,toPos))
{
player->sendTextMessage(MSG_INFO_DESCR, "You cannot move this object.\nAnti-Push prevention.");
return false;
}
int16_t indexItem = toIndex;
ReturnValue ret = internalMoveItem(player, fromCylinder, toCylinder, toIndex, item, count, NULL);
if(ret == RET_NOERROR)
{
if(g_config.getBool(ConfigManager::ANTI_PUSH) && g_config.getString(ConfigManager::ANTI_PUSH_ITEMS).find(itoa(item->getID(),buffer,10)) != std::string::npos && isFromPlayerToGround(fromPos,toPos))
{
int32_t ticks = g_config.getNumber(ConfigManager::ANTI_PUSH_DELAY);
player->addExhaust(ticks, EXHAUST_MOVE_ITEMS);
}
return true;
}
But still, again, I never tested it, also I'm not sure about names of variables (fromPos and toPos) because it may be frompos and topos (lower cased).
Basicaly it will only delay pushing if item is moved from player slot/backpack to ground, otherwise it won't be delayed.