AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -40%
-40% sur le Pack Gaming Mario PDP Manette filaire + ...
Voir le deal
29.99 €

 

 [Résolu]Plusieurs variables dans une variable pour faire un inv?

Aller en bas 
+4
D-z
Adamo
Térence
gateau
8 participants
AuteurMessage
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 11:51

Bonjour , voila je suis en train de coder chicken'z online, et je m'encombre un peu avec les fichiers .ini , car j'ai deja plein de variables , dont je vous donne un aperçu :
Code:
[Account Info]
Username=test
Statut=Offline
Money=31
Xp=1
Hp=0
HpMax=0
Lvl=1
Skin=0
X=200
Y=516
arme=1
lastdir=r
Class=0
Room=rm_level1

Et je voudrais faire un système d'inventaire qui prenne un minimum d'espace (en .ini bien sur) J'avais pensé a un truc du genre une variable inv

inv = 5,5,1,8,0,0,0,0,0,0,0,0,0

Par exemple 5 = biscuits , 1 : jus de tomate , 8 lance roquettes et 0 vide.
Ca marcherait si j'utilise les variables string_char_at? :
Code:
 if (string_char_at(inv,0) = "5")
//ici mettre un biscuit dans l'inventaire

Je suis un peu perdu aussi ^^ donc si quelqu'un est bon a ceci , merci de m'aider Very Happy
Oh et si je me suis trompé de section , mettez le dans le sous-forum expérimenté.

_________________
Spoiler:


Dernière édition par gateau le Jeu 27 Sep 2012 - 21:05, édité 1 fois
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 13:01

Oui ca devrait marcher....
Les fichiers ini sont simple à utiliser mas si oni passe par là il va te gueuler dessus et te dire de faire tes propres fichiers en binaire pour plus de sécurité gnii
Revenir en haut Aller en bas
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 13:33

Térence68 a écrit:
Oui ca devrait marcher....
Les fichiers ini sont simple à utiliser mas si oni passe par là il va te gueuler dessus et te dire de faire tes propres fichiers en binaire pour plus de sécurité gnii
Laul. Bon ok je vais essayer ce système d'inv , et si oni passe par la , j'lui dis d'ou bien me refaire mon jeu avec du binayr , ou d'aller dans un autre forum em*erder embêter les programmeurs :3

Edit : Oh pinaize il scrute les forums :X

_________________
Spoiler:
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 13:46

Ben il a raison mais avec gm de toute façon c'est pas sécurisé alors....
Revenir en haut Aller en bas
Adamo
Utilisateur confirmé: Rang ***
Adamo


Messages : 681
Localisation : Quebec

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 15:25

c'est dommage que la fonction string.split n'existe pas sur gm ca aurais été plus simple et plus pratique parceque ca aurais donner un truc genre :
string_split(ini_read_string("Account Info","inv",""),",")
donc ca aurais creer directe un tableau avec comme valeur chaque lettre/mot entre ,

mais tien je t'en ai fait un si jamais tu veut t'en servir Wink

Code:


// Pour utiliser :
//string_split("5,0,1,4,3,21,43,62,463,7357,563,63,2,",",","tableau")
//
//tableau[0] = 5 /tableau[6] = 43 / tableau[10] = 563

str = argument0 // string
sep = argument1 // separateur
array = argument2 //array a envoyer vers
nbr = string_count(sep,str)
show_message(string(nbr));
for(i = 0;i < nbr; i+=1)
{
p = string_pos(sep,str)
variable_local_array_set(array,i,string_copy(str,1,p-1))
str = string_delete(str,1,p)
}


en gros c'est très simple a utiliser pour ton inventaire par exemple :
inv_str = ini_read_string("Account Info","inv","")
string_split(inv_str,",","TonTableau")
apres ca te donne
TonTableau[0] = 5
TonTableau[1] = 5
TonTableau[2] = 1
TonTableau[3] = 8
TonTableau[4] = 0
ect...
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 15:54

C'est vrai, c'est la fonction que j'utilise le plus pour les tableaux en php (explode).
Revenir en haut Aller en bas
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 18:49

Merci beaucoup Adamo justement j'me perdais avec les variables , je teste ton script et j'en dis les nouvelles Very Happy Yum!

_________________
Spoiler:
Revenir en haut Aller en bas
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 19:46

Euh la j'ai essayé un système d'inventaire avec un obj_invbox , qui est une boite de 32x32 qui a 5 images_index , par exemple dans image_index 1 c'est un lance roquette , 4 cookies ...
Donc j'ai résolu a faire ce code sur alarm0 , étant donné qu'un poulet a 10 places dans son inventaire

Code:
string_split(global.inv,",","Inv")

inv1=instance_create(x+24,y+64,obj_invbox)
with(inv1){image_index=Inv[0]}
inv2=instance_create(x+60,y+64,obj_invbox)
with(inv2){image_index=Inv[1]}
inv3=instance_create(x+94,y+64,obj_invbox)
with(inv3){image_index=Inv[2]}
inv4=instance_create(x+132,y+64,obj_invbox)
with(inv4){image_index=Inv[3]}
inv5=instance_create(x+168,y+64,obj_invbox)
with(inv5){image_index=Inv[4]}
inv6=instance_create(x+24,y+100,obj_invbox)
with(inv6){image_index=Inv[5]}
inv7=instance_create(x+60,y+100,obj_invbox)
with(inv7){image_index=Inv[6]}
inv8=instance_create(x+94,y+100,obj_invbox)
with(inv8){image_index=Inv[7]}
inv9=instance_create(x+132,y+100,obj_invbox)
with(inv9){image_index=Inv[8]}
inv10=instance_create(x+168,y+100,obj_invbox)
with(inv10){image_index=Inv[9]}

alarm[0]=room_speed*0.5
Tout mes obj_invbox ont l'image index 0 , que faire?

_________________
Spoiler:
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptySam 15 Sep 2012 - 23:55

Déjà, en prog on n'a jamais besoin de copier/coller :p

Code:
for(i = 0; i < 10; i += 1)
    (instance_create(x+24 + 36 * (i mod 5), y+64+ 36 * (i div 5), obj_invbox)).image_index = Inv[i]

Ensuite, 5 jetons que tu as mis "Treat uninitialized variables as 0" dans les options de ton jeu. Or dans un with tu es du point de vue de l'objet cible, et ton tableau Inv n'existe pas pour obj_invbox. Tu noteras que ne pas utiliser de with résout le problème, mais à l'avenir, pense que les variables de l'objet appelant sont accessibles à l'interieur du with via other.

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyMer 26 Sep 2012 - 21:14

Cette fois j'ai utilisé un script comme les with(inv1){image_index=obj_invhud.Inv[0]}

Code:
//inv_place_change(inv1,global.invplace0)
/*if argument1=1{argument0.image_index = 1}else
if argument1=2{argument0.image_index = 2}else
if argument1=3{argument0.image_index = 3}else
if argument1=4{argument0.image_index = 4}else
if argument1=5{argument0.image_index = 5}else
argument0.image_index=0*/
argument0.image_index = argument1
Note : "je sais que je me complique la vie mais j'ai pas trouvé d'autre choix"

et j'ai des TONNES de problèmes de cannot compare arguments , de l'aide serait de la bienvenue , merci Oups!

_________________
Spoiler:
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyMer 26 Sep 2012 - 21:19

C'est normal, tu traite l'argument 0 comme un objet, alors que s'en est pas un (sauf si je suis complètement hs...)
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyMer 26 Sep 2012 - 21:59

Non non, un argument peut très bien être un objet, le problème n'est pas la. A vue d'oeil, je ne vois rien qui cloche... Tu es sûr que l'erreur de "cannot compare" se rapporte à ce bout de code?

_________________
[Résolu]Plusieurs variables dans une variable pour faire un inv? Control-commentTous les icones de gm utilisables sur le cbna ICI  [Résolu]Plusieurs variables dans une variable pour faire un inv? Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyMer 26 Sep 2012 - 22:58

c'est dans l'égalité (=) que ça me marque cannot compare arguments , et oui c'est bien ce script mad'.

_________________
Spoiler:
Revenir en haut Aller en bas
Adamo
Utilisateur confirmé: Rang ***
Adamo


Messages : 681
Localisation : Quebec

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyMer 26 Sep 2012 - 23:03

cannot compare argument ca veut simplement dire que tu essaye de regarde si un string = un int essaye en mettant :
/*if real(argument1)=1{argument0.image_index = 1}else
if real(argument1)=2{argument0.image_index = 2}else
if real(argument1)=3{argument0.image_index = 3}else
if real(argument1)=4{argument0.image_index = 4}else
if real(argument1)=5{argument0.image_index = 5}else
argument0.image_index=0*/
argument0.image_index = real(argument1)

Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 7:27

Je sais qu'on peut mettre un objet en argument, mais j'avais pas capté que inv1 était un objet, parce que là c'est pas très optimisé...

Et sinon t'es sur qu'on peut faire les conversions comme ca en gml ? Cest du C++ là, non ?
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 10:10

real() permet de convertir une chaîne en double (dans la mesure où elle contient un nombre), si ça foire ça renvoi 0.
Et non, il n'existe pas de tel fonction en C++ (nativement), c'est trop haut niveau Mr. Green

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
SPLN


Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 11:46

