net.minecraft.entity.player.EntityPlayer:
Kód: Vybrat vše
public void onDeath(DamageSource p_70645_1_)
{
if (ForgeHooks.onLivingDeath(this, p_70645_1_)) return;
super.onDeath(p_70645_1_);
this.setSize(0.2F, 0.2F);
this.setPosition(this.posX, this.posY, this.posZ);
this.motionY = 0.10000000149011612D;
captureDrops = true;
capturedDrops.clear();
if (this.getCommandSenderName().equals("Notch"))
{
this.func_146097_a(new ItemStack(Items.apple, 1), true, false);
}
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
{
this.inventory.dropAllItems();
}
captureDrops = false;
if (!worldObj.isRemote)
{
PlayerDropsEvent event = new PlayerDropsEvent(this, p_70645_1_, capturedDrops, recentlyHit > 0);
if (!MinecraftForge.EVENT_BUS.post(event))
{
for (EntityItem item : capturedDrops)
{
joinEntityItemWithWorld(item);
}
}
}
if (p_70645_1_ != null)
{
this.motionX = (double)(-MathHelper.cos((this.attackedAtYaw + this.rotationYaw) * (float)Math.PI / 180.0F) * 0.1F);
this.motionZ = (double)(-MathHelper.sin((this.attackedAtYaw + this.rotationYaw) * (float)Math.PI / 180.0F) * 0.1F);
}
else
{
this.motionX = this.motionZ = 0.0D;
}
this.yOffset = 0.1F;
this.addStat(StatList.deathsStat, 1);
}
Z toho důležitá je tadle část:
Kód: Vybrat vše
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory"))
{
this.inventory.dropAllItems();
}Říká, že pokud je gamerule "keepInventory" false, tak dropne všechny itemy.
Pokud chceš rozlišovat, jaká smrt nastala, musíš tu funkci upravit..
Důležité je, že ta funkce celá má vstupní parametr :
DamageSource p_70645_1_ - tedy, kdo dává damage.
Takže se stačí podívat, zda ten damage source je hráč, nebo ne.
Kód: Vybrat vše
if (!this.worldObj.getGameRules().getGameRuleBooleanValue("keepInventory") && (p_70645_1_.getEntity() instanceof EntityPlayer) )
{
this.inventory.dropAllItems();
}V tomto případě potřebuješ mít zapnuté keepInventory, ale pak ve chvíli, kdy hráče zabije hráč, tak věci padnou.
A teď ti už stačí programátor, co ti to napíše v bukkitu, todle bych ti zvládl udělat jako mod (a zdroják je sice z vanilly, ale Forgí dekompilován, takže upraven), plugin se může nějak trochu lišit, ale princip bude stejný. Lidí zabývajících se tu Bukkitem je dost
