Is there a way to quickly send a message from one local server to another?
Like, not actually connecting the two messages but just sending some output like, "Hi" or ,"I LIKE JAM!"
ID:159663
![]() Jan 31 2009, 3:23 pm
|
|
![]() Jan 31 2009, 3:31 pm
|
|
Look up world/Export() and world/Topic().
|
It'll take me a bit to figure out what to do with them since it took me 20 minutes staring at topic to figure it out, and the fact that the DM guide has "fantasmically" insane grammar makes it even harder isn't helping
|
Nevermind for some reason reading the DM guide seems "fantasmically" easier to read. <----------- Is getting better grades in Comm. Skills =D
|
What do you mean? How is the sender going to get the receiver's address? You either have to hard code it, use user input, or grab it from a webpage/other server.
For example(s) (these will not be valid addresses): The recipient's address will always be byond://392332..234232 You send it to byond://39whateverIwrote. The server at byond://whateverIwrote then uses the address arg in world/Topic() to get the sender's address, and they are connected. User input is self explantory. If you take a hub address (ex. http://byond.com/games/jeff8500/RealTimeDefense) and add ;format=text to the end of the url, it will present data from the hub in an easy to read-by-computers format. You just parse the data using findText() and copytext() and you're set. If you wish to have one central server connecting all the other servers, that would probably be the best move. It would kind of look like this: .......[]......... ...../.|.\........ ...[]..[].[]...... Where [] is a computer, . is blank space, and lines (|, \, and /) are connections. |
I'm probably going to say something annoying but:
You're assuming that I know how to use Topic fully..when I don't at all. The most I can do is something like a link that starts the game. I don't know how I'm going to define the address in the world/Topic() and yush I've just tried. |
I know..but how am I supposed to get the actual address into world/Topic() I'm deathly sure you just don't type: "The arg is predifined as byond://xx.xxx.xxx.xx:xxxx", And what is the T in Topic supposed to mean..? I mean, it's obviously predefined but nothing anywhere explains it.
|
World/Topic is called when a message is received from another server, so there's no need to know an address when using that proc.
Also, from the reference: T: The topic text string specified by the remote server (everything following ? in the URL). |
From the reference: "Topic(T,Addr,Master,Key)".
var/greeting_response = "G'day, mate!" |
I know that...but that still didn't tell me how I'm supposed to do it. That just tells me what each of them would do in this situation.
|
Oh my, finally you've revealed what I wanted to know. I kept staring at that Addr but I wasn't paying attention.
|
'forgetwhatthisis' is 1 if the server is sending a message to itself. This can be done from Dream Daemon by hitting Alt+T.
I think 'forgetwhatthisis2' is the key of the host of the sender. |
Actually..what I Was looking for wasn't the senders address. But the address being sent to. Like, does it have to be defined in world.Topic() or can I just post a direct port from options&messages
|
Choka wrote:
Actually..what I Was looking for wasn't the senders address. But the address being sent to. Like, does it have to be defined in world.Topic() or can I just post a direct port from options&messages The part you're having trouble understanding has nothing to do with Topic(), what you're getting confused about is the world.Export() portion of the code. Since you apparently didn't understand me before, lets try this again: I know..but how am I supposed to get the actual address into world/Topic() I'm deathly sure you just don't type: "The arg is predifined as byond://xx.xxx.xxx.xx:xxxx", And what is the T in Topic supposed to mean..? I mean, it's obviously predefined but nothing anywhere explains it. //use this proc on the sending server/game EDIT: I fixed the mistake of having : instead of ? in world.Export |
If you want to send a message to another BYOND world hosted on the same computer (which is how it seems from your first post), you can simply use 127.0.0.1 as the address. This IP address is a special one that always translates to the local computer, ie the same one it's being used on - so for anyone, it will reach their own computer. The port is of course the port the destination BYOND world is listening (hosting) on (by the way, the sending world doesn't have to be hosted).
|
Nickr5 wrote:
'forgetwhatthisis' is 1 if the server is sending a message to itself. This can be done from Dream Daemon by hitting Alt+T. That might work too, but the purpose for that variable is to check whether the master world sent it. For example, if you start Server A and this uses the startup() proc to start Server B... then if Server A sends a command to Server B, the "forgetwhatthisis" ("Master") variable will be set. Rule of thumb: if the "Master" variable is set, the server should completely trust the command and obey it. There are two default topic calls -- Del and Reboot -- which will only work if the variable is set. |