CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Minecraft
  • Tout support
  • PC
  • Xbox Series
  • Switch
  • PS4
  • ONE
  • WiiU
  • PS3
  • 360
  • Vita
  • iOS
  • Android
  • Web
  • New 3DS
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
Liste des sujets

[tutoriel] ComputerCraft

EViLGUARD
EViLGUARD
Niveau 10
09 mars 2012 à 05:27:55

Hey bonjours à tous et à toute,

Aujourd'hui j'ai remis la main sur un mods que j'apprécie particulièrement. Il s'agit de ComputerCraft. Ce mods ajoute à votre petit minecraft un ordinateur totalement programmables permettant de créer des logiciels personnalisé pour votre propre besoin. Que type de logiciel? Tout dépend de votre capacité à scripté tout ça et de votre patience.

http://www.minecraftforum.net/topic/892282-11-computercraft-13/

Quelque exemple de ces capacités c'est de transformer l'ordinateur en porte logiques ou en minuterie pour vos divers projet. Vous pouvez aussi créer un système de mots de passe permettant d'ouvrir une porte ou activé un système de redstone.

Pour utilisé l'ordinateur il vous suffit de le posé et ensuite vous pouvez utilisé certaine commande. Programs vous donnera accès à la liste des programs existant que vous devrai testé pour bien comprendre. Il y a des système pour contrôlé la redstone, des jeux et des programs de calcule.

Mais passons. Vous surtout créer vos propre programs. pour faire cela il suffit de faire "edit" (sans les ") et le nom de votre programs. Vous pouvez aussi édité tout les autres programs. Je vous conseillerait de lire les divers code pour apprendre quelque tours. Donc pour le moment on vas faire edit lock pour créer un fichier appelé lock.

Ici je vais vous montré à créer un petit système très simple pour verrouiller une porte ou autre. Mais le but est surtout de vous mettre un peu dans le bain du scripting en LUA. Avant de mettre un premier code j'aimerais que vous gardiez la tête à la simplicité. Ne chercher pas le "code complexe" car le code est assez simple à comprendre.

__________________________________

term.clear()
term.setCursorPos(1,1)

password = "minecraft" -- Mot de passe
debug = "microsoft" -- ouvre le système de de-bug
write("entrer votre mot de passe : ")
input = read() -- Pour lire le mot de passe

term.clear() -- nettoie l'écran
term.setCursorPos(1,1) -- et replace le curseur au début
if input == password then -- Si le mot de passe est minecraft
print("mot de passe accepter!") -- alors il écrit sur l'écran ce message
rs.setOutput("left",true) --Active un signale de redstone. Ici par exemple du côté gauche de l'ordinateur. Donc true pour activé.
sleep(2) -- place la séquence en pause pour 2 secondes.
rs.setOutput("left",false) -- ferme le circuit de redstone
shell.run(lock) -- redémarre l'application
elseif input == debug then --- Si le mot de passe entré est microsoft
exit() --Exits the program -- quitte le programme pour permettre de modifié tout ça.
else -- en cas d'échec des deux condition
print("mot de passe invalide! Adieu!") -- écris le message
sleep(2) -- mets la routine en pause 2 seconde
rs.setOutput("right"),true) -- active un signal de redstone à droite
sleep(2) -- met en pause la routine 2 seconde
rs.setOutput("right"),false) -- ferme le signal de redstone à droite
shell.run(lock) -- redémarre le programmes
end -- mets fin à la séquence du IF.

_________________________

Ok. À première vue ça semble une chose qui vas vous donnez mal au crane mais attendez un peu et regardé attentivement le code. Outre les quelques commande que vous devez retenir le reste est simplement basé sur la logique. Je vous explique le fonctionnement. Un script informatique pars du haut et vas devoir remplir des conditions d'étape en étape. Si une conditions est remplie alors il vas faire ce qu'on lui demande. Sans quoi il vas passé à la condition suivante.

Ici il vas commencer par nettoyer l'écran placé le curseur au début. c'est le :

term.clear()
term.setCursorPos(1,1)

Ensuite

password = "minecraft"
debug = "microsoft"

