Fix MP chat to work when MP not enabled from the command line.
This commit is contained in:
parent
34eb640a76
commit
0d9d60eca7
1 changed files with 35 additions and 34 deletions
|
@ -8,14 +8,11 @@
|
||||||
#
|
#
|
||||||
# 3) Allow chat messages to be written by the user.
|
# 3) Allow chat messages to be written by the user.
|
||||||
|
|
||||||
|
|
||||||
var is_active = func getprop("/sim/multiplay/txport") or getprop("/sim/multiplay/rxport");
|
|
||||||
|
|
||||||
|
|
||||||
var lastmsg = {};
|
var lastmsg = {};
|
||||||
var ignore = {};
|
var ignore = {};
|
||||||
var msg_loop_id = 0;
|
var msg_loop_id = 0;
|
||||||
var msg_timeout = 0;
|
var msg_timeout = 0;
|
||||||
|
var log_file = nil;
|
||||||
|
|
||||||
var check_messages = func(loop_id) {
|
var check_messages = func(loop_id) {
|
||||||
if (loop_id != msg_loop_id) return;
|
if (loop_id != msg_loop_id) return;
|
||||||
|
@ -73,35 +70,6 @@ var chat_listener = func(n)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settimer(func {
|
|
||||||
if (is_active()) {
|
|
||||||
if (getprop("/sim/multiplay/write-message-log")) {
|
|
||||||
var ac = getprop("/sim/aircraft");
|
|
||||||
var cs = getprop("/sim/multiplay/callsign");
|
|
||||||
var apt = airportinfo().id;
|
|
||||||
var t = props.globals.getNode("/sim/time/real").getValues();
|
|
||||||
var file = string.normpath(getprop("/sim/fg-home") ~ "/mp-message.log");
|
|
||||||
|
|
||||||
var f = io.open(file, "a");
|
|
||||||
io.write(f, sprintf("\n===== %s %04d/%02d/%02d\t%s\t%s\t%s\n",
|
|
||||||
["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][t.weekday],
|
|
||||||
t.year, t.month, t.day, apt, ac, cs));
|
|
||||||
|
|
||||||
setlistener("/sim/signals/exit", func io.write(f, "=====\n") and io.close(f));
|
|
||||||
setlistener("/sim/messages/mp-plane", func(n) {
|
|
||||||
io.write(f, sprintf("%02d:%02d %s\n",
|
|
||||||
getprop("/sim/time/real/hour"),
|
|
||||||
getprop("/sim/time/real/minute"),
|
|
||||||
n.getValue()));
|
|
||||||
io.flush(f);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
check_messages(msg_loop_id += 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Call-back to ensure we see our own messages.
|
|
||||||
setlistener("/sim/multiplay/chat", chat_listener);
|
|
||||||
}, 1);
|
|
||||||
|
|
||||||
|
|
||||||
# Message composition function, activated using the - key.
|
# Message composition function, activated using the - key.
|
||||||
|
@ -469,7 +437,40 @@ var model = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_setlistener("/sim/signals/nasal-dir-initialized", func {
|
||||||
|
|
||||||
_setlistener("sim/signals/nasal-dir-initialized", func model.init());
|
model.init();
|
||||||
|
|
||||||
|
setlistener("/sim/multiplay/online", func(n) {
|
||||||
|
if (n.getBoolValue()) {
|
||||||
|
if (getprop("/sim/multiplay/write-message-log")) {
|
||||||
|
var ac = getprop("/sim/aircraft");
|
||||||
|
var cs = getprop("/sim/multiplay/callsign");
|
||||||
|
var apt = airportinfo().id;
|
||||||
|
var t = props.globals.getNode("/sim/time/real").getValues();
|
||||||
|
if (log_file == nil) {
|
||||||
|
var file = string.normpath(getprop("/sim/fg-home") ~ "/mp-message.log");
|
||||||
|
|
||||||
|
log_file = io.open(file, "a");
|
||||||
|
io.write(log_file, sprintf("\n===== %s %04d/%02d/%02d\t%s\t%s\t%s\n",
|
||||||
|
["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][t.weekday],
|
||||||
|
t.year, t.month, t.day, apt, ac, cs));
|
||||||
|
|
||||||
|
setlistener("/sim/signals/exit", func io.write(log_file, "=====\n") and io.close(log_file));
|
||||||
|
setlistener("/sim/messages/mp-plane", func(n) {
|
||||||
|
io.write(log_file, sprintf("%02d:%02d %s\n",
|
||||||
|
getprop("/sim/time/real/hour"),
|
||||||
|
getprop("/sim/time/real/minute"),
|
||||||
|
n.getValue()));
|
||||||
|
io.flush(log_file);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
check_messages(msg_loop_id += 1);
|
||||||
|
}
|
||||||
|
}, 1, 0);
|
||||||
|
|
||||||
|
# Call-back to ensure we see our own messages.
|
||||||
|
setlistener("/sim/multiplay/chat", chat_listener);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue