Gagner un item en PVP

French
User avatar
shiva
Member
 
Posts: 107
Joined: Tue Sep 16, 2014 22:00
Location: En Bretagne :-)
In-game: shiva35

Gagner un item en PVP

by shiva » Mon Mar 19, 2018 11:41

Slt à tous,

Existe t-il un mod qui permet de gagner certain item quand on tue un autre joueur ?
Si pas de mod comment faudrait t-il coder cela ?

merci
 

User avatar
fwhcat
Member
 
Posts: 24
Joined: Thu Aug 04, 2016 14:36
GitHub: fwhcat
IRC: fwhcat
In-game: fwhcat

Re: Gagner un item en PVP

by fwhcat » Mon Mar 19, 2018 12:08

Salut, il faudrait coder un mod pour cela.

Code: Select all
minetest.register_on_dieplayer(
  function(player)
    --1) retrouver le tueur
    --2) donner au tueur un item
  end
)
Meowww
 

User avatar
fwhcat
Member
 
Posts: 24
Joined: Thu Aug 04, 2016 14:36
GitHub: fwhcat
IRC: fwhcat
In-game: fwhcat

Re: Gagner un item en PVP

by fwhcat » Mon Mar 19, 2018 12:13

Pour retrouver le tueur, il faudrait stocker le dernier joueur qui l'a tapé,

en utilisant la méthode
Code: Select all
 minetest.register_on_punchplayer()


Tu peux trouver ça dans le mod pvpplus ici par exemple:

https://github.com/MT-Eurythmia/pvpplus ... p.lua#L130
Meowww
 

User avatar
shiva
Member
 
Posts: 107
Joined: Tue Sep 16, 2014 22:00
Location: En Bretagne :-)
In-game: shiva35

Re: Gagner un item en PVP

by shiva » Mon Mar 19, 2018 12:27

Je viens de voir ta réponse et entre temps j'ai trouvé :)
Code: Select all
minetest.register_on_punchplayer(function(player, hitter, _, _, _, damage)
    if not (hitter and hitter:is_player()) then
        return
    end

    local hp = player:get_hp()
    if hp - damage > 0 or hp <= 0 then
        return
    end

    local hitter_name = hitter:get_player_name()
    local player_name = player:get_player_name()

    minetest.chat_send_all("==+> ["..hitter_name.."] viens de gagner 5 pièces de cuivres pour avoir tué ["..player_name.."]")
    minetest.chat_send_player(hitter_name, "==+> vous venez de gagner 5 pièces de cuivres")

    local itemstack = ItemStack("maptools:copper_coin 5")

    if not itemstack:is_empty() then
        local receiverref = minetest.get_player_by_name(hitter_name)
        if receiverref then
            receiverref:get_inventory():add_item("main", itemstack)
        end
    end
end)
 

User avatar
fwhcat
Member
 
Posts: 24
Joined: Thu Aug 04, 2016 14:36
GitHub: fwhcat
IRC: fwhcat
In-game: fwhcat

Re: Gagner un item en PVP

by fwhcat » Mon Mar 19, 2018 13:38

Question con

local receiverref = minetest.get_player_by_name(hitter_name)
if receiverref then
receiverref:get_inventory():add_item("main", itemstack)
end


ça n'aurait pas marché avec directement
Code: Select all
hitter:get_inventory():add_item("main", itemstack)
?
Meowww
 

User avatar
shiva
Member
 
Posts: 107
Joined: Tue Sep 16, 2014 22:00
Location: En Bretagne :-)
In-game: shiva35
 


Return to Français



Who is online

Users browsing this forum: No registered users and 1 guest