This commit is contained in:
Henrique 2011-09-02 01:29:00 -03:00
parent 6737b0a492
commit 3928db1c4d
4 changed files with 67 additions and 5 deletions

View File

@ -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

View File

@ -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

35
modules/game/vip.lua Normal file
View File

@ -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

View File

@ -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)