Limiter le nombre de craft maximum des quarry par joueurs ? #6

Closed
opened 2019-02-16 22:31:30 +01:00 by sys4 · 7 comments
Owner

J'ai besoin d'un avis :

Le problème est que la super quarry est une source importante de lags pour le serveur.
Et actuellement tout le monde peut en fabriquer autant qu'il le souhaite.
Donc avant sa mise en ligne publique j'aimerais vraiment solutionner ce problème.

J'avais une première idée, la plus simple, qui était de limiter leur fabrication au nombre de 4 maximum par joueurs.

Puis avec l'idée de Grossam pour augmenter le nombre de level de toolranks, cela me donne une autre idée :

Pour commencer faire que il faut avoir un certain level pour crafter une quarry normale.
Ensuite au fur et à mesure de la montée en level pouvoir construire plus de quarry jusqu'à un maximum de 4 super quarry.

Peut-être pourrions nous utiliser le level de diguage fournis par toolranks comme suit :

Level Nb de quarry possible à crafter maximum
0 Pas de quarry
1 1 Q
2 2 Q
3 3 Q
4 4 Q
5 1 SQ
6 2 SQ
7 3 SQ
8 4 SQ

Le problème c'est que les levels de toolranks sont liés à un outil.
Si on change d'outil ou qu'on le perd, on perd aussi le level qui va avec.

Du coup j'ai 2 + 1 solutions qui me viennent en tête :

  1. Utiliser les level de toolranks :
    Scanner l'inventaire du joueur et trouver l'outil avec le plus haut level pour débloquer les crafts de quarry que permet ce level.
    Il faudra se souvenir du nombre de quarry déjà craftés pour empêcher le craft de nouvelles quarry si le joueur est revenu à un niveau plus bas.
  2. Faire notre propre compteur de diguage quelque soit l'outil employé :
    Le level ne serait pas dépendant de l'outil, mais directement du joueur.
    Mémoriser cette valeur pour chaque joueur. À chaque pallier (8 dans ce cas) cela lui permettrait de débloquer le craft d'une quarry en plus. Dès que le craft est fait on bloque la possibilité de craft jusqu'au prochain level et ainsi de suite. (Ça me parait plus simple à implémenter)
  3. Dernière solution, trouver un nouveau mod accès sur le levelling du joueur et voir comment l'utiliser pour arriver à nos fins.

Évidement on pourrais du coup appliquer ce genre de mécanisme pour le craft d'autres items considérés comme précieux.

Voilà j'ai besoins d'avis ou d'autres idées avant de commencer à implémenter qqchose.

J'ai besoin d'un avis : Le problème est que la super quarry est une source importante de lags pour le serveur. Et actuellement tout le monde peut en fabriquer autant qu'il le souhaite. Donc avant sa mise en ligne publique j'aimerais vraiment solutionner ce problème. J'avais une première idée, la plus simple, qui était de limiter leur fabrication au nombre de 4 maximum par joueurs. Puis avec l'idée de Grossam pour augmenter le nombre de level de toolranks, cela me donne une autre idée : Pour commencer faire que il faut avoir un certain level pour crafter une quarry normale. Ensuite au fur et à mesure de la montée en level pouvoir construire plus de quarry jusqu'à un maximum de 4 super quarry. Peut-être pourrions nous utiliser le level de diguage fournis par toolranks comme suit : <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> <col class="right" /> <col class="left" /> </colgroup> <thead> <tr> <th scope="col" class="right">Level</th> <th scope="col" class="left">Nb de quarry possible à crafter maximum</th> </tr> </thead> <tbody> <tr> <td class="right">0</td> <td class="left">Pas de quarry</td> </tr> <tr> <td class="right">1</td> <td class="left">1 Q</td> </tr> <tr> <td class="right">2</td> <td class="left">2 Q</td> </tr> <tr> <td class="right">3</td> <td class="left">3 Q</td> </tr> <tr> <td class="right">4</td> <td class="left">4 Q</td> </tr> <tr> <td class="right">5</td> <td class="left">1 SQ</td> </tr> <tr> <td class="right">6</td> <td class="left">2 SQ</td> </tr> <tr> <td class="right">7</td> <td class="left">3 SQ</td> </tr> <tr> <td class="right">8</td> <td class="left">4 SQ</td> </tr> </tbody> </table> Le problème c'est que les levels de toolranks sont liés à un outil. Si on change d'outil ou qu'on le perd, on perd aussi le level qui va avec. Du coup j'ai 2 + 1 solutions qui me viennent en tête : 1. Utiliser les level de toolranks : Scanner l'inventaire du joueur et trouver l'outil avec le plus haut level pour débloquer les crafts de quarry que permet ce level. Il faudra se souvenir du nombre de quarry déjà craftés pour empêcher le craft de nouvelles quarry si le joueur est revenu à un niveau plus bas. 2. Faire notre propre compteur de diguage quelque soit l'outil employé : Le level ne serait pas dépendant de l'outil, mais directement du joueur. Mémoriser cette valeur pour chaque joueur. À chaque pallier (8 dans ce cas) cela lui permettrait de débloquer le craft d'une quarry en plus. Dès que le craft est fait on bloque la possibilité de craft jusqu'au prochain level et ainsi de suite. (Ça me parait plus simple à implémenter) 3. Dernière solution, trouver un nouveau mod accès sur le levelling du joueur et voir comment l'utiliser pour arriver à nos fins. Évidement on pourrais du coup appliquer ce genre de mécanisme pour le craft d'autres items considérés comme précieux. Voilà j'ai besoins d'avis ou d'autres idées avant de commencer à implémenter qqchose.
sys4 added this to the NALC-1.0.0 milestone 2019-02-16 22:31:30 +01:00
sys4 self-assigned this 2019-02-16 22:31:30 +01:00
sys4 added the
Évolution
label 2019-02-16 22:31:30 +01:00
Member

Les SQ, tu peux limiter à 5 : un réacteur nucléaire. Les besoins en énergie de la SQ devraient d'ailleurs décourager les kikoolols (et tu peux aussi les rendre plus cher à crafter).

La solution deux me paraît bien : garder trace du nombre de digs du joueur pourrait resservir pour plein de trucs (récompense du 'miner of the month', autorisation de construire un cœur nucléaire, attribution de privs automatiques…)

Autrement, sur le serveur Irhfussel il y a un mod de levelling joueur à base d'XP qu'on récolte en minant et en buildant. Les levels apportent des avantages (crafting double de certains objets). Peut-être réutilisable chez nous ?

Les SQ, tu peux limiter à 5 : un réacteur nucléaire. Les besoins en énergie de la SQ devraient d'ailleurs décourager les kikoolols (et tu peux aussi les rendre plus cher à crafter). La solution deux me paraît bien : garder trace du nombre de digs du joueur pourrait resservir pour plein de trucs (récompense du 'miner of the month', autorisation de construire un cœur nucléaire, attribution de privs automatiques…) Autrement, sur le serveur Irhfussel il y a un mod de levelling joueur à base d'XP qu'on récolte en minant et en buildant. Les levels apportent des avantages (crafting double de certains objets). Peut-être réutilisable chez nous ?
Member
https://forum.minetest.net/viewtopic.php?f=10&t=15932&sid=8b3907cf05b1368f2915b61cd3e62934
Author
Owner

En attendant la réponse sur le forum, le mod awards de Rubenwardy me paraît très intéressant à exploiter.
Son api est plutôt bien fichue et permet d'avoir toute sorte de compteurs d'actions (dig, craft, eat, die, chat, etc...) on peut même se créer des événements sois même. En bref l'API est faite de telle sorte qu'elle est personnalisable à souhait.
Et puis vu l'auteur du mod (un des principal contributeur de Minetest), je pense que c'est une valeur sûre et stable.
Je vais regarder dans cette direction pour le moment.
Du coup je pense effectivement partir sur la solution 3 du premier post.

J'avais déjà le miroir de ce dépôt depuis un moment en plus : https://sys4.fr/gitea/nalc/awards

Tête en l'air que je suis ^^

