DEV Community

Cover image for PatchNote du 01/05/2021
Zeldown for Paladium

Posted on

PatchNote du 01/05/2021

Alt Text
Bienvenue sur le PatchNote du samedi 1 mai 2021.

Ce samedi 1 mai, Paladium a effectué une mise à jour axée sur des corrections de bugs ainsi qu'une légère modification de la mise à jour Pillage.


Bugs_Banner_IMG

Trade

Vous n'êtes pas sans savoir que lors de la dernière maintenance le /trade a été ajouté aux personnes possédant un grade sur Paladium.

Cependant, certains bugs étaient encore présents :

  • Lors de l'annulation d'un échange en quittant le menu ou en se déconnectant, les items n'étaient pas bien redonnés aux joueurs participant à l'échange. Ceux-ci étaient jetés au sol, cela représentait donc un réel souci pour les joueurs réalisant un trade dans le spawn. Désormais, les items seront ajoutés dans l'inventaire si le joueur possède possède suffisamment de place et sinon seront jetés au sol.
/* lors de l'annulation */
public void cancel() {
    ...
    /* si l'on ne peut pas ajouter l'item à l'inventaire du joueur */
    if (!left.inventory.addItemStackToInventory(s)) {
        /* drop un item avec les paramètres : joueur, x, y, z, item */
        PlayerUtils.dropItemStack(left, left.posX, left.posY, left.posZ, s);
    }
}
Enter fullscreen mode Exit fullscreen mode
  • Le trade contient un autocancel, c'est-à-dire que lorsqu'un joueur modifie le contenu de l'échange que l'autre joueur a validé, cela annule la validation pour éviter les arnaques. Cependant, nous avions oublié de prendre en compte les champs d'argent et d'exp. Cela a donc laissé place à quelques arnaques mais cela est désormais réglé.

Lors de l'envoi du packet (informations) au serveur lorsque l'on modifie notre état dans le trade CSButtonStateChanged.java une vérification de modification d'exp et de l'argent a été ajoutée.

if (tradeHasAccepted()) {
    setTradeHasAccepted(false);
    refresh();
}
Enter fullscreen mode Exit fullscreen mode

Ce code permet, si une modification est faite alors qu’une partie du trade a validé l'échange, d’indiquer que la validation est annulée et de rafraichir le menu des deux participants.



Bug sous la bedrock

Différents bugs avaient lieu sous la bedrock. Ceux-ci permettaient notamment de rentrer dans des bases en passant par le vide (void) et d'utiliser certaines commandes pour pouvoir se retrouver dans une base. Les différentes mécaniques/bugs connus par notre équipe ont donc été corrigés. En voici la liste :

  • HangGlider sous la bedrock
  • Slimy Helmet sous la bedrock
  • Commandes de téléportation sous la bedrock (/tpa /tpaccept /tpahere /unsafetp) [liste non exhaustive]

Pour désactiver ces différentes mécaniques, l'ajout d'une simple condition en java a été suffisant.

if(player.posY < 0) {
    //annule
    return;
}
Enter fullscreen mode Exit fullscreen mode

En effet, la condition est de vérifier si lors de l'utilisation de la mécanique visée le joueur se trouve en position Y inférieure à la couche 0. Si c'est le cas, alors la mécanique est annulée.



Boom Obsidienne

La Boom Obsidienne faisait des dégâts même dans des endroits où le joueur ne pouvait pas prendre de dégâts (exemple zone protégées ou serveur minage).

Cela était dû à une erreur de développement, le code effectuant une modification directe de la vie du joueur.

/* Définit la vie du joueur à sa vie -4 demi-coeurs (donc 2 coeurs) */
player.setHealth(player.getHealth - 4f);
Enter fullscreen mode Exit fullscreen mode

Dorénavant, le code applique une attaque au joueur, permettant ainsi au jeu de vérifier s’il doit bien prendre des dégâts ou non.

/* Attaque le joueur de 4 demi-coeurs avec un type de dégât générique */
player.attackEntityFrom(DamageSource.generic, 4f);
Enter fullscreen mode Exit fullscreen mode

Cela devrait régler ces différents soucis (PS: même en /god le staff prenait des dégâts 🚨)



Table d'enchantement moddée

Lorsque vous mettiez un item dans la table d'enchantement moddée, peu importe votre item la table vous proposait tous les enchantements possibles.

Désormais celle-ci se basera sur le type de l'item déposé afin de ne vous proposer que ceux disponibles et fonctionnels sur l'item.

/* lorsque l'on récupère la liste des enchantements avec un item */
public static Map<Enchantment, String> getEnchants(Item item) {
    Map<Enchantment, String> ench = new HashMap<>();
    /* On parcourt la liste des enchantements qui existe */
    for (Enchantment enchantment : enchants.keySet()) {
      /* Si l'enchantement peut être appliqué sur l'item en question */
      if (enchantment.type.canEnchantItem(item)) {
        /* On accepte l'enchantement */
        ench.put(enchantment, enchants.get(enchantment));
      }
    }
    /* On renvoie la liste des enchantements acceptés */
    return ench;
}
Enter fullscreen mode Exit fullscreen mode

La table d'enchantement ne vous montrera donc plus que les enchantements disponibles, cela devrait vous faire gagner du temps.



Cobble Breaker

Récemment le shift click a été ajouté dans l'interface du Cobble Breaker, mais cet ajout a donné lieu à certains bugs notamment celui concernant la récupération d'expérience pour le métier de Mineur.

Dans certains cas particuliers, l'expérience donnée au joueur ne correspondait pas à la somme des particules récupérées.

Nous ne rentrerons pas dans les détails techniques de ce bug car il relève du code de Minecraft mais il est désormais résolu.



Réparation de la LuckySword

Contrairement à ce qui était prévu, il était impossible de réparer la LuckySword (palier 100 du LuckyStats) dans une enclume avec des LuckyBlock.

Il s’agissait juste d’un oubli des développeurs, le code a été ajouté et fonctionne désormais sur le serveur en espérant que certains d'entre vous la possède bientôt ! 🎉



HitBox

Il semblerait que les mobs du métier de Hunter ait une hitbox trop faible pour certains… Nous n'avons pas été radins et avons augmenté de 0,2 bloc l’intégralité des hitbox des animaux aussi bien en largeur qu’en longueur et en hauteur !

public class MyEntity {
   setSize(size + 0.2, size + 0.2, size + 0.2); 
}
Enter fullscreen mode Exit fullscreen mode

Ce fut long et fastidieux... hum... hum...



Home Remover

Le Home Remover avait quelques soucis d'affichage, ceux-ci ont été réglés.

Le cooldown affiché au-dessus du Home Remover n'était pas toujours correct et descendait par paliers, nous en avons donc profité pour paramétrer le format du cooldown en HH:MM:SS.

return String.format("%02d:%02d:%02d", seconds / 3600, (seconds % 3600) / 60, seconds % 60);
Enter fullscreen mode Exit fullscreen mode

Pour obtenir un cooldown de ce style nous allons d'abord récupérer l'heure : nombre_de_secondes / 3600

Ensuite pour les minutes, le calcul se complexifie un peu. Il faut savoir que en java les "%" sont ce que l'on appelle des modulo

Un modulo est le reste de la division, par exemple

10 modulo 3

Cela retournera 1, je m'explique: 3 rentre 3 fois dans 10, cela fait 9. La division n'étant pas parfaite il nous reste un "reste" qui ici est 1 (10-9).

Pour le nombre de minutes, nous allons donc faire (nombre_de_secondes % 3600) / 60

Et enfin pour le nombre de secondes : nombre_de_secondes % 60



Golem sous la bedrock

Il arrivait que certains Guardian Golem traversent la dernière couche de bedrock lorsqu'ils se trouvaient dessus. Le souci étant qu’une fois dans le void, ils tombaient à l'infini et donc ne remboursait pas la Guardian Stone au joueur maitre du Golem.

Désormais, si le golem se trouve en dessous de la couche 0, il sera automatiquement kill.

