Rechercher - Liste des utilisateurs
Version complète : Nouvelle unité : Money
Accueil » FunDelphi » Nouvelle unité : Money
1 2 3 4 5 6 7
DerF_44
Ok ok, oui, tout s'explique !. Merci !. (J'avais pas fait gaffe !)

J'ai eu une grosse galère en utilisant le CustomSquares.ssq de mon projet !! Après avoir exporté en zip via le gestionnaire de projets impossible d'y jouer (en ayant dézippé of course) il ne le trouvait pas le .ssq !!
J'ai d'ailleurs déjà rencontré le blem auparavant et je n'ai toujours pas compris à quoi servait ce fichier crée d'office avec le projet !. Bref, on m'y reprendra plus et je crée moi-même mon .ssq avec un nom bien à lui, et zippe avec mon appli bien à moi !..
Voici donc le micro-labyrinthe d'un marchand qui peut vendre un objet quelconque à un prix quelconque mais en quantité limitée !. (réglages via l'inspecteur d'objets)
Nous disposons d'une bourse au contenu configurable en nombre de pièces d'or, ainsi qu'un petit paquet de pièces d'or (lui aussi réglable en quantité) et enfin d'une pièce d'or à l'unité fixe évidemment.

Dans l'exemple proposé le marchand vends des cruches de cidre magique au tarif de 10 pièces d'or la cruche.
Avec 3 cruches on obtient l'effet d'une clé d'argent éternelle, nécessaire si on veut sortir.
Le joueur peut disposer d'une bourse contenant 20 pièces d'or, d'un paquet de 5 pièces, et de 4 pièces uniques.. Il lui manque donc une pièce d'or pour ses achats, mais il la trouvera cachée derrière la bourse.
Malheureusement le vendeur ne peut vendre que 2 cruches !. Mais heureusement une 3ème est cachée derrière les pièces d'or !…

Voilà , je suis intéressé de savoir si tout fonctionne correctement, y compris les images d'objets et de terrains personnalisés, posées dans le dossier du projet.
J'aimerais bien aussi connaître la façon de faire apparaitre la somme d'argent possédée par le joueur dans la fenêtre de la liste des objets (via fichier|Vos objets).


sjrd
DerF_44
J'ai eu une grosse galère en utilisant le CustomSquares.ssq de mon projet !! Après avoir exporté en zip via le gestionnaire de projets impossible d'y jouer (en ayant dézippé of course) il ne le trouvait pas le .ssq !!
J'ai d'ailleurs déjà rencontré le blem auparavant et je n'ai toujours pas compris à quoi servait ce fichier crée d'office avec le projet !. Bref, on m'y reprendra plus et je crée moi-même mon .ssq avec un nom bien à lui, et zippe avec mon appli bien à moi !..
Ah oui mais attention, je pense que ce n'est pas .ssq qu'il ne trouvait mais bien CustomSquares.scu, c-à-d l'unité CustomSquares. Et ça ça arriverait aussi avec n'importe quel autre nom d'unité.
En fait le .zip que crée le gestionnaire de projet est prévu pour etre réimporté par le gestionnaire de projets. En pratique ça veut dire qu'il en élimine tout ce qu'il peut recréer à partir du reste. En particulier, le dossier Units\ n'est jamais mis dans le .zip, parce qu'il peut recréer les unités compilées à partir des fichiers sources qui sont dans Sources\. Mais évidemment si on ne fait que dézipper (sans passer par le gestionnaire) eh bien ces unités ne sont pas recrées (recompilées on dit). La solution est alors d'ouvrir l'éditeur de labyrinthes et faire Fichier|Tout recompiler.

C'est marrant que tu te plaignes de ce fichier CustomSquares.ssq automatiquement créé avec le projet. Je l'avais ajouté suite aux “plaintes” d'autres utilisateurs, qui estimaient qu'il fallait simplifier au maximum la création d'un labyrinthe “par un débutant”, c-à-d qu'il ne fallait pas devoir manuellement créer un source, le compiler, puis le lier au projet. Donc il y a par défaut un CustomSquares.ssq et son unité correspondante qui sont ajoutés automatiquement à tout nouveau projet.