Cette section ne sera pas inscrite à l'écran. Elle permet de placer vos variable. la variable password par exemple défini quel sera votre mot de passe. Debug quand à lui définira le mot de passe à entré pour sortir du programs et modifié votre ordinateur. Sans ce mot de passe le programs tournera en loop ce qui veux dire qu'il tournera sans arrêt.

write("entrer votre mot de passe : ")
input = read()

Write inscrira la phrase demandé à l'écran. Ici c'est donc le mot de passe. Input c'est la variable d'entré. Ici on utilise read() qui vas donc lire la réponse donné à write. Donc si vous entré ici minecraft la réponse à l'input sera "minecraft". Mais considéré que l'input peut être différente chose. Par exemple un signal de redstone. À quoi cela servirais alors? Je l'expliquerai un peu plus bas. Pour le moment poursuivons.

term.clear()
term.setCursorPos(1,1)

Remet l'écran à zéro

if input == password then
print("mot de passe accepter!")

Ici on est dans l'aspect qui vas définir l'action à réalisé. Donc. if veux dire SI. Donc if input == password then signifie alors SI input == minecraft alors... Print vas inscrir à l'écran le message sans offrir à l'utilisateur la possibilité d'écrire contrairement à write.

rs.setOutput("left",true)
sleep(2)

Après avoir écris ce message il vas activé le signal de redstone à gauche ce qui permettra alors, par exemple, d'ouvrir une porte ou d'activé un système. Sleep vas quant à lui conservé le signal activé pour un certain temps. Il vas gelé le processus.

rs.setOutput("left",false)
shell.run(lock)

Et ici le programmes après 2 seconde vas venir fermé le signal et donc la porte. Shell.run(lock) quant à lui est une variable qui vas redémarré le programs au début. Donc shell.run est la commande habituel et (lock) est le nom de votre programme. Il est important de le mettre entre parenthèse car il dois lire cette variable pour pouvoir l'utilisé. Vous pourriez aussi, avec shell.run fait transité votre ordinateur d'un programs à un autre. j'expliquerai l'utilisé dans le PS2 en bas.

elseif input == debug then
exit()

Bon Elseif permet d'avoir un second mot de passe. Une seconde entré. Dans le cas présent c'est le mot de passe du mode débug. il permettra de fermé le programmes car exit() vas vous permettre d’accédé à nouveau à votre ordinateur et donc modifié les programmes. Noté que c'est donc la seul manière de modifiée les choses si vous mettez votre programmes en startup (je vous expliquerai aussi comment).

else
print("mot de passe invalide! Adieu!")
sleep(2)

Else vas être l'action entreprise lors de l'entré de tout autre mot de passe. En gros c'est ce qui est invalide. Le sleep quand à lui vas juste gardé le message affiché 2 seconde. Donc si ensuite vous avez activé un piège... dégagé!

rs.setOutput("right"),true)
sleep(2)

Active un signal de redstone à droite pour activé un piège entre autre chose.

rs.setOutput("right"),false)
shell.run(lock)
Ferme le circuit de redstone (et referme donc le piège) et ensuite vas relancé le programmes avec shell.run(lock) pour demandé à nouveau le mot de passe.

end

End est à mettre à la fin de chaque section contenant un if. Il ferme la condition....

Et voila qui conclut un peu ce tutoriel sauf pour les PS.

PS1 : activé un ordinateur avec un signal de redstone pourrait paraitre idiot mais en fait les ordinateurs peuvent envoyé un signal de redstone nettement plus complexe en une petite boite. Il faut savoir que le rs.setOutput est très basic ici. Mais vous pouvez plus tard utilisé des codes de couleurs. Donc si vous emettez un signal de redstone code bleu tout les ordinateurs recevrons ce signal mais seul ceux avec un rs.input d'un signal redstone code bleu seront activé. Et donc vous pourriez avec un seul bouton activé un système très complexe. Je laisse tout ça à votre imagination.

PS2 : Shell.run() permet d'activé de multiple programmes par une action. Admettons que vous cherchiez à créer un système multitâche vous pourriez alors utiliser une question tel que "que voulez vous faire" et la réponse alors pourrais être multiple. Si tant est que les réponses sois basé sur des chiffres voila ce qui pourrais arrivé. Si vous faite 1 alors shell.run(porteouverte) et si vous faite 2 alors shell.run(portefermé) et si vous faite 3 shell.run(dispenser) . En activant ces divers programs vous pourrez donc activé toute sorte de système en entrant simplement un choix. Si c'est pas clair dite le moi je me ferai un plaisir d'essayé tant bien que mal d'expliqué mieux que ça.

PS3 : Bon. Terminons avec le startup. Maintenant que vous avez créer votre programmes vous voulez probablement que celui-ci démarre en démarrant l'ordinateur. Pour ce faire il faut modifié le nom du programmes qui est actuellement lock. Il existe donc deux méthode. sois au départ vous créer votre programme en l'appelant directement startup. Sois vous allez devoir recopié votre programmes en tant que startup. pour ce faire vous utilisé la commande "CP" (sans les ") ce qui signifie copie. vous allez faire

cp lock startup

ce qui devrais normalement copier votre fichier lock en lui donnant le nom de startup. En utilisant la commande "reboot" (toujours sans les ") vous allez redémarré l'ordinateur qui devrais alors avoir directement votre programmes de verrouillage.

Si vous aviez des questions n’hésiter pas. Je suis loin d'être un super spécialiste mais je ferai de mon mieux pour vous aider. Peace les gens :)

EViLGUARD
EViLGUARD
Niveau 10
09 mars 2012 à 13:41:44

personne d’intéresser ? :P

Nambrok
Nambrok
Niveau 5
11 mars 2012 à 00:21:59

Si c'est un très bon mod, mais je n'arrive pas à le faire marcher :/ C'est dommage.

newraphal83
newraphal83
Niveau 8
11 mars 2012 à 12:32:54

Le, mod n'est pas encore à jour c'est pour ça !

Nambrok
Nambrok
Niveau 5
11 mars 2012 à 17:19:33

Je l'installais en 1.1 --', je suis au courant qu'il n'est pas en 1.2, d'ailleurs la Mise à jour devrait sortir dans pas longtemps, c'est ce que dit dan200 sur son twitter :D

-kazedy-
-kazedy-
Niveau 10
11 mars 2012 à 17:20:07

Qui à tout lu? :noel:
_______________________
Tu viens de perdre 5 secondes de ta vie à lire ceci :noel:

Nambrok
Nambrok
Niveau 5
11 mars 2012 à 20:09:21

En tout cas, merci EViLGUARD pour ce tutoriel très instructif :)

EViLGUARD
EViLGUARD
Niveau 10
15 mars 2012 à 17:54:23

Hey j'avais un peu perdu espoir de voir des réponse :D En tout cas pour ceux qui aurais attendu la mise a jours elle est sortie. En plus elle contient le moniteur!!!!!

http://computercraft.info/2012/03/13/computercraft-1-31-is-released/

Juste INCROYABLE! Je sens que je vais bien m'amuser! :D

Nambrok
Nambrok
Niveau 5
15 mars 2012 à 18:06:39

Oui, j'ai déjà télécharger la MàJ et j'ai commencer à m'en servir, juste enorme :D

Pseudo supprimé
Pseudo supprimé 07 mai 2012 à 14:57:05

Dans la mise à jour ce n'est plus "exit()" qu'il faut écrire mais "shell.run('clear')"

skelletor974
skelletor974
Niveau 6
23 mai 2012 à 21:21:59

:up:

Zeremus
Zeremus
Niveau 1
19 octobre 2012 à 11:09:20

ton programme n'est pas verrouillé a l’état actuelle ! surtout si tu joue sur un serveur via le pack tekkit.

ajoute ceci en tête a ton programme:

os.pullEvent = pullEventRaw verrouille la console (Ctrl+T n'arrête plus le programme en cours)

... ( ton programme avec tes pass)

input = read ("*") permet de cachée les caractères et écris "*"

if input == "admin" then ( admin est le mdp master , qui permet de mettre fin au programme)
exit() (quitte le programme en cours)

voici un exemple de programme pour un mdp pour une porte:

___________
sur "startup"

os.pullEvent = pullEventRaw
shell.run("terminal")
print("pass word:")
input = read ("*")
if input == "azerty" then
shell.run("terminal")
print("pass correct!")
rs.setOutput("side",true)
("side" est la sortie :back,right,left,top,front,bottom)
sleep(3)
rs.setOutput("side",false)
os.reboot()
elseif input == "admin" then
exit()
shell.run("terminal")
else
shell.run("terminal")
print("Error !")
sleep(3)
os.reboot()
end

sur "terminal"

term.clear()
term.setCursorPos(1,1)

____________

@Intar21 : shell.run("clear") te permet de lancer le programme "clear" , que si t'as rien mis dedans il va rien se passer !

etiouo29
etiouo29
Niveau 3
06 novembre 2012 à 12:41:53

un tuto sur les moniteur ,sur les wireless modem etc... sa existe?(en francais bien sur :))
merci

Zeremus
Zeremus
Niveau 1
06 novembre 2012 à 23:44:10

pc 1 : (serveur d’accès)

edit data

rednet.open("top") --modem en haut

while true do
local time = textutils.formatTime(os.time(),false)
id , User = rednet.receive()
id , Pass = rednet.receive()

function prt()
print("The User "..User.." was connected at "..time)
end

if (User == "user1") and (Pass == "pass1") then
rednet.send(id, "valid")
print("The User "..User.." was connected at "..time)
prt()

elseif (User == "admin") and (Pass == "admin") then
rednet.send(id, "admin")
print("Door"..id.." programme's stoped by admin at "..time)

elseif (User == "user2") and (Pass == "pass2") then
rednet.send(id, "valid")
prt()

else
rednet.send(id, "invalid")
print("The User "..User.." try to login from "..id.." at "..time)
end
end

edit startup

shell.run("data")

pc 2 (a coté d'une porte)

edit door

rednet.open("back") --si modem est derrière la console
local send = 0

function clearup()
term.clear()
term.setCursorPos(1,1)
end

while send == 0 do
clearup()
write("Username :")
User = read ()
write("Password :")
Pass = read ("*")

rednet.send(5, User)
rednet.send(5, Pass)

send = 1

id , message = rednet.receive()
if message == "valid" then
rs.setOutput("right" , true)
os.sleep(3)
rs.setOutput("right" ,false)

print(" Welcome home.")
sleep(3)

send = 0
elseif message == "admin" then
exit()
elseif message == "invalid" then
print("invalid login")
sleep(3)
send = 0
end
end

edit startup

shell.run("door")

_______________________
j'ai pas revérifier si ça fonctionne ou pas vu que ça fait un moment que j'ai arrêté , si y a des soucis tenez moi au courant et je rectifie.

Cordialement Zerem'

baluhon
baluhon
Niveau 1
09 novembre 2012 à 01:22:22

La console avec le premier programme shutdown tout le temps, plus aucun accés. Est ce que ça fait la même chose chez toi?

etoilecraft
etoilecraft
Niveau 1
06 janvier 2013 à 10:45:23

salut je suis nouveau !
Je voulez demander si on povait faire du transfere de fichiers par rednet (wifi)!!

theredfall7011
theredfall7011
Niveau 1
27 avril 2013 à 19:51:54

salut moi pour ma par je voudrai bien savoir comment mettre une image sur un advanced monitor commen je doit faire ?

salvado
salvado
Niveau 5
01 mai 2013 à 21:21:07

Bonjour, si il reste des gens sur ce forum, j'aimerais savoir comment lancer un programme dans un autre programme (un sous programme quoi) j'ai cherché mais je trouve pas :/

gta_like28
gta_like28
Niveau 7
25 août 2013 à 19:30:18

Pas un sous programme, mais une iception :-)

Sinon merci pour ce tuto détaillé.

-[Franckyi]-
-[Franckyi]-
Niveau 10
25 août 2013 à 19:33:09

Putin c'est quoi ces ups ? xD

Sous forums
  • Recherche de joueurs et serveurs PC/Consoles