No Time
评价数不足
My Space & Time Gate Dialer Program
由 LeeSpork 制作
A script you can copy-paste into your PLC to control your wormhole conduction device!
2
   
奖励
收藏
已收藏
取消收藏
Features
  • Connects to the gate and dials your desired address without you needing you to edit any code or remember any commands
  • Optional random address generator
  • Automatically writes a history file, in case you later want to re-visit a planet that you may have forgotten the address of
  • Displays both the top and bottom of gatereadings (press enter after it shows the top to see the bottom)
  • Invalid address length detection and lets you retry without needing to restart the program
  • Dynamically waits for the gate to finish connecting if you finish writing the address too fast
  • Automatic time gate recall instead of dialling, if it detects you are in the past
How to Install
  1. Navigate to Files in your PLC.
    (Optional: If you have an HVD disk inserted, you can then select Disk if you want to install the program on it)
  2. Click New
  3. Select the New File that was created and click Edit
  4. Use Ctrl+V to paste the code into the file, after copying it from this guide (see bellow)
  5. Rename the file to something such as Gate Dialer.eee (the .eee at the end is required!)
  6. Save the file.
After following these steps, you should now be able to run the program by clicking Exec.!
Code
//Space & Time Gate Dialer //By LeeSpork, 2024-3-29 //version 3.1 log_file_name = "Gate History.log" main = function() // Detect if the user wants to recall the time gate instead of dialing if getyear() < 9000 then print "Assuming you want to recall your time gate." breakline recalltimegate else //Connect to the gate and remember the time connectgate connect_time = time print "Enter 'random' for random space gate, " print "'somewhen' for random time gate, " //breakline print "or enter a gate address:" dial(connect_time) end if end function dial = function(connect_time) addr = readline if addr == "random" then // Generate random space gate address addr = "" for i in range(1, 5) addr = addr + char(rnd * 24 + 97) end for else if addr == "somewhen" then // Generate random time gate address addr = random_time_address else if addr == "repeat" then // Get last previously dialed address from file addr = read_history if addr == "" then print "Try again?" yield // Wait until next No Time tick to clear readline buffer return dial(connect_time) // Recursion end if end if // Wait for enough time to have passed since connecting to the gate wait(connect_time - time + 2) dialgate addr // Don't do much if it is the return address if addr.lower == "xxxxx" then print "Dialing home :)" // Is it a space gate address? else if addr.len == 5 then // Check if valid (TODO) if addr[4] == "y" then print "Invalid address detected. Try again?" return dial(connect_time) // Recursion end if // Log address to history file log addr // wait 28 seconds for the gate to open for i in range(1, 28) print "." wait 1 end for // Show gate readings gatereadings readkey // wait for input clear gatereadings // Is it a time gate address? else if addr.len == 12 then if addr[0] == "-" then year = addr[5:9] + " BC" else year = addr[4:8] + " AD" end if print "Enjoy your visit to " + year + "!" breakline print "Execute this program again to open the return portal." else print "Invalid address detected. Try again?" return dial(connect_time) // Recursion end if end function pad = function(num, length=2) //Convert number to string and add leading 0s. s = str(num) while s.len < length s = "0" + s end while return s end function random_time_address = function() addr = "" //year = round(rnd * (3793 + 2077) - 3793) year = ceil(rnd * 2077) if year < 0 then addr = "-" year = year * -1 end if year = pad(year, 4) // month addr = addr + pad(ceil(rnd * 12)) // day addr = addr + pad(ceil(rnd * 30)) // TODO change day range depending on month // year addr = addr + year // hour addr = addr + pad(floor(rnd * 24)) // minute addr = addr + pad(floor(rnd * 60)) return addr end function read_history = function() // Check file exists if find(log_file_name) == -1 then print "'" + log_file_name + "' not found. " return "" end if // Get last line line = countlines(log_file_name) // Iterate until non-empty line found addr = "" while addr == "" and line > 0 addr = readfile(log_file_name, line) line = line - 1 end while if addr == "" then print "Could not read dialing history. " end if return addr end function log = function(text) // Create file if needed if find(log_file_name) == -1 then create log_file_name writeline(log_file_name, 0, "- Gate Dialer History (old to new) -") end if // Write data to file writeline(log_file_name, countlines(log_file_name)+1, text) end function // Call main function main
How to Use
While standing within 20 meters of your gate, select the file in your PLC and click "Exec." to run the program. Then, when prompted, type your desired address with your keyboard and press Enter.
Space gate addresses (with a Space Module inserted in your gate)
Space gate addresses are five characters long and made up of letters A-X (you cannot use Y or Z). Alternatively, you can also type "random" to for the program to generate and dial a completely random address.

After typing a space gate address, the program will wait 28 seconds for the gate to open (shown with the "..."s), and then display the top of the gate readings. Press Enter to see the bottom of the gate readings. (This is using a workaround to the issue in the current version of No Time where the gate readings are too long to be displayed in one screen).

After exploring a space planet, stand near its space gate and dial "xxxxx" to go back home.
Time gate addresses (with a Time Module inserted in your gate)
Enter the date and time with numbers in the same format as you would in the car: MMDDYYYYHHMM. Alternatively, type "somewhen" to tell the program to generate a random date.

As the program says, after you have gone through the time portal and want to come back, you can run the program again and it will open a return portal near you.

Note that as of writing, there is apparently no way to dial a BC date with the time gate.

Developmental status note
The time gate functionality of this program is very bare-bones currently. If it is requested, I might improve it in future versions of the program to have more features: e.g. allowing writing wildcard characters along with the numbers for partial randomisation, and/or making a more user-friendly time address prompt that asks for the date and time in a more human-friendly format. So do leave a comment if you would like to see that, or have any other suggestions!
History feature
When a space address is dialled with this program, it will automatically write a file on your PLC or HVD named "Gate History.log" by default. The purpose of this is so you can see what addresses you have previously dialed, so you don't have to worry about remembering them yourself if you want to visit them again. You can also type "repeat" in the program instead of an address, and it will automatically take the last entry in the file and dial it again for you.

New entries get added to the bottom of the file. The program doesn't clear the entries automatically, so if the file becomes too long for your liking you will have to manually edit the file to delete the text in it, like any other file in your PLC.
Alternatives
I thought I would shout-out some alternative gate dialling programs made by other people here. I have never used them and I made by own program completely independently of them.
8 条留言
PersonofInter 8 月 12 日 上午 2:13 
thx
LeeSpork  [作者] 8 月 11 日 下午 6:38 
The home address is XXXXX as normal
PersonofInter 8 月 11 日 上午 11:23 
wait... how do i return after dialing a space gate
Polaris B 2024 年 12 月 28 日 下午 6:40 
nvm i wasnt using the gate right
good guide:steamthumbsup:
Polaris B 2024 年 12 月 28 日 下午 6:37 
i run it and the gate connects but that's it no wormhole
wolfee0507 2024 年 6 月 15 日 下午 10:16 
i love it btw
wolfee0507 2024 年 6 月 15 日 下午 9:58 
Stargate Dialing Program
Lost in Days Studio  [开发者] 2024 年 3 月 25 日 上午 2:43 
nice