- InvitéInvité
[Event] Créer une variable donnant le nombre d'objets dans l'inventaire
Dim 25 Avr 2010 - 13:56
Amis et amies makers,
Bonjour
Cela faisait un bout de temps que je n'avais pas rédigé de tuto, et il était de bon ton que je m'y mettes
Le tuto suivant vise à créer une variable, rafraîchissable sur demande, et donnant le nombre d'objets dans l'inventaire.
C'est un travail assez conséquent, non pas dans la difficulté elle même, mais elle demande un epu de temps malgré tout :
Tout d'abord, dans un événement commun,vous créez une variable comme celle-ci :
Et ainsi jusque ce que vous ayez faits tout les objets de l'inventaire ...
Ensuite, vous créez une autre variable initialisée à 0, puis vous y incrémentez la valeur de toute vos variables précédentes comme ceci :
Vous devriez au final obtenir cela :
Il faut le déclencher en event parralele, à l'activation d'un interrupteur .
C'est beau tout ça, mais à quoi ça sert ?
Applications
On peut utiliser cela comme on le souhaites, pour faire une limite de place dans son inventaire
Voici pour se faire l'event à créer lorsque l'on prend un objet :
Ici par exemple, la limite de l'inventaire est fixée à 50
Il est important à chaque fois d'activer l'interrupteur qui va déclencher l'event commun, afin de rafraichir la variable
On peut ensuite de même gérer la place par une variable, qui va permettre de faire évoluer la place au cours du jeu :
On peu modifier cette vriable au cours du jeu, par exemple en créant des sacs achetables, ou des emplacements.
Créer une boutique de sac : [Event]
Il vous suffit de copier/coller cet event à chaque fois, pour créer un marchand :
Ne pas dépasser la limite après un appel de magasin :
Voilà, j'espères que ce tuto vous a plu
Hamuti
Bonjour
Cela faisait un bout de temps que je n'avais pas rédigé de tuto, et il était de bon ton que je m'y mettes
Le tuto suivant vise à créer une variable, rafraîchissable sur demande, et donnant le nombre d'objets dans l'inventaire.
C'est un travail assez conséquent, non pas dans la difficulté elle même, mais elle demande un epu de temps malgré tout :
Tout d'abord, dans un événement commun,vous créez une variable comme celle-ci :
Et ainsi jusque ce que vous ayez faits tout les objets de l'inventaire ...
Ensuite, vous créez une autre variable initialisée à 0, puis vous y incrémentez la valeur de toute vos variables précédentes comme ceci :
Vous devriez au final obtenir cela :
Il faut le déclencher en event parralele, à l'activation d'un interrupteur .
C'est beau tout ça, mais à quoi ça sert ?
Applications
On peut utiliser cela comme on le souhaites, pour faire une limite de place dans son inventaire
Voici pour se faire l'event à créer lorsque l'on prend un objet :
Ici par exemple, la limite de l'inventaire est fixée à 50
Il est important à chaque fois d'activer l'interrupteur qui va déclencher l'event commun, afin de rafraichir la variable
On peut ensuite de même gérer la place par une variable, qui va permettre de faire évoluer la place au cours du jeu :
On peu modifier cette vriable au cours du jeu, par exemple en créant des sacs achetables, ou des emplacements.
Créer une boutique de sac : [Event]
Il vous suffit de copier/coller cet event à chaque fois, pour créer un marchand :
Ne pas dépasser la limite après un appel de magasin :
Voilà, j'espères que ce tuto vous a plu
Hamuti
- XakuXMembre
- Nombre de messages : 1263
Age : 29
Localisation : là où tu n'auras jamais l'idée de chercher !
Distinction : * Bougre d'âne
Le bizu' à son Coco'
[Coco' ]
Membre aux désirs inassouvis de domination mondiale. [Maître du destin]
Date d'inscription : 13/12/2008
Re: [Event] Créer une variable donnant le nombre d'objets dans l'inventaire
Sam 29 Mai 2010 - 20:59
Désolé pour le petit nécropost, mais je passais par là, l'air de rien, et je tenais a donner une méthode bien plus simple pour calculer le nombre d'objet dans l'inventaire, bien quel comprenne deux trois commande en script:
bon, déjà, je ne sais pas trop pourquoi il faudrait faire un évènement commmun en processus parralèlle, il suffit de la mettre sans déclenchement et de l'appeler via un appel d'évènement commun !
Ensuite, dans l'évènement commun qui gère le nombre total d'objet, mettez ceci:
-modifier variable [0099]:"liste" = 0
-modifier variable [0100]:"total d'objet possédé" = 0
-boucle
---modifier variable [0099]:"liste" += 1
---appel de script: X=$game_variables[99]
L=$game_party.item_number($data_items[X])
$game_variables[X]=L
$game_variables[100]+=$game_variables[X]
---condition: si la variable [0099]:"liste" = 20 #nombre total d'objet différent dans la BDD
-----sortir de la boucle
---fin condition
-fin boucle
voilà, maintenant, je résume:
-la variable 99 est un intermédiaire de la boucle, elle donne le nombre de tour que fait la boucle, on se servira aussi en tant qu'indice de la liste !
-la variable 100 détermine le nombre total d'objet possédé dans l'inventaire (jusque là rien de très compliqué)
Ensuite, pour le fonctionnement:
-on réinitialise les variables à 0.
-on lance une boucle en ajoutant 1 à la variable 99 à chaque tour
-ensuite, la commande en script barbare qui suit est, contrairement à ce qu'on pourrait croire, toute simple, les 3 premières lignes correspondent en fait à:
en francais clair, cela donne:
la variable d'ID (numéro à gauche) égale à la valeur de la variable 99 prend la valeur du nombre d'objet d'ID égale à la variable 99 possédé
Pour ceux qui n'aurais toujours pas compris, ce n'est pas dramatique !
En clair, ces 3 premières lignes donnent à la variable 1, le nombre d'objet d'ID 1; à la variable 2, le nombre d'objet d'ID 2; et ainsi de suite !
La dernière ligne en script ajoute à la variable 100 la valeur de la dernière variable modifié, donc du nombre d'objet d'ID correspondant !
-Ensuite, on vérifie que le dernier objet a été ajouté (dans notre cas, le 20ême, mais augmentez cette valeur si vous en avez plus ) et si c'est le cas, on quitte la boucle et terminons l'évènement commun !
J'espère que certains auront compris (ceux qui n'ont pas compris, de tout' façon, vous avez juste a changé la condition pour mettre comme valeur le nombre d'objet différent dans la base de donnée) et que ce sera utile à plus de monde (parce que l'idée est génial )
Bonne journée à tous !
PS: Pour ceux qui se demande pourquoi je n'ai pas mis les 3 premières lignes en script en une seule, c'est simplement parce que le logiciel, mal foutu qu'il est, fait un saut à la ligne en plein milieu du code en script, et il le prend en compte >.< !
bon, déjà, je ne sais pas trop pourquoi il faudrait faire un évènement commmun en processus parralèlle, il suffit de la mettre sans déclenchement et de l'appeler via un appel d'évènement commun !
Ensuite, dans l'évènement commun qui gère le nombre total d'objet, mettez ceci:
-modifier variable [0099]:"liste" = 0
-modifier variable [0100]:"total d'objet possédé" = 0
-boucle
---modifier variable [0099]:"liste" += 1
---appel de script: X=$game_variables[99]
L=$game_party.item_number($data_items[X])
$game_variables[X]=L
$game_variables[100]+=$game_variables[X]
---condition: si la variable [0099]:"liste" = 20 #nombre total d'objet différent dans la BDD
-----sortir de la boucle
---fin condition
-fin boucle
voilà, maintenant, je résume:
-la variable 99 est un intermédiaire de la boucle, elle donne le nombre de tour que fait la boucle, on se servira aussi en tant qu'indice de la liste !
-la variable 100 détermine le nombre total d'objet possédé dans l'inventaire (jusque là rien de très compliqué)
Ensuite, pour le fonctionnement:
-on réinitialise les variables à 0.
-on lance une boucle en ajoutant 1 à la variable 99 à chaque tour
-ensuite, la commande en script barbare qui suit est, contrairement à ce qu'on pourrait croire, toute simple, les 3 premières lignes correspondent en fait à:
- Code:
$game_variables[$game_variables[99]]=$game_party.item_number($data_items[$game_variables[99]])
en francais clair, cela donne:
la variable d'ID (numéro à gauche) égale à la valeur de la variable 99 prend la valeur du nombre d'objet d'ID égale à la variable 99 possédé
Pour ceux qui n'aurais toujours pas compris, ce n'est pas dramatique !
En clair, ces 3 premières lignes donnent à la variable 1, le nombre d'objet d'ID 1; à la variable 2, le nombre d'objet d'ID 2; et ainsi de suite !
La dernière ligne en script ajoute à la variable 100 la valeur de la dernière variable modifié, donc du nombre d'objet d'ID correspondant !
-Ensuite, on vérifie que le dernier objet a été ajouté (dans notre cas, le 20ême, mais augmentez cette valeur si vous en avez plus ) et si c'est le cas, on quitte la boucle et terminons l'évènement commun !
J'espère que certains auront compris (ceux qui n'ont pas compris, de tout' façon, vous avez juste a changé la condition pour mettre comme valeur le nombre d'objet différent dans la base de donnée) et que ce sera utile à plus de monde (parce que l'idée est génial )
Bonne journée à tous !
PS: Pour ceux qui se demande pourquoi je n'ai pas mis les 3 premières lignes en script en une seule, c'est simplement parce que le logiciel, mal foutu qu'il est, fait un saut à la ligne en plein milieu du code en script, et il le prend en compte >.< !
- InvitéInvité
Re: [Event] Créer une variable donnant le nombre d'objets dans l'inventaire
Sam 29 Mai 2010 - 21:25
Effectivement, ca permet d'arriver au résultat beaucoup plus simplement, je ne connaissait pas cette fonction.
Quoiqu'il en soit, merci pour ton commentaire
Quoiqu'il en soit, merci pour ton commentaire
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|