Forum FunLabyrinthe

Le jeu de labyrinthe fun et gratuit - Retour au site

  • Vous n'êtes pas connecté.

#1 juin 7, 2011 17:50:56

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

C'est encore une nouvelle unité, qui, comme son nom l'indique, permet d'avoir de l'argent (et donc on peut acheter des choses.
Cela dit, son utilisation nécessite de connaître un peu le fundelphi.

Alors voilà une explication :

MarchandBase (nom à moitié français, désolé) a été fait pour qu'on puisse en faire hériter un autre obstacle. Mais le tout s'embrouille et finalement, considérez MarchandBase comme un modèle. Dans votre unité FunDelphi, vous copiez et collez le code, vous enlevez la property Price. Lorsqu'on répond oui, le jeu vérifie si le joueur a une somme égale ou supérieur au prix. Forcément, il ne va rien comprendre si vous ne changez pas les trois "Price" situés juste après le
if Selected = 0 then
.
Ces trois-là, vous les changez par votre prix. Et vous modifiez les messages s'il ne vous plaisent pas.

Maintenant, imaginons que j'ai un marchand qui veut me vendre une clé d'argent à 10 € (en supposant que ce sont des euros, mais ce n'est qu'un nombre).
Je passerai de ça :

obstacle TMarchandBase
  name 'Marchand de base';
  category SCategoryMoney;

  property Price : Integer;

  on Pushing do
  var
    Selected: Integer;
  begin
    inherited;

    if not KeyPressed then
      Exit;

    Selected := Player.ShowSelectionMsg(
      'Veux-tu m''acheter quelque chose ?',
      ['Oui', 'Non']
      );

    if Selected = 0 then
    begin
      if MoneyPlugin.Counter >= Price then
        MoneyPlugin.Counter := MoneyPlugin.Counter - Price
      else
        Player.ShowMessage ('Mais... Tu n''as pas assez d''argent ! Reviens quand tu en auras plus !');
    end;

    if Selected = 1 then
    begin
      Player.ShowMessage ('Alors, à la prochaine fois, peut-être !');
    end;
  end;
end;


à ça :

obstacle TMarchandOfSilverKey
  name 'Marchand de clef d''argent';
  category SCategoryMoney;

  on Pushing do
  var
    Selected: Integer;
  begin
    inherited;

    if not KeyPressed then
      Exit;

    Selected := Player.ShowSelectionMsg(
      'Veux-tu acheter ma clé d''argent ?',
      ['Oui', 'Non']
      );

    if Selected = 0 then
    begin
      if MoneyPlugin.Counter >= 10 then
      begin
        MoneyPlugin.Counter := MoneyPlugin.Counter - 10
        Player receives 1 SilverKey;
      end else
        Player.ShowMessage ('Mais... Tu n''as pas assez d''argent ! Reviens quand tu en auras plus !');
    end;

    if Selected = 1 then
    begin
      Player.ShowMessage ('Alors, à la prochaine fois, peut-être !');
    end;
  end;
end;


Un autre conseil : faites un marchand pour chaque objet. Au besoin, si vous vous voulez un marchand vendant plusieurs choses, vous l'entourez de tables qui seront des marchands (vous mettez la marchandise que vend la table derrière celle-ci).

A mettre dans "GenericSquares".

Modifié Xaumina (juin 8, 2011 15:02:58)

Pièces jointes :
attachment Money.fnd (6,1 KB)

Hors-ligne

#2 juin 7, 2011 21:10:52

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Eh eh sympa.

Mais au fait :
if (MoneyPlugin.Counter = Price) or (MoneyPlugin.Counter > Price) then

s'écrirait plutôt :
if MoneyPlugin.Counter >= Price then



---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#3 juin 8, 2011 14:58:58

Xaumina
Enregistré : 2011-01-20
Messages : 191
Réputation: +  5  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Merci de l'astuce ! C'est corrigé (dans ce message). Et puis j'avais oublié d'annocer l'action OpenMarchantBlock (action qui ne sert à rien, ce ne serait utile que si un marchand avait plusieurs marchandises au même prix).

Pièces jointes :
attachment Money.fnd (6,1 KB)

Hors-ligne

#4 nov. 20, 2011 15:07:18

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Ça a l'air sympa cette unité !!..
Reste plus qu'à connaître la bonne méthode pour la faire fonctionner !!
Je tourne tous les trucs dans tous les sens, mais rien à faire, toujours des erreurs…
Dans le moins pire des cas j'obtiens l'erreur : ntNextExpression attendu mais Player trouvé
à la ligne correspondant à “Player receives 1 SilverKey;”
Quelqu'un de moins nul que moi peut-il m'aider !?..



(°!°) DerF

Hors-ligne

#5 nov. 20, 2011 15:40:45

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Il manque un ; à la fin de la ligne juste avant (après le - 10).


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#6 nov. 20, 2011 15:55:43

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Ok, corrigé, maintenant c'est l'erreur : Types incompatibles : TObjectDef et TOblectTool
(Toujours à propos de la ligne “Player receives 1 SilverKey;” )
!!


Une idée ?……


(°!°) DerF

Hors-ligne

#7 nov. 20, 2011 16:47:04

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Ok, maintenant que j'ai ajouté un “s” à SilverKey y'a du mieux : Plus d'erreur de compil'…
J'ai placé quelques billets sur la pelouse, un marchand de base, je commence le jeu, ramasse les billets, mais impossible de chopper la marchandise !..
Le marchand me demande bien si je veux acheter quelque chose, mais ensuite rien, avec (j'ai bien la somme indiqué dans la fenêtre) ou sans argent il m'ignore le vilain !… (Sauf si je lui dit que je ne veux rien acheter auquel cas il me dit bien “… à la prochaine”
Il est fermé le dimanche !!!?????????



“Le bœuf est lent mais la terre est patiente” comme dirait l'autre !…


(°!°) DerF

Modifié DerF_44 (nov. 20, 2011 16:48:15)

Hors-ligne

#8 nov. 20, 2011 21:12:05

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Erf, je ne vois pas le problème. Je vais regarder ça, mais j'avoue que le temps libre me manque trop, ces jours-ci


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

#9 nov. 20, 2011 23:42:51

DerF_44
De : Nantes
Enregistré : 2011-10-24
Messages : 271
Réputation: +  0  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Ça y est !!! Ça fonctionne parfaitement !!.. Enfin !..
J'en ai fait des trafics avant d'en arriver là !..
Alors, pour les débutants, voici un mini-labyrinthe avec son .fnd propre.
Il suffit de :
1- Décompresser l'archive ci-jointe
2- Poser le dossier ainsi obtenu dans le dossier Projects de FunLabyrinthe
3- Ouvrir ce projet avec l'éditeur
Et c'est tout !…
Et ça marche !!.
A vous ensuite de bidouiller dans l'unité pour remplacer les phrases et/ou la somme…
Voilà, je ne sais pas si ça servira à quelqu'un, mais perso j'aurais bien aimé trouver ceci au lieu de m'embrouiller la tête pendant des plombes !…

Merci à Xaumina pour son unité, (mais pas pour son explication !.)



(°!°) DerF

Pièces jointes :
attachment Test Money.zip (52,9 KB)

Hors-ligne

#10 nov. 21, 2011 09:51:54

sjrd
De : Belgique
Enregistré : 2010-04-11
Messages : 481
Réputation: +  14  -
Profil   Envoyer un courriel  

Nouvelle unité : Money

Ah oui donner un petit laby d'exemple c'est une bonne idée.

Maintenant tu peux voir le coté positif des choses : tu as certainement appris pas mal de choses sur FunDelphi en te décarcassant à trouver la solution


---
Sébastien Doeraene
Auteur de FunLabyrinthe

Hors-ligne

Pied de page

Modération

Powered by DjangoBB

Lo-Fi Version