/* Lorsque l'entité se met à jour */
public void onEntityUpdate() {
    /* Si sa position est en-dessous de la couche 0 */
    if(this.posY < 0) {
        /* On tue le golem */
        setDead();
    }
}
Enter fullscreen mode Exit fullscreen mode



Features_Banner_IMG

Amulettes

Nous avons ajouté une petite description en-dessous des amulettes pour que vous ne soyez plus perdus (tout comme nous d'ailleurs).
Alt Text



Enchantement Humiliation

Nous avons pris la liberté et le plaisir de vous ajouter de nouvelles petites phrases pour accompagner votre mort avec l'enchantement Humiliation.

En voici quelques exemples :

  • Adieu , mort au combat sous la main de
  • n’est plus... l’a réduit en miettes

Nous vous laissons la surprise des autres 🙈



Modification Pillage

Modification de la Boom Obsidienne

Description : Génère une explosion qui affecte les joueurs et les entités

Dégâts entités : retire 10% de la vie de l’entité. Si l’entité a moins de 1% de sa vie initiale, il meurt.

Dégâts joueur passe de : 5 coeurs -> 2 coeurs

Pas de dégâts en-dessous de x coeurs passe de : 3 coeurs -> 2 coeurs

Rayon d’explosion : 1,5 bloc
Enter fullscreen mode Exit fullscreen mode

Ajout d'un nouveau bloc : la Mega Boom Obsidienne

Alt Text

Basé sur la Boom Obsi, celle-ci fera trembler vos plus féroces ennemis

Description : Génère une explosion qui affecte les joueurs et les entités

Dégâts entités : Retire 20% de la vie de l’entité. Si l’entité a moins de 1% de sa vie initiale, il meurt.

Dégâts joueur : 4 coeurs

Pas de dégâts en dessous x coeurs : 2 coeurs

Rayon d’explosion : 2 blocs
Enter fullscreen mode Exit fullscreen mode

Et voici son craft :
Alt Text

Obsidienne directionnelle

Ancien système : Actuellement les Slime Obsi se placent vers le joueur s’il est à 3 blocs ou moins. Sinon, elles se placent toujours vers le sud.
Alt Text

Nouveau système : Apparition d'un symbole sur la face sud de base. Ensuite, via la pioche en obsidienne (clic droit) le symbole se déplacera de face en face.
Si l’obsidienne est placée à côté d’une autre obsidienne, le symbole prend de base la même direction.

Ajout de 3 nouvelles enclumes

Désormais, le serveur compte des enclumes en Améthyste, en Titane et en Paladium !
Alt Text

Enclume Durabilité Nombre moyen d'utilisation
Basique 5 40
Améthyste 7 56
Titane 10 80
Paladium 14 112

Les enclumes sont désormais utilisables dans les zones claims.

Aucune modifications n’a été faites sur la résistance des enclumes aux explosions et notamment à la dynamite. Cela reste comme avant, les nouvelles enclumes apportent donc seulement un plus grand nombre d’utilisation avant de se détruire.


Voici ce qui signe la fin de ce PatchNote, nous espérons que cela vous a plu et que ce nouvel aspect technique vous plaira tout autant.

Un sondage est disponible ici 🚀 ✨sondage✨
Alt Text

N'hésitez pas à laisser un commentaire ci-dessous, nous vous répondrons avec le plus grand plaisir.

Oldest comments (5)

Collapse
 
blushander profile image
Blushander

Encore un beau patch-note bien détaillé, que demander de plus ?

Collapse
 
ugo_75_b profile image
Ugo_75_b

Rien justement, c'est un patch-note irrréprochable ! 💎

Collapse
 
gravity_luxury profile image
GraVitY_LuxurY

Encore mieux que les précédents, avec cette fois plus de détails de codes, j'aime bien !

Collapse
 
ugo_75_b profile image
Ugo_75_b

J'adore aussi ! ^^

Collapse
 
ugo_75_b profile image
Ugo_75_b

Super Patch-Note !
Je suis vraiment content de celui-ci, surtout par rapport à la bomm obidian, la méga boom obsidian et les nouvelles enclumes modées ✨
Bonne continuation au staff de Paladium :3