mirror of
https://github.com/Qsgs-Fans/FreeKill.git
synced 2024-11-15 19:22:25 +08:00
杀了-1 (#393)
Co-authored-by: YoumuKon <38815081+YoumuKon@users.noreply.github.com>
This commit is contained in:
parent
210ca99d2f
commit
220fb93b0e
|
@ -244,6 +244,7 @@ Item {
|
||||||
config.curSchemeChanged();
|
config.curSchemeChanged();
|
||||||
} else {
|
} else {
|
||||||
generalText.clear();
|
generalText.clear();
|
||||||
|
generalText.clearSavedText();
|
||||||
generalDetail.general = modelData;
|
generalDetail.general = modelData;
|
||||||
generalDetail.updateGeneral();
|
generalDetail.updateGeneral();
|
||||||
generalDetail.open();
|
generalDetail.open();
|
||||||
|
@ -505,6 +506,7 @@ Item {
|
||||||
detailFlickable.contentY = 0; // 重置滚动条
|
detailFlickable.contentY = 0; // 重置滚动条
|
||||||
const data = lcall("GetGeneralDetail", general);
|
const data = lcall("GetGeneralDetail", general);
|
||||||
generalText.clear();
|
generalText.clear();
|
||||||
|
generalText.clearSavedText();
|
||||||
audioModel.clear();
|
audioModel.clear();
|
||||||
|
|
||||||
if (data.companions.length > 0){
|
if (data.companions.length > 0){
|
||||||
|
@ -619,6 +621,10 @@ Item {
|
||||||
TextEdit {
|
TextEdit {
|
||||||
id: generalText
|
id: generalText
|
||||||
|
|
||||||
|
property var savedtext: []
|
||||||
|
function clearSavedText() {
|
||||||
|
savedtext = [];
|
||||||
|
}
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
readOnly: true
|
readOnly: true
|
||||||
selectByKeyboard: true
|
selectByKeyboard: true
|
||||||
|
@ -626,6 +632,14 @@ Item {
|
||||||
wrapMode: TextEdit.WordWrap
|
wrapMode: TextEdit.WordWrap
|
||||||
textFormat: TextEdit.RichText
|
textFormat: TextEdit.RichText
|
||||||
font.pixelSize: 18
|
font.pixelSize: 18
|
||||||
|
onLinkActivated: (link) => {
|
||||||
|
if (link === "back") {
|
||||||
|
text = savedtext.pop();
|
||||||
|
} else {
|
||||||
|
savedtext.push(text);
|
||||||
|
text = '<a href="back">点击返回</a><br>' + luatr(link);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
|
|
|
@ -1290,6 +1290,10 @@ Item {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getPhoto(id) {
|
||||||
|
return Logic.getPhoto(id);
|
||||||
|
}
|
||||||
|
|
||||||
function applyChange(uiUpdate) {
|
function applyChange(uiUpdate) {
|
||||||
uiUpdate["_delete"]?.forEach(data => {
|
uiUpdate["_delete"]?.forEach(data => {
|
||||||
if (data.type == "Interaction") {
|
if (data.type == "Interaction") {
|
||||||
|
|
|
@ -199,14 +199,15 @@ function getAreaItem(area, id) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function moveCards(moves) {
|
function moveCards(data) {
|
||||||
|
const moves = data.merged;
|
||||||
for (let i = 0; i < moves.length; i++) {
|
for (let i = 0; i < moves.length; i++) {
|
||||||
const move = moves[i];
|
const move = moves[i];
|
||||||
const from = getAreaItem(move.fromArea, move.from);
|
const from = getAreaItem(move.fromArea, move.from);
|
||||||
const to = getAreaItem(move.toArea, move.to);
|
const to = getAreaItem(move.toArea, move.to);
|
||||||
if (!from || !to || (from === to && move.fromArea !== Card.DiscardPile))
|
if (!from || !to || (from === to && move.fromArea !== Card.DiscardPile))
|
||||||
continue;
|
continue;
|
||||||
const items = from.remove(move.ids, move.fromSpecialName);
|
const items = from.remove(move.ids, move.fromSpecialName, data);
|
||||||
if (to === tablePile) {
|
if (to === tablePile) {
|
||||||
let vanished = items.filter(c => c.cid === -1);
|
let vanished = items.filter(c => c.cid === -1);
|
||||||
if (vanished.length > 0) {
|
if (vanished.length > 0) {
|
||||||
|
@ -569,30 +570,6 @@ callbacks["MaxCard"] = (data) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeSelf(id) {
|
|
||||||
lcall("ChangeSelf", id);
|
|
||||||
|
|
||||||
// move new selfPhoto to dashboard
|
|
||||||
let order = new Array(photoModel.count);
|
|
||||||
for (let i = 0; i < photoModel.count; i++) {
|
|
||||||
const item = photoModel.get(i);
|
|
||||||
order[item.seatNumber - 1] = item.id;
|
|
||||||
if (item.id === Self.id) {
|
|
||||||
dashboard.self = photos.itemAt(i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
callbacks["ArrangeSeats"](order);
|
|
||||||
|
|
||||||
// update dashboard
|
|
||||||
dashboard.update();
|
|
||||||
|
|
||||||
// handle pending messages
|
|
||||||
if (mainWindow.is_pending) {
|
|
||||||
const data = mainWindow.fetchMessage();
|
|
||||||
return mainWindow.handleMessage(data.command, data.jsonData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
callbacks["AddPlayer"] = (data) => {
|
callbacks["AddPlayer"] = (data) => {
|
||||||
// jsonData: int id, string screenName, string avatar, bool ready
|
// jsonData: int id, string screenName, string avatar, bool ready
|
||||||
for (let i = 0; i < photoModel.count; i++) {
|
for (let i = 0; i < photoModel.count; i++) {
|
||||||
|
@ -1538,21 +1515,20 @@ callbacks["UpdateGameData"] = (data) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 神貂蝉
|
// 神貂蝉
|
||||||
|
|
||||||
callbacks["StartChangeSelf"] = (j) => {
|
|
||||||
const id = parseInt(j);
|
|
||||||
ClientInstance.notifyServer("PushRequest", "changeself," + j);
|
|
||||||
}
|
|
||||||
|
|
||||||
callbacks["ChangeSelf"] = (j) => {
|
callbacks["ChangeSelf"] = (j) => {
|
||||||
const data = parseInt(j);
|
// move new selfPhoto to dashboard
|
||||||
if (Self.id === data) {
|
let order = new Array(photoModel.count);
|
||||||
const msg = mainWindow.fetchMessage();
|
for (let i = 0; i < photoModel.count; i++) {
|
||||||
if (!msg) return;
|
const item = photoModel.get(i);
|
||||||
mainWindow.handleMessage(msg.command, msg.jsonData);
|
order[item.seatNumber - 1] = item.id;
|
||||||
return;
|
if (item.id === Self.id) {
|
||||||
|
dashboard.self = photos.itemAt(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
changeSelf(data);
|
callbacks["ArrangeSeats"](order);
|
||||||
|
|
||||||
|
// update dashboard
|
||||||
|
dashboard.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
callbacks["UpdateRequestUI"] = (uiUpdate) => {
|
callbacks["UpdateRequestUI"] = (uiUpdate) => {
|
||||||
|
|
|
@ -88,7 +88,7 @@ Item {
|
||||||
} else {
|
} else {
|
||||||
if (!root.parent.playerid) return;
|
if (!root.parent.playerid) return;
|
||||||
let data = lcall("GetPile", root.parent.playerid, mark_name);
|
let data = lcall("GetPile", root.parent.playerid, mark_name);
|
||||||
data = data.filter((e) => e !== -1);
|
data = data.filter((e) => lcall("CardVisibility", e));
|
||||||
if (data.length === 0)
|
if (data.length === 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ Item {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function remove(outputs)
|
function remove(outputs, _, visibleData)
|
||||||
{
|
{
|
||||||
const component = Qt.createComponent("CardItem.qml");
|
const component = Qt.createComponent("CardItem.qml");
|
||||||
if (component.status !== Component.Ready)
|
if (component.status !== Component.Ready)
|
||||||
|
@ -67,6 +67,7 @@ Item {
|
||||||
card.x -= card.width / 2;
|
card.x -= card.width / 2;
|
||||||
card.x += (i - outputs.length / 2) * 15;
|
card.x += (i - outputs.length / 2) * 15;
|
||||||
card.y -= card.height / 2;
|
card.y -= card.height / 2;
|
||||||
|
if (visibleData) card.known = !!visibleData[outputs[i].toString()];
|
||||||
items.push(card);
|
items.push(card);
|
||||||
if (checkExisting) {
|
if (checkExisting) {
|
||||||
for (let j = 0; j < length; j++) {
|
for (let j = 0; j < length; j++) {
|
||||||
|
|
|
@ -507,23 +507,6 @@ Item {
|
||||||
anchors.bottomMargin: 4
|
anchors.bottomMargin: 4
|
||||||
style: Text.Outline
|
style: Text.Outline
|
||||||
}
|
}
|
||||||
|
|
||||||
TapHandler {
|
|
||||||
enabled: (root.state != "candidate" || !root.selectable)
|
|
||||||
&& root.playerid !== Self.id
|
|
||||||
onTapped: {
|
|
||||||
const params = { name: "hand_card" };
|
|
||||||
let data = lcall("GetPlayerHandcards", root.playerid);
|
|
||||||
data = data.filter((e) => e !== -1);
|
|
||||||
if (data.length === 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
params.ids = data;
|
|
||||||
|
|
||||||
// Just for using room's right drawer
|
|
||||||
roomScene.startCheat("../RoomElement/ViewPile", params);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
|
@ -548,7 +531,10 @@ Item {
|
||||||
|
|
||||||
RoleComboBox {
|
RoleComboBox {
|
||||||
id: role
|
id: role
|
||||||
value: root.role
|
value: {
|
||||||
|
if (root.role === "hidden") return "hidden";
|
||||||
|
lcall("RoleVisibility", root.playerid) ? root.role : "unknown";
|
||||||
|
}
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: -4
|
anchors.topMargin: -4
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
@ -798,6 +784,91 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: "#CC2E2C27"
|
||||||
|
radius: 6
|
||||||
|
border.color: "#A6967A"
|
||||||
|
border.width: 1
|
||||||
|
width: 44
|
||||||
|
height: 112
|
||||||
|
/* 有点小问题,因为绝大部分都是手机玩家我还是无脑放左
|
||||||
|
x: {
|
||||||
|
const roomX = mapToItem(roomScene, root.x, root.y).x;
|
||||||
|
if (roomX < 48) return 175;
|
||||||
|
return -44;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
x: -44
|
||||||
|
y: 128
|
||||||
|
visible: {
|
||||||
|
if (root.playerid === Self.id) return false;
|
||||||
|
if (root.handcards === 0) return false; // 优先绑定再判buddy,否则不会更新
|
||||||
|
if (!lcall("IsMyBuddy", Self.id, root.playerid) &&
|
||||||
|
!lcall("HasVisibleCard", Self.id, root.playerid)) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Text {
|
||||||
|
x: 2; y: 2
|
||||||
|
width: 42
|
||||||
|
text: {
|
||||||
|
if (!parent.visible) return "";
|
||||||
|
const unused = root.handcards; // 绑定
|
||||||
|
const ids = lcall("GetPlayerHandcards", root.playerid);
|
||||||
|
const txt = [];
|
||||||
|
for (const cid of ids) {
|
||||||
|
if (txt.length >= 4) {
|
||||||
|
// txt.push(" ...");
|
||||||
|
txt.push("...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!lcall("CardVisibility", cid)) continue;
|
||||||
|
const data = lcall("GetCardData", cid);
|
||||||
|
let a = luatr(data.name);
|
||||||
|
/* if (a.length === 1) {
|
||||||
|
a = " " + a;
|
||||||
|
} else */
|
||||||
|
if (a.length >= 2) {
|
||||||
|
a = a.slice(0, 2);
|
||||||
|
}
|
||||||
|
txt.push(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (txt.length < 5) {
|
||||||
|
const unknownCards = ids.length - txt.length;
|
||||||
|
for (let i = 0; i < unknownCards; i++) {
|
||||||
|
if (txt.length >= 4) {
|
||||||
|
txt.push("...");
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
txt.push("?");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return txt.join("<br>");
|
||||||
|
}
|
||||||
|
color: "#E4D5A0"
|
||||||
|
font.family: fontLibian.name
|
||||||
|
font.pixelSize: 18
|
||||||
|
textFormat: Text.RichText
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
TapHandler {
|
||||||
|
onTapped: {
|
||||||
|
const params = { name: "hand_card" };
|
||||||
|
let data = lcall("GetPlayerHandcards", root.playerid);
|
||||||
|
data = data.filter((e) => lcall("CardVisibility", e));
|
||||||
|
|
||||||
|
params.ids = data;
|
||||||
|
|
||||||
|
// Just for using room's right drawer
|
||||||
|
roomScene.startCheat("../RoomElement/ViewPile", params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onGeneralChanged: {
|
onGeneralChanged: {
|
||||||
if (!roomScene.isStarted) return;
|
if (!roomScene.isStarted) return;
|
||||||
const text = luatr(general);
|
const text = luatr(general);
|
||||||
|
|
|
@ -75,7 +75,7 @@ GraphicsBox {
|
||||||
suit: model.suit || ""
|
suit: model.suit || ""
|
||||||
number: model.number || 0
|
number: model.number || 0
|
||||||
autoBack: false
|
autoBack: false
|
||||||
known: model.cid !== -1
|
known: model.known
|
||||||
selectable: true
|
selectable: true
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (!root.multiChoose) {
|
if (!root.multiChoose) {
|
||||||
|
|
|
@ -71,7 +71,7 @@ GraphicsBox {
|
||||||
suit: model.suit || ""
|
suit: model.suit || ""
|
||||||
number: model.number || 0
|
number: model.number || 0
|
||||||
autoBack: false
|
autoBack: false
|
||||||
known: model.cid !== -1
|
known: model.known
|
||||||
selectable: chosenInBox ||
|
selectable: chosenInBox ||
|
||||||
lcall("PoxiFilter", root.poxi_type, model.cid, root.selected_ids,
|
lcall("PoxiFilter", root.poxi_type, model.cid, root.selected_ids,
|
||||||
root.card_data, root.extra_data);
|
root.card_data, root.extra_data);
|
||||||
|
|
|
@ -21,7 +21,7 @@ Item {
|
||||||
function inTable(cid) {
|
function inTable(cid) {
|
||||||
return leval(`(function()
|
return leval(`(function()
|
||||||
local client = Fk:currentRoom()
|
local client = Fk:currentRoom()
|
||||||
if client._processing[${cid}] then
|
if table.contains(client.processing_area, ${cid}) then
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
|
|
14
Fk/main.qml
14
Fk/main.qml
|
@ -26,8 +26,6 @@ Window {
|
||||||
? 540 : 960 * parent.height / parent.width
|
? 540 : 960 * parent.height / parent.width
|
||||||
scale: parent.width / width
|
scale: parent.width / width
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
property bool is_pending: false
|
|
||||||
property var pending_message: []
|
|
||||||
|
|
||||||
Config {
|
Config {
|
||||||
id: config
|
id: config
|
||||||
|
@ -158,17 +156,7 @@ Window {
|
||||||
errDialog.open();
|
errDialog.open();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mainWindow.is_pending && command !== "ChangeSelf") {
|
mainWindow.handleMessage(command, jsonData);
|
||||||
mainWindow.pending_message.push({
|
|
||||||
command: command,
|
|
||||||
jsonData: jsonData,
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if (command === "StartChangeSelf") {
|
|
||||||
mainWindow.is_pending = true;
|
|
||||||
}
|
|
||||||
mainWindow.handleMessage(command, jsonData);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -356,6 +356,22 @@ test2:addSkill(test_zhenggong)
|
||||||
test2:addSkill(change_hero)
|
test2:addSkill(change_hero)
|
||||||
-- test2:addSkill(test_feichu)
|
-- test2:addSkill(test_feichu)
|
||||||
|
|
||||||
|
local kansha=fk.CreateVisibilitySkill{
|
||||||
|
name='test_kansha',
|
||||||
|
frequency=Skill.Compulsory,
|
||||||
|
card_visible = function(self, player, card)
|
||||||
|
if player:hasSkill(self) and card.trueName == 'slash' and
|
||||||
|
Fk:currentRoom():getCardArea(card) == Card.PlayerHand then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}
|
||||||
|
test2:addSkill(kansha)
|
||||||
|
Fk:loadTranslationTable{
|
||||||
|
["test_kansha"] = "看杀",
|
||||||
|
[":test_kansha"] = "锁定技,你看得到人们手中的【杀】"
|
||||||
|
}
|
||||||
|
|
||||||
local shibing = General(extension, "blank_shibing", "qun", 5)
|
local shibing = General(extension, "blank_shibing", "qun", 5)
|
||||||
shibing.hidden = true
|
shibing.hidden = true
|
||||||
Fk:loadTranslationTable{
|
Fk:loadTranslationTable{
|
||||||
|
|
|
@ -50,3 +50,26 @@ public:
|
||||||
QByteArray toJson(QJsonDocument::JsonFormat format = 1) const;
|
QByteArray toJson(QJsonDocument::JsonFormat format = 1) const;
|
||||||
QVariant toVariant() const;
|
QVariant toVariant() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class QRandomGenerator {
|
||||||
|
public:
|
||||||
|
QRandomGenerator(unsigned int seed = 1);
|
||||||
|
unsigned int generate();
|
||||||
|
unsigned int bounded(unsigned int lowest, unsigned int highest);
|
||||||
|
};
|
||||||
|
|
||||||
|
%extend QRandomGenerator {
|
||||||
|
QVariant random(int low = -1, int high = -1) {
|
||||||
|
QVariant ret;
|
||||||
|
if (high < 0) {
|
||||||
|
if (low < 1) {
|
||||||
|
ret.setValue($self->bounded(0, 100001) / 100000);
|
||||||
|
} else {
|
||||||
|
ret.setValue($self->bounded(1, low + 1));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ret.setValue($self->bounded(low, high + 1));
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
local fk = {}
|
local fk = {}
|
||||||
local testFail = false
|
local testFail = false
|
||||||
|
|
||||||
|
local json = require "lua.lib.json"
|
||||||
|
|
||||||
local os, io = os, io
|
local os, io = os, io
|
||||||
|
|
||||||
-- 这下Linux专用了
|
-- 这下Linux专用了
|
||||||
|
@ -13,12 +15,35 @@ end
|
||||||
|
|
||||||
function fk.QmlBackend_isDir(dir)
|
function fk.QmlBackend_isDir(dir)
|
||||||
local f = io.popen("if [ -d " .. dir .. " ]; then echo OK; fi")
|
local f = io.popen("if [ -d " .. dir .. " ]; then echo OK; fi")
|
||||||
return f:read("*a"):startsWith("OK")
|
return f:read("*a"):sub(1, 2) == "OK"
|
||||||
end
|
end
|
||||||
|
|
||||||
function fk.QmlBackend_exists(dir)
|
function fk.QmlBackend_exists(dir)
|
||||||
local f = io.popen("if [ -e " .. dir .. " ]; then echo OK; fi")
|
local f = io.popen("if [ -e " .. dir .. " ]; then echo OK; fi")
|
||||||
return f:read("*a"):startsWith("OK")
|
return f:read("*a"):sub(1, 2) == "OK"
|
||||||
|
end
|
||||||
|
|
||||||
|
function fk.QmlBackend_pwd()
|
||||||
|
local f = io.popen("pwd")
|
||||||
|
return f:read("*a")
|
||||||
|
end
|
||||||
|
|
||||||
|
function fk.QmlBackend_cd(dir) end
|
||||||
|
|
||||||
|
function fk.QJsonDocument_fromVariant(e)
|
||||||
|
return {
|
||||||
|
toJson = function(_, __)
|
||||||
|
return json.encode(e)
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
function fk.QJsonDocument_fromJson(str)
|
||||||
|
return {
|
||||||
|
toVariant = function(_)
|
||||||
|
return json.decode(str)
|
||||||
|
end,
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
function fk.GetDisabledPacks()
|
function fk.GetDisabledPacks()
|
||||||
|
@ -46,7 +71,7 @@ end
|
||||||
function fk.roomtest(croom, f)
|
function fk.roomtest(croom, f)
|
||||||
local room = Room(croom)
|
local room = Room(croom)
|
||||||
RoomInstance = room
|
RoomInstance = room
|
||||||
room.action = function() f(room) end
|
--room.action = function() f(room) end
|
||||||
while true do
|
while true do
|
||||||
local over = room:resume()
|
local over = room:resume()
|
||||||
if over then break else room.in_delay = false end
|
if over then break else room.in_delay = false end
|
||||||
|
|
|
@ -7,6 +7,11 @@ function Room:getPlayers() return self.players end
|
||||||
function Room:getTimeout() return 15 end
|
function Room:getTimeout() return 15 end
|
||||||
function Room:updateWinRate() end
|
function Room:updateWinRate() end
|
||||||
function Room:gameOver() end
|
function Room:gameOver() end
|
||||||
|
function Room:setRequestTimer() end
|
||||||
|
function Room:destroyRequestTimer() end
|
||||||
|
function Room:delay(ms)
|
||||||
|
-- fk.io.popen("sleep " .. ms/1000):read()
|
||||||
|
end
|
||||||
function Room:settings()
|
function Room:settings()
|
||||||
return json.encode{
|
return json.encode{
|
||||||
enableFreeAssign = false,
|
enableFreeAssign = false,
|
||||||
|
|
|
@ -581,7 +581,7 @@ function ServerPlayer:waitForReply()
|
||||||
return ""
|
return ""
|
||||||
end
|
end
|
||||||
function ServerPlayer:doNotify(cmd, j)
|
function ServerPlayer:doNotify(cmd, j)
|
||||||
if self.id ~= 1 then
|
if self.id ~= 100 then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if cmd == "GameLog" then
|
if cmd == "GameLog" then
|
||||||
|
|
|
@ -5,7 +5,7 @@ _TestGameLogic = {
|
||||||
setup = function()
|
setup = function()
|
||||||
croom = fk.Room:new()
|
croom = fk.Room:new()
|
||||||
croom.players = {
|
croom.players = {
|
||||||
fk.ServerPlayer:new(1),
|
fk.ServerPlayer:new(100),
|
||||||
fk.ServerPlayer:new(2),
|
fk.ServerPlayer:new(2),
|
||||||
fk.ServerPlayer:new(3),
|
fk.ServerPlayer:new(3),
|
||||||
fk.ServerPlayer:new(4),
|
fk.ServerPlayer:new(4),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user