• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

AmuletOfLoss (C++) Help Requested

Ascendia

Premium User
Premium User
Joined
Nov 23, 2008
Messages
1,865
Reaction score
123
So I would like you to change this code a bit so that players with red skulls wont drop their loots, and that amulet of loss never dissapears, using Mystic Spirit 0.2.5 Final release, thank you.

Code:
void Player::dropLoot(Container* corpse)
{
	if(corpse && lootDrop)
	{
		if(inventory[SLOT_NECKLACE] && inventory[SLOT_NECKLACE]->getID() == ITEM_AMULETOFLOSS &&
			getSkull() != SKULL_RED && g_game.getWorldType() != WORLD_TYPE_PVP_ENFORCED)
		{
			g_game.internalRemoveItem(inventory[SLOT_NECKLACE], 1);
		}
		else
		{
			for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i)
			{
				Item* item = inventory[i];
				if(item)
				{
					if(((item->getContainer()) || random_range(1, 100) <= 10 || getSkull() == SKULL_RED))
					{
						g_game.internalMoveItem(this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0);
						sendRemoveInventoryItem((slots_t)i, inventory[(slots_t)i]);
					}
				}
			}
		}
	}
 
PHP:
void Player::dropLoot(Container* corpse)
{
	if(corpse && lootDrop)
	{
		if(inventory[SLOT_NECKLACE] && inventory[SLOT_NECKLACE]->getID() == ITEM_AMULETOFLOSS &&
			&& g_game.getWorldType() != WORLD_TYPE_PVP_ENFORCED)
		{
			g_game.internalRemoveItem(inventory[SLOT_NECKLACE], 1);
		}
		else
		{
			for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i)
			{
				Item* item = inventory[i];
				if(item)
				{
					if(((item->getContainer()) || random_range(1, 100) <= 10)
					{
						g_game.internalMoveItem(this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0);
						sendRemoveInventoryItem((slots_t)i, inventory[(slots_t)i]);
					}
				}
			}
		}
	}
 

Similar threads

Back
Top