別のプログラム内にロードされたプログラムの変数変更をキャプチャするために何を使用できるかについて、どこを見ればよいかわかりません。
これが私のコードです。
function launch()
shell.run("clear")
print("Preparing for first time run.")
sleep(1)
print("")
local program = netTest()
local file = loadstring(program)
file()
sleep(3)
shell.run("clear")
end
function netTest()
local output = http.get("http://pastebin.com/raw.php?i=hzZv3YH2")
if output then
local contents = output.readAll()
output.close()
return contents
else
print("Empty response")
return false
end
end
local program = netTest()
local file = loadstring(program)
launch()
呼び出しているコードは次のとおりです。
function ping()
fails = 0
pingResult = 0
print("Testing Internet Connection.")
print("")
oldx, oldy = term.getCursorPos()
print("Connection Test 1")
http.request("http://www.google.com/")
if os.pullEvent() == "http_success" then
local oldx, oldy = term.getCursorPos()
term.setCursorPos(46,oldy-1)
io.write("Passed")
else
local oldx, oldy = term.getCursorPos()
term.setCursorPos(46,oldy-1)
io.write("Failed")
fails = fails+1
end
sleep(1)
print("Connection Test 2")
http.request("http://www.microsoft.com/")
if os.pullEvent() == "http_success" then
local oldx, oldy = term.getCursorPos()
term.setCursorPos(46,oldy-1)
io.write("Passed")
else
local oldx, oldy = term.getCursorPos()
term.setCursorPos(46,oldy-1)
io.write("Failed")
fails = fails+1
end
sleep(1)
print("Connection Test 3")
http.request("http://www.example-failure.com/")
if os.pullEvent() == "http_success" then
local oldx, oldy = term.getCursorPos()
term.setCursorPos(46,oldy-1)
io.write("Passed")
else
local oldx, oldy = term.getCursorPos()
term.setCursorPos(46,oldy-1)
io.write("Failed")
fails = fails+1
end
sleep(1)
if fails == 0 then
print("")
print("")
print("Test Complete, no failures detected.")
sleep(1.5)
elseif fails == 1 then
print("")
print("")
print("1 connection failures detected. A Website Host might be down however connectivity is still there.")
print("")
print("Test Complete.")
sleep(1.5)
elseif fails == 2 then
print("")
print("")
print("2 connection failures detected. Possible limited web connectivity.")
print("")
print("Test Complete.")
sleep(1.5)
elseif fails == 3 then
print("")
print("")
print("Catastrophic connection failure detected. A firewall or improper internet settings may be the problem.")
print("")
print("Test Complete.")
pingResult = __pingResult + 3
sleep(1.5)
end
end
ping()
あなたが見ることができるようにそれがしていることは、インターネットへの接続があることを確認するためにいくつかのページにhttpリクエストをすることによって接続をテストするプログラムを外部で実行しています。(私は知っています、それは少し足りないです、しかし私はまだ学んでいます)。
基本的に、接続が3つのステージすべてで失敗を読み取ると、pingResult変数は3になります。インターネットユーティリティで呼び出された最初のプログラムから実行したいのは、その変数が何に設定されているかを記録することです。閉じたときに3に設定されている場合は、設定されている変数を記録し、簡単にするために、その変数を出力して、0または3のいずれかであることがわかるようにします。後で何かを実行しますが、要点はわかります。 。
私は他のいくつかのことを試しましたが、これをどのように行うのか理解できないようです。私はまだ新しいので、ランダムなものを試しましたが、どれもうまくいかなかったようです。または、間違っただけなので、どうしたらよいかわかりません。これを数日間試しても成功しませんでした。