π
<-
Chat plein-écran
[^]

Rpg en lua

Pour TI-Nspire OS 3.0 ou ultérieur.

Rpg en lua

Message non lude bidabiere » 21 Avr 2014, 10:22

Salut salut , je cherche a réaliser un RPG en lua , j'avais pour idée un RPG qui ressemblerait au principe du livre dont vous êtes le heros , et c'est ce que j'ai chercher a faire ici , voici mon code ,
Code: Tout sélectionner
platform.apilevel = '2.0'
function initiallisation()   
personnage = 0
pd = 0
a=0
classe = text
w=0 --moment dans l'aventure
c=0 --deuxieme moment dans l'aventure
end
function Accueil()
        function on.paint(gc)
        if personnage == 0 then
        gc:setColorRGB(0,0,0)
      gc:setFont("serif","b",18)
      gc:drawString("Selection de personnage :",40,200)
      gc:setFont("serif","b",14)
      gc:drawString("A-Humain : Paladin de Palouf",60,250)
      gc:drawString("Z-Nain : Berzerk",60,270)
      gc:drawString("E-Murloc : Mage bleu",60,290)
      gc:drawString("R-Creep : Assassin de Chansus",60,310)
        end
        end
end
------------------------------------------------
function Choixheros()
    function on.charIn(char)
        if char=="a" then         
            var.store("personnage",1)
            var.store("pd",2)--point de vie
            var.store("classe","Paladin")
            var.store("a",1)--variable pour le prochain event
                function on.paint(gc)
                gc:setFont("serif","b",18)
                gc:drawString("Brace yourself Adventurers your story begin here",120,120)
                gc:drawString("Vous allez désormais rentrer dans le monde de Tavern , Ale and Quest",120,170)
                gc:drawString("Vous avez choisi le Paladin de Palouf",120,200)
                gc:drawString("Votre héros va commencez cette partie avec 2 points de destin",120,230)
                gc:drawString("Que palouf vous accompagne",120,260)
                gc:drawString("Press P to continue",120,290)
                end
        platform.window:invalidate()            -- refresh
        end
    ---------------   
        if char=="z" then
            var.store("personnage",2)
            var.store("pd",3)--point de vie
            var.store("classe","Berzerk")
            var.store("a",1)--variable pour le prochain event
                function on.paint(gc)
                gc:setFont("serif","b",18)
                gc:drawString("Brace yourself Adventurers your story begin here",120,120)
                gc:drawString("Vous allez désormais rentrer dans le monde de Tavern , Ale and Quest",120,170)
                gc:drawString("Vous avez choisi le Berzerk Alcoolique",120,200)
                gc:drawString("Votre héros va commencez cette partie avec 3 points de destin",120,230)
                gc:drawString("Que votre rancune reste éternel",120,260)
                gc:drawString("Press P to continue",120,290)
                end
        platform.window:invalidate()            -- refresh
        end
    -----------------   
        if char=="e" then
            var.store("personnage",3)-- même principe que classe
            var.store("pd",1)--point de vie
            var.store("classe","Mage bleu")
            var.store("a",1)--variable pour le prochain event
                function on.paint(gc)
                gc:setFont("serif","b",18)
                gc:drawString("Brace yourself Adventurers your story begin here",120,120)
                gc:drawString("Vous allez désormais rentrer dans le monde de Tavern , Ale and Quest",120,170)
                gc:drawString("Vous avez choisi le Mage bleu presbyte",120,200)
                gc:drawString("Votre héros va commencez cette partie avec 1 points de destin",120,230)
                gc:drawString("AGNNNNNAGNANGNAGNA",120,260)
                gc:drawString("Press P to continue",120,290)
                end
        platform.window:invalidate()           -- refresh       
        end
   ----------------     
        if char=="r" then
            var.store("personnage",4) -- même principe que classe
            var.store("pd",10)--point de vie
            var.store("classe","Assassin de Chansus")
            var.store("a",1)--variable pour le prochain event
                function on.paint(gc)
                gc:setFont("serif","b",18)
                gc:drawString("Brace yourself Adventurers your story begin here",120,120)
                gc:drawString("Vous allez désormais rentrer dans le monde de Tavern , Ale and Quest",120,170)
                gc:drawString("Vous avez choisi l'Assassin de Chansus",120,200)
                gc:drawString("Votre héros va commencez cette partie avec 10 points de destin",120,230)
                gc:drawString("Que la chance vous accompagne...",120,260)
                gc:drawString("Press P to continue",120,290)
                end
        platform.window:invalidate()         -- refresh
        end
    end
end
---------------------------------------------------
function Eventadd()
    function on.charIn()
        if char=="p" then
        a=a+1
        var.store("a",a)
        end
     end
end       
----------------------------------------------------
function chronos()
    function on.timer()
       timer.start(1)
      timer.stop()
      platform.window:invalidate()
    end
end
----------------------------------------------------
----------------------------------------------------
function Quete1()
    function on.charIn(char)
        if char=="p" then         
                function on.paint(gc)
                gc:fillRect(40,40,840,550)
                gc:setColorRGB(255,255,255)
                gc:setFont("serif","b",26)
                gc:drawString("Tavern Ale and Quest, le reveil",75,160)
                gc:setFont("serif","b",19)
                gc:drawString("Vous vous réveillez dans une grotte et vous entrapercevez quelque-chose",75,260)
                gc:drawString("Votre instinct de survie vous préconise de vous levez et de vous ",75,290)
                gc:drawString("préparez a vous battre quand soudain ...",75,320)
                gc:drawString("Press P to continue",75,400)
                end
        platform.window:invalidate()
        end           
    end
end   
----------------------------------------------------
function Presentation1()
    function on.charIn(char)
        if char=="p" then         
                function on.paint(gc)
                gc:fillRect(40,40,840,550)
                gc:setColorRGB(255,255,255)
                gc:setFont("serif","b",26)
                gc:drawString("Le lama Swagé",75,160)
                gc:setFont("serif","b",19)
                gc:drawString("Un lama se dresse au milieu des rocher , il se prépare a vous attaquer",75,260)
                gc:drawString("Il est nettement mieux habiller que vous mais n'a pas l'air amical,",75,290)
                gc:drawString("Vous dégainez votre arme et ...",75,320)
                gc:drawString("Press P to continue",75,400)
                end
        platform.window:invalidate()
        end           
    end
end
----------------------------------------------------
function Combat1()
    function on.charIn(char)
        if char=="p" then         
                function on.paint(gc)
                gc:fillRect(40,40,840,550)
                gc:setColorRGB(255,255,255)
                gc:setFont("serif","b",26)
                gc:drawString("Le lama Swagé",75,160)
                gc:setFont("serif","b",19)
                gc:drawString("1/ Vous attaquez de front...",75,260)
                gc:drawString("2/ Vous lui jetez votre arme...",75,290)
                gc:drawString("3/ Vous partez en courant...",75,320)
                gc:drawString("Press 1/2/3 to continue",75,400)
                end
        platform.window:invalidate()
        end           
    end
end
----------------------------------------------------
function Victoire1()
    function on.charIn(char)
        if char=="1" or char=="2" then     
                function on.paint(gc)
                gc:fillRect(40,40,840,550)
                gc:setColorRGB(255,255,255)
                gc:setFont("serif","b",26)
                gc:drawString("Victoire",75,160)
                gc:setFont("serif","b",19)
                gc:drawString("Vous avez battut ce terrible adversaire",75,260)
                gc:drawString("Il a apparemment perdu l’équilibre , votre attaque n'a pas touche",75,290)
                gc:drawString("Vous ne savez pas si c'est la crise cardiaque ou la chute qui la achevé.",75,320)
                gc:drawString("Press P to continue",75,400)
                end
        platform.window:invalidate()
        end           
    end
end
----------------------------------------------------
function Quete2()
end
--------------------------------------------------------------------------------------------

    initiallisation()
    Accueil()
    Choixheros() -- Comment passer du Choixheros a la Quete1 ? Pour le moment je n'y arrive pas.
--    Quete1()
--------------------------------------------------------------------------------------------

Et mon problème le voici , je souhaite passer de l’événement Choixheros() a la Quete1() , pour le moment quand les quatre fonctions sont présente , je passe de l'Accueil() a La Quete1() sans passer par le Choixheros() , mon problème est que je ne peut plus avancer dans le code si je n'arrive pas a faire passer les fonctions les unes après les autres . Je requiert un peut d'aide 8-)
Avatar de l’utilisateur
bidabiere
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 60%
 
Messages: 2
Inscription: 21 Avr 2014, 10:05
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: TS/isn

Re: Rpg en lua

Message non lude technolapin » 21 Avr 2014, 11:39

Heu... je comprend pas, tu veut faire quoi quand quelle condition se réalise?
Votez Kasane Teto 2017
Avatar de l’utilisateur
technolapin
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 97.8%
 
Messages: 514
Images: 25
Inscription: 31 Déc 2012, 10:48
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Chui en vacance ducon

Re: Rpg en lua

Message non lude Levak » 21 Avr 2014, 12:07

Salut,

Petit conseil : tu ferais mieux de revoir complètement ton code afin de le violemment le factoriser.
Tu devrais partir sur une table qui représente ton jeu (les actions possibles etc.) sans parler d'implémentation Nspire Lua. Une autre partie serait alors responsable d'exploiter cette table et d'afficher l'état courant du jeu et les possibilités offertes.

Un exemple :
Code: Tout sélectionner
game_states = {
  home=Level("Accueil", "Bienvenue courageux guerrier blabla", {1=hero_choice}),
  hero_choice=Level("Choix du Héros", "Plutôt hobbit ou hobbit", {1=hobbit, 2=hobbit2}),
  hobbit=Level("Hobbit", "En avant vers l'aventure !", { ... }),
  hobbit2=Level("Hobbit plus fort", "En avant vers l'aventure !", { ... }),
  ...
}


Ensuite, conçois le code qui exploite cette structure de données : tu verras, tu perdras peux-être 3h au début mais tu gagneras tellement de temps par la suite que le temps perdu sera devenu insignifiant.

Edit : je me demande si cette question n'avait pas déjà été posée et la même réponse proposée.
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
Avatar de l’utilisateur
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 98.9%
 
Messages: 6414
Images: 22
Inscription: 27 Nov 2008, 00:00
Localisation: 0x1AACC355
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BAC+5: Epita (ING3)

Re: Rpg en lua

Message non lude technolapin » 21 Avr 2014, 12:08

Oui effectivement, ça serait mieux.
Votez Kasane Teto 2017
Avatar de l’utilisateur
technolapin
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 97.8%
 
Messages: 514
Images: 25
Inscription: 31 Déc 2012, 10:48
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Chui en vacance ducon

Re: Rpg en lua

Message non lude bidabiere » 21 Avr 2014, 12:12

J'aimerais une condition qui me permet de passer de fonction en fonction , exemple de passer du choix de personnages a la quete 1 et ainsi de suite , pour le moment sa fait un gros packet et sa charge toutes les fonctions ,je cherche a les dissociers et a les activé au fur et a mesure , comme ceci :
initiallisation()
Accueil()
Choixheros() -- c'est fonctions mettent en place le jeu en lui même
condition -- une condition activer peut être par l'utilisateur ? j'ai déjà penser a une fonction on.charIn(char) avec char=="p" mais sans succes , une idée ?
Quete1
Condition
Presentation1
...

PS, je vais voir sa Levak merci :)
Avatar de l’utilisateur
bidabiere
Niveau 1: MD (Membre Débutant)
Niveau 1: MD (Membre Débutant)
Prochain niv.: 60%
 
Messages: 2
Inscription: 21 Avr 2014, 10:05
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: TS/isn

Re: Rpg en lua

Message non lude technolapin » 21 Avr 2014, 12:29

Ben, tu pourrait utiliser les classes. (tu trouve les tutos ici http://www.compasstech.com.au/TNS_Authoring/Scripting/ si tu connait pas.
Votez Kasane Teto 2017
Avatar de l’utilisateur
technolapin
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 97.8%
 
Messages: 514
Images: 25
Inscription: 31 Déc 2012, 10:48
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Chui en vacance ducon

Re: Rpg en lua

Message non lude AnToX98 » 27 Avr 2014, 09:10

Ce que je trouve surtout bizarre c'est d'avoir mis plusieurs fonctions on.paint mais bon peut-être que je me trompe :p
Avatar de l’utilisateur
AnToX98Premium
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 75.5%
 
Messages: 1022
Images: 15
Inscription: 19 Mai 2013, 16:54
Localisation: Paris, France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ere S

Re: Rpg en lua

Message non lude Adriweb » 27 Avr 2014, 15:16

AnToX98 a écrit:Ce que je trouve surtout bizarre c'est d'avoir mis plusieurs fonctions on.paint mais bon peut-être que je me trompe :p

Je ne vois pas de quoi tu parles.

Les classes représentant quelque chose qui sera dessiné à l'écran ont besoin de décrire comment il sera "painté", donc pour chacune de ces classes, une fonction xxxx:paint(gc) sera à définir.

Et le (seul et unique) on.paint(gc) appellera le(s) paint(gc) qu'il faut.
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14613
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Rpg en lua

Message non lude pierrotdu18 » 27 Avr 2014, 15:21

Oui mais AnToX98 a raison Adriweb, il y a plusieurs function on.paint(gc)
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

Re: Rpg en lua

Message non lude Adriweb » 27 Avr 2014, 15:25

Ah mais, je parlais des tutoriaux de Steve Arnold, moi...

Avoir a redéfinir des fonctions pour les faire varier selon le contexte est très généralement une mauvaise idée, il y a moyen de faire bien mieux ;)

(cf le passage par des classes, par exemple...)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.2%
 
Messages: 14613
Images: 1218
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Suivante

Retourner vers Nspire-Lua

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1363 utilisateurs:
>1305 invités
>53 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)