Pourquoi ne pas faire un inventaire avec des ds_map? C'est quasiment la même chose qu'un fichier ini. Sachant que vu comment tu structures ton inventaire, j'ai l'impression que (hormis l'optimisation) tu galères à le gérer.

Exemple:
Code:
map_inv = ds_map_create()
Pour créer une ds_map puis tu peux dans chaque ds_map stocker une valeur dans une "clé" qui est un string(comme les ini :vP).

Du genre pour un inventaire avec un système de "poches", c'est à dire qu'on est limité en terme de place à tant d'objet par poche.
Code:

// inventory_init()
// Initialisation inventaire
map_inv = ds_map_create()
ds_map_add( map_inv, "POCHE_QTE", 20 )
for ( i=1 ; i<=ds_map_find_value( map_inv, "POCHE_QTE" ); i+=1 ) {
ds_map_add( map_inv, "POCHE_"+string(i), 0 ) // 0 = pas d'objet dans la poche
}
return map_inv;

Pour assigner un objet à une des poches
Code:

// inventory_obj_assign( inv, poche, obj )
// Assigne un objet dans une poche de l'inventaire
ds_map_replace( argument0, "POCHE_"+string(argument1), argument2 )

Après ce n'est qu'un exemple, tu peux aussi stocker l'id d'une ds_map contenant des infos relatives à un objet dans une autre ds_map. Ceci pouvant contenir tous les objets du jeux, avec dans chaque clé le nom de l'objet, la description, la qté maximal à transporter, etc...

Ce que j'aurais tendance à faire pour ce genre de chose c'est de stocker des ids de ds_map dans une ds_map. Pour un système d'objet, je ferais une ds_map ou ds_list qui stockera tout les objets du jeu. Cette liste/map contenant pour chaque objet l'id d'une ds_map contenant les propriétés de l'objet.
Voilà ce que j'ai en tête:
- dat_obj_list = ds_list (qui stocke les objets et leur ds_map séparé par un caractère séparateur)
Ici c'est "|" le caractère séparateur.
Ligne 1: Potion +10PV|id
Ligne 2: Potion +20PV|id
L'id étant la ds_map qui stocke les infos relative à l'objet. Ça peut aller de stocker le nom, la description, au sprite et j'en passe.

Par contre je ne suis pas sûr que ce soit la méthode la plus optimisée. Après faut voir en fonction de ton système d'objet.

_________________
SP Lecteur Multimedia
I am an [Résolu]Plusieurs variables dans une variable pour faire un inv? Gmq4 in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 18:49

Je savais pas qu'on pouvait convertir comme ca ; en tout cas je sais qu'en c#, en php et dans pleins d'autres langages c'est comme ca ; alors comme le GML fait jamais comme tout le monde...
Au moins j'aurais appris quelque chose mrgreen2
Revenir en haut Aller en bas
Adamo
Utilisateur confirmé: Rang ***
Adamo


Messages : 681
Localisation : Quebec

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 20:33

hum dans la plus part des language faut faire apelle a une fonction plutot comme en C# int a = Convert.ToInt32("123")
dans GM c'est plus simple puisquil existe que 2 type les strings et les int Smile
Revenir en haut Aller en bas
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 21:03

Finalement j'ai mit un real(argument0) et j'ai débug pendant quelques quarts d'heures (a différentes solutions) puis j'ai réussi Very Happy
Merci adamo, térence ,d-z,ainsi que tout ceux qui m'ont aidé pour ce système d'inventaire Wink

_________________
Spoiler:
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyJeu 27 Sep 2012 - 21:04

En C# tu peux aussi faire (int)chaine_de_caracteres
Sinon ce que j'aime bien mais qui existe qu'en php, c'est que pour concaténer t'utilise le point :
"Bonjour agent numéro ".$id_agent ; a t'évite de devoir convertir en string. Par exemple si avec 2 variable a=23 et b=45, tu veux écrire 2345 ; tu peux faire $resultat=$a.$b alors que si tu veux additionner tu fais $resultat=$a+$b.
Dans tous les autres langages tu dois caster...

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyVen 28 Sep 2012 - 21:06

Salut,
je t'ai fait une "data structure inventory".
Je pense que ça sera utile à pas mal de personnes.

Ça enregistre le tout dans un fichier "inventaire" en binaire et crypté par un mot de passe.

Voici les fonctions qui sont disponibles pour la data structure.
inventoryInit
inventorySet
inventoryGet
inventoryLoad
inventorySave
inventoryCount
inventoryGetName

Plus une fonction pour le cryptage
cryptXor

Et un script pour creer une liste à partir de ça :
Code:
return ''
+  'Potion;'
+  'Couteau;'
+  'Champignon Magique;'
+  'Torche;'
+  'PQ;'

Voici les fonctions et un exemple d'utilisation.
http://host-a.net/u/Caly/ds_inventory.gmk
(barre d'espace pour incrémenter les 'Potions' de 1 et sauvegarder).
Revenir en haut Aller en bas
gateau
Utilisateur confirmé: Rang **
gateau


Messages : 353
Projet Actuel : Actuellement rien


[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? EmptyVen 28 Sep 2012 - 23:25

Bien intéréssant ce système Caly , je l'ai essayé et il marche bien Smile Si mon jeu commence à être hacké grave(ou qu'oni' visite ce topic) j'prends ton système de criptage :3

_________________
Spoiler:
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu]Plusieurs variables dans une variable pour faire un inv? Empty
MessageSujet: Re: [Résolu]Plusieurs variables dans une variable pour faire un inv?   [Résolu]Plusieurs variables dans une variable pour faire un inv? Empty

Revenir en haut Aller en bas
 
[Résolu]Plusieurs variables dans une variable pour faire un inv?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [Résolu] Pb de variable sur plusieurs objets
» Test de plusieurs Variable (Résolu + Image)
» [Résolu] Plusieurs possibilitées dans une condition
» [Résolu] Faire marcher un personnage sur une pente dans un jeu 2D
» Une variable dans du texte, en GML [résolu]

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: