Plugin Pour Mini-Jeu

Donc pour résumer j'aimerais faire que quand un joueur clique sur une plume il soit tp a un endroit avec un timer de 10 à 0 ; le timer et le tp pas un probleme je peut le faire ; mais quand le joueur clique sur la plume il doit avoir un rôle aléatoire entre 8 rôles…
Et je ne comprend pas trop comment donner ces rôles
Si vous avez des exemples avec des cas concrets je prend :)
Merci
Thomas
 
Dernière édition:
Re,

je ne suis pas sûr que tu comprennes ce que tu écris... Plusieurs choses :
- Pourquoi la classe extends JavaPlugin?
- Pourquoi deux instances de GMain dont une non statique?
- Pourquoi avoir un GState non initialisé ?
- Pourquoi ça ?
Code:
public static GMain instance;
        public static GMain getInstance() {
            return instance;}
Le but de ce code est d'avoir un singleton de la classe principale, donc c'est très bizarre de mettre ceci ici...

Ensuite l'indentation est horrible, il faudrait améliorer ça. :p Sinon, soit plus précis que "ça marche pas".
 
Up
J'essai toujours,
In n'est pas possible de le faire depuis une arraylist?
Du style:

ArrayList[player] villageois = new arraylist[player]();

Mais après ceci je ne sais pas comment mettre les joueurs aléatoirement dans chaque listes...
 
Salut,

non la liste n'est pas adaptée car elle ne contient qu'un seul élément. La map par contre contient clé:valeur, la clé étant le joueur et la valeur son rôle.

Mais après ceci je ne sais pas comment mettre les joueurs aléatoirement dans chaque listes...
Il faut utiliser l'objet Random. Par exemple :
Code:
Random rand = new Random(); // Nouvel objet Random
int randI = rand.nextInt(10); // Création d'un nombre pseudo-aléatoire entre [|0;10|[
 
Code:
if(main.getZombie().size() == 0)        //zombie
                {
                    TotalJoueurs.addAll(Bukkit.getOnlinePlayers());
                    
                    main.gameAnnounce("§6[§4ZOMBIE§6] §7Lancement du jeu !");
                    PlayersZombie();
                    cancel();
                    
                }                   
                if(main.getJeanPierre().size() == 0)            public static void PlayersZombie() {
                
        int random = new Random().nextInt(TotalJoueurs.size());
                
        Player Zombie = (Player) Bukkit.getServer().getOnlinePlayers().toArray()[random];
        TotalJoueurs.remove(Zombie);
        Zombie.sendMessage("§6[§4ZOMBIE§6] §7Tu es un §4Zombie§7!");
        }
Salut,

non la liste n'est pas adaptée car elle ne contient qu'un seul élément. La map par contre contient clé:valeur, la clé étant le joueur et la valeur son rôle.


Il faut utiliser l'objet Random. Par exemple :
Code:
Random rand = new Random(); // Nouvel objet Random
int randI = rand.nextInt(10); // Création d'un nombre pseudo-aléatoire entre [|0;10|[


Moi j'avais fait ça :
(je l'avais répeté10 fois pour les 10 rôles)
et quand tu me d'utiliser la "map" tu parle de la hash map mais comment je peut l'utiliser?
avec un exemple ^^
merci d'avance
Thomas
 
Salut,

j'ai énormément de mal à comprendre ton code. Mis à part l'indentation qui n'aide pas, certaines variables sortent de nulle part et on ne sait même pas où se situe ce code dans ton projet...

et quand tu me d'utiliser la "map" tu parle de la hash map mais comment je peut l'utiliser?
avec un exemple ^^
Oui, une HashMap ou plutôt n’importe quelle classe qui est une implémentation de Map<K, V> ; la HashMap étant certainement la plus "conviviale" et simple à utiliser. Je pensais que tu connaissais un minimum les map, ça n'a pas été traités dans ta formation ?
Code:
final HashMap<UUID, Role> userRole = new HashMap<>(); // Création d'une HashMap qui a comme clé un UUID et comme valeur un Role (la clé étant nécessairement unique)

// Ajout d'un élement
userRole.put(UUID.randomUUID();, Role.WEREWOLF);

// Récupération d'un élement
userRole.get(UUID.randomUUID());

// Suppresion d'un élement
userRole.remove(UUID.randomUUID());
 
ça n'a pas été traités dans ta formation ?

Ma formation ? quelle formation? ^^
et donc je fait comme comme pour créer un rôle a partir ce ça?

Code:
fiinal HashMap<UUID, Role> userRole = new HashMap<>();

userRole.put(UUID.randomUUID();, Role.WEREWOLF);

userRole.get(UUID.randomUUID());

userRole.remove(UUID.randomUUID());

Je remplace le "Role" par le nom du role que je veut lui attribuer?
et la c'est dans une enum?

thomas
 
Re,

ça n'a pas été traités dans ta formation ?

Ma formation ? quelle formation? ^^
l'endroit où tu as appris le Java ?!!!!

et donc je fait comme comme pour créer un rôle a partir ce ça?
Le Role se trouve dans l'enum :
Code:
enum Role { WEREWOLF, // Le rôle Loup-Garou HUMAN, // Le rôle Humain MAGICIEN; // Le rôle Magicien }
donc, pour que mon joueur Minecraft soit un humain, tu devras faire ça :
Code:
userRole.put(UUID.fromString("53a5502f-3f95-41f3-9e2a-1a70e01e75f4"), Role.HUMAN);
 
Code:
userRole.put(UUID.fromString("53a5502f-3f95-41f3-9e2a-1a70e01e75f4"), Role.HUMAN);
[/QUOTE]

le java bah j'essai de l'apprendre seul ^^
mais juste là tu give le role a un joueur défini ( avec l'uuid)
mais si on veut give a un joueur random ???
 
Re,

le java bah j'essai de l'apprendre seul ^^
ouais ok mais va falloir m'expliquer comment tu fais si tu lis pas la documentation du coup ? C'est un peu la base de tout quoi...

mais juste là tu give le role a un joueur défini ( avec l'uuid)
mais si on veut give a un joueur random ???
C'est exactement pareil, tu dois récupérer l'UUID depuis le joueur. Tu devrais y arriver tout seul avec tout ce qu'on t'a donné.