En attendant la réponse sur le forum, le mod awards de Rubenwardy me paraît très intéressant à exploiter. Son api est plutôt bien fichue et permet d'avoir toute sorte de compteurs d'actions (dig, craft, eat, die, chat, etc...) on peut même se créer des événements sois même. En bref l'API est faite de telle sorte qu'elle est personnalisable à souhait. Et puis vu l'auteur du mod (un des principal contributeur de Minetest), je pense que c'est une valeur sûre et stable. Je vais regarder dans cette direction pour le moment. Du coup je pense effectivement partir sur la solution 3 du premier post. J'avais déjà le miroir de ce dépôt depuis un moment en plus : https://sys4.fr/gitea/nalc/awards Tête en l'air que je suis ^^
Member

Awards a l'air très bien : il compte les digs, Et on déclenche ce qu'o,n veut en fonction et il a l'air de prévoir à peu près tous les triggers possibles.

Une bonne piste à mon avis : peut-être même utilisable sans modifs ?

Awards a l'air très bien : il compte les digs, Et on déclenche ce qu'o,n veut en fonction et il a l'air de prévoir à peu près tous les triggers possibles. Une bonne piste à mon avis : peut-être même utilisable sans modifs ?
sys4 added the
Approuvé
label 2019-03-02 19:29:26 +01:00
Author
Owner

J'ai utilisé le mod awards que j'ai à peine modifié.
J'ai rajouté quelques nouveaux awards (*) et modifié quelques existant. Dès qu'un award est terminé par un joueur, les crafts des quarry sont débloqués pour ce joueur selon le tableau suivant :

Award Craft de Quarry débloqué
awardmine3 (Hardened Miner) 1Q
\*awardironminer (Iron Lady) 2Q
\*awardcopperminer (Copper Trooper) 4Q
\*awardgoldminer (Gold Digger) 5Q
awardmine4 (Master Miner) 1SQ
\*awardirnmaster (Iron Man) 1SQ
awardyoureacopper (You're a copper) 1SQ
\*awardgoldmaster (Golden Age) 1SQ

Pour les deux types de quarry, elles ne sont plus craftables avec l'autocrafter.

J'ai utilisé le mod awards que j'ai à peine modifié. J'ai rajouté quelques nouveaux awards (*) et modifié quelques existant. Dès qu'un award est terminé par un joueur, les crafts des quarry sont débloqués pour ce joueur selon le tableau suivant : <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> <col class="left" /> <col class="left" /> </colgroup> <thead> <tr> <th scope="col" class="left">Award</th> <th scope="col" class="left">Craft de Quarry débloqué</th> </tr> </thead> <tbody> <tr> <td class="left">award<sub>mine3</sub> (Hardened Miner)</td> <td class="left">1Q</td> </tr> <tr> <td class="left">\*award<sub>iron</sub><sub>miner</sub> (Iron Lady)</td> <td class="left">2Q</td> </tr> <tr> <td class="left">\*award<sub>copper</sub><sub>miner</sub> (Copper Trooper)</td> <td class="left">4Q</td> </tr> <tr> <td class="left">\*award<sub>gold</sub><sub>miner</sub> (Gold Digger)</td> <td class="left">5Q</td> </tr> <tr> <td class="left">award<sub>mine4</sub> (Master Miner)</td> <td class="left">1SQ</td> </tr> <tr> <td class="left">\*award<sub>irn</sub><sub>master</sub> (Iron Man)</td> <td class="left">1SQ</td> </tr> <tr> <td class="left">award<sub>youre</sub><sub>a</sub><sub>copper</sub> (You're a copper)</td> <td class="left">1SQ</td> </tr> <tr> <td class="left">\*award<sub>gold</sub><sub>master</sub> (Golden Age)</td> <td class="left">1SQ</td> </tr> </tbody> </table> Pour les deux types de quarry, elles ne sont plus craftables avec l'autocrafter.
sys4 closed this issue 2019-03-02 20:12:51 +01:00
sys4 added the
Résolue
label 2019-03-02 20:13:09 +01:00
Member

Et c'est quoi les quatre premiers awards ?

Et c'est quoi les quatre premiers awards ?
Author
Owner

Miner 1000 stones, 100 minerais de fer, cuivre et or.
Les 4 suivants, miner 10000 stones, 1000 minerairs de fer, cuivre et or.

Miner 1000 stones, 100 minerais de fer, cuivre et or. Les 4 suivants, miner 10000 stones, 1000 minerairs de fer, cuivre et or.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: nalc/nalc-server-mods#6
No description provided.