viplist
This commit is contained in:
parent
6737b0a492
commit
3928db1c4d
|
@ -1,4 +1,5 @@
|
||||||
require 'textmessage'
|
require 'textmessage'
|
||||||
|
require 'vip'
|
||||||
|
|
||||||
-- private functions
|
-- private functions
|
||||||
local function onGameKeyPress(self, keyCode, keyChar, keyboardModifiers)
|
local function onGameKeyPress(self, keyCode, keyChar, keyboardModifiers)
|
||||||
|
@ -18,6 +19,8 @@ local function createMainInterface()
|
||||||
Game.gameUi = loadUI('/game/ui/gameinterface.otui', UI.root)
|
Game.gameUi = loadUI('/game/ui/gameinterface.otui', UI.root)
|
||||||
Game.gameMapUi = Game.gameUi:getChildById('gameMap')
|
Game.gameMapUi = Game.gameUi:getChildById('gameMap')
|
||||||
Game.gameUi.onKeyPress = onGameKeyPress
|
Game.gameUi.onKeyPress = onGameKeyPress
|
||||||
|
|
||||||
|
createVipWindow()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
Window
|
||||||
|
id: vipWindow
|
||||||
|
title: VIP
|
||||||
|
size: 200 200
|
||||||
|
|
||||||
|
TextList
|
||||||
|
id: vipList
|
||||||
|
anchors.fill: parent
|
||||||
|
margin.top: 19
|
||||||
|
margin.bottom: 3
|
||||||
|
margin.left: 3
|
||||||
|
margin.right: 3
|
|
@ -0,0 +1,35 @@
|
||||||
|
vipWindow = nil
|
||||||
|
|
||||||
|
function createVipWindow()
|
||||||
|
vipWindow = loadUI("/game/ui/viplist.otui", Game.gameUi)
|
||||||
|
end
|
||||||
|
|
||||||
|
function Game.onAddVip(id, name, online)
|
||||||
|
local vipList = vipWindow:getChildById('vipList')
|
||||||
|
|
||||||
|
local label = UILabel.create()
|
||||||
|
vipList:addChild(label)
|
||||||
|
label:setId('vip' .. id)
|
||||||
|
label:setText(name)
|
||||||
|
|
||||||
|
if online then
|
||||||
|
label:setForegroundColor('#00ff00')
|
||||||
|
else
|
||||||
|
label:setForegroundColor('#ff0000')
|
||||||
|
end
|
||||||
|
|
||||||
|
label.vipOnline = online
|
||||||
|
end
|
||||||
|
|
||||||
|
function Game.onVipStateChange(id, online)
|
||||||
|
local vipList = vipWindow:getChildById('vipList')
|
||||||
|
local label = vipList:getChildById('vip' .. id)
|
||||||
|
|
||||||
|
if online then
|
||||||
|
label:setForegroundColor('#00ff00')
|
||||||
|
else
|
||||||
|
label:setForegroundColor('#ff0000')
|
||||||
|
end
|
||||||
|
|
||||||
|
label.vipOnline = online
|
||||||
|
end
|
|
@ -801,19 +801,31 @@ void ProtocolGame::parseOutfitWindow(InputMessage& msg)
|
||||||
|
|
||||||
void ProtocolGame::parseVipState(InputMessage& msg)
|
void ProtocolGame::parseVipState(InputMessage& msg)
|
||||||
{
|
{
|
||||||
msg.getU32(); // player id
|
uint32 id = msg.getU32();
|
||||||
msg.getString(); // player name
|
std::string name = msg.getString();
|
||||||
msg.getU8(); // online
|
bool online = msg.getU8() != 0;
|
||||||
|
|
||||||
|
g_dispatcher.addEvent([=] {
|
||||||
|
g_lua.callGlobalField("Game", "onAddVip", id, name, online);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseVipLogin(InputMessage& msg)
|
void ProtocolGame::parseVipLogin(InputMessage& msg)
|
||||||
{
|
{
|
||||||
msg.getU32(); // player id
|
uint32 id = msg.getU32();
|
||||||
|
|
||||||
|
g_dispatcher.addEvent([=] {
|
||||||
|
g_lua.callGlobalField("Game", "onVipStateChange", id, true);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseVipLogout(InputMessage& msg)
|
void ProtocolGame::parseVipLogout(InputMessage& msg)
|
||||||
{
|
{
|
||||||
msg.getU32(); // player id
|
uint32 id = msg.getU32();
|
||||||
|
|
||||||
|
g_dispatcher.addEvent([=] {
|
||||||
|
g_lua.callGlobalField("Game", "onVipStateChange", id, false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProtocolGame::parseShowTutorial(InputMessage& msg)
|
void ProtocolGame::parseShowTutorial(InputMessage& msg)
|
||||||
|
|
Loading…
Reference in New Issue