Перейти к публикации

В ближайшее время постараюсь разобраться с картой сервера/ЛК/бб кодами

Внимание, с 14 февраля до 20 февраля могут проходить работы на сервере, где также находится лаунчсервер. В связи с этим авторизация в лаунчере может не работать

Вопрос

Решил я делать BootMenu. Что то типа программы. Думаю потом переименую в startup. Установил я jupiterOS и переименовал startup в jupiter. Получилось что при команде "jupiter" вызывалась ОС. Также сделал c voidOS. Начал писать код, вот что у меня получилось:

local void = void
local jupiter - jupiter
local shell = shell
write("voidOS - void  jupiterOS - jupiter  shell - shell")
local user = read()
if user = void then
 shell.run("voidOS") --Start voidOS
end
if user = jupiter then
 shell.run("jupiter") --Start jupiterOS
end
if user = shell then
 shell.run("clear") --Clear display
 shell.run("shell") --Start shell(write text CraftOS C:)
end

При запуске программы все шло хорошо, но ОС не запускалась. Никак! такое ощущение что if'ы вообще не запускались .хотя я писал правильно - shell или void или jupiter.

В чем проблема? 

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 ответов на этот вопрос

Рекомендованные сообщения

  • 0

Спасибо всем ребят)) Я ток учусь поэтому и минное поле ошибок :)  Закрываю тему.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

local void = void
local jupiter - jupiter
local shell = shellwrite("voidOS - void  jupiterOS - jupiter  shell - shell")
local user = read()
if user = void then 
shell.run("voidOS") --Start voidOS
end
if user = jupiter then shell.run("jupiter") --Start jupiterOS
end
if user = shell then 
shell.run("clear") --Clear display shell.run("shell") --Start 
shell(write text CraftOS C:)
end

Ошибка в том что ты сравниеваешь строку и переменную

if user = "void" then 
shell.run("voidOS") --Start voidOS
end
if user = "jupiter" then shell.run("jupiter") --Start jupiterOS 
end
if user = "shell" then
 shell.run("clear") --Clear display shell.run("shell") --Start 
shell(write text CraftOS C:)
end
Или иначе :

local void = "void"
local jupiter - "jupiter"
local shell = "shell"
Изменено пользователем kremnev8

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

А полностью "выправленный" код выглядит так:

local void = "void"
local jupiter = "jupiter"
local shell = "shell"
print("voidOS - void")
print("jupiterOS - jupiter")  
print("shell - shell")
local user = read()
if user == void then 
shell.run("voidOS") --Start voidOS
elseif user == jupiter then 
shell.run("jupiter") --Start jupiterOS
elseif user == shell then 
shell.run("clear") --Clear display 
shell.run("shell") --Start shell
end
Изменено пользователем kremnev8
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

А полностью "выправленный" код выглядит так:

local void = "void"
local jupiter = "jupiter"
local shell = "shell"
print("voidOS - void")
print("jupiterOS - jupiter")  
print("shell - shell")
local user = read()
if user = void then 
shell.run("voidOS") --Start voidOS
elseif user = jupiter then 
shell.run("jupiter") --Start jupiterOS
elseif user = shell then 
shell.run("clear") --Clear display shell.run("shell") --Start shell
end

Спасибо! Завтра запущу.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

user==void

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

= присвавает новое значение

== проверяет на равенство.

Во всех ифах у вас присвоение новых значений...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Ой , как я мог это не заметить. LashaInc , твой код это просто минное поле с ошибками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вот здесь ..

local shell = "shell"

вы переопределяете переменную shell хоть и локально, а значит здесь..

  1. shell.run("voidOS") --Start voidOS

     

функцию run вызвать не удастся.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Изодя из всех поправок:

local _void = "void"
local _jupiter = "jupiter"
local _shell = "shell"
print("voidOS - void")
print("jupiterOS - jupiter")  
print("shell - shell")
local user = read()
if user == _void then 
shell.run("voidOS") --Start voidOS
elseif user == _jupiter then 
shell.run("jupiter") --Start jupiterOS
elseif user == _shell then 
shell.run("clear") --Clear display 
shell.run("rom/programs/shell") --Start shell
end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Я бы костыли не придумывал и использовал вместо shell.run("clear") нормальную команду term.clear()

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Я бы костыли не придумывал и использовал вместо shell.run("clear") нормальную команду term.clear()

И term.setCursorPos(1,1)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×