viplist
This commit is contained in:
parent
6737b0a492
commit
3928db1c4d
|
@ -1,4 +1,5 @@
|
|||
require 'textmessage'
|
||||
require 'vip'
|
||||
|
||||
-- private functions
|
||||
local function onGameKeyPress(self, keyCode, keyChar, keyboardModifiers)
|
||||
|
@ -18,6 +19,8 @@ local function createMainInterface()
|
|||
Game.gameUi = loadUI('/game/ui/gameinterface.otui', UI.root)
|
||||
Game.gameMapUi = Game.gameUi:getChildById('gameMap')
|
||||
Game.gameUi.onKeyPress = onGameKeyPress
|
||||
|
||||
createVipWindow()
|
||||
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)
|
||||
{
|
||||
msg.getU32(); // player id
|
||||
msg.getString(); // player name
|
||||
msg.getU8(); // online
|
||||
uint32 id = msg.getU32();
|
||||
std::string name = msg.getString();
|
||||
bool online = msg.getU8() != 0;
|
||||
|
||||
g_dispatcher.addEvent([=] {
|
||||
g_lua.callGlobalField("Game", "onAddVip", id, name, online);
|
||||
});
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
msg.getU32(); // player id
|
||||
uint32 id = msg.getU32();
|
||||
|
||||
g_dispatcher.addEvent([=] {
|
||||
g_lua.callGlobalField("Game", "onVipStateChange", id, false);
|
||||
});
|
||||
}
|
||||
|
||||
void ProtocolGame::parseShowTutorial(InputMessage& msg)
|
||||
|
|
Loading…
Reference in New Issue