DerF_44
J'aimerais bien aussi connaître la façon de faire apparaitre la somme d'argent possédée par le joueur dans la fenêtre de la liste des objets (via fichier|Vos objets).
Ben en fait il faut remplacer le “plugin” TMoneyPlugin par un objet du genre
object TMoney
blabla
end;
ce qui serait beaucoup mieux !

Là dans l'immédiat tout de suite je n'ai pas le temps de rentrer dans les détails. Je reposterai quand la journée aura un peu avancé.
DerF_44
Pffffffffff je rame je rame là !..
Je comprends pas bien : tu suggères de remplacer le plugin par un objet ???
C'est à dire qu'un objet fera tout le boulot du plugin et ce dernier on le vire !?..

Moi j'en suis à juste créer un objet (“Fortune”) et que la quantité possédée par le joueur soit = à la valuer du MoneyPlugin.Counter !… mais je rame….

sjrd
Ben justement, tu rameras beaucoup moins si tu vires le plugin, et que tu n'as plus que l'objet.
En gros, tu as juste à avoir :
components
Money: TMoney;

object TMoney
name 'Argent';
image 'Chests/Treasure';
end;
et puis quand tu veux tester si le joueur a au moins 10 € tu fais
if Player.Money >= 10 then
et si tu veux lui faire payer 10 € :
Player.Money := Player.Money - 10;
ou, de manière équivalente :
if Player has 10 Money then
Player discards 10 Money;
DerF_44
Ok ok, Merci beaucoup sjrd, pour toutes ces précieuses infos !!.
Je me rends bien compte qu'il me manque beaucoup de bases “grammaticales” avant que je puisse pondre de A à Z mon unité !!. Dans mes bidouillages inspiré d'autres unités j'ai du mal à placer correctement des bouts de code… C'est assez frustrant, d'autant plus que j'ai plein d'idées !..

Bon, allez, je vais essayer de m'attaquer à l'unité Money en version Library\Sources\GenericSquares !. Qui remplacera celle de Xaumina je pense !.
Je veux dire : Tu es intéressé pour que je trafiquotte en ce sens ?!.
Je compte y ajouter une bourse au contenu aléatoire (valeur maxi réglée via l'inspecteur d'objets) ainsi qu'une touche de clavier pour afficher/cacher le nb. de pièces d'or possédées par le joueur…
Je suis pas arrivé !!





DerF_44
Tiens, voilà le genre de conneries auxquelles je me confronte :
tool TPurse
name 'Bourse';
image 'Purse';
category SCategoryMoney;
property NbCoinsInPurse : Integer;
property MaxCoinsInPurse : Integer;

on Find do
begin
randomize; //--------------------------------------------------------(2)
NbCoinsInPurse := Random(MaxCoinsInPurse);

if NbCoinsInPurse = 0 then
begin
NbCoinsInPurse : = MaxCoinsInPurse;
end;

MoneyPlugin.Counter := MoneyPlugin.Counter + NbCoinsInPurse;
Player.ShowMessage(Format(
'Tu as trouvé une bourse contenant %d pièces d''or !!.',
[NbCoinsInPurse]));

Square.Tool := nil;
end;
end;

Impossible de faire fonctionner ma condition "si bourse = vide, alors bourse = maximum de pièces
J'ai essayé avec des begin, sans begin, avec des ; avec des end; etc… Bref, c'est la ligne NbCoinsInPurse : = MaxCoinsInPurse qui fait la gueule, une correction à proposer !?..
DerF_44
C'est pas très important, je contourne la chose comme ceci :
NbCoinsInPurse := Random(MaxCoinsInPurse)+1;
(Afin de ne pas tomber sur une bourse vide !.)
Mais j'aimerais bien savoir quand même ce qui cloche dans ma condition du post précédent !
sjrd
DerF_44
Je veux dire : Tu es intéressé pour que je trafiquotte en ce sens ?!.
Oui bien sûr !
DerF_44
C'est pas très important, je contourne la chose comme ceci :
NbCoinsInPurse := Random(MaxCoinsInPurse)+1;
(Afin de ne pas tomber sur une bourse vide !.)
C'est mieux comme ça, en fait
DerF_44
Mais j'aimerais bien savoir quand même ce qui cloche dans ma condition du post précédent !
Il y a un espace qui ne devrait pas être là entre le : et le = …

