10-11-2013, 05:02 AM
Bonjour à tous,
J'aurais besoin d'aide pour mettre en place un system de combat relativement simple. Il se déroule sur le t'chat du site, les joueur connecté ont un level qui augmente de 0 à 100 via un systém séparé.
Le fonctionnement :
Toute les x minutes la barre d'actions des joueurs arrive à 100% et ils peuvent exécuter une action. L'une des actions possible est la commande !fight <joueur> qui résulte par une réponse texte dans le tchat, envoyé par le serveur web et annonçant qui des deux joueurs (l'attaquant et l'attaqué) à gagné le combat.
Les valeurs existantes :
Actuellement il n'y à que le level de 0 à 100 et en prévision d'un future system d'item, je pense ajouter une valeur attaque et défense (qui sera incrémenté par les item). Il faudrait donc trouver une valeur d'attaque et de défense sans item et pour un premier test je propose qu'elle sois égale au level.
Issue du combat (récompense) :
Le joueur qui gagne le combat obtiens un pourcentage d'xp, volé au joueur qu'il à tué. On comprends donc qu'attaquer un joueur haut niveau est plus intéressant.
Qui dois gagner :
Dans la logique, le plus grand level gagne forcément.. malheureusement cela voudrais dire qu'il n'y a aucun intêret à attaquer un joueur plus haut niveau en espérant gagné plus d'xp. Le perdant peux donc être le joueur qui attaque, au quel cas il ne perds pas d'xp.
En conclusion, la formule ?
L'idéal serais de trouver un équilibre convenable, entre la différence de niveau et les chance de gagner. Afin que, sans aucun item, un joueur puisse tenter sa chance en attaquant quelqu'un de plus haut niveau pour tenter d'avoir une meilleur récompense, ou choisir un combat facile et attaquer un joueur plus petit niveau pour être sure d'obtenir la récompense.
Idée de formule :
Jatk = joueur attaquant
Jdef = joueur attaqué
Jatk.puissance = Jatk.level
Jatk.defense = Jatk.level
Jdef.puissance = Jdef.level
Jdef.defense = Jdef.level
(la puissance et la defense, dans cette version de la formule sont en réalité un pourcentage de chance de gagner. Par exemple 1 de puissance = 1% de chance de gagner)
chance.victoire = 50 + Jatk.puissance - Jdef.defense
random.victoire = rand(0,100)
if (random.victoire < chance.victoire+1) victoire = Jatk
else victoire = Jdef
Avec cette formule on considère donc (toujours sans item) :
- En attaquant un joueur ayant 50 level de plus, on à 0% de chance de gagner
- En attaquand un joueur ayant 25 level de plus, on à 25% de chance de gagner
- En attaquant un joueur ayant le même level on à 50% de chance de gagner
- En attaquant un joueur ayant 25 level de moins, on à 75% de chance de gagner
- En attaquant un joueur ayant 50 level de moins, on à 100% de chance de gagner
Avec une valeur de base de 60 sur chance.victoire on obtiens :
- En attaquant un joueur ayant 60 level de plus, on à 0% de chance de gagner
- En attaquand un joueur ayant 35 level de plus, on à 25% de chance de gagner
- En attaquant un joueur ayant le même level on à 60% de chance de gagner
- En attaquant un joueur ayant 15 level de moins, on à 75% de chance de gagner
- En attaquant un joueur ayant 40 level de moins, on à 100% de chance de gagner
Conclusion :
En commençant la rédaction de ce message je n'avais aucune idée de la formule proposé ci-dessus, qui est venu au fur et à mesure que j'écrivais xD comme quoi posé à plat sa aide toujours ! Donc je sollicite vos avis, sur cette formule, sur une tout autre methode que vous connaitriez, sur le choix du réglage ou encore sur toute aspet non abordé qui m'aurais échapé ? J'espère que le message n'est pas trop rebutant à cause de sa longueur et merci pour votre lecture.
Nestoyeur.
J'aurais besoin d'aide pour mettre en place un system de combat relativement simple. Il se déroule sur le t'chat du site, les joueur connecté ont un level qui augmente de 0 à 100 via un systém séparé.
Le fonctionnement :
Toute les x minutes la barre d'actions des joueurs arrive à 100% et ils peuvent exécuter une action. L'une des actions possible est la commande !fight <joueur> qui résulte par une réponse texte dans le tchat, envoyé par le serveur web et annonçant qui des deux joueurs (l'attaquant et l'attaqué) à gagné le combat.
Les valeurs existantes :
Actuellement il n'y à que le level de 0 à 100 et en prévision d'un future system d'item, je pense ajouter une valeur attaque et défense (qui sera incrémenté par les item). Il faudrait donc trouver une valeur d'attaque et de défense sans item et pour un premier test je propose qu'elle sois égale au level.
Issue du combat (récompense) :
Le joueur qui gagne le combat obtiens un pourcentage d'xp, volé au joueur qu'il à tué. On comprends donc qu'attaquer un joueur haut niveau est plus intéressant.
Qui dois gagner :
Dans la logique, le plus grand level gagne forcément.. malheureusement cela voudrais dire qu'il n'y a aucun intêret à attaquer un joueur plus haut niveau en espérant gagné plus d'xp. Le perdant peux donc être le joueur qui attaque, au quel cas il ne perds pas d'xp.
En conclusion, la formule ?
L'idéal serais de trouver un équilibre convenable, entre la différence de niveau et les chance de gagner. Afin que, sans aucun item, un joueur puisse tenter sa chance en attaquant quelqu'un de plus haut niveau pour tenter d'avoir une meilleur récompense, ou choisir un combat facile et attaquer un joueur plus petit niveau pour être sure d'obtenir la récompense.
Idée de formule :
Jatk = joueur attaquant
Jdef = joueur attaqué
Jatk.puissance = Jatk.level
Jatk.defense = Jatk.level
Jdef.puissance = Jdef.level
Jdef.defense = Jdef.level
(la puissance et la defense, dans cette version de la formule sont en réalité un pourcentage de chance de gagner. Par exemple 1 de puissance = 1% de chance de gagner)
chance.victoire = 50 + Jatk.puissance - Jdef.defense
random.victoire = rand(0,100)
if (random.victoire < chance.victoire+1) victoire = Jatk
else victoire = Jdef
Avec cette formule on considère donc (toujours sans item) :
- En attaquant un joueur ayant 50 level de plus, on à 0% de chance de gagner
- En attaquand un joueur ayant 25 level de plus, on à 25% de chance de gagner
- En attaquant un joueur ayant le même level on à 50% de chance de gagner
- En attaquant un joueur ayant 25 level de moins, on à 75% de chance de gagner
- En attaquant un joueur ayant 50 level de moins, on à 100% de chance de gagner
Avec une valeur de base de 60 sur chance.victoire on obtiens :
- En attaquant un joueur ayant 60 level de plus, on à 0% de chance de gagner
- En attaquand un joueur ayant 35 level de plus, on à 25% de chance de gagner
- En attaquant un joueur ayant le même level on à 60% de chance de gagner
- En attaquant un joueur ayant 15 level de moins, on à 75% de chance de gagner
- En attaquant un joueur ayant 40 level de moins, on à 100% de chance de gagner
Conclusion :
En commençant la rédaction de ce message je n'avais aucune idée de la formule proposé ci-dessus, qui est venu au fur et à mesure que j'écrivais xD comme quoi posé à plat sa aide toujours ! Donc je sollicite vos avis, sur cette formule, sur une tout autre methode que vous connaitriez, sur le choix du réglage ou encore sur toute aspet non abordé qui m'aurais échapé ? J'espère que le message n'est pas trop rebutant à cause de sa longueur et merci pour votre lecture.
Nestoyeur.