RPG mod



  • En voyant le titre, vous allez sûrement dire "Oh, encore un mod qui va rajouter 3 minerais …". Et bien non. Ce mod va transformer minecraft en un VRAI RPG, et ce que j'entends par vrai RPG :

    Je sais que c'est un énorme défi, que je ne réussirai surement pas, mais je vais quand même tenter.

    Pour parler plus "techniquement", voici les ajouts que feront le mod :
    -Un grand panel d'équipement
    -[infobulle="Et des limites breakers !"]Un système de combat simple[/infobulle], le même que FFVII sans le systéme de matéria, tout en gardant le coté sandbox de Minecraft
    -[infobulle="Guerrier, mage voleur, berseker, assassin …"]Des classes[/infobulle]
    -Des nouveaux mobs
    -Un éditeur de personnage, pour composer son équipe
    -Des héros recrutable dans les villages
    -Des sorts ( évidemment )
    -Des easters Eggs ( évidemment évident )
    -Un nom qui a la classe ( Final Craft ? crafting fantasy ? )

    Voila, mon gros projet est dévoilé, je ne réussirai pas seul, si jamais vous voulez m'aider, n’hésitez pas.



  • Hey bonne idée ;), c'est vrai que ça donne envie en lisant ton article, je suis très curieux de ce que ça pourrait donner au final bave :p.

    Je te souhaite bonne chance, pour ma part je me sentirai bien incapable de faire ça '-'.
    Encore bonne chance ^^.



  • Que la saucisse soit avec toi.



  • @'Gugu42':

    Que la saucisse soit avec toi.

    Mais ou est la merguez alors ? va falloire en parler a maitre chipolata ! 😉

    PS: dsl de mon humour pourrit x).



  • Voila l'équation qui gère l'exp, vous en pensez quoi ? ( au passage, je crois avoir fait des erreurs … )

    package assets.rpg.Data;
    
    public class Player {
    
    public int Exp;
    public int NextLevel;
    public int Level;
    public int Suiv;
    public int Dernier;
    
    {
    if (Level == 1)
    {
    NextLevel = 100;
    Dernier = NextLevel;
    }
    
    if (Exp == NextLevel)
    {
    Level += 1;
    Suiv = Level +=1;
    NextLevel = 225 * 50*Suiv + Dernier ;
    Dernier = NextLevel;
    }
    
    }}
    
    

    Voila ce que ça donnerait : https://docs.google.com/spreadsheet/ccc?key=0AmWLrgt15yz4dDJEaGNSbG02a2M4dm9TajY4MDZUQ1E#gid=0



  • Hum, je ne pourrai pas te dire sa fais un moment que je n'est pas mi mon nez dans des codes :s.


  • Moddeurs confirmés Rédacteurs Modérateurs Administrateurs

    @Nolan-XX, on a pas les accès nécessaires pour cliquer sur ton lien.



  • Moi j'aurai plutot fait

    
    public class Player {
    
    public int Exp;
    public int Level;
    
    {
    if (Exp == 100)
    {
    Level +=1;
    }
    
    {
    if (Exp == 200) // 100 xp en plus
    {
    Level +=1;
    }
    
    {
    if (Exp == 500) // 300 xp en plus
    {
    Level +=1;
    }
    
    }
    
    

    Moins de variable a géré ^^

    Pourquoi généré plusieurs pallier d'xp par level ? Tu change juste le level par rapport a l'xp accumulé 😉


  • Moddeurs confirmés Rédacteurs Modérateurs Administrateurs

    Il a sans doute, fais ce système pour éviter une succession interminable de condition comme tu fais.

    @Nolan-XX, convention JAVA, non-respecté, par contre.



  • Superloup10 a tout dit.
    Sinon : https://docs.google.com/spreadsheet/ccc?key=0AmWLrgt15yz4dDJEaGNSbG02a2M4dm9TajY4MDZUQ1E&usp=sharing
    j'avais pas ouvert le truc aux visiteurs.



  • Bah, si tu regarde bien, il le fait aussi cette "succession interminable de condition"

    
    if (Level == 1)
    {
    NextLevel = 100;
    Dernier = NextLevel;
    }
    
    

    donc suivra sont if level == 2, if level == 3, etc etc



  • Non, c'est juste pour initialiser.



  • Ouai… Je viens de le voire... Autant pour moi 😑


  • Moddeurs confirmés Modérateurs

    Question: ton système de level, on à le droit de le prendre pour nos mod?



  • "ce système de level" n'est même pas encore crée, c'est juste des variables, donc oui


  • Moddeurs confirmés Modérateurs

    Ok merci 🙂



  • Moi je veut bien t'aider. Je prévoyais aussi un truc de ce genre donc…


  • Moddeurs confirmés

    Tes variables de classes doivent être privées, et doivent commencer par une minuscule.
    Pour moi utiliser une suite et une meilleur idée que foutre plein de if a la chaîne, vu que la mise a échelle de la seconde méthode laisse à désirer 😛



  • Bien que ma façon de coder soit largement discutable, il y certains points que je pense pouvoir améliorer. Si tu permets…

    @'Nolan-XX':

    Voila l'équation qui gère l'exp, vous en pensez quoi ? ( au passage, je crois avoir fait des erreurs … )

    package assets.rpg.Data;
    
    public class Player {
    
    public int Exp;
    public int NextLevel;
    public int Level;
    public int Suiv;
    public int Dernier;
    
    {
    if (Level == 1)
    {
    NextLevel = 100;
    Dernier = NextLevel;
    }
    
    if (Exp == NextLevel)
    {
    Level += 1;
    Suiv = Level +=1;
    NextLevel = 225 * 50*Suiv + Dernier ;
    Dernier = NextLevel;
    }
    
    }}
    
    

    Voila ce que ça donnerait : https://docs.google.com/spreadsheet/ccc?key=0AmWLrgt15yz4dDJEaGNSbG02a2M4dm9TajY4MDZUQ1E#gid=0

    Non pitié !!
    Par convention, seuls les noms d'objets (classes) portent une majuscule en premier caractère.
    Noms de classe : TestClass, ListSuper, MinecraftCheat
    Noms de variables : testObject, mySuperList, minecraftForgeFrance
    Exception pour les variables "static final" :

    public static final String MA_SUPER_CHAÎNE = "";
    

    Donc ça donne :

    public class Player {
    
    private int exp, nextLevel, level, suiv, dernier;
    
    public Player(){
    
    if (level == 1){
    nextLevel = 100;
    dernier = nextLevel;
    }
    
    if (exp == nextLevel){
    ++level;
    suiv = level + 1;
    nextLevel = 11250 * suiv + dernier ;
    dernier = nextLevel;
    }
    }
    }
    

    Si tes variables ne sont utilisées que dans l'objet Player, il faut les déclarer private (d'ailleurs, dans 80% des cas il faut les déclarer private). De plus je vois pas pourquoi ce code est déclaré en initialisation VM, tu manges de la mémoire pour rien. Le mieux est de le placer en constructeur comme je l'ai fait. J'ai corrigé aussi quelques erreurs de syntaxe.
    Pourquoi "225 * 50 * suiv + dernier" ?
    Il faut faire le moins de calculs possibles à l'ordinateur alors autant anticiper : 225 * 50 = 11250. Bref, je suis sûr qu'il y a des erreurs logiques encore, la répétition des "dernier = nextLevel" oblige. En expliquant ton but je pourrai mieux t'aider 🙂


Log in to reply