Ray
Hors ligne
Membre
Points: 1338
Défis: 18
Message
Faire un système de succès
Posté le 14/04/2013 18:02
Salut tout le monde, bon, je suis en vacances, j'ai oublié mon câble pour relier ma calto au PC, mais ça m'empêchera pas de continuer Robscape 2...
Sur la route, j'ai eu une petite idée qui pourrait être sympa : Créer un système de succès en C pour les programmes en Basic.
En fait mon idée est en fait de prendre un interpréteur Basic qui peut interpréter une ligne de code en plus :
'SDS [Numéro du jeu] [Numéro du succès]
Le programme en C pourra non-seulement lire des programmes en Basic, mais aussi montrer tous les succès débloqués des jeux (en montrant aussi le nombre de succès pour ce jeu) et une dernière petite fonctionnalité : gagner des points à dépenser pour par exemple débloquer un truc dans un autre jeu Basic (modification des listes/matrices) ou dans un autre jeu en C (grâce aux fichiers externes).
Enfin, j'espère que quelqu'un qui ne saurai pas quoi faire ou aimerai passer le temps puisse essayer de créer ce programme, si jamais celui-ci est possible bien sur.
De mon côté, j'avais créé il y a un moment ce genre de programme en Basic, compatible avec le premier Robscape, qui si celui-ci détectait la présence du logiciel, donnait des points à dépenser.
Citer : Posté le 14/04/2013 21:33 | #
Alors pour détecter les trophées on utilisera une ligne de code mise en commentaire (pour que le programme Basic fonctionne sans le systèle de succès).
=> à savoir que le système contient un interpréteur Basic.
Pour l'actualisation du programme, je dirai simplement que la base de données se trouve dans un fichier externe au programme et que tu actualise le prog tout les 5 programmes compatibles créés (enfin sur ça tu gère quand tu veux quoi)...
Ajouté le 14/04/2013 à 21:34 :
Alors pour détecter les trophées on utilisera une ligne de code mise en commentaire (pour que le programme Basic fonctionne sans le systèle de succès).
=> à savoir que le système contient un interpréteur Basic.
Pour l\'actualisation du programme, je dirai simplement que la base de données se trouve dans un fichier externe au programme et que tu actualise le prog tout les 5 programmes compatibles créés (enfin sur ça tu gère quand tu veux quoi)...
Citer : Posté le 14/04/2013 21:35 | #
Il faudrait faire un add-in qui détecte les programmes en Basic qui commencent par un commentaire spécial, comme 'PRGM 2. Comme ça tous ceux qui programment des nouveaux jeux en Basic pourront mettre des bonus sans faire une mise à jour à chaque fois.
Mais je sais pas du tout comment tu peut faire, pour le moment j'ai à peine le niveau en C pour faire un Plus ou Moins.
Ajouté le 14/04/2013 à 21:37 :
Décidément j\'arrive à faire du cerveau lent même quand il n\'y a pas de vent.
Toutes les formules de Première S.
Toutes les formules de Terminale S.
Un programme de calculs.
Super Mario 3
warrior
Jump Ball
First Fly
►Jeu gagnant des 48h CPC n°12◄
Mon site de discussion pour ados : http://entre-ados.net/ (a brûlé dans l'incendie d'OVH)
Mon éditeur de cours en ligne et plateforme de partage : http://wordline.xyz (a succombé à la concurrence de Google Drive...)
Citer : Posté le 14/04/2013 22:00 | #
Non le plus simple c'est de mettre dans ce commentaire en debut de programme les succès.
L'add-in a juste à lire ces commentaires pour en déduire les succès à gérer.
Genre :
'SDS(2,13)
Signifie que la sauvegarde est la List 13 du File 2
Puis toutes les lignes qui suivent
'SDS(1,4,vous avez trouvé un champignon en fer)
Informe que le succès 1 est débloqué si la valeur de la List 13[4] != 0 avec le commentaire.
Ca règle tous les problèmes de mis à jour, et en plus ca permet au programmeur Basic de choisir ses succes sans venir faire chier Dark Storm toutes les 2 minutes
En plus l'add peut se souvenir de tous les jeux auquel on a joué.
Citer : Posté le 14/04/2013 22:11 | #
Pas le temps de rédiger une méga réponse, mais je le prendrais demain. J'ai plein d'autres questions et d'idées pour le système
Citer : Posté le 14/04/2013 22:11 | #
Ton idée paraît très bien, il faudra aussi peut-être ajouter un paramètre pour savoir combien de points on gagne avec le succès...
Citer : Posté le 14/04/2013 22:12 | #
Oui après on peut rajouter tout un tas d'arguments, l'idée est à développer
Citer : Posté le 15/04/2013 17:53 | #
Dans le cas de Ninestar, les trophées sont enregistrés dans une liste, donc je vois mal l'utilité de l'add-in...
Ce que je propose, c'est de faire un add-in qui lit des fichier (.ach par exemple) dans lesquels se trouvent les infos concernant les trophées, et les champs à modifier dans le cas où l'un serai accompli.
Le tout, c'est de réfléchir sur une standardisation de ces fichiers, de manière à ce que lorsque le jeu est installé sur la calto (avec le fichier .ach initial) l'add-in sache automatiquement ce qu'il a à faire
Je pourrais le coder un peu sous la forme du "Game Center" d'Apple: dans votre prog Basic, vous appelez des fonctions comme dans PGRM2, qui détectent si l'add-in (faut lui trouver un nom classe) est présent et si le jeu tourne dedans, et ensuite appeler une fonction qui se gère d'afficher les trophées, ou de les modifier, etc. Dans ce cas, je n'aurai aucun contrôle à faire sur vos fichiers, tant qu'ils sont conformes aux normes que l'on aura posées auparavant.
De plus, je peux, toujours dans l'add-in, faire un menu comme dans le GC avec le nombre de points total, le nombre de jeux, etc.
Alors, vos remarques ?
Citer : Posté le 15/04/2013 18:02 | #
Ou alors on peux mettre une ligne de code dans le programme Basic contenant les infos nécessaires :
Puis à la première ligne de code on écrit par exemple
Puis l'add in enregistre le nom du jeu dans un fichier (prenons l'exemple du .ach) si celui-ci n'existe pas, puis il met juste en dessous le nom des succès avec leur texte complémentaire si le joueur veut voir ses succès obtenus.
Puis aussi au moment où un succès est gagné, une petite fenêtre se montre quelques secondes avec le nom du succès et le texte complémentaire (le nom sera plus grand que le texte).
Citer : Posté le 15/04/2013 18:07 | #
Pour les commentaires c'est bien.
Mais comment le programme sait qu'on a gagné tel ou tel succès ?
Parce qu'il faut aussi que le programme en basic le sache, c'est pour ça que je parle des List.
Citer : Posté le 15/04/2013 18:14 | #
Bah en fait on exécuterai les programmes Basic à partir de l'add in, car c'est l'add in qui gère ça, les programmes Basic s'en fichent un peu, add in ou pas, ils tourneront toujours avec que sans.
Après, l'add in doit posséder une boutique pour dépenser les points, et ça, c'est ce qui risque de poser le plus de problèmes...
Citer : Posté le 15/04/2013 18:31 | #
Donc l'add in peut détécter à n'importe quel moment tel ou tel commande basic ?
dans ce cas on peut faire un
'SDS(numero de succès, etat)
quand on gagne un succès
avec etat = 0 ou 1
Citer : Posté le 15/04/2013 18:40 | #
Oui, mais dans ce cas non seulement je ne vois pas pourquoi changer l'état d'un succès (un succès gagné n'est pas censé se gagner plusieurs fois) mais aussi il faut que l'add in ait une base de donnée contenant les succès, Or, en mettant le nom du succès ect, l'add in est compatible directement avec n'importe quel programme Basic, sans que l'auteur ait besoin de le mettre à jour toutes les semaines.
Citer : Posté le 15/04/2013 18:45 | #
Etat c'est juste pour le valider ou non.
Il faut bien une commande pour le dire à l'Add-in, il est pas devin :P
Citer : Posté le 15/04/2013 18:51 | #
Bah si l'add in lis ce code, il va surement se dire "si je l'ai lu c'est qu'il faut le valider"
Citer : Posté le 15/04/2013 18:54 | #
Oulà, j'en suis pas à dépenser des points ou quoi que ce soit.
Ce que je tient à mettre au clair, c'est que je ne peux pas détecter et lire une ligne de code comme 'SDS(nom du jeu, nombre de succès dans le jeu) en plein milieu d'un jeu (ou alors ce n'est plus de mon niveau pour que ça reste jouable…) Je peux juste regarder la valeur de variables et modifier en conséquence les trophées et cette variable… Faut que je vois aussi pour modifier des strings. Si je peux ça vous faciliterai la tache.
Du coup, on peux faire comme pour PRGM2: au début du code principal, vous mettez un ligne du genre
Ensuite, si le fichier existe, on passe à la suite, sinon on le crée.
Vous implémentez alors un code du genre.
For 1->I To 1000
[green]// A vous de changer le design[/green]
locate 1,1,"Chargement en cours..."
Next
If F=0
Then "Calc Center est fonctionnel"
Else "Il ne l'est pas"
IfEnd
Ensuite, c'est avec des instructions comme pour PRGM2 que vous accédez aux fichiers des trophées:
"WRITE: (Amateur du combo), 1"->Str 1
Do
LpWhile F [green]// stoppe l'execution du prof tant que l'add-in n'a pas fait ce qu'il avait à faire.[/green]
Et le trophée "Amateur du combo" sera actualisé comme réussi
Attention: si vous voulez que votre jeu soit compatible avec toutes les caltos (même si elles n'ont pas l'add-in), il faudra empêcher que les boucles comme ci-dessus soient actives (sinon elles sont infinies). Vous pouvez enregistrer dans une variable si la calto est compatible et gérer vos cas en fonction
Citer : Posté le 15/04/2013 19:04 | #
Ca c'est top !
Citer : Posté le 15/04/2013 19:11 | #
Par contre, là le fichier est mis directement sur la calto, pour donner toutes les infos concernant les trophées, il faudrait une fonction du genre:
"ADD: (Amateur du combo) (type)
Do
LpWhile F
Avec "type":
-> Score
-> Trophée simple
-> Trophée avec nombre
-> Etc.
D'ailleurs, avec ça il faut mettre le type avant chaque fonction
Citer : Posté le 15/04/2013 19:14 | #
Au lieu d'utiliser le F, il faudrait trouver un moyen de faire détecter le succès sans toucher aux variables normales, car si je veux par exemple utiliser ce système pour mes programmes (notamment Robscape 2, que je programme actuellement), je vais devoir les modifier...
Citer : Posté le 15/04/2013 19:24 | #
Ou une variable inutile genre r ou théta
Citer : Posté le 15/04/2013 19:26 | #
C'est des super idées tut ça ! Je n'ai pas d'aide à proposer, mais je suis ça de près !
Calculatrices : Graph 35+ USB tweakée et Classpad 330
Suivez moi et mon humour dévastateur ici focliquéla
Citer : Posté le 15/04/2013 19:26 | #
et pourquoi pas a0 ou anstart, ca c'est vraiment inutile !
parceque moi j'utilise r ou theta autant que les autres variables
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !