Server: 93.91.250.125:27731
Ahoj, potřeboval bych vědět jestli je nějaká metoda že když hráč zemře nepřijde o věci, ale pouze když hráč zemře zabitím jiného hráče. Chtěl bych aby se to dalo vypnout v určitém regionu (aspoň světě). Díky.
KeepInventory PvP
-
MinfasCZE
- Příspěvky: 500
- Registrován: 08 lis 2014, 08:50
- Reputation: 0
- Bydliště: .getLocation()
- Kontaktovat uživatele:
-
MarekBurget
Re: KeepInventory PvP
Ten plugin rezidencia to má, platená verzia, že v danej rezidencií je keep inventory ,tzn drop inventory : false / true. alebo keep inventory.
-
MinfasCZE
- Příspěvky: 500
- Registrován: 08 lis 2014, 08:50
- Reputation: 0
- Bydliště: .getLocation()
- Kontaktovat uživatele:
Re: KeepInventory PvP
Ale pouze pokud je hráč zabit jiným hráčem
- Hanakocz
- Příspěvky: 3228
- Věk: 34
- Registrován: 25 črc 2013, 20:53
- Reputation: 7
- Kontaktovat uživatele:
Re: KeepInventory PvP
net.minecraft.entity.player.EntityPlayer:
Z toho důležitá je tadle část:
Ří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.
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
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
Industry 2.0 -> 1.7.10 GregTech6 server. Pro připojení stačí napsat.
Člen ligy pro aktualizaci serverů na novější verze a rozšíření modovaného MC.
Discord FH : http://discord.fakaheda.eu/ (sem psát pokud chcete poradit s MC mody akutně)
Člen ligy pro aktualizaci serverů na novější verze a rozšíření modovaného MC.
Discord FH : http://discord.fakaheda.eu/ (sem psát pokud chcete poradit s MC mody akutně)
- variodriver
- Příspěvky: 1160
- Věk: 15
- Registrován: 08 lis 2015, 00:04
- Reputation: 25
- Bydliště: localhost
- Kontaktovat uživatele:
Re: KeepInventory PvP
Taky by šlo, že ta arena bude v jiném světě, a že tam dáš příkaz /gamerule keepInventory true
Mělo by to fungovat na ten svět, ve kterém to dáš a žádný plugin přidávat nemusíš, je to i ve vannile
Mělo by to fungovat na ten svět, ve kterém to dáš a žádný plugin přidávat nemusíš, je to i ve vannile
- pitilon@seznam.cz
- Příspěvky: 3999
- Registrován: 16 lis 2014, 06:32
- Reputation: 57
- Kontaktovat uživatele:
Re: KeepInventory PvP
Ale on chce aby to rozlišovalo smrt, a ne že vůbec nepříde

Ať už si lidé myslí cokoli cokoli dělají nebo říkají neberte osobně. Názory druhých odpovídají tomu čemu tito lidé věří a proto ať si o vás myslí cokoli ve skutečnosti se vás to netýká. Vždy to vypovídá jen a jen o nich.
Není hanba být zabit cheaterem, ale cheatovat a být zabit.
Nejsem nerozumný. Jen nemám ten samý rozum jako vy.

FH Discord: http://discord.fakaheda.eu/
-
MinfasCZE
- Příspěvky: 500
- Registrován: 08 lis 2014, 08:50
- Reputation: 0
- Bydliště: .getLocation()
- Kontaktovat uživatele:
Re: KeepInventory PvP
Žádný arény... OK díky zatím.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 21 hostů


