Probleme de Capabilities



  • Salut, j'ai un petit problème contraignant avec mes capabilities
    Tout va bien sur le système de capabilities des Niveau de joueur
    Lorsque je me connecte je vois bien les capabilities (Niveau de joueur) apparaitre dans mon GUI mais lorsque je meurs pouf plus rien mais lorsque j'actualise mon xp ça se remet a la normal

    Exemple :

    Je meurs je suis niveau 10 xp 1500
    Je respawn je suis niveau 1 xp 0
    Je recupere de l'xp je repasse a 10 niveau 1510 xp

    ça fait un moment que je cherche comment faire j'ai essayer des tickevent de syncro refaire mes packets mon event de clone et de respawn mais rien

    @SubscribeEvent
    public void onPlayerCloned(PlayerEvent.Clone event) {
    if (event.wasDeath) {
    System.out.println("test");
    MoneyCapabilities cap = event.original.getCapability(Arthania.MONEY_CAP, null);
    MoneyCapabilities newCap = event.entityPlayer.getCapability(Arthania.MONEY_CAP, null);
    newCap.setMoney(cap.getMoney());
    
    CaractCapabilities cap1 = event.original.getCapability(Arthania.CARAC_CAP, null);
    CaractCapabilities newCap1 = event.entityPlayer.getCapability(Arthania.CARAC_CAP, null);
    newCap1.setEarth(cap1.getEarth());
    newCap1.setLife(cap1.getLife());
    newCap1.setFire(cap1.getFire());
    newCap1.setWater(cap1.getWater());
    newCap1.setBase(cap1.getBase());
    
    LevelCapabilities cap2 = event.original.getCapability(Arthania.LEVEL_CAP, null);
    LevelCapabilities newCap2 = event.entityPlayer.getCapability(Arthania.LEVEL_CAP, null);
    
    newCap2.setLevel(cap2.getLevel());
    newCap2.setXp(cap2.getXp());
    System.out.println(cap1.getBase());
    }
    
    }
    
    @SubscribeEvent
    public void onPlayerRespawn(PlayerRespawnEvent event) {
    if (!event.player.worldObj.isRemote) {
    event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(60 + (5 * event.player.getCapability(Arthania.LEVEL_CAP, null).getLevel()) + (event.player.getCapability(Arthania.CARAC_CAP, null).getLife()));
    if (event.player.hasCapability(Arthania.MONEY_CAP, null)) {
    event.player.getCapability(Arthania.MONEY_CAP, null).sync();
    }
    if (event.player.hasCapability(Arthania.CARAC_CAP, null)) {
    event.player.getCapability(Arthania.CARAC_CAP, null).sync();
    }
    if (event.player.hasCapability(Arthania.LEVEL_CAP, null)) {
    event.player.getCapability(Arthania.LEVEL_CAP, null).sync();
    }
    
    }
    }
    
    @SubscribeEvent
    public void onPlayerLogin(PlayerLoggedInEvent event) {
    if (event.player.hasCapability(Arthania.MONEY_CAP, null)) {
    event.player.getCapability(Arthania.MONEY_CAP, null).sync();
    }
    if (event.player.hasCapability(Arthania.CARAC_CAP, null)) {
    event.player.getCapability(Arthania.CARAC_CAP, null).sync();
    }
    if (event.player.hasCapability(Arthania.LEVEL_CAP, null)) {
    event.player.getCapability(Arthania.LEVEL_CAP, null).sync();
    }
    event.player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(60 + (5 * event.player.getCapability(Arthania.LEVEL_CAP, null).getLevel()) + (event.player.getCapability(Arthania.CARAC_CAP, null).getLife()));
    
    }
    


  • Je remonte un chouilla le sujet personne n'a jamais eu se problème ?
    Ou un indication sur se qu'il bug ?



  • J'ai du mal à identifier ton problème, qu'est ce que tu veux faire ou quel est le résultat attendu ?



  • Effectivement j'ai oublier se poste problème résolue :tick server et sync toutes les 30 secs