D'autre part, le Randomize ne devrait pas être là. Je ne sais pas d'où tu as sorti ce Randomize, d'ailleurs Il y a un unique Randomize qui est appelé d'office quand FunLabyrinthe se lance, et il ne faut plus appeler Randomize après. Donc tu n'en as pas besoin toi-même, tu peux utiliser Random directement.
DerF_44
Bon, je suis en bonne voie !..
Par contre je laisse tomber la touche du clavier qui affiche ou pas l'argent possédé : bcp trop compliqué pour moi les caractéristiques de texte !!. (Et puis je compte sur le génial créateur de FunLabyrinthe pour trouver le temps d'arranger les affichages des quantités d'objets dans la fenêtre de jeux ou, au moins, dans la fenêtre “Vos objets” !! )

J'ai juste besoin de deux petites astuces…. Microscopiques en fait !..
Comment peut-on ‘'poser’' un EditVisualTag par défaut ?.. (Afin de différencier une bourse normale et une bourse aléatoire)
Peut-on mettre (j'imagine que oui !) une valeur par défaut (mais comment !?) sur une property ?..

AAAaargh !. Le coup du := j'étais sûr que c'était une saloperie un truc de ce genre !!!
Le randomize ?… Très simple : J'ai tjs adoré le côté aléatoire dans les bidouilles de programmation, manière de faire en sorte que même le créateur ne sache pas exactement à quoi s'attendre !.. (et avec FunLaby y'a de quoi s'amuser !!!!!!! ) Et donc une petite phrase genre “valeur aléatoire en delphi” sur un moteur de recherche Internet très connu, m'a permis de chopper quelques infos !..
C'est comme :
ShellExecute(0, 'OPEN' , 'C:\Users\Fred\Pictures\ProjetsPerso\Ma_Super_Peinture.jpg' , 'Nil, Nil, SW_SHOW);
(avec uses ,ShellApi )
j'ai trop trop envie de tester !! (Pas encore fait !)

Rien à voir :

- C'est quoi cette histoire d'unité “MovingMonster” ??!!. (j'ai lu par ici) C'est où, c'est quoi ?.. Un truc qui bouge tout seul (sans que le joueur soit figé !) ça m'intéresse grandement !!. (je te rassure : C'est pas pour tout de suite ! )
- Putain de crotte de coccinelle !!.. Le temple de l'eau !!!!!!!!!!!!!!!! C'est du gros gros délire ce Laby !!

sjrd
DerF_44
Comment peut-on ‘'poser’' un EditVisualTag par défaut ?.. (Afin de différencier une bourse normale et une bourse aléatoire)
Peut-on mettre (j'imagine que oui !) une valeur par défaut (mais comment !?) sur une property ?..
Dans le AfterConstruction justement :
on AfterConstruction do
inherited;
EditVisualTag := 'bla';
end;
Ça marche bien sur avec n'importe quelle autre propriété.
DerF_44
- C'est quoi cette histoire d'unité “MovingMonster” ??!!. (j'ai lu par ici) C'est où, c'est quoi ?.. Un truc qui bouge tout seul (sans que le joueur soit figé !) ça m'intéresse grandement !!. (je te rassure : C'est pas pour tout de suite ! )
Ben lis la discussion qui correspond. Ce sont effectivement des monstres qui bougent d'eux-mêmes, sans empêcher le joueur de bouger lui-même pendant ce temps-là.
DerF_44
- Putain de crotte de coccinelle !!.. Le temple de l'eau !!!!!!!!!!!!!!!! C'est du gros gros délire ce Laby !!
Ah ah ! Mon chef-d'oeuvre !
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB