Advertisement
Andronio12

Jarvis(WIP)

Apr 28th, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.40 KB | None | 0 0
  1. computer=require("computer")
  2. com=require("component")
  3. event=require("event")
  4. chat=com.chat_box
  5. radar=com.radar
  6. --pim=com.pim
  7. --crystal=com.crystal
  8. --obsidian=com.obsidian
  9. --iron=com.iron
  10. --turret=com.os_energyturret
  11. --turret.powerOn() вообще не вижу смысла в турелях
  12. mfsu=com.afsu
  13. lamp=com.colorful_lamp
  14. red=com.redstone
  15. doorStatus=""
  16. teslaStatus=""
  17. lampStatus=""
  18. windowStatus=""
  19. function HAY()
  20.   chat.say("Лучше не бывает!")
  21. end
  22. function lampOn()
  23.   lamp.setLampColor(32000)
  24.   chat.say("Свет включён!")
  25.   lampStatus="включена"
  26. end
  27. function lampOff()
  28.   lamp.setLampColor(0)
  29.   chat.say("Свет выключён!")
  30.   lampStatus="выключена"
  31. end
  32. function musicOn()
  33.   chat.say("Запуск стримера...")
  34.   os.sleep(1)
  35.   chat.say("Перемотка кассеты...")
  36.   os.execute("tape rewind")
  37.   os.sleep(0.25)
  38.   chat.say("Воспроизводство кассеты...")
  39.   os.execute("tape play")
  40. end
  41. function musicOff()
  42.   chat.say("Выключаю кассету...")
  43.   os.execute("tape stop")
  44. end
  45. function doorOpen()
  46.   red.setOutput(1, 0)
  47.   chat.say("Дверь открыта!")
  48.   doorStatus="открыта"
  49. end
  50. function doorClose()
  51.   red.setOutput(1, 15)
  52.   chat.say("Дверь закрыта!")
  53.   doorStatus="закрыта"
  54. end
  55. function windowOpen()
  56.   red.setOutput(0, 15)
  57.   chat.say("Окна открыты!")
  58.   windowStatus="открыты"
  59. end
  60. function windowClose()
  61.   red.setOutput(0, 0)
  62.   chat.say("Окна закрыты!")
  63.   windowStatus="закрыты"
  64. end
  65. function info()
  66.    chat.say("Энергии в ЭФПХ: "..tostring(mfsu.getStored()).."/"..tostring(mfsu.getCapacity()).." EU")
  67.    chat.say("Дверь "..doorStatus)
  68.    chat.say("Лампа "..lampStatus)
  69.    chat.say("Окна "..windowStatus)
  70.    --chat.say("Катушки Тесла "..teslaStatus)
  71.    chat.say("Компонентов:"..tostring(componentsNum()))
  72.    chat.say("Память:"..tostring(computer.freeMemory()/1024).."/"..tostring(computer.totalMemory()/1024).." кБайт")
  73.    chat.say("Управление Джарвисом: Andronio & Asummonster")
  74. end
  75. function playersNear()
  76.   players=radar.getPlayers()
  77.   for i=1, #players do  chat.say(players[i].name)
  78.   end
  79. end
  80. _G.functions={
  81.   {"Джарвис, как ты?", HAY},
  82.   {"Джарвис, включи свет", lampOn},
  83.   {"Джарвис, выключи свет", lampOff},
  84.   {"Джарвис, музыку", musicOn},
  85.   {"Джарвис, выключи музыку", musicOff},
  86.   {"Джарвис, открой дверь", doorOpen},
  87.   {"Джарвис, закрой дверь", doorClose},
  88.   {"Джарвис, инфа", info},
  89.   {"Джарвис, открой окна", windowOpen},
  90.   {"Джарвис, закрой окна", windowClose},
  91.   {"Джарвис, посетители", playersNear}
  92. }
  93. Users={
  94. "Andronio",
  95. "Asummonster"
  96. }
  97. function split(line)
  98.   local data={}
  99.   for word in line:gmath("%S+") do table.insert(data, word) end
  100.   return data
  101. end
  102. function start(_, _, nick, msg)
  103.   can=false
  104.   for username = 1, #Users do
  105.     if nick==Users[username] then
  106.       can=true
  107.     end
  108.   end
  109.   if can==true then
  110.   for i=1, #functions do
  111.     if msg==functions[i][1] then
  112.       functions[i][2]()
  113.     end
  114.   end
  115.   end
  116. end
  117. event.listen("chat_message", start)
  118. chat.setName("Jarvis")
  119. chat.say("Джарвис запущен!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement