[MUD] Inventaire léger/Sauvegarde
Publié : mar. 28/juin/2011 10:29
Bonjour 
Vu que c'est mon premier message, autant que je me présente, je suis donc MonchauxantZ, développeur à Over Online G&L, petit groupe de créateurs amateurs...
Pour info, je suis pas mal de forums, dont l'assez connu "GameCorp".
Nous créions un jeu, mais par un retard des graphistes, les développeurs (dont moi) on décidé de créer un jeu sympa sans images : un MUD (Multi-User-Dungeons).
Vous savez peut-être qu'un MUD se joue généralement par Telnet pour la rapidité, mais on a préféré le faire en PureBasic, langage qu'on connaît bien, pour le faire : de plus, après son téléchargement, le joueur pourra y jouer sans être forcément connecté à Internet, et pourra donc faire les quêtes non-communautaires et xp un peu. Si il se reconnecte à Internet, les données seront renvoyées au serveur et il sera donc connecté.
Seulement on a un petit problème
On aimerait faire un système d'inventaire simple et rapide, pas trop trop lourd et donc pas 50 lignes
(Comme j'en ai vu par ici...)
Petite ébauche de code :
Au-dessus, c'est la structure de l'inventaire dans "joueur.pbi"
Au-dessus, c'est le drop, relié à un monstre, prenons pour exemple le rat, ci-dessous :
Voilà. Seulement, est t-il possible d'optimiser ce code, ou est-t-il faussé ?
Egalement, comment faire pour savoir quand un objet est déjà dans l'inventaire, et ajouter 1 à sa quantité ?
...
Seconde question
J'ai du mal avec les sauvegardes, les createfile et autres commandes de ce genre...
Voilà donc le fichier save.pbi :
Et ainsi de suite pour la défense, l'équipement...
Ces procédures sont inclues dans le fichier du jeu, mais je pense qu'on pourrait réduire la taille du fichier save.pbi
Voilà, c'est tout

Vu que c'est mon premier message, autant que je me présente, je suis donc MonchauxantZ, développeur à Over Online G&L, petit groupe de créateurs amateurs...
Pour info, je suis pas mal de forums, dont l'assez connu "GameCorp".
Nous créions un jeu, mais par un retard des graphistes, les développeurs (dont moi) on décidé de créer un jeu sympa sans images : un MUD (Multi-User-Dungeons).
Vous savez peut-être qu'un MUD se joue généralement par Telnet pour la rapidité, mais on a préféré le faire en PureBasic, langage qu'on connaît bien, pour le faire : de plus, après son téléchargement, le joueur pourra y jouer sans être forcément connecté à Internet, et pourra donc faire les quêtes non-communautaires et xp un peu. Si il se reconnecte à Internet, les données seront renvoyées au serveur et il sera donc connecté.
Seulement on a un petit problème

On aimerait faire un système d'inventaire simple et rapide, pas trop trop lourd et donc pas 50 lignes

Petite ébauche de code :
Code : Tout sélectionner
Structure Inventaire
Nom_Objet.l
Type_Objet.l
Desc_objet.l
Quantite_objet.l
EndStructure
Dim Sac.Inventaire(200)
Code : Tout sélectionner
Chance_drop=Random(9)+1
If Chance_Drop < 5
Inventaire(Nbr_Objet)\Nom_objet = Dropcommun$
EndIf
If Chance_Drop < 4
Inventaire(Nbr_Objet)\Nom_objet = Droppeucommun$
EndIf
If Chance_Drop < 2
Inventaire(Nbr_Objet)\Nom_objet = Droprare$
EndIf
If Chance_Drop = 1
Inventaire(Nbr_Objet)\Nom_objet = Droptresrare$
Code : Tout sélectionner
Creature$="Rat"
Pv_Creature=Random(19)+1
Atk_Creature=Random(9)+1
Def_Creature=Random(19)+1
Exp_Creature=2
Dropcommun$="Potion"
Typecommun="Conso"
Desccommun="Rend 20 pv"
Droppeucommun$="Peau de rat"
Typepeucommun="Divers"
Descpeucommun="A manger pour ce soir ?"
Dropprare$="Dent de rat"
Typerare="Divers"
Descrare="Tranchant, attention."
Droptresrare$="Epee du rat"
Typetrsrare="Equip"
Desctresrare="Une epee en dents de rat"
Egalement, comment faire pour savoir quand un objet est déjà dans l'inventaire, et ajouter 1 à sa quantité ?
...
Seconde question

J'ai du mal avec les sauvegardes, les createfile et autres commandes de ce genre...
Voilà donc le fichier save.pbi :
Code : Tout sélectionner
Enumeration
#SaveP
#SaveA
#SaveD
#SaveV
#SaveVM
#SavePM
#SavePMM
EndEnumeration
Procedure SavePseudo(Son_Pseudo$)
If CreateFile(#SaveP,"SauvePseudo.ood")
WriteStringN(#SaveP, Son_Pseudo$)
CloseFile(#SaveP)
EndIf
EndProcedure
Procedure SaveMdp(Son_Mdp$)
If CreateFile(#SaveMdP,"SauvePassword.ood")
WriteStringN(#SaveMdP, Son_Mdp$)
CloseFile(#SaveMdP)
EndIf
EndProcedure
Procedure SaveXP(Son_XP)
If CreateFile(#SaveXP,"SauveExp.ood")
WriteLong(#SaveXP, Son_XP)
CloseFile(#SaveXP)
EndIf
EndProcedure
Procedure SaveAtk(Son_Atk)
If CreateFile(#SaveA,"SauveAtk.ood")
WriteLong(#SaveA, Son_Atk)
CloseFile(#SaveA)
EndIf
EndProcedure
Ces procédures sont inclues dans le fichier du jeu, mais je pense qu'on pourrait réduire la taille du fichier save.pbi

Voilà, c'est tout
