CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Need Help Solidity programmation

boucif
boucif
Niveau 24
15 août 2021 à 17:22:25

Bonjour,

je suis entrain de me faire un petit jeu style pokemon pour m'entrainer avec solidity, j'ai fait ça sous forme de NFT et j'aurais besoin d'aide pour avancer et pas faire n'importe quoi.

Je me suis basé sur le code de OpenZepelin :
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/presets/ERC721PresetMinterPauserAutoId.sol

là j'essaye de stocker les infos de mes différents monstre mais je me demande comment ça fonctionne, si je veux d'un côté stocké des datas qui sont liés aux monstres eux même et de l'autre au token ?

j'ai donc crée un struct qui contient les infos générales de mes différents monstres et déclarés un tableau:
struct Monster { uint256 id; uint256 pv; uint256 atk; uint256 def; uint256 attSpe; uint256 defSpe; uint256 speed; string name; } Monster[] private monsters;

De l'autre côté je voudrais stocker des infos lié au token en lui même :
struct Save { uint256 id; uint256 experience; uint256 level; }

Bon j'ai des optimisation à faire sur le type de data (utilisé des uint plus petit par exemple), ma question c'est comment faire en sorte que le struct save soit lié au Token :
Un mapping token id Save ?

Pour les monstres c'est bien comme ça que je dois les stocker dans mon smartcontract, j'ai du mal à conceptualisé les choses venant du dev plus traditionnel C#/JS ...

J'ai plein d'autre question mais je commence par là :p)

boucif
boucif
Niveau 24
15 août 2021 à 21:14:27

Nobody?

Cannapro
Cannapro
Niveau 10
15 août 2021 à 21:15:54

J'ai fait quelques smart contracts mais ta question est un peu trop précise

Edit: c'est dans le constructor normalement que tu mets les infos du token

Message édité le 15 août 2021 à 21:17:30 par Cannapro
boucif
boucif
Niveau 24
15 août 2021 à 21:18:32

Peut être tu peux répondre à celle ci si dans mon struct je met des uint8 normalement il est capable de les empacter en uint256 est que si je met des uint8 je peux en definir 32 pour les empacter en uint256 ou ce n’est pas le bon calcul

boucif
boucif
Niveau 24
15 août 2021 à 21:19:47

Le 15 août 2021 à 21:15:54 :
J'ai fait quelques smart contracts mais ta question est un peu trop précise

Edit: c'est dans le constructor normalement que tu mets les infos du token

Oui pour le nom mais si je mint different pokemon avec différentes stats vaut mieux pas que je mette ça directement au niveau du token

Cannapro
Cannapro
Niveau 10
15 août 2021 à 21:20:47

Le 15 août 2021 à 21:18:32 :
Peut être tu peux répondre à celle ci si dans mon struct je met des uint8 normalement il est capable de les empacter en uint256 est que si je met des uint8 je peux en definir 32 pour les empacter en uint256 ou ce n’est pas le bon calcul

je crois que c'est convertissable ouais mais bon je pense pas que ça utilise autant que ça les uint256, c'est ce qui est toujours utilisé quasiment

0xDCA
0xDCA
Niveau 5
15 août 2021 à 21:21:05

Pourquoi tu ne stocks pas directement ces valeurs dans la structure monstre ? Sinon oui tu peux faire un map du style :

mapping (uint256 => uint256) monsterToSave;
Cannapro
Cannapro
Niveau 10
15 août 2021 à 21:21:24

Le 15 août 2021 à 21:19:47 :

Le 15 août 2021 à 21:15:54 :
J'ai fait quelques smart contracts mais ta question est un peu trop précise

Edit: c'est dans le constructor normalement que tu mets les infos du token

Oui pour le nom mais si je mint different pokemon avec différentes stats vaut mieux pas que je mette ça directement au niveau du token

C'est quoi que tu mets dans ton Save ? Je comprends pas ce que tu veux stocker

boucif
boucif
Niveau 24
15 août 2021 à 21:42:21

En faite j'aurai une liste de monstres qui pourra être dynamique et chaque monstre aura un identifiant et des stats de base donc au début il y en aura peut être 30 et au fur et à mesure j'en ajouterai, dans le save je mets l'id du monstre, le level actuel et l'expérience actuelle.
J'ai revu un peut le truc.
struct Monster { uint16 id; uint16 pv; uint16 atk; uint16 def; uint16 special; uint16 speed; string name; } struct IV { uint16 pv; uint16 atk; uint16 def; uint16 special; uint16 speed; } struct Save { uint16 id; uint16 level; uint32 experience; uint24 evPv; uint24 evAtk; uint24 evDef; uint24 evSpecial; uint24 evSpeed; } Monster[] private monsters;

Le save sera lié au token, comme ça on pourra facilement retrouver le monstre et améliorer son XP et son lvl au fur et mesure des parties.
Les IV seront aussi lié au token c'est ce qui déterminera leur rareté à voir comment je génère les nombres aléatoire ça à l'air d'une grosse embrouille, et ce n'est que la partie NFT.
Je pense faire un autre smartcontract qui exploitera ce NFT et qui lui sera le backend du jeu, il gérera les combats, je me demande si doit faire d'autre NFT pour les potions, les sorts et comment combiner ça XD

Message édité le 15 août 2021 à 21:43:21 par boucif
boucif
boucif
Niveau 24
16 août 2021 à 15:08:03

Quand vous faites des jeux à base de NFT vous utilisez plusieurs contrat ou vous faite un contrat pour le jeu un autre pour le NFT

La vidéo du moment