新结算页面
parent
728a07e106
commit
9f240c2ae2
|
|
@ -67,7 +67,7 @@ function NetClient.new(host, game, protocol)
|
||||||
-- self.responseMap = {}
|
-- self.responseMap = {}
|
||||||
self.onevent = event("onevent",false)
|
self.onevent = event("onevent",false)
|
||||||
self.onconnect = event("onconnect",false)
|
self.onconnect = event("onconnect",false)
|
||||||
---- print("222222222222222222222222222222222222222222 ",host," ",host," ",game," ",self.protocol)
|
--print("222222222222222222222222222222222222222222 ",host," ",host," ",game," ",self.protocol)
|
||||||
|
|
||||||
self.c__netClient = LuaNetClient(host,game,self,self.protocol)
|
self.c__netClient = LuaNetClient(host,game,self,self.protocol)
|
||||||
self.c__netClient:SetCallBackListener(R.c__ondata)
|
self.c__netClient:SetCallBackListener(R.c__ondata)
|
||||||
|
|
@ -83,7 +83,6 @@ function R.connect(self)
|
||||||
end
|
end
|
||||||
self.c__netClient:Connect()
|
self.c__netClient:Connect()
|
||||||
end
|
end
|
||||||
|
|
||||||
local TYPE_STRING = "string"
|
local TYPE_STRING = "string"
|
||||||
local TYPE_FUNC = "function"
|
local TYPE_FUNC = "function"
|
||||||
local TYPE_TABLE = "table"
|
local TYPE_TABLE = "table"
|
||||||
|
|
@ -92,7 +91,7 @@ local NULL_JSON = "{}"
|
||||||
--- send
|
--- send
|
||||||
function R.send(self,cmd, data, callback)
|
function R.send(self,cmd, data, callback)
|
||||||
if(debug_print) then
|
if(debug_print) then
|
||||||
-- print("send host:" .. self.host)
|
print("send host:"..self.host)
|
||||||
end
|
end
|
||||||
if self.c__netClient == nil then
|
if self.c__netClient == nil then
|
||||||
return
|
return
|
||||||
|
|
@ -108,6 +107,7 @@ function R.send(self, cmd, data, callback)
|
||||||
self.c__netClient:Send(cmd,str,callback)
|
self.c__netClient:Send(cmd,str,callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
---c#网络层回调函数
|
---c#网络层回调函数
|
||||||
function R.c__ondata(self,cmd,result,data,func)
|
function R.c__ondata(self,cmd,result,data,func)
|
||||||
local _response = nil
|
local _response = nil
|
||||||
|
|
@ -151,6 +151,7 @@ function R.getAveragePingTime(self)
|
||||||
return self.c__netClient.AveragePingTime
|
return self.c__netClient.AveragePingTime
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
---c#网络层回调函数
|
---c#网络层回调函数
|
||||||
function R.c__onevent(self,cmd,data)
|
function R.c__onevent(self,cmd,data)
|
||||||
local new_response = {}
|
local new_response = {}
|
||||||
|
|
@ -158,6 +159,7 @@ function R.c__onevent(self, cmd, data)
|
||||||
new_response.Command = cmd
|
new_response.Command = cmd
|
||||||
new_response.Data = _response
|
new_response.Data = _response
|
||||||
self.onevent(new_response)
|
self.onevent(new_response)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function R.clearActionQueue(self)
|
function R.clearActionQueue(self)
|
||||||
|
|
@ -170,7 +172,7 @@ end
|
||||||
---c#网络层回调函数
|
---c#网络层回调函数
|
||||||
function R.c__onconnect(self,code)
|
function R.c__onconnect(self,code)
|
||||||
if(debug_print) then
|
if(debug_print) then
|
||||||
-- print("codeccccccccccccccccccccccccccccccccccccccc" .. code)
|
print("codeccccccccccccccccccccccccccccccccccccccc"..code)
|
||||||
end
|
end
|
||||||
self.onconnect(code)
|
self.onconnect(code)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ function Queue:Enqueue(element)
|
||||||
self.queue[self.rear] = element
|
self.queue[self.rear] = element
|
||||||
else
|
else
|
||||||
local temp = (self.rear + 1) % self.capacity
|
local temp = (self.rear + 1) % self.capacity
|
||||||
---- print("1111111111111111111====>>>>")
|
--print("1111111111111111111====>>>>")
|
||||||
---- print(temp)
|
--print(temp)
|
||||||
if temp == self.head then
|
if temp == self.head then
|
||||||
error("Error: capacity is full.")
|
error("Error: capacity is full.")
|
||||||
ViewUtil.ErrorTip(10001,"Error: capacity is full.")
|
ViewUtil.ErrorTip(10001,"Error: capacity is full.")
|
||||||
|
|
@ -33,6 +33,7 @@ function Queue:Enqueue(element)
|
||||||
self.queue[self.rear] = element
|
self.queue[self.rear] = element
|
||||||
self.size_ = self.size_ + 1
|
self.size_ = self.size_ + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Queue:Dequeue()
|
function Queue:Dequeue()
|
||||||
|
|
@ -83,6 +84,6 @@ function Queue:dump()
|
||||||
end
|
end
|
||||||
str = str..","..self.queue[r].."}"
|
str = str..","..self.queue[r].."}"
|
||||||
if(debug_print) then
|
if(debug_print) then
|
||||||
-- print(str)
|
print(str)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -9,7 +9,6 @@ function bit.init32()
|
||||||
bit.data32[i]=2^(32-i)
|
bit.data32[i]=2^(32-i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
bit.init32()
|
bit.init32()
|
||||||
|
|
||||||
function bit:d2b(arg) --bit:d2b
|
function bit:d2b(arg) --bit:d2b
|
||||||
|
|
@ -63,6 +62,7 @@ function bit:_and(a, b) --bit:_and
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return self:b2d(r)
|
return self:b2d(r)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function bit:_or(a,b) --bit:_or
|
function bit:_or(a,b) --bit:_or
|
||||||
|
|
@ -126,10 +126,11 @@ function bit:_lshift(a, n) --bit:_lshift
|
||||||
return self:b2d(r)
|
return self:b2d(r)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function bit:print(ta)
|
function bit:print(ta)
|
||||||
local sr=""
|
local sr=""
|
||||||
for i=1,32 do
|
for i=1,32 do
|
||||||
sr=sr..ta[i]
|
sr=sr..ta[i]
|
||||||
end
|
end
|
||||||
-- print(sr)
|
print(sr)
|
||||||
end
|
end
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
string._htmlspecialchars_set = {}
|
string._htmlspecialchars_set = {}
|
||||||
string._htmlspecialchars_set["&"] = "&"
|
string._htmlspecialchars_set["&"] = "&"
|
||||||
string._htmlspecialchars_set["\""] = """
|
string._htmlspecialchars_set["\""] = """
|
||||||
|
|
@ -8,7 +10,7 @@ string._htmlspecialchars_set[">"] = ">"
|
||||||
--[[--
|
--[[--
|
||||||
将特殊字符转为 HTML 转义符
|
将特殊字符转为 HTML 转义符
|
||||||
~~~ lua
|
~~~ lua
|
||||||
-- print(string.htmlspecialchars("<ABC>"))
|
print(string.htmlspecialchars("<ABC>"))
|
||||||
-- 输出 <ABC>
|
-- 输出 <ABC>
|
||||||
~~~
|
~~~
|
||||||
@param string input 输入字符串
|
@param string input 输入字符串
|
||||||
|
|
@ -24,7 +26,7 @@ end
|
||||||
--[[--
|
--[[--
|
||||||
将 HTML 转义符还原为特殊字符,功能与 string.htmlspecialchars() 正好相反
|
将 HTML 转义符还原为特殊字符,功能与 string.htmlspecialchars() 正好相反
|
||||||
~~~ lua
|
~~~ lua
|
||||||
-- print(string.restorehtmlspecialchars("<ABC>"))
|
print(string.restorehtmlspecialchars("<ABC>"))
|
||||||
-- 输出 <ABC>
|
-- 输出 <ABC>
|
||||||
~~~
|
~~~
|
||||||
@param string input 输入字符串
|
@param string input 输入字符串
|
||||||
|
|
@ -40,7 +42,7 @@ end
|
||||||
--[[--
|
--[[--
|
||||||
将字符串中的 \n 换行符转换为 HTML 标记
|
将字符串中的 \n 换行符转换为 HTML 标记
|
||||||
~~~ lua
|
~~~ lua
|
||||||
-- print(string.nl2br("Hello\nWorld"))
|
print(string.nl2br("Hello\nWorld"))
|
||||||
-- 输出
|
-- 输出
|
||||||
-- Hello<br />World
|
-- Hello<br />World
|
||||||
~~~
|
~~~
|
||||||
|
|
@ -54,7 +56,7 @@ end
|
||||||
--[[--
|
--[[--
|
||||||
将字符串中的特殊字符和 \n 换行符转换为 HTML 转移符和标记
|
将字符串中的特殊字符和 \n 换行符转换为 HTML 转移符和标记
|
||||||
~~~ lua
|
~~~ lua
|
||||||
-- print(string.nl2br("<Hello>\nWorld"))
|
print(string.nl2br("<Hello>\nWorld"))
|
||||||
-- 输出
|
-- 输出
|
||||||
-- <Hello><br />World
|
-- <Hello><br />World
|
||||||
~~~
|
~~~
|
||||||
|
|
@ -101,7 +103,7 @@ end
|
||||||
去除输入字符串头部的空白字符,返回结果
|
去除输入字符串头部的空白字符,返回结果
|
||||||
~~~ lua
|
~~~ lua
|
||||||
local input = " ABC"
|
local input = " ABC"
|
||||||
-- print(string.ltrim(input))
|
print(string.ltrim(input))
|
||||||
-- 输出 ABC,输入字符串前面的两个空格被去掉了
|
-- 输出 ABC,输入字符串前面的两个空格被去掉了
|
||||||
~~~
|
~~~
|
||||||
空白字符包括:
|
空白字符包括:
|
||||||
|
|
@ -121,7 +123,7 @@ end
|
||||||
去除输入字符串尾部的空白字符,返回结果
|
去除输入字符串尾部的空白字符,返回结果
|
||||||
~~~ lua
|
~~~ lua
|
||||||
local input = "ABC "
|
local input = "ABC "
|
||||||
-- print(string.ltrim(input))
|
print(string.ltrim(input))
|
||||||
-- 输出 ABC,输入字符串最后的两个空格被去掉了
|
-- 输出 ABC,输入字符串最后的两个空格被去掉了
|
||||||
~~~
|
~~~
|
||||||
@param string input 输入字符串
|
@param string input 输入字符串
|
||||||
|
|
@ -147,7 +149,7 @@ end
|
||||||
将字符串的第一个字符转为大写,返回结果
|
将字符串的第一个字符转为大写,返回结果
|
||||||
~~~ lua
|
~~~ lua
|
||||||
local input = "hello"
|
local input = "hello"
|
||||||
-- print(string.ucfirst(input))
|
print(string.ucfirst(input))
|
||||||
-- 输出 Hello
|
-- 输出 Hello
|
||||||
~~~
|
~~~
|
||||||
@param string input 输入字符串
|
@param string input 输入字符串
|
||||||
|
|
@ -165,7 +167,7 @@ end
|
||||||
将字符串转换为符合 URL 传递要求的格式,并返回转换结果
|
将字符串转换为符合 URL 传递要求的格式,并返回转换结果
|
||||||
~~~ lua
|
~~~ lua
|
||||||
local input = "hello world"
|
local input = "hello world"
|
||||||
-- print(string.urlencode(input))
|
print(string.urlencode(input))
|
||||||
-- 输出
|
-- 输出
|
||||||
-- hello%20world
|
-- hello%20world
|
||||||
~~~
|
~~~
|
||||||
|
|
@ -186,7 +188,7 @@ end
|
||||||
将 URL 中的特殊字符还原,并返回结果
|
将 URL 中的特殊字符还原,并返回结果
|
||||||
~~~ lua
|
~~~ lua
|
||||||
local input = "hello%20world"
|
local input = "hello%20world"
|
||||||
-- print(string.urldecode(input))
|
print(string.urldecode(input))
|
||||||
-- 输出
|
-- 输出
|
||||||
-- hello world
|
-- hello world
|
||||||
~~~
|
~~~
|
||||||
|
|
@ -205,7 +207,7 @@ end
|
||||||
计算 UTF8 字符串的长度,每一个中文算一个字符
|
计算 UTF8 字符串的长度,每一个中文算一个字符
|
||||||
~~~ lua
|
~~~ lua
|
||||||
local input = "你好World"
|
local input = "你好World"
|
||||||
-- print(string.utf8len(input))
|
print(string.utf8len(input))
|
||||||
-- 输出 7
|
-- 输出 7
|
||||||
~~~
|
~~~
|
||||||
@param string input 输入字符串
|
@param string input 输入字符串
|
||||||
|
|
@ -276,7 +278,7 @@ end
|
||||||
--[[--
|
--[[--
|
||||||
将数值格式化为包含千分位分隔符的字符串
|
将数值格式化为包含千分位分隔符的字符串
|
||||||
~~~ lua
|
~~~ lua
|
||||||
-- print(string.formatnumberthousands(1924235))
|
print(string.formatnumberthousands(1924235))
|
||||||
-- 输出 1,924,235
|
-- 输出 1,924,235
|
||||||
~~~
|
~~~
|
||||||
@param number num 数值
|
@param number num 数值
|
||||||
|
|
@ -292,6 +294,7 @@ function string.formatnumberthousands(num)
|
||||||
return formatted
|
return formatted
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
function string.concat( ... )
|
function string.concat( ... )
|
||||||
local str = {}
|
local str = {}
|
||||||
local tem = {...}
|
local tem = {...}
|
||||||
|
|
|
||||||
|
|
@ -48,11 +48,11 @@ OnInit、DoHideAnimation、DoShowAnimation、OnShown、OnHide。
|
||||||
例子:
|
例子:
|
||||||
MyWinClass = fgui.window_class()
|
MyWinClass = fgui.window_class()
|
||||||
function MyWinClass:ctor()
|
function MyWinClass:ctor()
|
||||||
-- print('MyWinClass-ctor')
|
print('MyWinClass-ctor')
|
||||||
self.contentPane = UIPackage.CreateObject("Basics", "WindowA")
|
self.contentPane = UIPackage.CreateObject("Basics", "WindowA")
|
||||||
end
|
end
|
||||||
function MyWinClass:OnShown()
|
function MyWinClass:OnShown()
|
||||||
-- print('MyWinClass-onShown')
|
print('MyWinClass-onShown')
|
||||||
end
|
end
|
||||||
local win = MyWinClass.New()
|
local win = MyWinClass.New()
|
||||||
win:Show()
|
win:Show()
|
||||||
|
|
@ -92,12 +92,12 @@ MyButton = fgui.extension_class(GButton)
|
||||||
fgui.register_extension("ui://包名/我的按钮", MyButton)
|
fgui.register_extension("ui://包名/我的按钮", MyButton)
|
||||||
|
|
||||||
function MyButton:ctor() --当组件构建完成时此方法被调用
|
function MyButton:ctor() --当组件构建完成时此方法被调用
|
||||||
-- print(self:GetChild("n1"))
|
print(self:GetChild("n1"))
|
||||||
end
|
end
|
||||||
|
|
||||||
--添加自定义的方法和字段
|
--添加自定义的方法和字段
|
||||||
function MyButton:Test()
|
function MyButton:Test()
|
||||||
-- print('test')
|
print('test')
|
||||||
end
|
end
|
||||||
|
|
||||||
local get = tolua.initget(MyButton)
|
local get = tolua.initget(MyButton)
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ function ControllerManager.Init()
|
||||||
|
|
||||||
local hostIp = GetGameInfo("login_url")
|
local hostIp = GetGameInfo("login_url")
|
||||||
if(debug_print) then
|
if(debug_print) then
|
||||||
-- print("hostIp:::" .. hostIp)
|
print("hostIp:::"..hostIp)
|
||||||
end
|
end
|
||||||
ControllerManager.WebClient = NetClient.new(hostIp, "majiang", ConnectionProtocol.Web)
|
ControllerManager.WebClient = NetClient.new(hostIp, "majiang", ConnectionProtocol.Web)
|
||||||
--ControllerManager.GroupClient = nil--NetClient.new("http://192.168.0.1:8081/", "web_group", ConnectionProtocol.Web)
|
--ControllerManager.GroupClient = nil--NetClient.new("http://192.168.0.1:8081/", "web_group", ConnectionProtocol.Web)
|
||||||
|
|
@ -76,7 +76,6 @@ function ControllerManager.SetGameNetClient(client)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ControllerManager.OnConnect(code)
|
function ControllerManager.OnConnect(code)
|
||||||
-- print("=======================================ControllerManager", code)
|
|
||||||
if (code ~= SocketCode.Connect) then
|
if (code ~= SocketCode.Connect) then
|
||||||
ControllerManager.SetGameNetClient(nil)
|
ControllerManager.SetGameNetClient(nil)
|
||||||
if code ~= SocketCode.DisconnectByServer then
|
if code ~= SocketCode.DisconnectByServer then
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ end
|
||||||
function TableBG.GetTableBG(game_id)
|
function TableBG.GetTableBG(game_id)
|
||||||
local id = -1
|
local id = -1
|
||||||
local json_data = Utils.LoadLocalFile(DataManager.SelfUser.account_id .. DataManager.SelfUser.invite_code)
|
local json_data = Utils.LoadLocalFile(DataManager.SelfUser.account_id .. DataManager.SelfUser.invite_code)
|
||||||
-- -- print(DataManager.SelfUser.invite_code, DataManager.SelfUser.account_id)
|
-- print(DataManager.SelfUser.invite_code, DataManager.SelfUser.account_id)
|
||||||
if json_data ~= nil then
|
if json_data ~= nil then
|
||||||
local config_data = json.decode(json_data)
|
local config_data = json.decode(json_data)
|
||||||
id = GetBG(config_data, game_id)
|
id = GetBG(config_data, game_id)
|
||||||
|
|
|
||||||
|
|
@ -303,9 +303,6 @@ function M:UpdateFamilyRoom(fgCtr, id)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
local roomList = self._group.rooms
|
local roomList = self._group.rooms
|
||||||
-- print("=========================playList,rooms")
|
|
||||||
pt(playList)
|
|
||||||
pt(roomList)
|
|
||||||
local roomCtr = ControllerManager.GetController(RoomController)
|
local roomCtr = ControllerManager.GetController(RoomController)
|
||||||
list_room.itemRenderer = function(index, obj)
|
list_room.itemRenderer = function(index, obj)
|
||||||
if index < #roomList then
|
if index < #roomList then
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ local function __NetTip(txt_msg)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function __OnGameConnectAction(state)
|
local function __OnGameConnectAction(state)
|
||||||
---- print("state:"..state)
|
--print("state:"..state)
|
||||||
NetResetConnectWindow.CloseNetReset()
|
NetResetConnectWindow.CloseNetReset()
|
||||||
if state == SocketCode.Connect then
|
if state == SocketCode.Connect then
|
||||||
ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id)
|
ViewManager.ChangeView(ViewManager.View_Main, DataManager.CurrenRoom.game_id)
|
||||||
|
|
@ -150,14 +150,14 @@ function ViewManager.ChangeView(id, game_id, callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
function ViewManager.OnApplicationPause()
|
function ViewManager.OnApplicationPause()
|
||||||
-- -- print("game pause")
|
-- print("game pause")
|
||||||
if (_currenView ~= nil) then
|
if (_currenView ~= nil) then
|
||||||
_currenView:OnApplicationPause()
|
_currenView:OnApplicationPause()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function ViewManager.OnApplicationActive()
|
function ViewManager.OnApplicationActive()
|
||||||
-- -- print("game active")
|
-- print("game active")
|
||||||
if (_currenView ~= nil) then
|
if (_currenView ~= nil) then
|
||||||
_currenView:OnApplicationActive()
|
_currenView:OnApplicationActive()
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -392,7 +392,6 @@ local function createJson()
|
||||||
function json.null()
|
function json.null()
|
||||||
return json.null -- so json.null() will also return null ;-)
|
return json.null -- so json.null() will also return null ;-)
|
||||||
end
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- Internal, PRIVATE functions.
|
-- Internal, PRIVATE functions.
|
||||||
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
||||||
|
|
@ -818,7 +817,6 @@ function luaIdePrintWarn(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function luaIdePrintErr(...)
|
function luaIdePrintErr(...)
|
||||||
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
||||||
debugger_print(...)
|
debugger_print(...)
|
||||||
|
|
@ -842,7 +840,6 @@ function luaIdePrintErr(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
--@region 辅助方法
|
--@region 辅助方法
|
||||||
|
|
@ -980,7 +977,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
return tostring(v)
|
return tostring(v)
|
||||||
end
|
end
|
||||||
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
||||||
-- print("dump from: " .. debugger_strTrim(traceback[3]))
|
print("dump from: " .. debugger_strTrim(traceback[3]))
|
||||||
local function _dump(value, desciption, indent, nest, keylen)
|
local function _dump(value, desciption, indent, nest, keylen)
|
||||||
desciption = desciption or "<var>"
|
desciption = desciption or "<var>"
|
||||||
local spc = ""
|
local spc = ""
|
||||||
|
|
@ -1029,7 +1026,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
end
|
end
|
||||||
_dump(value, desciption, "- ", 1)
|
_dump(value, desciption, "- ", 1)
|
||||||
for i, line in ipairs(result) do
|
for i, line in ipairs(result) do
|
||||||
-- print(line)
|
print(line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
@ -1038,7 +1035,9 @@ local function debugger_valueToString(v)
|
||||||
local vstr = nil
|
local vstr = nil
|
||||||
if (vtype == "userdata") then
|
if (vtype == "userdata") then
|
||||||
if (LuaDebugger.isFoxGloryProject) then
|
if (LuaDebugger.isFoxGloryProject) then
|
||||||
|
|
||||||
return "userdata",vtype
|
return "userdata",vtype
|
||||||
|
|
||||||
else
|
else
|
||||||
return tostring(v), vtype
|
return tostring(v), vtype
|
||||||
end
|
end
|
||||||
|
|
@ -1168,7 +1167,7 @@ local function debugger_receiveDebugBreakInfo()
|
||||||
if (jit) then
|
if (jit) then
|
||||||
if (LuaDebugger.debugLuaType ~= "jit") then
|
if (LuaDebugger.debugLuaType ~= "jit") then
|
||||||
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
||||||
-- print(msg)
|
print(msg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if (breakInfoSocket) then
|
if (breakInfoSocket) then
|
||||||
|
|
@ -1188,7 +1187,7 @@ local function debugger_receiveDebugBreakInfo()
|
||||||
LuaDebugger.reLoadFileBody = netData.data
|
LuaDebugger.reLoadFileBody = netData.data
|
||||||
LuaDebugger.isReLoadFile = false
|
LuaDebugger.isReLoadFile = false
|
||||||
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
||||||
-- print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
||||||
LuaDebugger.reLoadFileBody.script = nil
|
LuaDebugger.reLoadFileBody.script = nil
|
||||||
debugger_sendMsg(
|
debugger_sendMsg(
|
||||||
breakInfoSocket,
|
breakInfoSocket,
|
||||||
|
|
@ -1333,17 +1332,18 @@ function debugger_conditionStr(condition, vars, callBack)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
if (status and msg) then
|
if (status and msg) then
|
||||||
callBack()
|
callBack()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--执行lua字符串
|
--执行lua字符串
|
||||||
debugger_exeLuaString = function()
|
debugger_exeLuaString = function()
|
||||||
|
|
||||||
local function loadScript()
|
local function loadScript()
|
||||||
|
|
||||||
local script = LuaDebugger.loadScriptBody.script
|
local script = LuaDebugger.loadScriptBody.script
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
local currentTabble = {_G = _G}
|
local currentTabble = {_G = _G}
|
||||||
|
|
@ -1374,17 +1374,18 @@ debugger_exeLuaString = function()
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
|
|
||||||
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
LuaDebugger.loadScriptBody.script = nil
|
LuaDebugger.loadScriptBody.script = nil
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
.C2S_HITBreakPoint)
|
|
||||||
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
||||||
end
|
end
|
||||||
LuaDebugger.loadScriptBody.complete = true
|
LuaDebugger.loadScriptBody.complete = true
|
||||||
|
|
||||||
end
|
end
|
||||||
--@region 调试中修改变量值
|
--@region 调试中修改变量值
|
||||||
|
|
||||||
|
|
@ -1409,10 +1410,12 @@ local function debugger_getTablekey(key, keyType, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function debugger_setVarValue(server, data)
|
local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
local newValue = nil
|
local newValue = nil
|
||||||
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
||||||
local firstKeyName = data.keys[1]
|
local firstKeyName = data.keys[1]
|
||||||
|
|
@ -1487,7 +1490,7 @@ local function debugger_setVarValue(server, data)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "============================")
|
print(error, "============================")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1498,6 +1501,7 @@ local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
if(keyLength == 1) then
|
if(keyLength == 1) then
|
||||||
if(localValueChangeIndex ~= -1) then
|
if(localValueChangeIndex ~= -1) then
|
||||||
|
|
||||||
debug.setlocal(level, localValueChangeIndex, newValue)
|
debug.setlocal(level, localValueChangeIndex, newValue)
|
||||||
elseif(upValueFun ~= nil) then
|
elseif(upValueFun ~= nil) then
|
||||||
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
||||||
|
|
@ -1527,6 +1531,7 @@ local function debugger_setVarValue(server, data)
|
||||||
data.varInfo = varInfo
|
data.varInfo = varInfo
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
|
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
|
|
@ -1544,7 +1549,7 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("设置变量", error)
|
print("设置变量", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isLoadLuaScript) then
|
elseif(LuaDebugger.isLoadLuaScript) then
|
||||||
|
|
@ -1555,20 +1560,20 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("执行代码", error)
|
print("执行代码", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isReLoadFile) then
|
elseif(LuaDebugger.isReLoadFile) then
|
||||||
LuaDebugger.isReLoadFile = false
|
LuaDebugger.isReLoadFile = false
|
||||||
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
||||||
-- print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
||||||
LuaDebugger.reLoadFileBody.script = nil
|
LuaDebugger.reLoadFileBody.script = nil
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("重新加载文件", error)
|
print("重新加载文件", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -1622,7 +1627,7 @@ local function debugger_getValueByScript(value, script)
|
||||||
val = fun()
|
val = fun()
|
||||||
end,
|
end,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "====>")
|
print(error, "====>")
|
||||||
val = nil
|
val = nil
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
@ -1889,6 +1894,7 @@ local function debugger_sendTableValues(value, server, variablesReference, debug
|
||||||
vinfos = {}
|
vinfos = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
m = getmetatable(value)
|
m = getmetatable(value)
|
||||||
|
|
@ -1938,6 +1944,7 @@ local function debugger_getBreakVar(body, server)
|
||||||
if (value) then
|
if (value) then
|
||||||
local valueType = type(value)
|
local valueType = type(value)
|
||||||
if (valueType == "table" or valueType == "userdata") then
|
if (valueType == "table" or valueType == "userdata") then
|
||||||
|
|
||||||
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
||||||
else
|
else
|
||||||
if (valueType == "function") then
|
if (valueType == "function") then
|
||||||
|
|
@ -1972,9 +1979,9 @@ local function debugger_getBreakVar(body, server)
|
||||||
xpcall(
|
xpcall(
|
||||||
exe,
|
exe,
|
||||||
function(error)
|
function(error)
|
||||||
-- -- print("获取变量错误 错误消息-----------------")
|
-- print("获取变量错误 错误消息-----------------")
|
||||||
-- -- print(error)
|
-- print(error)
|
||||||
-- -- print(debug.traceback("", 2))
|
-- print(debug.traceback("", 2))
|
||||||
debugger_sendMsg(
|
debugger_sendMsg(
|
||||||
server,
|
server,
|
||||||
LuaDebugger.event.C2S_ReqVar,
|
LuaDebugger.event.C2S_ReqVar,
|
||||||
|
|
@ -2029,6 +2036,7 @@ local function debugger_loop(server)
|
||||||
debug.sethook()
|
debug.sethook()
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
||||||
--设置断点信息
|
--设置断点信息
|
||||||
local function setB()
|
local function setB()
|
||||||
|
|
@ -2037,7 +2045,7 @@ local function debugger_loop(server)
|
||||||
xpcall(
|
xpcall(
|
||||||
setB,
|
setB,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
||||||
|
|
@ -2148,6 +2156,7 @@ local function debugger_loop(server)
|
||||||
end
|
end
|
||||||
coro_debugger = coroutine.create(debugger_loop)
|
coro_debugger = coroutine.create(debugger_loop)
|
||||||
debug_hook = function(event, line)
|
debug_hook = function(event, line)
|
||||||
|
|
||||||
if(not LuaDebugger.isHook) then
|
if(not LuaDebugger.isHook) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
@ -2156,7 +2165,9 @@ debug_hook = function(event, line)
|
||||||
if(event == "line") then
|
if(event == "line") then
|
||||||
local isCheck = false
|
local isCheck = false
|
||||||
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
||||||
|
|
||||||
for bk, linesInfo in pairs(breakInfo) do
|
for bk, linesInfo in pairs(breakInfo) do
|
||||||
|
|
||||||
if(linesInfo.lines and linesInfo.lines[line]) then
|
if(linesInfo.lines and linesInfo.lines[line]) then
|
||||||
isCheck = true
|
isCheck = true
|
||||||
break
|
break
|
||||||
|
|
@ -2198,7 +2209,7 @@ debug_hook = function(event, line)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- debugger_dump(LuaDebugger,"LuaDebugger")
|
-- debugger_dump(LuaDebugger,"LuaDebugger")
|
||||||
-- -- print(LuaDebugger.StepNextLevel,"LuaDebugger.StepNextLevel")
|
-- print(LuaDebugger.StepNextLevel,"LuaDebugger.StepNextLevel")
|
||||||
local file = nil
|
local file = nil
|
||||||
if (event == "call") then
|
if (event == "call") then
|
||||||
-- end
|
-- end
|
||||||
|
|
@ -2206,7 +2217,7 @@ debug_hook = function(event, line)
|
||||||
if (not LuaDebugger.Run) then
|
if (not LuaDebugger.Run) then
|
||||||
LuaDebugger.StepNextLevel = LuaDebugger.StepNextLevel + 1
|
LuaDebugger.StepNextLevel = LuaDebugger.StepNextLevel + 1
|
||||||
end
|
end
|
||||||
-- -- print("stepIn",LuaDebugger.StepNextLevel)
|
-- print("stepIn",LuaDebugger.StepNextLevel)
|
||||||
|
|
||||||
local stepInfo = getinfo(2, "S")
|
local stepInfo = getinfo(2, "S")
|
||||||
local source = stepInfo.source
|
local source = stepInfo.source
|
||||||
|
|
@ -2248,6 +2259,7 @@ debug_hook = function(event, line)
|
||||||
local breakInfo = LuaDebugger.breakInfos[file]
|
local breakInfo = LuaDebugger.breakInfos[file]
|
||||||
local breakData = nil
|
local breakData = nil
|
||||||
if (breakInfo) then
|
if (breakInfo) then
|
||||||
|
|
||||||
local ischeck = false
|
local ischeck = false
|
||||||
for k, lineInfo in pairs(breakInfo) do
|
for k, lineInfo in pairs(breakInfo) do
|
||||||
local lines = lineInfo.lines
|
local lines = lineInfo.lines
|
||||||
|
|
@ -2384,8 +2396,8 @@ local function start()
|
||||||
local fullName, dirName, fileName = debugger_getFilePathInfo(getinfo(1).source)
|
local fullName, dirName, fileName = debugger_getFilePathInfo(getinfo(1).source)
|
||||||
LuaDebugger.DebugLuaFie = fileName
|
LuaDebugger.DebugLuaFie = fileName
|
||||||
local socket = createSocket()
|
local socket = createSocket()
|
||||||
-- print(controller_host)
|
print(controller_host)
|
||||||
-- print(controller_port)
|
print(controller_port)
|
||||||
|
|
||||||
local server = socket.connect(controller_host, controller_port)
|
local server = socket.connect(controller_host, controller_port)
|
||||||
debug_server = server
|
debug_server = server
|
||||||
|
|
@ -2415,15 +2427,15 @@ local function start()
|
||||||
debug.sethook(debug_hook, "lrc")
|
debug.sethook(debug_hook, "lrc")
|
||||||
end,
|
end,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("error:", error)
|
print("error:", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
if (jit) then
|
if (jit) then
|
||||||
if (LuaDebugger.debugLuaType ~= "jit") then
|
if (LuaDebugger.debugLuaType ~= "jit") then
|
||||||
-- print("error======================================================")
|
print("error======================================================")
|
||||||
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
||||||
|
|
||||||
-- print(msg)
|
print(msg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
_resume(coro_debugger, server)
|
_resume(coro_debugger, server)
|
||||||
|
|
@ -2432,16 +2444,16 @@ local function start()
|
||||||
end
|
end
|
||||||
function StartDebug(host, port)
|
function StartDebug(host, port)
|
||||||
if (not host) then
|
if (not host) then
|
||||||
-- print("error host nil")
|
print("error host nil")
|
||||||
end
|
end
|
||||||
if (not port) then
|
if (not port) then
|
||||||
-- print("error prot nil")
|
print("error prot nil")
|
||||||
end
|
end
|
||||||
if (type(host) ~= "string") then
|
if (type(host) ~= "string") then
|
||||||
-- print("error host not string")
|
print("error host not string")
|
||||||
end
|
end
|
||||||
if (type(port) ~= "number") then
|
if (type(port) ~= "number") then
|
||||||
-- print("error host not number")
|
print("error host not number")
|
||||||
end
|
end
|
||||||
controller_host = host
|
controller_host = host
|
||||||
controller_port = port
|
controller_port = port
|
||||||
|
|
@ -2449,7 +2461,7 @@ function StartDebug(host, port)
|
||||||
start,
|
start,
|
||||||
function(error)
|
function(error)
|
||||||
-- body
|
-- body
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
||||||
|
|
@ -2599,4 +2611,7 @@ function ZZBase64.__decodeLeft2(res, index, text, len)
|
||||||
res[index] = string.char(num)
|
res[index] = string.char(num)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return StartDebug
|
return StartDebug
|
||||||
|
|
|
||||||
|
|
@ -366,7 +366,6 @@ local function createJson()
|
||||||
function json.null()
|
function json.null()
|
||||||
return json.null -- so json.null() will also return null ;-)
|
return json.null -- so json.null() will also return null ;-)
|
||||||
end
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- Internal, PRIVATE functions.
|
-- Internal, PRIVATE functions.
|
||||||
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
||||||
|
|
@ -789,7 +788,6 @@ function luaIdePrintWarn(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function luaIdePrintErr(...)
|
function luaIdePrintErr(...)
|
||||||
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
||||||
debugger_print(...)
|
debugger_print(...)
|
||||||
|
|
@ -813,7 +811,6 @@ function luaIdePrintErr(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
--@region 辅助方法
|
--@region 辅助方法
|
||||||
|
|
@ -951,7 +948,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
return tostring(v)
|
return tostring(v)
|
||||||
end
|
end
|
||||||
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
||||||
-- print("dump from: " .. debugger_strTrim(traceback[3]))
|
print("dump from: " .. debugger_strTrim(traceback[3]))
|
||||||
local function _dump(value, desciption, indent, nest, keylen)
|
local function _dump(value, desciption, indent, nest, keylen)
|
||||||
desciption = desciption or "<var>"
|
desciption = desciption or "<var>"
|
||||||
local spc = ""
|
local spc = ""
|
||||||
|
|
@ -1000,7 +997,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
end
|
end
|
||||||
_dump(value, desciption, "- ", 1)
|
_dump(value, desciption, "- ", 1)
|
||||||
for i, line in ipairs(result) do
|
for i, line in ipairs(result) do
|
||||||
-- print(line)
|
print(line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
@ -1009,7 +1006,9 @@ local function debugger_valueToString(v)
|
||||||
local vstr = nil
|
local vstr = nil
|
||||||
if (vtype == "userdata") then
|
if (vtype == "userdata") then
|
||||||
if (LuaDebugger.isFoxGloryProject ) then
|
if (LuaDebugger.isFoxGloryProject ) then
|
||||||
|
|
||||||
return "userdata",vtype
|
return "userdata",vtype
|
||||||
|
|
||||||
else
|
else
|
||||||
return tostring(v), vtype
|
return tostring(v), vtype
|
||||||
end
|
end
|
||||||
|
|
@ -1021,6 +1020,7 @@ local function debugger_valueToString(v)
|
||||||
else
|
else
|
||||||
value = tostring(v)
|
value = tostring(v)
|
||||||
end
|
end
|
||||||
|
|
||||||
end,function()
|
end,function()
|
||||||
value = vtype
|
value = vtype
|
||||||
end)
|
end)
|
||||||
|
|
@ -1142,9 +1142,9 @@ local debugger_setBreak = nil
|
||||||
local function debugger_receiveDebugBreakInfo()
|
local function debugger_receiveDebugBreakInfo()
|
||||||
if(not jit) then
|
if(not jit) then
|
||||||
if(_VERSION)then
|
if(_VERSION)then
|
||||||
-- print("当前lua版本为: ".._VERSION.." 请使用 -----LuaDebug.lua----- 进行调试!")
|
print("当前lua版本为: ".._VERSION.." 请使用 -----LuaDebug.lua----- 进行调试!")
|
||||||
else
|
else
|
||||||
-- print("当前为lua版本,请使用-----LuaDebug.lua-----进行调试!")
|
print("当前为lua版本,请使用-----LuaDebug.lua-----进行调试!")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if (breakInfoSocket) then
|
if (breakInfoSocket) then
|
||||||
|
|
@ -1309,17 +1309,18 @@ function debugger_conditionStr(condition, vars, callBack)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
if (status and msg) then
|
if (status and msg) then
|
||||||
callBack()
|
callBack()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--执行lua字符串
|
--执行lua字符串
|
||||||
debugger_exeLuaString = function()
|
debugger_exeLuaString = function()
|
||||||
|
|
||||||
local function loadScript()
|
local function loadScript()
|
||||||
|
|
||||||
local script = LuaDebugger.loadScriptBody.script
|
local script = LuaDebugger.loadScriptBody.script
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
local currentTabble = {_G = _G}
|
local currentTabble = {_G = _G}
|
||||||
|
|
@ -1350,17 +1351,18 @@ debugger_exeLuaString = function()
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
|
|
||||||
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
LuaDebugger.loadScriptBody.script = nil
|
LuaDebugger.loadScriptBody.script = nil
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
.C2S_HITBreakPoint)
|
|
||||||
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
||||||
end
|
end
|
||||||
LuaDebugger.loadScriptBody.complete = true
|
LuaDebugger.loadScriptBody.complete = true
|
||||||
|
|
||||||
end
|
end
|
||||||
--@region 调试中修改变量值
|
--@region 调试中修改变量值
|
||||||
|
|
||||||
|
|
@ -1385,10 +1387,12 @@ local function debugger_getTablekey(key, keyType, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function debugger_setVarValue(server, data)
|
local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
local newValue = nil
|
local newValue = nil
|
||||||
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
||||||
local firstKeyName = data.keys[1]
|
local firstKeyName = data.keys[1]
|
||||||
|
|
@ -1463,7 +1467,7 @@ local function debugger_setVarValue(server, data)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "============================")
|
print(error, "============================")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1474,6 +1478,7 @@ local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
if(keyLength == 1) then
|
if(keyLength == 1) then
|
||||||
if(localValueChangeIndex ~= -1) then
|
if(localValueChangeIndex ~= -1) then
|
||||||
|
|
||||||
debug.setlocal(level, localValueChangeIndex, newValue)
|
debug.setlocal(level, localValueChangeIndex, newValue)
|
||||||
elseif(upValueFun ~= nil) then
|
elseif(upValueFun ~= nil) then
|
||||||
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
||||||
|
|
@ -1503,6 +1508,7 @@ local function debugger_setVarValue(server, data)
|
||||||
data.varInfo = varInfo
|
data.varInfo = varInfo
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
|
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
|
|
@ -1520,7 +1526,7 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("设置变量", error)
|
print("设置变量", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isLoadLuaScript) then
|
elseif(LuaDebugger.isLoadLuaScript) then
|
||||||
|
|
@ -1531,20 +1537,20 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("执行代码", error)
|
print("执行代码", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isReLoadFile) then
|
elseif(LuaDebugger.isReLoadFile) then
|
||||||
LuaDebugger.isReLoadFile = false
|
LuaDebugger.isReLoadFile = false
|
||||||
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
||||||
-- print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
||||||
LuaDebugger.reLoadFileBody.script = nil
|
LuaDebugger.reLoadFileBody.script = nil
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("重新加载文件", error)
|
print("重新加载文件", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -1598,7 +1604,7 @@ local function debugger_getValueByScript(value, script)
|
||||||
val = fun()
|
val = fun()
|
||||||
end,
|
end,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "====>")
|
print(error, "====>")
|
||||||
val = nil
|
val = nil
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
@ -1739,6 +1745,7 @@ end
|
||||||
return
|
return
|
||||||
]]
|
]]
|
||||||
local function debugger_getmetatable(value, metatable, vinfos, server, variablesReference, debugSpeedIndex, metatables)
|
local function debugger_getmetatable(value, metatable, vinfos, server, variablesReference, debugSpeedIndex, metatables)
|
||||||
|
|
||||||
for i, mtable in ipairs(metatables) do
|
for i, mtable in ipairs(metatables) do
|
||||||
if (metatable == mtable) then
|
if (metatable == mtable) then
|
||||||
return vinfos
|
return vinfos
|
||||||
|
|
@ -1794,6 +1801,7 @@ local function debugger_getmetatable(value, metatable, vinfos, server, variables
|
||||||
else
|
else
|
||||||
return vinfos
|
return vinfos
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
local function debugger_sendTableField(luatable, vinfos, server, variablesReference, debugSpeedIndex, valueType)
|
local function debugger_sendTableField(luatable, vinfos, server, variablesReference, debugSpeedIndex, valueType)
|
||||||
if (valueType == "userdata") then
|
if (valueType == "userdata") then
|
||||||
|
|
@ -1866,6 +1874,7 @@ local function debugger_sendTableValues(value, server, variablesReference, debug
|
||||||
vinfos = {}
|
vinfos = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
m = getmetatable(value)
|
m = getmetatable(value)
|
||||||
|
|
@ -1915,6 +1924,7 @@ local function debugger_getBreakVar(body, server)
|
||||||
if (value) then
|
if (value) then
|
||||||
local valueType = type(value)
|
local valueType = type(value)
|
||||||
if (valueType == "table" or valueType == "userdata") then
|
if (valueType == "table" or valueType == "userdata") then
|
||||||
|
|
||||||
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
||||||
else
|
else
|
||||||
if (valueType == "function") then
|
if (valueType == "function") then
|
||||||
|
|
@ -1953,9 +1963,9 @@ local function debugger_getBreakVar(body, server)
|
||||||
xpcall(
|
xpcall(
|
||||||
exe,
|
exe,
|
||||||
function(error)
|
function(error)
|
||||||
-- -- print("获取变量错误 错误消息-----------------")
|
-- print("获取变量错误 错误消息-----------------")
|
||||||
-- -- print(error)
|
-- print(error)
|
||||||
-- -- print(debug.traceback("", 2))
|
-- print(debug.traceback("", 2))
|
||||||
debugger_sendMsg(
|
debugger_sendMsg(
|
||||||
server,
|
server,
|
||||||
LuaDebugger.event.C2S_ReqVar,
|
LuaDebugger.event.C2S_ReqVar,
|
||||||
|
|
@ -1981,6 +1991,7 @@ local function ResetDebugInfo()
|
||||||
LuaDebugger.StepIn = false
|
LuaDebugger.StepIn = false
|
||||||
LuaDebugger.StepNext = false
|
LuaDebugger.StepNext = false
|
||||||
LuaDebugger.StepOut = false
|
LuaDebugger.StepOut = false
|
||||||
|
|
||||||
end
|
end
|
||||||
local function debugger_loop(server)
|
local function debugger_loop(server)
|
||||||
server = debug_server
|
server = debug_server
|
||||||
|
|
@ -2009,6 +2020,7 @@ local function debugger_loop(server)
|
||||||
debug.sethook()
|
debug.sethook()
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
||||||
--设置断点信息
|
--设置断点信息
|
||||||
local function setB()
|
local function setB()
|
||||||
|
|
@ -2017,7 +2029,7 @@ local function debugger_loop(server)
|
||||||
xpcall(
|
xpcall(
|
||||||
setB,
|
setB,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
||||||
|
|
@ -2130,6 +2142,7 @@ local function debugger_loop(server)
|
||||||
end
|
end
|
||||||
coro_debugger = coroutine.create(debugger_loop)
|
coro_debugger = coroutine.create(debugger_loop)
|
||||||
debug_hook = function(event, line)
|
debug_hook = function(event, line)
|
||||||
|
|
||||||
if(not LuaDebugger.isHook) then
|
if(not LuaDebugger.isHook) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
@ -2138,7 +2151,9 @@ debug_hook = function(event, line)
|
||||||
if(event == "line") then
|
if(event == "line") then
|
||||||
local isCheck = false
|
local isCheck = false
|
||||||
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
||||||
|
|
||||||
for bk, linesInfo in pairs(breakInfo) do
|
for bk, linesInfo in pairs(breakInfo) do
|
||||||
|
|
||||||
if(linesInfo.lines and linesInfo.lines[line]) then
|
if(linesInfo.lines and linesInfo.lines[line]) then
|
||||||
isCheck = true
|
isCheck = true
|
||||||
break
|
break
|
||||||
|
|
@ -2152,12 +2167,14 @@ debug_hook = function(event, line)
|
||||||
if(not isCheck) then
|
if(not isCheck) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local file = nil
|
local file = nil
|
||||||
if(event == "line") then
|
if(event == "line") then
|
||||||
|
|
||||||
local funs = nil
|
local funs = nil
|
||||||
local funlength =0
|
local funlength =0
|
||||||
if(LuaDebugger.currentDebuggerData) then
|
if(LuaDebugger.currentDebuggerData) then
|
||||||
|
|
@ -2176,6 +2193,7 @@ debug_hook = function(event, line)
|
||||||
local breakData = nil
|
local breakData = nil
|
||||||
local ischeck = false
|
local ischeck = false
|
||||||
if(breakInfo) then
|
if(breakInfo) then
|
||||||
|
|
||||||
for k, lineInfo in pairs(breakInfo) do
|
for k, lineInfo in pairs(breakInfo) do
|
||||||
local lines = lineInfo.lines
|
local lines = lineInfo.lines
|
||||||
if(lines and lines[line]) then
|
if(lines and lines[line]) then
|
||||||
|
|
@ -2186,6 +2204,7 @@ debug_hook = function(event, line)
|
||||||
end
|
end
|
||||||
local isHit = false
|
local isHit = false
|
||||||
if(ischeck) then
|
if(ischeck) then
|
||||||
|
|
||||||
--并且在断点中
|
--并且在断点中
|
||||||
local info = stepInfo
|
local info = stepInfo
|
||||||
local source = string.lower( info.source )
|
local source = string.lower( info.source )
|
||||||
|
|
@ -2195,6 +2214,7 @@ debug_hook = function(event, line)
|
||||||
local hitCounts = {}
|
local hitCounts = {}
|
||||||
local debugHitCounts = nil
|
local debugHitCounts = nil
|
||||||
for k, lineInfo in pairs(breakInfo) do
|
for k, lineInfo in pairs(breakInfo) do
|
||||||
|
|
||||||
local lines = lineInfo.lines
|
local lines = lineInfo.lines
|
||||||
local pathNames = lineInfo.pathNames
|
local pathNames = lineInfo.pathNames
|
||||||
debugHitCounts = lineInfo.hitCounts
|
debugHitCounts = lineInfo.hitCounts
|
||||||
|
|
@ -2237,6 +2257,7 @@ debug_hook = function(event, line)
|
||||||
local hitPathNamesLength = #hitPathNames
|
local hitPathNamesLength = #hitPathNames
|
||||||
if (hitPathNamesLength == 1 or (hitPathNamesLength > 1 and maxCount > 1)) then
|
if (hitPathNamesLength == 1 or (hitPathNamesLength > 1 and maxCount > 1)) then
|
||||||
if(hitFieName ~= "") then
|
if(hitFieName ~= "") then
|
||||||
|
|
||||||
local hitCount = breakData.hitCondition
|
local hitCount = breakData.hitCondition
|
||||||
local clientHitCount = debugHitCounts[breakData.line]
|
local clientHitCount = debugHitCounts[breakData.line]
|
||||||
clientHitCount = clientHitCount + 1
|
clientHitCount = clientHitCount + 1
|
||||||
|
|
@ -2249,6 +2270,7 @@ debug_hook = function(event, line)
|
||||||
elseif(clientHitCount >= hitCount) then
|
elseif(clientHitCount >= hitCount) then
|
||||||
isHit = true
|
isHit = true
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -2261,7 +2283,7 @@ debug_hook = function(event, line)
|
||||||
else
|
else
|
||||||
if(funs[2] == tempFunc) then
|
if(funs[2] == tempFunc) then
|
||||||
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
||||||
-- -- print("StepIn 挂起")
|
-- print("StepIn 挂起")
|
||||||
--挂起等待调试器作出反应
|
--挂起等待调试器作出反应
|
||||||
_resume(coro_debugger, data)
|
_resume(coro_debugger, data)
|
||||||
checkSetVar()
|
checkSetVar()
|
||||||
|
|
@ -2275,7 +2297,7 @@ debug_hook = function(event, line)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
||||||
-- -- print("StepIn 挂起")
|
-- print("StepIn 挂起")
|
||||||
--挂起等待调试器作出反应
|
--挂起等待调试器作出反应
|
||||||
_resume(coro_debugger, data)
|
_resume(coro_debugger, data)
|
||||||
checkSetVar()
|
checkSetVar()
|
||||||
|
|
@ -2295,6 +2317,7 @@ debug_hook = function(event, line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
||||||
isNext =true
|
isNext =true
|
||||||
end
|
end
|
||||||
if(isNext) then
|
if(isNext) then
|
||||||
|
|
@ -2313,6 +2336,8 @@ debug_hook = function(event, line)
|
||||||
|
|
||||||
--断点判断
|
--断点判断
|
||||||
if(isHit) then
|
if(isHit) then
|
||||||
|
|
||||||
|
|
||||||
LuaDebugger.runLineCount = 0
|
LuaDebugger.runLineCount = 0
|
||||||
LuaDebugger.currentLine = line
|
LuaDebugger.currentLine = line
|
||||||
sevent = LuaDebugger.event.C2S_HITBreakPoint
|
sevent = LuaDebugger.event.C2S_HITBreakPoint
|
||||||
|
|
@ -2346,9 +2371,10 @@ local function debugger_xpcall()
|
||||||
end
|
end
|
||||||
--调试开始
|
--调试开始
|
||||||
local function start()
|
local function start()
|
||||||
|
|
||||||
local socket = createSocket()
|
local socket = createSocket()
|
||||||
-- print(controller_host)
|
print(controller_host)
|
||||||
-- print(controller_port)
|
print(controller_port)
|
||||||
|
|
||||||
local fullName,dirName,fileName = debugger_getFilePathInfo(getinfo(1).source)
|
local fullName,dirName,fileName = debugger_getFilePathInfo(getinfo(1).source)
|
||||||
LuaDebugger.DebugLuaFie = fileName
|
LuaDebugger.DebugLuaFie = fileName
|
||||||
|
|
@ -2373,41 +2399,46 @@ local function start()
|
||||||
xpcall(function()
|
xpcall(function()
|
||||||
sethook(debug_hook, "lrc")
|
sethook(debug_hook, "lrc")
|
||||||
end, function(error)
|
end, function(error)
|
||||||
-- print("error:", error)
|
print("error:", error)
|
||||||
end)
|
end)
|
||||||
if(not jit) then
|
if(not jit) then
|
||||||
if(_VERSION)then
|
if(_VERSION)then
|
||||||
-- print("当前lua版本为: ".._VERSION.." 请使用LuaDebug 进行调试!")
|
print("当前lua版本为: ".._VERSION.." 请使用LuaDebug 进行调试!")
|
||||||
else
|
else
|
||||||
-- print("当前为lua版本,请使用LuaDebug 进行调试!")
|
print("当前为lua版本,请使用LuaDebug 进行调试!")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
_resume(coro_debugger, server)
|
_resume(coro_debugger, server)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function StartDebug(host, port)
|
function StartDebug(host, port)
|
||||||
|
|
||||||
|
|
||||||
if(not host) then
|
if(not host) then
|
||||||
-- print("error host nil")
|
print("error host nil")
|
||||||
end
|
end
|
||||||
if(not port) then
|
if(not port) then
|
||||||
-- print("error prot nil")
|
print("error prot nil")
|
||||||
end
|
end
|
||||||
if(type(host) ~= "string") then
|
if(type(host) ~= "string") then
|
||||||
-- print("error host not string")
|
print("error host not string")
|
||||||
end
|
end
|
||||||
if(type(port) ~= "number") then
|
if(type(port) ~= "number") then
|
||||||
-- print("error host not number")
|
print("error host not number")
|
||||||
end
|
end
|
||||||
controller_host = host
|
controller_host = host
|
||||||
controller_port = port
|
controller_port = port
|
||||||
xpcall(start, function(error)
|
xpcall(start, function(error)
|
||||||
-- body
|
-- body
|
||||||
-- print(error)
|
print(error)
|
||||||
end)
|
end)
|
||||||
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--base64
|
--base64
|
||||||
|
|
||||||
local string = string
|
local string = string
|
||||||
|
|
@ -2552,4 +2583,7 @@ function ZZBase64.__decodeLeft2(res, index, text, len)
|
||||||
res[index] = string.char(num)
|
res[index] = string.char(num)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return StartDebug
|
return StartDebug
|
||||||
|
|
|
||||||
|
|
@ -153,32 +153,32 @@ function ShareScreenShot(n, callback)
|
||||||
end
|
end
|
||||||
|
|
||||||
function shareQRCodePicture(url,secene)
|
function shareQRCodePicture(url,secene)
|
||||||
---- print(debug.traceback())
|
--print(debug.traceback())
|
||||||
-- print(url)
|
print(url)
|
||||||
-- print(secene)
|
print(secene)
|
||||||
local json_data = {}
|
local json_data = {}
|
||||||
json_data["title"] = "湘北联赛"
|
json_data["title"] = "湘北联赛"
|
||||||
local mediaObject = {}
|
local mediaObject = {}
|
||||||
local filename = "qrcode" .. DataManager.SelfUser.account_id
|
local filename = "qrcode" .. DataManager.SelfUser.account_id
|
||||||
-- print(Application.persistentDataPath)
|
print(Application.persistentDataPath)
|
||||||
mediaObject["path"] = Application.persistentDataPath
|
mediaObject["path"] = Application.persistentDataPath
|
||||||
mediaObject["filename"] = filename
|
mediaObject["filename"] = filename
|
||||||
mediaObject["type"] = 1
|
mediaObject["type"] = 1
|
||||||
json_data["mediaObject"] = mediaObject
|
json_data["mediaObject"] = mediaObject
|
||||||
json_data["description"] = "一款现实中朋友约局休闲娱乐的场所!速度约朋友一起来玩吧!"
|
json_data["description"] = "一款现实中朋友约局休闲娱乐的场所!速度约朋友一起来玩吧!"
|
||||||
json_data["scene"] = secene
|
json_data["scene"] = secene
|
||||||
-- print("json_data==================")
|
print("json_data==================")
|
||||||
local json_str = json.encode(json_data)
|
local json_str = json.encode(json_data)
|
||||||
pt(json_str)
|
pt(json_str)
|
||||||
local tex2 = QRCodePicture.GenerateQRcode(url, 250, 250)
|
local tex2 = QRCodePicture.GenerateQRcode(url, 250, 250)
|
||||||
local tex1 = ResourcesManager.LoadObject("base/lobby/bg/bg.png",typeof(UnityEngine.Texture2D))
|
local tex1 = ResourcesManager.LoadObject("base/lobby/bg/bg.png",typeof(UnityEngine.Texture2D))
|
||||||
filename = filename ..".jpg"
|
filename = filename ..".jpg"
|
||||||
-- print("text2==========")
|
print("text2==========")
|
||||||
-- print(tex2)
|
print(tex2)
|
||||||
-- print("text1==========")
|
print("text1==========")
|
||||||
-- print(tex1)
|
print(tex1)
|
||||||
-- print("filename==========")
|
print("filename==========")
|
||||||
-- print(filename)
|
print(filename)
|
||||||
QRCodePicture.CombanitePicture(tex1,tex2,393,1334-802-250,filename)
|
QRCodePicture.CombanitePicture(tex1,tex2,393,1334-802-250,filename)
|
||||||
|
|
||||||
GameApplication.Instance:ShareLink(1, json_str, nil)
|
GameApplication.Instance:ShareLink(1, json_str, nil)
|
||||||
|
|
@ -202,8 +202,6 @@ function LoadGameBg(url, main_view)
|
||||||
local win_mode = main_view:GetChild("win_mode")
|
local win_mode = main_view:GetChild("win_mode")
|
||||||
win_mode:RemoveChildren(0, -1, true)
|
win_mode:RemoveChildren(0, -1, true)
|
||||||
local tex_bg = ResourcesManager.LoadObjectByGroup(url..".png",typeof(UnityEngine.Texture), url)
|
local tex_bg = ResourcesManager.LoadObjectByGroup(url..".png",typeof(UnityEngine.Texture), url)
|
||||||
-- print("===========================mainbg")
|
|
||||||
-- print(url..".png",typeof(UnityEngine.Texture), url)
|
|
||||||
local bg = GImage()
|
local bg = GImage()
|
||||||
bg.texture = FairyGUI.NTexture(tex_bg)
|
bg.texture = FairyGUI.NTexture(tex_bg)
|
||||||
bg.width = win_mode.width
|
bg.width = win_mode.width
|
||||||
|
|
@ -365,6 +363,6 @@ end
|
||||||
|
|
||||||
function printlog(...)
|
function printlog(...)
|
||||||
if debug_print then
|
if debug_print then
|
||||||
-- print(...)
|
print(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -392,7 +392,6 @@ local function createJson()
|
||||||
function json.null()
|
function json.null()
|
||||||
return json.null -- so json.null() will also return null ;-)
|
return json.null -- so json.null() will also return null ;-)
|
||||||
end
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- Internal, PRIVATE functions.
|
-- Internal, PRIVATE functions.
|
||||||
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
||||||
|
|
@ -818,7 +817,6 @@ function luaIdePrintWarn(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function luaIdePrintErr(...)
|
function luaIdePrintErr(...)
|
||||||
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
||||||
debugger_print(...)
|
debugger_print(...)
|
||||||
|
|
@ -842,7 +840,6 @@ function luaIdePrintErr(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
--@region 辅助方法
|
--@region 辅助方法
|
||||||
|
|
@ -980,7 +977,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
return tostring(v)
|
return tostring(v)
|
||||||
end
|
end
|
||||||
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
||||||
-- print("dump from: " .. debugger_strTrim(traceback[3]))
|
print("dump from: " .. debugger_strTrim(traceback[3]))
|
||||||
local function _dump(value, desciption, indent, nest, keylen)
|
local function _dump(value, desciption, indent, nest, keylen)
|
||||||
desciption = desciption or "<var>"
|
desciption = desciption or "<var>"
|
||||||
local spc = ""
|
local spc = ""
|
||||||
|
|
@ -1029,7 +1026,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
end
|
end
|
||||||
_dump(value, desciption, "- ", 1)
|
_dump(value, desciption, "- ", 1)
|
||||||
for i, line in ipairs(result) do
|
for i, line in ipairs(result) do
|
||||||
-- print(line)
|
print(line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
@ -1038,7 +1035,9 @@ local function debugger_valueToString(v)
|
||||||
local vstr = nil
|
local vstr = nil
|
||||||
if (vtype == "userdata") then
|
if (vtype == "userdata") then
|
||||||
if (LuaDebugger.isFoxGloryProject) then
|
if (LuaDebugger.isFoxGloryProject) then
|
||||||
|
|
||||||
return "userdata",vtype
|
return "userdata",vtype
|
||||||
|
|
||||||
else
|
else
|
||||||
return tostring(v), vtype
|
return tostring(v), vtype
|
||||||
end
|
end
|
||||||
|
|
@ -1168,7 +1167,7 @@ local function debugger_receiveDebugBreakInfo()
|
||||||
if (jit) then
|
if (jit) then
|
||||||
if (LuaDebugger.debugLuaType ~= "jit") then
|
if (LuaDebugger.debugLuaType ~= "jit") then
|
||||||
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
||||||
-- print(msg)
|
print(msg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if (breakInfoSocket) then
|
if (breakInfoSocket) then
|
||||||
|
|
@ -1188,7 +1187,7 @@ local function debugger_receiveDebugBreakInfo()
|
||||||
LuaDebugger.reLoadFileBody = netData.data
|
LuaDebugger.reLoadFileBody = netData.data
|
||||||
LuaDebugger.isReLoadFile = false
|
LuaDebugger.isReLoadFile = false
|
||||||
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
||||||
-- print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
||||||
LuaDebugger.reLoadFileBody.script = nil
|
LuaDebugger.reLoadFileBody.script = nil
|
||||||
debugger_sendMsg(
|
debugger_sendMsg(
|
||||||
breakInfoSocket,
|
breakInfoSocket,
|
||||||
|
|
@ -1333,17 +1332,18 @@ function debugger_conditionStr(condition, vars, callBack)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
if (status and msg) then
|
if (status and msg) then
|
||||||
callBack()
|
callBack()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--执行lua字符串
|
--执行lua字符串
|
||||||
debugger_exeLuaString = function()
|
debugger_exeLuaString = function()
|
||||||
|
|
||||||
local function loadScript()
|
local function loadScript()
|
||||||
|
|
||||||
local script = LuaDebugger.loadScriptBody.script
|
local script = LuaDebugger.loadScriptBody.script
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
local currentTabble = {_G = _G}
|
local currentTabble = {_G = _G}
|
||||||
|
|
@ -1374,17 +1374,18 @@ debugger_exeLuaString = function()
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
|
|
||||||
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
LuaDebugger.loadScriptBody.script = nil
|
LuaDebugger.loadScriptBody.script = nil
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
.C2S_HITBreakPoint)
|
|
||||||
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
||||||
end
|
end
|
||||||
LuaDebugger.loadScriptBody.complete = true
|
LuaDebugger.loadScriptBody.complete = true
|
||||||
|
|
||||||
end
|
end
|
||||||
--@region 调试中修改变量值
|
--@region 调试中修改变量值
|
||||||
|
|
||||||
|
|
@ -1409,10 +1410,12 @@ local function debugger_getTablekey(key, keyType, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function debugger_setVarValue(server, data)
|
local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
local newValue = nil
|
local newValue = nil
|
||||||
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
||||||
local firstKeyName = data.keys[1]
|
local firstKeyName = data.keys[1]
|
||||||
|
|
@ -1487,7 +1490,7 @@ local function debugger_setVarValue(server, data)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "============================")
|
print(error, "============================")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1498,6 +1501,7 @@ local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
if(keyLength == 1) then
|
if(keyLength == 1) then
|
||||||
if(localValueChangeIndex ~= -1) then
|
if(localValueChangeIndex ~= -1) then
|
||||||
|
|
||||||
debug.setlocal(level, localValueChangeIndex, newValue)
|
debug.setlocal(level, localValueChangeIndex, newValue)
|
||||||
elseif(upValueFun ~= nil) then
|
elseif(upValueFun ~= nil) then
|
||||||
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
||||||
|
|
@ -1527,6 +1531,7 @@ local function debugger_setVarValue(server, data)
|
||||||
data.varInfo = varInfo
|
data.varInfo = varInfo
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
|
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
|
|
@ -1544,7 +1549,7 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("设置变量", error)
|
print("设置变量", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isLoadLuaScript) then
|
elseif(LuaDebugger.isLoadLuaScript) then
|
||||||
|
|
@ -1555,20 +1560,20 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("执行代码", error)
|
print("执行代码", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isReLoadFile) then
|
elseif(LuaDebugger.isReLoadFile) then
|
||||||
LuaDebugger.isReLoadFile = false
|
LuaDebugger.isReLoadFile = false
|
||||||
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
||||||
-- print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
||||||
LuaDebugger.reLoadFileBody.script = nil
|
LuaDebugger.reLoadFileBody.script = nil
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("重新加载文件", error)
|
print("重新加载文件", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -1622,7 +1627,7 @@ local function debugger_getValueByScript(value, script)
|
||||||
val = fun()
|
val = fun()
|
||||||
end,
|
end,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "====>")
|
print(error, "====>")
|
||||||
val = nil
|
val = nil
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
@ -1889,6 +1894,7 @@ local function debugger_sendTableValues(value, server, variablesReference, debug
|
||||||
vinfos = {}
|
vinfos = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
m = getmetatable(value)
|
m = getmetatable(value)
|
||||||
|
|
@ -1938,6 +1944,7 @@ local function debugger_getBreakVar(body, server)
|
||||||
if (value) then
|
if (value) then
|
||||||
local valueType = type(value)
|
local valueType = type(value)
|
||||||
if (valueType == "table" or valueType == "userdata") then
|
if (valueType == "table" or valueType == "userdata") then
|
||||||
|
|
||||||
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
||||||
else
|
else
|
||||||
if (valueType == "function") then
|
if (valueType == "function") then
|
||||||
|
|
@ -1972,9 +1979,9 @@ local function debugger_getBreakVar(body, server)
|
||||||
xpcall(
|
xpcall(
|
||||||
exe,
|
exe,
|
||||||
function(error)
|
function(error)
|
||||||
-- -- print("获取变量错误 错误消息-----------------")
|
-- print("获取变量错误 错误消息-----------------")
|
||||||
-- -- print(error)
|
-- print(error)
|
||||||
-- -- print(debug.traceback("", 2))
|
-- print(debug.traceback("", 2))
|
||||||
debugger_sendMsg(
|
debugger_sendMsg(
|
||||||
server,
|
server,
|
||||||
LuaDebugger.event.C2S_ReqVar,
|
LuaDebugger.event.C2S_ReqVar,
|
||||||
|
|
@ -2029,6 +2036,7 @@ local function debugger_loop(server)
|
||||||
debug.sethook()
|
debug.sethook()
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
||||||
--设置断点信息
|
--设置断点信息
|
||||||
local function setB()
|
local function setB()
|
||||||
|
|
@ -2037,7 +2045,7 @@ local function debugger_loop(server)
|
||||||
xpcall(
|
xpcall(
|
||||||
setB,
|
setB,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
||||||
|
|
@ -2148,6 +2156,7 @@ local function debugger_loop(server)
|
||||||
end
|
end
|
||||||
coro_debugger = coroutine.create(debugger_loop)
|
coro_debugger = coroutine.create(debugger_loop)
|
||||||
debug_hook = function(event, line)
|
debug_hook = function(event, line)
|
||||||
|
|
||||||
if(not LuaDebugger.isHook) then
|
if(not LuaDebugger.isHook) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
@ -2156,7 +2165,9 @@ debug_hook = function(event, line)
|
||||||
if(event == "line") then
|
if(event == "line") then
|
||||||
local isCheck = false
|
local isCheck = false
|
||||||
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
||||||
|
|
||||||
for bk, linesInfo in pairs(breakInfo) do
|
for bk, linesInfo in pairs(breakInfo) do
|
||||||
|
|
||||||
if(linesInfo.lines and linesInfo.lines[line]) then
|
if(linesInfo.lines and linesInfo.lines[line]) then
|
||||||
isCheck = true
|
isCheck = true
|
||||||
break
|
break
|
||||||
|
|
@ -2198,7 +2209,7 @@ debug_hook = function(event, line)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- debugger_dump(LuaDebugger,"LuaDebugger")
|
-- debugger_dump(LuaDebugger,"LuaDebugger")
|
||||||
-- -- print(LuaDebugger.StepNextLevel,"LuaDebugger.StepNextLevel")
|
-- print(LuaDebugger.StepNextLevel,"LuaDebugger.StepNextLevel")
|
||||||
local file = nil
|
local file = nil
|
||||||
if (event == "call") then
|
if (event == "call") then
|
||||||
-- end
|
-- end
|
||||||
|
|
@ -2206,7 +2217,7 @@ debug_hook = function(event, line)
|
||||||
if (not LuaDebugger.Run) then
|
if (not LuaDebugger.Run) then
|
||||||
LuaDebugger.StepNextLevel = LuaDebugger.StepNextLevel + 1
|
LuaDebugger.StepNextLevel = LuaDebugger.StepNextLevel + 1
|
||||||
end
|
end
|
||||||
-- -- print("stepIn",LuaDebugger.StepNextLevel)
|
-- print("stepIn",LuaDebugger.StepNextLevel)
|
||||||
|
|
||||||
local stepInfo = getinfo(2, "S")
|
local stepInfo = getinfo(2, "S")
|
||||||
local source = stepInfo.source
|
local source = stepInfo.source
|
||||||
|
|
@ -2248,6 +2259,7 @@ debug_hook = function(event, line)
|
||||||
local breakInfo = LuaDebugger.breakInfos[file]
|
local breakInfo = LuaDebugger.breakInfos[file]
|
||||||
local breakData = nil
|
local breakData = nil
|
||||||
if (breakInfo) then
|
if (breakInfo) then
|
||||||
|
|
||||||
local ischeck = false
|
local ischeck = false
|
||||||
for k, lineInfo in pairs(breakInfo) do
|
for k, lineInfo in pairs(breakInfo) do
|
||||||
local lines = lineInfo.lines
|
local lines = lineInfo.lines
|
||||||
|
|
@ -2384,8 +2396,8 @@ local function start()
|
||||||
local fullName, dirName, fileName = debugger_getFilePathInfo(getinfo(1).source)
|
local fullName, dirName, fileName = debugger_getFilePathInfo(getinfo(1).source)
|
||||||
LuaDebugger.DebugLuaFie = fileName
|
LuaDebugger.DebugLuaFie = fileName
|
||||||
local socket = createSocket()
|
local socket = createSocket()
|
||||||
-- print(controller_host)
|
print(controller_host)
|
||||||
-- print(controller_port)
|
print(controller_port)
|
||||||
|
|
||||||
local server = socket.connect(controller_host, controller_port)
|
local server = socket.connect(controller_host, controller_port)
|
||||||
debug_server = server
|
debug_server = server
|
||||||
|
|
@ -2415,15 +2427,15 @@ local function start()
|
||||||
debug.sethook(debug_hook, "lrc")
|
debug.sethook(debug_hook, "lrc")
|
||||||
end,
|
end,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("error:", error)
|
print("error:", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
if (jit) then
|
if (jit) then
|
||||||
if (LuaDebugger.debugLuaType ~= "jit") then
|
if (LuaDebugger.debugLuaType ~= "jit") then
|
||||||
-- print("error======================================================")
|
print("error======================================================")
|
||||||
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
local msg = "当前luajit版本为: " .. jit.version .. " 请使用LuaDebugjit 进行调试!"
|
||||||
|
|
||||||
-- print(msg)
|
print(msg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
_resume(coro_debugger, server)
|
_resume(coro_debugger, server)
|
||||||
|
|
@ -2432,16 +2444,16 @@ local function start()
|
||||||
end
|
end
|
||||||
function StartDebug(host, port)
|
function StartDebug(host, port)
|
||||||
if (not host) then
|
if (not host) then
|
||||||
-- print("error host nil")
|
print("error host nil")
|
||||||
end
|
end
|
||||||
if (not port) then
|
if (not port) then
|
||||||
-- print("error prot nil")
|
print("error prot nil")
|
||||||
end
|
end
|
||||||
if (type(host) ~= "string") then
|
if (type(host) ~= "string") then
|
||||||
-- print("error host not string")
|
print("error host not string")
|
||||||
end
|
end
|
||||||
if (type(port) ~= "number") then
|
if (type(port) ~= "number") then
|
||||||
-- print("error host not number")
|
print("error host not number")
|
||||||
end
|
end
|
||||||
controller_host = host
|
controller_host = host
|
||||||
controller_port = port
|
controller_port = port
|
||||||
|
|
@ -2449,7 +2461,7 @@ function StartDebug(host, port)
|
||||||
start,
|
start,
|
||||||
function(error)
|
function(error)
|
||||||
-- body
|
-- body
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
||||||
|
|
@ -2599,4 +2611,7 @@ function ZZBase64.__decodeLeft2(res, index, text, len)
|
||||||
res[index] = string.char(num)
|
res[index] = string.char(num)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return StartDebug
|
return StartDebug
|
||||||
|
|
|
||||||
|
|
@ -366,7 +366,6 @@ local function createJson()
|
||||||
function json.null()
|
function json.null()
|
||||||
return json.null -- so json.null() will also return null ;-)
|
return json.null -- so json.null() will also return null ;-)
|
||||||
end
|
end
|
||||||
|
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
-- Internal, PRIVATE functions.
|
-- Internal, PRIVATE functions.
|
||||||
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
-- Following a Python-like convention, I have prefixed all these 'PRIVATE'
|
||||||
|
|
@ -789,7 +788,6 @@ function luaIdePrintWarn(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function luaIdePrintErr(...)
|
function luaIdePrintErr(...)
|
||||||
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
if (LuaDebugger.isProntToConsole == 1 or LuaDebugger.isProntToConsole == 3) then
|
||||||
debugger_print(...)
|
debugger_print(...)
|
||||||
|
|
@ -813,7 +811,6 @@ function luaIdePrintErr(...)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
--@region 辅助方法
|
--@region 辅助方法
|
||||||
|
|
@ -951,7 +948,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
return tostring(v)
|
return tostring(v)
|
||||||
end
|
end
|
||||||
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
local traceback = debugger_strSplit(debug.traceback("", 2), "\n")
|
||||||
-- print("dump from: " .. debugger_strTrim(traceback[3]))
|
print("dump from: " .. debugger_strTrim(traceback[3]))
|
||||||
local function _dump(value, desciption, indent, nest, keylen)
|
local function _dump(value, desciption, indent, nest, keylen)
|
||||||
desciption = desciption or "<var>"
|
desciption = desciption or "<var>"
|
||||||
local spc = ""
|
local spc = ""
|
||||||
|
|
@ -1000,7 +997,7 @@ local function debugger_dump(value, desciption, nesting)
|
||||||
end
|
end
|
||||||
_dump(value, desciption, "- ", 1)
|
_dump(value, desciption, "- ", 1)
|
||||||
for i, line in ipairs(result) do
|
for i, line in ipairs(result) do
|
||||||
-- print(line)
|
print(line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
@ -1009,7 +1006,9 @@ local function debugger_valueToString(v)
|
||||||
local vstr = nil
|
local vstr = nil
|
||||||
if (vtype == "userdata") then
|
if (vtype == "userdata") then
|
||||||
if (LuaDebugger.isFoxGloryProject ) then
|
if (LuaDebugger.isFoxGloryProject ) then
|
||||||
|
|
||||||
return "userdata",vtype
|
return "userdata",vtype
|
||||||
|
|
||||||
else
|
else
|
||||||
return tostring(v), vtype
|
return tostring(v), vtype
|
||||||
end
|
end
|
||||||
|
|
@ -1021,6 +1020,7 @@ local function debugger_valueToString(v)
|
||||||
else
|
else
|
||||||
value = tostring(v)
|
value = tostring(v)
|
||||||
end
|
end
|
||||||
|
|
||||||
end,function()
|
end,function()
|
||||||
value = vtype
|
value = vtype
|
||||||
end)
|
end)
|
||||||
|
|
@ -1142,9 +1142,9 @@ local debugger_setBreak = nil
|
||||||
local function debugger_receiveDebugBreakInfo()
|
local function debugger_receiveDebugBreakInfo()
|
||||||
if(not jit) then
|
if(not jit) then
|
||||||
if(_VERSION)then
|
if(_VERSION)then
|
||||||
-- print("当前lua版本为: ".._VERSION.." 请使用 -----LuaDebug.lua----- 进行调试!")
|
print("当前lua版本为: ".._VERSION.." 请使用 -----LuaDebug.lua----- 进行调试!")
|
||||||
else
|
else
|
||||||
-- print("当前为lua版本,请使用-----LuaDebug.lua-----进行调试!")
|
print("当前为lua版本,请使用-----LuaDebug.lua-----进行调试!")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if (breakInfoSocket) then
|
if (breakInfoSocket) then
|
||||||
|
|
@ -1309,17 +1309,18 @@ function debugger_conditionStr(condition, vars, callBack)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
if (status and msg) then
|
if (status and msg) then
|
||||||
callBack()
|
callBack()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--执行lua字符串
|
--执行lua字符串
|
||||||
debugger_exeLuaString = function()
|
debugger_exeLuaString = function()
|
||||||
|
|
||||||
local function loadScript()
|
local function loadScript()
|
||||||
|
|
||||||
local script = LuaDebugger.loadScriptBody.script
|
local script = LuaDebugger.loadScriptBody.script
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
local currentTabble = {_G = _G}
|
local currentTabble = {_G = _G}
|
||||||
|
|
@ -1350,17 +1351,18 @@ debugger_exeLuaString = function()
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
|
|
||||||
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
-- debugger_sendMsg(debug_server, LuaDebugger.event.C2S_LoadLuaScript, LuaDebugger.loadScriptBody)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
LuaDebugger.loadScriptBody.script = nil
|
LuaDebugger.loadScriptBody.script = nil
|
||||||
if (LuaDebugger.loadScriptBody.isBreak) then
|
if (LuaDebugger.loadScriptBody.isBreak) then
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
.C2S_HITBreakPoint)
|
|
||||||
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
LuaDebugger.loadScriptBody.stack = LuaDebugger.currentDebuggerData.stack
|
||||||
end
|
end
|
||||||
LuaDebugger.loadScriptBody.complete = true
|
LuaDebugger.loadScriptBody.complete = true
|
||||||
|
|
||||||
end
|
end
|
||||||
--@region 调试中修改变量值
|
--@region 调试中修改变量值
|
||||||
|
|
||||||
|
|
@ -1385,10 +1387,12 @@ local function debugger_getTablekey(key, keyType, value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function debugger_setVarValue(server, data)
|
local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
local newValue = nil
|
local newValue = nil
|
||||||
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
local level = LuaDebugger.serVarLevel+LuaDebugger.setVarBody.frameId
|
||||||
local firstKeyName = data.keys[1]
|
local firstKeyName = data.keys[1]
|
||||||
|
|
@ -1463,7 +1467,7 @@ local function debugger_setVarValue(server, data)
|
||||||
xpcall(
|
xpcall(
|
||||||
loadScript,
|
loadScript,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "============================")
|
print(error, "============================")
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1474,6 +1478,7 @@ local function debugger_setVarValue(server, data)
|
||||||
|
|
||||||
if(keyLength == 1) then
|
if(keyLength == 1) then
|
||||||
if(localValueChangeIndex ~= -1) then
|
if(localValueChangeIndex ~= -1) then
|
||||||
|
|
||||||
debug.setlocal(level, localValueChangeIndex, newValue)
|
debug.setlocal(level, localValueChangeIndex, newValue)
|
||||||
elseif(upValueFun ~= nil) then
|
elseif(upValueFun ~= nil) then
|
||||||
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
debug.setupvalue( upValueFun, upValueChangeIndex, newValue )
|
||||||
|
|
@ -1503,6 +1508,7 @@ local function debugger_setVarValue(server, data)
|
||||||
data.varInfo = varInfo
|
data.varInfo = varInfo
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
LuaDebugger.currentDebuggerData = debugger_stackInfo(LuaDebugger.serVarLevel, LuaDebugger.event.C2S_HITBreakPoint)
|
||||||
|
|
||||||
end
|
end
|
||||||
--@endregion
|
--@endregion
|
||||||
|
|
||||||
|
|
@ -1520,7 +1526,7 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("设置变量", error)
|
print("设置变量", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isLoadLuaScript) then
|
elseif(LuaDebugger.isLoadLuaScript) then
|
||||||
|
|
@ -1531,20 +1537,20 @@ checkSetVar =
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("执行代码", error)
|
print("执行代码", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif(LuaDebugger.isReLoadFile) then
|
elseif(LuaDebugger.isReLoadFile) then
|
||||||
LuaDebugger.isReLoadFile = false
|
LuaDebugger.isReLoadFile = false
|
||||||
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
LuaDebugger.reLoadFileBody.isReLoad = debugger_reLoadFile(LuaDebugger.reLoadFileBody)
|
||||||
-- print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
print("重载结果:",LuaDebugger.reLoadFileBody.isReLoad)
|
||||||
LuaDebugger.reLoadFileBody.script = nil
|
LuaDebugger.reLoadFileBody.script = nil
|
||||||
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
LuaDebugger.serVarLevel = LuaDebugger.serVarLevel+1
|
||||||
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
_resume(coro_debugger, LuaDebugger.reLoadFileBody)
|
||||||
xpcall(
|
xpcall(
|
||||||
checkSetVar,
|
checkSetVar,
|
||||||
function(error)
|
function(error)
|
||||||
-- print("重新加载文件", error)
|
print("重新加载文件", error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -1598,7 +1604,7 @@ local function debugger_getValueByScript(value, script)
|
||||||
val = fun()
|
val = fun()
|
||||||
end,
|
end,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error, "====>")
|
print(error, "====>")
|
||||||
val = nil
|
val = nil
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
@ -1739,6 +1745,7 @@ end
|
||||||
return
|
return
|
||||||
]]
|
]]
|
||||||
local function debugger_getmetatable(value, metatable, vinfos, server, variablesReference, debugSpeedIndex, metatables)
|
local function debugger_getmetatable(value, metatable, vinfos, server, variablesReference, debugSpeedIndex, metatables)
|
||||||
|
|
||||||
for i, mtable in ipairs(metatables) do
|
for i, mtable in ipairs(metatables) do
|
||||||
if (metatable == mtable) then
|
if (metatable == mtable) then
|
||||||
return vinfos
|
return vinfos
|
||||||
|
|
@ -1794,6 +1801,7 @@ local function debugger_getmetatable(value, metatable, vinfos, server, variables
|
||||||
else
|
else
|
||||||
return vinfos
|
return vinfos
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
local function debugger_sendTableField(luatable, vinfos, server, variablesReference, debugSpeedIndex, valueType)
|
local function debugger_sendTableField(luatable, vinfos, server, variablesReference, debugSpeedIndex, valueType)
|
||||||
if (valueType == "userdata") then
|
if (valueType == "userdata") then
|
||||||
|
|
@ -1866,6 +1874,7 @@ local function debugger_sendTableValues(value, server, variablesReference, debug
|
||||||
vinfos = {}
|
vinfos = {}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
m = getmetatable(value)
|
m = getmetatable(value)
|
||||||
|
|
@ -1915,6 +1924,7 @@ local function debugger_getBreakVar(body, server)
|
||||||
if (value) then
|
if (value) then
|
||||||
local valueType = type(value)
|
local valueType = type(value)
|
||||||
if (valueType == "table" or valueType == "userdata") then
|
if (valueType == "table" or valueType == "userdata") then
|
||||||
|
|
||||||
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
debugger_sendTableValues(value, server, variablesReference, debugSpeedIndex)
|
||||||
else
|
else
|
||||||
if (valueType == "function") then
|
if (valueType == "function") then
|
||||||
|
|
@ -1953,9 +1963,9 @@ local function debugger_getBreakVar(body, server)
|
||||||
xpcall(
|
xpcall(
|
||||||
exe,
|
exe,
|
||||||
function(error)
|
function(error)
|
||||||
-- -- print("获取变量错误 错误消息-----------------")
|
-- print("获取变量错误 错误消息-----------------")
|
||||||
-- -- print(error)
|
-- print(error)
|
||||||
-- -- print(debug.traceback("", 2))
|
-- print(debug.traceback("", 2))
|
||||||
debugger_sendMsg(
|
debugger_sendMsg(
|
||||||
server,
|
server,
|
||||||
LuaDebugger.event.C2S_ReqVar,
|
LuaDebugger.event.C2S_ReqVar,
|
||||||
|
|
@ -1981,6 +1991,7 @@ local function ResetDebugInfo()
|
||||||
LuaDebugger.StepIn = false
|
LuaDebugger.StepIn = false
|
||||||
LuaDebugger.StepNext = false
|
LuaDebugger.StepNext = false
|
||||||
LuaDebugger.StepOut = false
|
LuaDebugger.StepOut = false
|
||||||
|
|
||||||
end
|
end
|
||||||
local function debugger_loop(server)
|
local function debugger_loop(server)
|
||||||
server = debug_server
|
server = debug_server
|
||||||
|
|
@ -2009,6 +2020,7 @@ local function debugger_loop(server)
|
||||||
debug.sethook()
|
debug.sethook()
|
||||||
coroutine.yield()
|
coroutine.yield()
|
||||||
end
|
end
|
||||||
|
|
||||||
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
elseif event == LuaDebugger.event.S2C_SetBreakPoints then
|
||||||
--设置断点信息
|
--设置断点信息
|
||||||
local function setB()
|
local function setB()
|
||||||
|
|
@ -2017,7 +2029,7 @@ local function debugger_loop(server)
|
||||||
xpcall(
|
xpcall(
|
||||||
setB,
|
setB,
|
||||||
function(error)
|
function(error)
|
||||||
-- print(error)
|
print(error)
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
elseif event == LuaDebugger.event.S2C_RUN then --开始运行
|
||||||
|
|
@ -2130,6 +2142,7 @@ local function debugger_loop(server)
|
||||||
end
|
end
|
||||||
coro_debugger = coroutine.create(debugger_loop)
|
coro_debugger = coroutine.create(debugger_loop)
|
||||||
debug_hook = function(event, line)
|
debug_hook = function(event, line)
|
||||||
|
|
||||||
if(not LuaDebugger.isHook) then
|
if(not LuaDebugger.isHook) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
@ -2138,7 +2151,9 @@ debug_hook = function(event, line)
|
||||||
if(event == "line") then
|
if(event == "line") then
|
||||||
local isCheck = false
|
local isCheck = false
|
||||||
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
for k, breakInfo in pairs(LuaDebugger.breakInfos) do
|
||||||
|
|
||||||
for bk, linesInfo in pairs(breakInfo) do
|
for bk, linesInfo in pairs(breakInfo) do
|
||||||
|
|
||||||
if(linesInfo.lines and linesInfo.lines[line]) then
|
if(linesInfo.lines and linesInfo.lines[line]) then
|
||||||
isCheck = true
|
isCheck = true
|
||||||
break
|
break
|
||||||
|
|
@ -2152,12 +2167,14 @@ debug_hook = function(event, line)
|
||||||
if(not isCheck) then
|
if(not isCheck) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local file = nil
|
local file = nil
|
||||||
if(event == "line") then
|
if(event == "line") then
|
||||||
|
|
||||||
local funs = nil
|
local funs = nil
|
||||||
local funlength =0
|
local funlength =0
|
||||||
if(LuaDebugger.currentDebuggerData) then
|
if(LuaDebugger.currentDebuggerData) then
|
||||||
|
|
@ -2176,6 +2193,7 @@ debug_hook = function(event, line)
|
||||||
local breakData = nil
|
local breakData = nil
|
||||||
local ischeck = false
|
local ischeck = false
|
||||||
if(breakInfo) then
|
if(breakInfo) then
|
||||||
|
|
||||||
for k, lineInfo in pairs(breakInfo) do
|
for k, lineInfo in pairs(breakInfo) do
|
||||||
local lines = lineInfo.lines
|
local lines = lineInfo.lines
|
||||||
if(lines and lines[line]) then
|
if(lines and lines[line]) then
|
||||||
|
|
@ -2186,6 +2204,7 @@ debug_hook = function(event, line)
|
||||||
end
|
end
|
||||||
local isHit = false
|
local isHit = false
|
||||||
if(ischeck) then
|
if(ischeck) then
|
||||||
|
|
||||||
--并且在断点中
|
--并且在断点中
|
||||||
local info = stepInfo
|
local info = stepInfo
|
||||||
local source = string.lower( info.source )
|
local source = string.lower( info.source )
|
||||||
|
|
@ -2195,6 +2214,7 @@ debug_hook = function(event, line)
|
||||||
local hitCounts = {}
|
local hitCounts = {}
|
||||||
local debugHitCounts = nil
|
local debugHitCounts = nil
|
||||||
for k, lineInfo in pairs(breakInfo) do
|
for k, lineInfo in pairs(breakInfo) do
|
||||||
|
|
||||||
local lines = lineInfo.lines
|
local lines = lineInfo.lines
|
||||||
local pathNames = lineInfo.pathNames
|
local pathNames = lineInfo.pathNames
|
||||||
debugHitCounts = lineInfo.hitCounts
|
debugHitCounts = lineInfo.hitCounts
|
||||||
|
|
@ -2237,6 +2257,7 @@ debug_hook = function(event, line)
|
||||||
local hitPathNamesLength = #hitPathNames
|
local hitPathNamesLength = #hitPathNames
|
||||||
if (hitPathNamesLength == 1 or (hitPathNamesLength > 1 and maxCount > 1)) then
|
if (hitPathNamesLength == 1 or (hitPathNamesLength > 1 and maxCount > 1)) then
|
||||||
if(hitFieName ~= "") then
|
if(hitFieName ~= "") then
|
||||||
|
|
||||||
local hitCount = breakData.hitCondition
|
local hitCount = breakData.hitCondition
|
||||||
local clientHitCount = debugHitCounts[breakData.line]
|
local clientHitCount = debugHitCounts[breakData.line]
|
||||||
clientHitCount = clientHitCount + 1
|
clientHitCount = clientHitCount + 1
|
||||||
|
|
@ -2249,6 +2270,7 @@ debug_hook = function(event, line)
|
||||||
elseif(clientHitCount >= hitCount) then
|
elseif(clientHitCount >= hitCount) then
|
||||||
isHit = true
|
isHit = true
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -2261,7 +2283,7 @@ debug_hook = function(event, line)
|
||||||
else
|
else
|
||||||
if(funs[2] == tempFunc) then
|
if(funs[2] == tempFunc) then
|
||||||
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
||||||
-- -- print("StepIn 挂起")
|
-- print("StepIn 挂起")
|
||||||
--挂起等待调试器作出反应
|
--挂起等待调试器作出反应
|
||||||
_resume(coro_debugger, data)
|
_resume(coro_debugger, data)
|
||||||
checkSetVar()
|
checkSetVar()
|
||||||
|
|
@ -2275,7 +2297,7 @@ debug_hook = function(event, line)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
local data = debugger_stackInfo(3, LuaDebugger.event.C2S_StepInResponse)
|
||||||
-- -- print("StepIn 挂起")
|
-- print("StepIn 挂起")
|
||||||
--挂起等待调试器作出反应
|
--挂起等待调试器作出反应
|
||||||
_resume(coro_debugger, data)
|
_resume(coro_debugger, data)
|
||||||
checkSetVar()
|
checkSetVar()
|
||||||
|
|
@ -2295,6 +2317,7 @@ debug_hook = function(event, line)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
||||||
isNext =true
|
isNext =true
|
||||||
end
|
end
|
||||||
if(isNext) then
|
if(isNext) then
|
||||||
|
|
@ -2313,6 +2336,8 @@ debug_hook = function(event, line)
|
||||||
|
|
||||||
--断点判断
|
--断点判断
|
||||||
if(isHit) then
|
if(isHit) then
|
||||||
|
|
||||||
|
|
||||||
LuaDebugger.runLineCount = 0
|
LuaDebugger.runLineCount = 0
|
||||||
LuaDebugger.currentLine = line
|
LuaDebugger.currentLine = line
|
||||||
sevent = LuaDebugger.event.C2S_HITBreakPoint
|
sevent = LuaDebugger.event.C2S_HITBreakPoint
|
||||||
|
|
@ -2346,9 +2371,10 @@ local function debugger_xpcall()
|
||||||
end
|
end
|
||||||
--调试开始
|
--调试开始
|
||||||
local function start()
|
local function start()
|
||||||
|
|
||||||
local socket = createSocket()
|
local socket = createSocket()
|
||||||
-- print(controller_host)
|
print(controller_host)
|
||||||
-- print(controller_port)
|
print(controller_port)
|
||||||
|
|
||||||
local fullName,dirName,fileName = debugger_getFilePathInfo(getinfo(1).source)
|
local fullName,dirName,fileName = debugger_getFilePathInfo(getinfo(1).source)
|
||||||
LuaDebugger.DebugLuaFie = fileName
|
LuaDebugger.DebugLuaFie = fileName
|
||||||
|
|
@ -2373,41 +2399,46 @@ local function start()
|
||||||
xpcall(function()
|
xpcall(function()
|
||||||
sethook(debug_hook, "lrc")
|
sethook(debug_hook, "lrc")
|
||||||
end, function(error)
|
end, function(error)
|
||||||
-- print("error:", error)
|
print("error:", error)
|
||||||
end)
|
end)
|
||||||
if(not jit) then
|
if(not jit) then
|
||||||
if(_VERSION)then
|
if(_VERSION)then
|
||||||
-- print("当前lua版本为: ".._VERSION.." 请使用LuaDebug 进行调试!")
|
print("当前lua版本为: ".._VERSION.." 请使用LuaDebug 进行调试!")
|
||||||
else
|
else
|
||||||
-- print("当前为lua版本,请使用LuaDebug 进行调试!")
|
print("当前为lua版本,请使用LuaDebug 进行调试!")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
_resume(coro_debugger, server)
|
_resume(coro_debugger, server)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
function StartDebug(host, port)
|
function StartDebug(host, port)
|
||||||
|
|
||||||
|
|
||||||
if(not host) then
|
if(not host) then
|
||||||
-- print("error host nil")
|
print("error host nil")
|
||||||
end
|
end
|
||||||
if(not port) then
|
if(not port) then
|
||||||
-- print("error prot nil")
|
print("error prot nil")
|
||||||
end
|
end
|
||||||
if(type(host) ~= "string") then
|
if(type(host) ~= "string") then
|
||||||
-- print("error host not string")
|
print("error host not string")
|
||||||
end
|
end
|
||||||
if(type(port) ~= "number") then
|
if(type(port) ~= "number") then
|
||||||
-- print("error host not number")
|
print("error host not number")
|
||||||
end
|
end
|
||||||
controller_host = host
|
controller_host = host
|
||||||
controller_port = port
|
controller_port = port
|
||||||
xpcall(start, function(error)
|
xpcall(start, function(error)
|
||||||
-- body
|
-- body
|
||||||
-- print(error)
|
print(error)
|
||||||
end)
|
end)
|
||||||
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
return debugger_receiveDebugBreakInfo, debugger_xpcall
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--base64
|
--base64
|
||||||
|
|
||||||
local string = string
|
local string = string
|
||||||
|
|
@ -2552,4 +2583,7 @@ function ZZBase64.__decodeLeft2(res, index, text, len)
|
||||||
res[index] = string.char(num)
|
res[index] = string.char(num)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return StartDebug
|
return StartDebug
|
||||||
|
|
|
||||||
|
|
@ -9,567 +9,218 @@ function EXClearingView.new(blur_view)
|
||||||
setmetatable(M, { __index = ResultView })
|
setmetatable(M, { __index = ResultView })
|
||||||
local self = setmetatable({}, { __index = M })
|
local self = setmetatable({}, { __index = M })
|
||||||
self._full = true
|
self._full = true
|
||||||
ResultView.init(self, "ui://Main_Majiang/clearing")
|
ResultView.init(self, "ui://Main_Majiang/clearing_jiangxi")
|
||||||
|
|
||||||
self._currenIndex = 0
|
self._currenIndex = 0
|
||||||
self._blur_view = blur_view
|
self._blur_view = blur_view
|
||||||
self._close_zone = false
|
self._close_zone = false
|
||||||
self:InitMaPai()
|
-- self:InitMaPai()
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
function M:InitMaPai()
|
-- function M:InitMaPai()
|
||||||
self.maPaiCtr = self._view:GetController("mapai")
|
-- self.maPaiCtr = self._view:GetController("mapai")
|
||||||
self.maPaiCtr.selectedIndex = 0
|
-- self.maPaiCtr.selectedIndex = 0
|
||||||
|
|
||||||
self.maPaiList = {}
|
-- self.maPaiList = {}
|
||||||
|
|
||||||
for i = 1, 8 do
|
-- for i = 1, 8 do
|
||||||
local tempMP = self._view:GetChild("niao" .. i)
|
-- local tempMP = self._view:GetChild("niao" .. i)
|
||||||
table.insert(self.maPaiList, tempMP)
|
-- table.insert(self.maPaiList, tempMP)
|
||||||
end
|
-- end
|
||||||
end
|
-- end
|
||||||
|
|
||||||
function M:IsMapaiShow(niao, isShow)
|
|
||||||
if niao then
|
|
||||||
niao.visible = isShow
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:SetMaPaiValue(niao, value)
|
|
||||||
if niao then
|
|
||||||
niao.icon = 'ui://Main_Majiang/' .. get_majiang_prefix(DataManager.CurrenRoom.game_id) .. "201_" .. value
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:SetMaPaiColor(niao, num)
|
|
||||||
niao:GetController("color").selectedIndex = num
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:HideAllMapai()
|
|
||||||
for i = 1, #self.maPaiList do
|
|
||||||
self:IsMapaiShow(self.maPaiList[i], false)
|
|
||||||
self:SetMaPaiColor(self.maPaiList[i], 0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:ShowSelectMaPai(niaoList)
|
|
||||||
if niaoList and #niaoList > 0 then
|
|
||||||
self.maPaiCtr.selectedIndex = 1
|
|
||||||
self:HideAllMapai()
|
|
||||||
for i = 1, #niaoList do
|
|
||||||
self:IsMapaiShow(self.maPaiList[i], true)
|
|
||||||
self:SetMaPaiValue(self.maPaiList[i], niaoList[i].card)
|
|
||||||
if niaoList[i].score > 0 then
|
|
||||||
self:SetMaPaiColor(self.maPaiList[i], 2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
self.maPaiCtr.selectedIndex = 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:CalculatePaixingInfo(result)
|
|
||||||
self.WinList = {}
|
|
||||||
if result.info_list and #result.info_list > 0 then
|
|
||||||
for i = 1, #result.info_list do
|
|
||||||
if result.info_list[i].win_list and #result.info_list[i].win_list > 0 then
|
|
||||||
table.insert(self.WinList, result.info_list[i].win_list)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
printlog("牌型列表====>>>")
|
|
||||||
pt(self.WinList)
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:SetPaixingxiangqing(num)
|
|
||||||
for i = 1, #self.PaiXingXiangQingCtrList do
|
|
||||||
if self.PaiXingXiangQingCtrList[i] then
|
|
||||||
self.PaiXingXiangQingCtrList[i].selectedIndex = num
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:InitData(over, room, result, total_result, callback)
|
function M:InitData(over, room, result, total_result, callback)
|
||||||
self._callback = callback
|
self._callback = callback
|
||||||
|
local showClearMainBtn = self._view:GetChild("btn_showClearMain")
|
||||||
|
local nextRoundBtn = self._view:GetChild("btn_nextRound")
|
||||||
|
local nextRoundBtn2 = self._view:GetChild("Btn_NextRound2")
|
||||||
|
local endRound = self._view:GetChild("Btn_EndRound")
|
||||||
local _overCtr = self._view:GetController("over")
|
local _overCtr = self._view:GetController("over")
|
||||||
local btn_confirm = self._view:GetChild("btn_confirm")
|
local mainCtr = self._view:GetController("main")
|
||||||
local btn_result = self._view:GetChild("btn_showResult")
|
local playerNum = self._view:GetController("playerNum")
|
||||||
local btn_close = self._view:GetChild("big_result"):GetChild("btn_close")
|
|
||||||
local _btnCtr = self._view:GetController("button")
|
|
||||||
local _sdkCtr = self._view:GetController("sdk")
|
|
||||||
local ctr_type = self._view:GetController("type")
|
|
||||||
|
|
||||||
self._view:GetChild("tex_roominfo").text = string.format("房号%s 局%s/%s %s", room.room_id, room.curren_round,
|
local peopleNum = room.room_config.people_num
|
||||||
room.room_config.round, os.date("%Y-%m-%d %H:%M:%S", os.time()))
|
|
||||||
self._view:GetChild("tex_gameinfo").text = string.gsub(room.room_config:GetDes2(), "\r", "")
|
|
||||||
|
|
||||||
if result then
|
playerNum.selectedIndex = peopleNum - 2
|
||||||
self:ShowSelectMaPai(result.niao)
|
|
||||||
self:CalculatePaixingInfo(result)
|
|
||||||
end
|
|
||||||
|
|
||||||
self.PaiXingXiangQingCtrList = {}
|
showClearMainBtn.onClick:Set(function()
|
||||||
|
mainCtr.selectedIndex = 1
|
||||||
local paixingxiangqing = self._view:GetChild("btn_detal")
|
|
||||||
local fanhuipaixing = self._view:GetChild("btn_fanhuipaixing")
|
|
||||||
fanhuipaixing.visible = false
|
|
||||||
paixingxiangqing.visible = true
|
|
||||||
paixingxiangqing.onClick:Add(function()
|
|
||||||
paixingxiangqing.visible = false
|
|
||||||
fanhuipaixing.visible = true
|
|
||||||
self:SetPaixingxiangqing(1)
|
|
||||||
end)
|
|
||||||
fanhuipaixing.onClick:Add(function()
|
|
||||||
paixingxiangqing.visible = true
|
|
||||||
fanhuipaixing.visible = false
|
|
||||||
self:SetPaixingxiangqing(0)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
nextRoundBtn.onClick:Set(function()
|
||||||
if over ~= 2 then
|
|
||||||
if result.liuju then
|
|
||||||
ctr_type.selectedIndex = 3
|
|
||||||
else
|
|
||||||
local info_list = result.info_list
|
|
||||||
for i = 1, #info_list do
|
|
||||||
local is_win = info_list[i].is_win
|
|
||||||
if is_win then
|
|
||||||
if info_list[i].seat == room.self_player.seat then
|
|
||||||
ctr_type.selectedIndex = 1
|
|
||||||
else
|
|
||||||
ctr_type.selectedIndex = 2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if over == 0 then
|
|
||||||
_btnCtr.selectedIndex = 0
|
|
||||||
_sdkCtr.selectedIndex = 1
|
|
||||||
btn_confirm.onClick:Add(function()
|
|
||||||
local _gamectr = ControllerManager.GetController(GameController)
|
local _gamectr = ControllerManager.GetController(GameController)
|
||||||
_gamectr:PlayerReady()
|
_gamectr:PlayerReady()
|
||||||
self:DestroyWithCallback()
|
self:DestroyWithCallback()
|
||||||
end)
|
end)
|
||||||
self:AddClearItem(room, result.info_list, nil, over, result.niao, result.active_player)
|
|
||||||
elseif over == 1 then
|
nextRoundBtn2.onClick:Set(function()
|
||||||
_btnCtr.selectedIndex = 1
|
local _gamectr = ControllerManager.GetController(GameController)
|
||||||
_sdkCtr.selectedIndex = 1
|
_gamectr:PlayerReady()
|
||||||
btn_result.onClick:Add(function()
|
self:DestroyWithCallback()
|
||||||
self.maPaiCtr.selectedIndex = 0
|
|
||||||
_overCtr.selectedIndex = 1
|
|
||||||
_btnCtr.selectedIndex = 0
|
|
||||||
_sdkCtr.selectedIndex = 0
|
|
||||||
if self._qsinfo_view then
|
|
||||||
self._qsinfo_view:Dispose()
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
btn_close.onClick:Add(function()
|
|
||||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
self:AddClearItem(room, result.info_list, total_result.info_list, over, result.niao, result.active_player)
|
endRound.onClick:Set(function()
|
||||||
end
|
ViewManager.ChangeView(ViewManager.View_Family)
|
||||||
|
end)
|
||||||
|
|
||||||
|
if over == 0 then
|
||||||
|
_overCtr.selectedIndex = 0
|
||||||
|
self:fillResult0(room, peopleNum, result)
|
||||||
else
|
else
|
||||||
_overCtr.selectedIndex = 1
|
_overCtr.selectedIndex = 1
|
||||||
self.maPaiCtr.selectedIndex = 0
|
self:fillResult1(room, peopleNum, total_result)
|
||||||
btn_close.onClick:Add(function()
|
|
||||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|
||||||
end)
|
|
||||||
|
|
||||||
self:AddClearItem(room, nil, total_result.info_list, over)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function M:AddClearItem(room, data, total_data, over, niao, active_player)
|
function M:fillResult0(room, peopleNum, result)
|
||||||
local n = over + 1
|
local config = ExtendManager.GetExtendConfig(room.game_id)
|
||||||
local list_view1 = self._view:GetChild("player_list_1")
|
local mode = config:GetGameInfo()
|
||||||
local list_view2 = self._view:GetChild("player_list_2")
|
local gamePlay = mode:LoadConfigToDetail(json.encode(room.room_config.config))
|
||||||
|
self._view:GetChild("Label_GamePlay").title = string.format("第%s/%s局,%s", room.curren_round,
|
||||||
|
room.room_config.round, gamePlay)
|
||||||
|
for i = 1, peopleNum do
|
||||||
|
local playerInfoComp = self._view:GetChild(string.format("Comp_Player%d", i))
|
||||||
|
|
||||||
if 0 == over or 1 == over then
|
local allCardsList = playerInfoComp:GetChild("list_allCards")
|
||||||
table.sort(data, function(a, b) return a.seat < b.seat end)
|
local huCardBtn = playerInfoComp:GetChild("Btn_Card_Hu")
|
||||||
list_view1:RemoveChildrenToPool()
|
local jiangMaList = playerInfoComp:GetChild("list_JiangMa")
|
||||||
|
local ziMoCtr = playerInfoComp:GetController("isZiMo")
|
||||||
|
local dianPaoCtr = playerInfoComp:GetController("isPao")
|
||||||
|
local isMeCtr = playerInfoComp:GetController("IsMe")
|
||||||
|
|
||||||
for i = 1, #data do
|
local infoList = result.info_list[i]
|
||||||
local item = list_view1:AddItemFromPool()
|
local playInfo = room:GetPlayerBySeat(infoList.seat)
|
||||||
self:FillItemData(room, data[i], item, active_player, niao)
|
local fzCardInfo = playInfo.fz_list
|
||||||
end
|
local fzInfoNum = #fzCardInfo
|
||||||
if #data == 3 then
|
local handInfoNum = #infoList.hand_card
|
||||||
list_view1.lineGap = 54
|
|
||||||
elseif #data == 2 then
|
|
||||||
list_view1.lineGap = 108
|
|
||||||
end
|
|
||||||
if 1 == over then
|
|
||||||
self:FillItemData2(room, total_data, list_view2)
|
|
||||||
end
|
|
||||||
elseif 2 == over then
|
|
||||||
self:FillItemData2(room, total_data, list_view2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:FillItemData(room, data, item, active_player, niao)
|
self:fillHead(playInfo.self_user.head_url, playerInfoComp)
|
||||||
local _gamectr = ControllerManager.GetController(GameController)
|
|
||||||
local p = room:GetPlayerBySeat(data["seat"])
|
|
||||||
item:GetChild("playerName").text = p.self_user.nick_name
|
|
||||||
item:GetChild("lab_hp").text = "" --抓马
|
|
||||||
local user = room:GetPlayerBySeat(data["seat"]).self_user
|
|
||||||
local head = item:GetChild('head'):GetChild('n4')
|
|
||||||
ImageLoad.Load(user.head_url, head)
|
|
||||||
|
|
||||||
-- 手牌
|
playerInfoComp:GetChild("text_name").text = playInfo.self_user.nick_name
|
||||||
local hand_cards = data["hand_card"]
|
playerInfoComp:GetChild("Text_BoJing").text = infoList.jing_score >= 0 and
|
||||||
table.sort(hand_cards, ViewUtil.HandCardSort)
|
string.format("+%d", infoList.jing_score) or infoList.jing_score
|
||||||
local hand_list_view = item:GetChild("hand_card_list")
|
playerInfoComp:GetChild("Text_Gang").text = infoList.gang_score >= 0 and
|
||||||
hand_list_view:RemoveChildrenToPool()
|
string.format("+%d", infoList.gang_score) or infoList.gang_score
|
||||||
for i = 1, #hand_cards do
|
playerInfoComp:GetChild("Text_Hu").text = infoList.hu_score >= 0 and string.format("+%d", infoList.hu_score) or
|
||||||
local card = hand_list_view:AddItemFromPool()
|
infoList.hu_score
|
||||||
card.icon = "ui://Main_Majiang/202_" .. hand_cards[i]
|
playerInfoComp:GetChild("Text_Tatal").text = infoList.round_score >= 0 and
|
||||||
end
|
string.format("+%d", infoList.round_score) or infoList.round_score
|
||||||
hand_list_view.width = 52 * #hand_cards
|
|
||||||
|
|
||||||
local fz_card = p.fz_list
|
for j = 1, fzInfoNum do
|
||||||
local fz_card_list = item:GetChild("fz_card_list")
|
if fzCardInfo[j].type == FZType.Peng then
|
||||||
fz_card_list.width = 157 * #fz_card * 0.8
|
local item = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_FZ_3")
|
||||||
fz_card_list:RemoveChildrenToPool()
|
for l = 1, 3 do
|
||||||
|
local card = item:GetChild(string.format("Btn_Card%d", l))
|
||||||
for i = 1, #fz_card do
|
card.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), fzCardInfo[j].card)
|
||||||
if fz_card[i].type == FZType.Peng then
|
|
||||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
|
||||||
for j = 1, 3 do
|
|
||||||
local card = item:GetChild("card_" .. j)
|
|
||||||
card.icon = "ui://Main_Majiang/202_" .. fz_card[i].card
|
|
||||||
end
|
end
|
||||||
elseif fz_card[i].type == FZType.Chi then
|
elseif fzCardInfo[j].type == FZType.Chi then
|
||||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
local item = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_FZ_3")
|
||||||
for j = 1, 3 do
|
for l = 1, 3 do
|
||||||
local card = item:GetChild("card_" .. j)
|
local card = item:GetChild(string.format("Btn_Card%d", l))
|
||||||
card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_" .. fz_card[i].opcard[j]
|
card.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), fzCardInfo[j].opcard
|
||||||
|
[l])
|
||||||
end
|
end
|
||||||
elseif fz_card[i].type == FZType.Gang or fz_card[i].type == FZType.Gang_An or fz_card[i].type == FZType.Gang_Peng then
|
elseif fzCardInfo[j].type == FZType.Gang or fzCardInfo[j].type == FZType.Gang_An or fzCardInfo[j].type == FZType.Gang_Peng then
|
||||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_4")
|
local item = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_FZ_4")
|
||||||
for j = 1, 4 do
|
for l = 1, 4 do
|
||||||
local card = item:GetChild("card_" .. j)
|
local card = item:GetChild(string.format("Btn_Card%d", l))
|
||||||
if fz_card[i].type == FZType.Gang_An and j == 4 then
|
if fzCardInfo[j].type == FZType.Gang_An and j == 4 then
|
||||||
card.icon = "ui://Main_Majiang/202_00"
|
card.icon = "ui://Main_Majiang/202_00"
|
||||||
else
|
else
|
||||||
card.icon = "ui://Main_Majiang/202_" .. fz_card[i].card
|
card.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), fzCardInfo[j].card)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local huadd = data["hu_score"]
|
local handCardItem = allCardsList:AddItemFromPool("ui://Main_Majiang/Comp_HandCard")
|
||||||
local gangadd = data["gang_score"]
|
local handCardList = handCardItem:GetChild("list")
|
||||||
local jingadd = data["jing_score"]
|
handCardList:SetVirtual()
|
||||||
local total = data["round_score"]
|
handCardList.itemRenderer = function(index, obj)
|
||||||
local geng_zhuan = data["geng_zhuan"]
|
obj.icon = string.format("ui://Main_Majiang/%s202_%d", self:GetPrefix(), infoList.hand_card[index + 1])
|
||||||
local sp = " "
|
|
||||||
local str = "胡:" .. huadd .. "分"
|
|
||||||
if gangadd then
|
|
||||||
str = str .. sp .. "杠:" .. gangadd .. "分"
|
|
||||||
end
|
end
|
||||||
if jingadd then
|
handCardList.numItems = handInfoNum
|
||||||
str = str .. sp .. "博精:" .. jingadd .. "分"
|
allCardsList.width = 172 * fzInfoNum + 60 + (handInfoNum - 1) * 56 + 36 * (fzInfoNum)
|
||||||
|
|
||||||
|
if infoList.seat == room.self_player.seat then
|
||||||
|
isMeCtr.selectedIndex = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if infoList.is_win then
|
||||||
|
local winInfo = ""
|
||||||
|
for j = 1, #infoList.win_list do
|
||||||
|
winInfo = string.format("%s,%s", winInfo, Hu_Type_Name[infoList.win_list[j].type])
|
||||||
|
end
|
||||||
|
winInfo = string.sub(winInfo, 2, -1)
|
||||||
|
playerInfoComp:GetChild("text_huShow").text = winInfo
|
||||||
|
|
||||||
|
if room.isZiMoHu then
|
||||||
|
ziMoCtr.selectedIndex = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
huCardBtn.icon = string.format("ui://Main_Majiang/202_%d", infoList.win_card)
|
||||||
|
huCardBtn.visible = true
|
||||||
|
|
||||||
|
jiangMaList.visible = false
|
||||||
item:GetChild("score1").text = str
|
|
||||||
-- local total_score = data["total_score"]
|
|
||||||
if total >= 0 then
|
|
||||||
item:GetChild("score2").text = "+" .. total
|
|
||||||
item:GetChild("score2").grayed = false
|
|
||||||
else
|
else
|
||||||
item:GetChild("score2").text = total
|
playerInfoComp:GetChild("text_huShow").text = ""
|
||||||
item:GetChild("score2").grayed = true
|
if not room.isZiMoHu and playInfo.self_user.account_id == result.active_player then
|
||||||
|
dianPaoCtr.selectedIndex = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
huCardBtn.visible = false
|
||||||
--计算牌型
|
jiangMaList.visible = false
|
||||||
local totalPeson = DataManager.CurrenRoom.room_config.people_num - 1
|
|
||||||
local win_list = data["win_list"]
|
|
||||||
local is_win = data["is_win"] or false
|
|
||||||
local str1 = ""
|
|
||||||
sp = "、"
|
|
||||||
if is_win then
|
|
||||||
if win_list then
|
|
||||||
if DataManager.CurrenRoom.isZiMoHu then
|
|
||||||
str1 = "自摸"
|
|
||||||
else
|
|
||||||
str1 = "接炮"
|
|
||||||
end
|
|
||||||
for i = 1, #win_list do
|
|
||||||
local huName = Hu_Type_Name[win_list[i].type]
|
|
||||||
if huName then
|
|
||||||
str1 = str1 .. sp .. huName .. "x" .. win_list[i].score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " +" .. huadd .. "分"
|
|
||||||
end
|
|
||||||
else
|
|
||||||
printlog("输家============")
|
|
||||||
if DataManager.CurrenRoom.isZiMoHu then
|
|
||||||
printlog("自摸处理============")
|
|
||||||
--str1=""
|
|
||||||
if #self.WinList == 1 then
|
|
||||||
for i = 1, #self.WinList do
|
|
||||||
for j = 1, #self.WinList[i] do
|
|
||||||
local huName = Hu_Type_Name[self.WinList[i][j].type]
|
|
||||||
if huName then
|
|
||||||
if j == 1 then
|
|
||||||
str1 = str1 .. huName .. "x" .. self.WinList[i][j].score
|
|
||||||
else
|
|
||||||
str1 = str1 .. sp .. huName .. "x" .. self.WinList[i][j].score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " " .. huadd .. "分"
|
|
||||||
else
|
|
||||||
printlog("服务端自摸计算异常===>>>")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
printlog("非自摸处理====>>>")
|
|
||||||
--点炮 一炮多响
|
|
||||||
local yipaoduoxiang = false
|
|
||||||
if #self.WinList > 1 then
|
|
||||||
yipaoduoxiang = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if yipaoduoxiang then
|
|
||||||
printlog("一炮多响====>>>")
|
|
||||||
str = "点炮"
|
|
||||||
local allTypeList = {}
|
|
||||||
local isHas = false
|
|
||||||
for i = 1, #self.WinList do
|
|
||||||
for j = 1, #self.WinList[i] do
|
|
||||||
isHas = IsHasDictionary(self.WinList[i][j].type, allTypeList)
|
|
||||||
if isHas == false then
|
|
||||||
table.insert(allTypeList, self.WinList[i][j].type)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if #allTypeList > 0 then
|
function M:fillResult1(room, peopleNum, total_result)
|
||||||
for i = 1, #allTypeList do
|
local gameNameAndRoomIDText = self._view:GetChild("Text_GameNameAndRoomID")
|
||||||
local huName = Hu_Type_Name[allTypeList[i]]
|
local familyIDText = self._view:GetChild("Text_FamilyID")
|
||||||
if huName then
|
for i, v in pairs(room.self_player.self_user.games) do
|
||||||
str1 = str1 .. huName .. "、"
|
if v.game_id == room.game_id then
|
||||||
|
gameNameAndRoomIDText.text = string.format("%s 房号:%s", v.name, room.room_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
str1 = str1 .. " " .. huadd .. "分"
|
if #gameNameAndRoomIDText.text <= 0 then
|
||||||
|
gameNameAndRoomIDText.text = string.format("房号:%s", room.room_id)
|
||||||
end
|
end
|
||||||
else
|
|
||||||
if p.self_user.account_id == active_player and is_win == false and not data["liuju"] then
|
|
||||||
str1 = "点炮"
|
|
||||||
if #self.WinList == 1 then
|
|
||||||
for i = 1, # self.WinList do
|
|
||||||
for j = 1, #self.WinList[i] do
|
|
||||||
local huName = Hu_Type_Name[self.WinList[i][j].type]
|
|
||||||
if huName then
|
|
||||||
str1 = str1 .. sp .. huName .. "x" .. self.WinList[i][j].score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " " .. huadd .. "分"
|
|
||||||
else
|
|
||||||
printlog("服务端自摸计算异常===>>>")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--
|
|
||||||
printlog("牌型计算==>>>", str1)
|
|
||||||
|
|
||||||
if data["ming_gang_num"] > 0 then
|
|
||||||
str1 = str1 .. " 明杠x" .. data["ming_gang_num"]
|
|
||||||
end
|
|
||||||
|
|
||||||
if data["an_gang_num"] > 0 then
|
|
||||||
str1 = str1 .. " 暗杠x" .. data["an_gang_num"]
|
|
||||||
end
|
|
||||||
|
|
||||||
if data["dian_gang_num"] > 0 then
|
|
||||||
str1 = str1 .. " 点杠x" .. data["dian_gang_num"]
|
|
||||||
end
|
|
||||||
|
|
||||||
if gangadd ~= 0 then
|
|
||||||
if gangadd > 0 then
|
|
||||||
str1 = str1 .. " +" .. gangadd .. "分"
|
|
||||||
else
|
|
||||||
str1 = str1 .. " " .. gangadd .. "分"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if data["ma_geng_gong"] and data["ma_geng_gong"] ~= 0 then
|
|
||||||
if data["ma_geng_gong"] > 0 then
|
|
||||||
str1 = str1 .. " 马跟杠:+" .. data["ma_geng_gong"] .. "分"
|
|
||||||
else
|
|
||||||
str1 = str1 .. " 马跟杠:" .. data["ma_geng_gong"] .. "分"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if geng_zhuan and geng_zhuan ~= 0 then
|
|
||||||
if geng_zhuan > 0 then
|
|
||||||
str1 = str1 .. " 跟庄:+" .. geng_zhuan .. "分"
|
|
||||||
else
|
|
||||||
str1 = str1 .. " 跟庄:" .. geng_zhuan .. "分"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
item:GetChild("score3").text = str1
|
|
||||||
item:GetChild("score4").text = str1
|
|
||||||
local paixingCtr = item:GetController("detail")
|
|
||||||
table.insert(self.PaiXingXiangQingCtrList, paixingCtr)
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
local hp_nonnegative = room:checkHpNonnegative()
|
|
||||||
item:GetController("nonnegative").selectedIndex = hp_nonnegative and 1 or 0
|
|
||||||
if hp_nonnegative then
|
|
||||||
local hp_info = data.hp_info
|
|
||||||
local ctr_hp_limit = item:GetController("hp_limit")
|
|
||||||
local hp = d2ad(hp_info.round_actual_hp)
|
|
||||||
if hp >= 0 then hp = "+" .. tostring(hp) end
|
|
||||||
item:GetChild("tex_hp").text = hp
|
|
||||||
ctr_hp_limit.selectedIndex = hp_info.upper_limit and 1 or 0
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
item:GetController("win").selectedIndex = is_win and 0 or 1
|
|
||||||
if p.self_user.account_id == active_player and is_win == false and total < 0 then
|
|
||||||
item:GetController("win").selectedIndex = 2
|
|
||||||
end
|
|
||||||
|
|
||||||
if is_win then
|
|
||||||
item:GetController("bg").selectedIndex = 1
|
|
||||||
else
|
|
||||||
item:GetController("bg").selectedIndex = 0
|
|
||||||
end
|
|
||||||
local win_card = item:GetChild("win_card")
|
|
||||||
win_card.icon = "ui://Main_Majiang/202_" .. data["win_card"]
|
|
||||||
|
|
||||||
if niao and #niao > 0 then
|
|
||||||
local currentNiaoList = self:CalculateNiao(niao, data["seat"])
|
|
||||||
if currentNiaoList and #currentNiaoList > 0 then
|
|
||||||
local lst_niao = item:GetChild("list_niao")
|
|
||||||
lst_niao:RemoveChildrenToPool()
|
|
||||||
for i = 1, #currentNiaoList do
|
|
||||||
if currentNiaoList[i].score > 0 then
|
|
||||||
local card_niao = lst_niao:AddItemFromPool()
|
|
||||||
card_niao.icon = "ui://Main_Majiang/202_" .. currentNiaoList[i].card
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if p.seat == room.banker_seat then
|
|
||||||
item:GetController("bank").selectedIndex = 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:CalculateNiao(niaoList, seat)
|
|
||||||
local tempNiao = {}
|
|
||||||
for i = 1, #niaoList do
|
|
||||||
if niaoList[i].seat == seat then
|
|
||||||
table.insert(tempNiao, niaoList[i])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return tempNiao
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:FillItemData2(room, data, list)
|
|
||||||
-- 赋值result_info,聊天室分享需要
|
|
||||||
local player_list = {}
|
|
||||||
for i = 1, #data do
|
|
||||||
player_list[i] = {}
|
|
||||||
local user = room:GetPlayerBySeat(data[i].seat).self_user
|
|
||||||
player_list[i].id = user.account_id
|
|
||||||
player_list[i].hp_info = data[i].hp_info
|
|
||||||
player_list[i].score = data[i].total_score
|
|
||||||
player_list[i].house = room.owner_id == player_list[i].id and 1 or 0
|
|
||||||
player_list[i].nick = user.nick_name
|
|
||||||
player_list[i].head_url = user.head_url
|
|
||||||
|
|
||||||
local settle_log = data[i].settle_log
|
|
||||||
player_list[i].param = {}
|
|
||||||
player_list[i].param[1] = {}
|
|
||||||
player_list[i].param[1].key = "自摸次数:"
|
|
||||||
player_list[i].param[1].value = tostring(data[i].settle_log.zimo)
|
|
||||||
player_list[i].param[2] = {}
|
|
||||||
player_list[i].param[2].key = "接炮次数:"
|
|
||||||
player_list[i].param[2].value = tostring(data[i].settle_log.jie_pao)
|
|
||||||
player_list[i].param[3] = {}
|
|
||||||
player_list[i].param[3].key = "点炮次数:"
|
|
||||||
player_list[i].param[3].value = tostring(data[i].settle_log.dian_pao)
|
|
||||||
player_list[i].param[4] = {}
|
|
||||||
player_list[i].param[4].key = "暗杠次数:"
|
|
||||||
player_list[i].param[4].value = tostring(data[i].settle_log.an_kong)
|
|
||||||
player_list[i].param[5] = {}
|
|
||||||
player_list[i].param[5].key = "明杠次数:"
|
|
||||||
player_list[i].param[5].value = tostring(data[i].settle_log.ming_kong)
|
|
||||||
end
|
|
||||||
|
|
||||||
local round = room.room_config.round
|
|
||||||
self:GenerateRoomResultInfo(round, room.room_config:GetGameName(), room.room_id, room.create_time, player_list)
|
|
||||||
local big_result = self._view:GetChild("big_result")
|
|
||||||
big_result:GetChild("txt_room_info").text = string.format("%s 房号%s 局%s/%s", os.date("%Y/%m/%d", os.time()),
|
|
||||||
room.room_id, room.curren_round, room.room_config.round)
|
|
||||||
local lst_p = big_result:GetChild("player_list")
|
|
||||||
if #player_list == 3 then
|
|
||||||
lst_p.columnGap = 108
|
|
||||||
elseif #player_list == 2 then
|
|
||||||
lst_p.columnGap = 208
|
|
||||||
end
|
|
||||||
|
|
||||||
self:InitBigResult(room, 30)
|
|
||||||
local show_detail = room.hpOnOff == 1
|
|
||||||
for i = 1, lst_p.numChildren do
|
|
||||||
local com_p = lst_p:GetChildAt(i - 1)
|
|
||||||
com_p:GetController("jsicon").selectedIndex = i - 1
|
|
||||||
local list_param = com_p:GetChild("list_param")
|
|
||||||
for j = 1, list_param.numChildren do
|
|
||||||
local tem = list_param:GetChildAt(j - 1)
|
|
||||||
tem:GetChild("txt_value").textFormat.size = 30
|
|
||||||
end
|
|
||||||
if show_detail then
|
|
||||||
local score = 0
|
|
||||||
if com_p:GetController("pn").selectedIndex == 0 then
|
|
||||||
score = com_p:GetChild("txt_navigate").text
|
|
||||||
else
|
|
||||||
score = com_p:GetChild("txt_positive").text
|
|
||||||
end
|
|
||||||
score = score / room.score_times
|
|
||||||
com_p:GetChild("tex_detail_score").text = string.format("%s × %s倍", score, room.score_times)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if room.group_id ~= 0 then
|
if room.group_id ~= 0 then
|
||||||
big_result:GetController("group").selectedIndex = 1
|
familyIDText.text = string.format("俱乐部:%s", room.group_id)
|
||||||
|
else
|
||||||
|
familyIDText.visible = false
|
||||||
|
end
|
||||||
|
self._view:GetChild("Text_RoundNum").text = string.format("局数:%s/%s", room.curren_round, room.room_config.round)
|
||||||
|
self._view:GetChild("Text_Time").text = os.date("%Y-%m-%d %H:%M:%S", os.time())
|
||||||
|
|
||||||
|
for i = 1, peopleNum do
|
||||||
|
local resultInfoComp = self._view:GetChild(string.format("Comp_ResultInfo%d", i))
|
||||||
|
local totalInfoList = total_result.info_list[i]
|
||||||
|
local playInfo = room:GetPlayerBySeat(totalInfoList.seat)
|
||||||
|
|
||||||
|
self:fillHead(playInfo.self_user.head_url, resultInfoComp)
|
||||||
|
|
||||||
|
resultInfoComp:GetChild('Text_Name').text = playInfo.self_user.nick_name
|
||||||
|
resultInfoComp:GetChild('Text_ID').text = string.format("ID:%s", playInfo.self_user.account_id)
|
||||||
|
resultInfoComp:GetChild('Text_TotalScore').text = totalInfoList.total_score >= 0 and
|
||||||
|
string.format("+%s", totalInfoList.total_score) or totalInfoList.total_score
|
||||||
|
resultInfoComp:GetChild('Text_ZiMo').text = string.format("自摸 %d次", totalInfoList.settle_log.zimo or 0)
|
||||||
|
resultInfoComp:GetChild('Text_JiePao').text = string.format("接炮 %d次", totalInfoList.settle_log.jiepao or 0)
|
||||||
|
resultInfoComp:GetChild('Text_FangPao').text = string.format("放炮 %d次", totalInfoList.settle_log.fangpao or 0)
|
||||||
|
resultInfoComp:GetChild('Text_AnGang').text = string.format("暗杠 %d次", totalInfoList.settle_log.an_kong or 0)
|
||||||
|
resultInfoComp:GetChild('Text_MingGang').text = string.format("明杠 %d次",
|
||||||
|
totalInfoList.settle_log.ming_kong or 0)
|
||||||
|
resultInfoComp:GetChild('Text_FangGang').text = string.format("放杠 %d次",
|
||||||
|
totalInfoList.settle_log.fanggang or 0)
|
||||||
|
|
||||||
|
resultInfoComp:GetController("win").selectedIndex = totalInfoList.total_score >= 0 and 1 or 0
|
||||||
end
|
end
|
||||||
DataManager.CurrenRoom = nil
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function M:LoadHead(p, room)
|
function M:fillHead(url, view)
|
||||||
local btn_head = self._view:GetChild("btn_head")
|
ImageLoad.Load(url, view:GetChild("Btn_Head")._iconObject)
|
||||||
for i = 1, #room.player_list do
|
|
||||||
local player = room.player_list[i]
|
|
||||||
if p.seat == player.seat and player.self_user.head_url ~= "" then
|
|
||||||
ImageLoad.Load(player.self_user.head_url, btn_head.icon)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local prefix
|
local prefix
|
||||||
|
|
|
||||||
|
|
@ -1,605 +0,0 @@
|
||||||
require("Game.View.ResultView")
|
|
||||||
local Hu_Type_Name = import(".CS_Win_Type")
|
|
||||||
|
|
||||||
local EXClearingView = {}
|
|
||||||
|
|
||||||
local M = EXClearingView
|
|
||||||
|
|
||||||
function EXClearingView.new(blur_view)
|
|
||||||
setmetatable(M, { __index = ResultView })
|
|
||||||
local self = setmetatable({}, { __index = M })
|
|
||||||
self._full = true
|
|
||||||
ResultView.init(self, "ui://Main_Majiang/clearing_jiangxi")
|
|
||||||
|
|
||||||
self._currenIndex = 0
|
|
||||||
self._blur_view = blur_view
|
|
||||||
self._close_zone = false
|
|
||||||
self:InitMaPai()
|
|
||||||
|
|
||||||
return self
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:InitMaPai()
|
|
||||||
self.maPaiCtr = self._view:GetController("mapai")
|
|
||||||
self.maPaiCtr.selectedIndex = 0
|
|
||||||
|
|
||||||
self.maPaiList = {}
|
|
||||||
|
|
||||||
for i = 1, 8 do
|
|
||||||
local tempMP = self._view:GetChild("niao" .. i)
|
|
||||||
table.insert(self.maPaiList, tempMP)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:IsMapaiShow(niao, isShow)
|
|
||||||
if niao then
|
|
||||||
niao.visible = isShow
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:SetMaPaiValue(niao, value)
|
|
||||||
if niao then
|
|
||||||
niao.icon = 'ui://Main_Majiang/' .. get_majiang_prefix(DataManager.CurrenRoom.game_id) .. "201_" .. value
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:SetMaPaiColor(niao, num)
|
|
||||||
niao:GetController("color").selectedIndex = num
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:HideAllMapai()
|
|
||||||
for i = 1, #self.maPaiList do
|
|
||||||
self:IsMapaiShow(self.maPaiList[i], false)
|
|
||||||
self:SetMaPaiColor(self.maPaiList[i], 0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:ShowSelectMaPai(niaoList)
|
|
||||||
if niaoList and #niaoList > 0 then
|
|
||||||
self.maPaiCtr.selectedIndex = 1
|
|
||||||
self:HideAllMapai()
|
|
||||||
for i = 1, #niaoList do
|
|
||||||
self:IsMapaiShow(self.maPaiList[i], true)
|
|
||||||
self:SetMaPaiValue(self.maPaiList[i], niaoList[i].card)
|
|
||||||
if niaoList[i].score > 0 then
|
|
||||||
self:SetMaPaiColor(self.maPaiList[i], 2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
self.maPaiCtr.selectedIndex = 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:CalculatePaixingInfo(result)
|
|
||||||
self.WinList = {}
|
|
||||||
if result.info_list and #result.info_list > 0 then
|
|
||||||
for i = 1, #result.info_list do
|
|
||||||
if result.info_list[i].win_list and #result.info_list[i].win_list > 0 then
|
|
||||||
table.insert(self.WinList, result.info_list[i].win_list)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
printlog("牌型列表====>>>")
|
|
||||||
pt(self.WinList)
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:SetPaixingxiangqing(num)
|
|
||||||
for i = 1, #self.PaiXingXiangQingCtrList do
|
|
||||||
if self.PaiXingXiangQingCtrList[i] then
|
|
||||||
self.PaiXingXiangQingCtrList[i].selectedIndex = num
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:InitData(over, room, result, total_result, callback)
|
|
||||||
self._callback = callback
|
|
||||||
local _overCtr = self._view:GetController("over")
|
|
||||||
local btn_confirm = self._view:GetChild("btn_confirm")
|
|
||||||
local btn_result = self._view:GetChild("btn_showResult")
|
|
||||||
local btn_close = self._view:GetChild("big_result"):GetChild("btn_close")
|
|
||||||
local _btnCtr = self._view:GetController("button")
|
|
||||||
local _sdkCtr = self._view:GetController("sdk")
|
|
||||||
local ctr_type = self._view:GetController("type")
|
|
||||||
|
|
||||||
self._view:GetChild("tex_roominfo").text = string.format("房号%s 局%s/%s %s", room.room_id, room.curren_round,
|
|
||||||
room.room_config.round, os.date("%Y-%m-%d %H:%M:%S", os.time()))
|
|
||||||
self._view:GetChild("tex_gameinfo").text = string.gsub(room.room_config:GetDes2(), "\r", "")
|
|
||||||
|
|
||||||
if result then
|
|
||||||
self:ShowSelectMaPai(result.niao)
|
|
||||||
self:CalculatePaixingInfo(result)
|
|
||||||
end
|
|
||||||
|
|
||||||
self.PaiXingXiangQingCtrList = {}
|
|
||||||
|
|
||||||
local paixingxiangqing = self._view:GetChild("btn_detal")
|
|
||||||
local fanhuipaixing = self._view:GetChild("btn_fanhuipaixing")
|
|
||||||
fanhuipaixing.visible = false
|
|
||||||
paixingxiangqing.visible = true
|
|
||||||
paixingxiangqing.onClick:Add(function()
|
|
||||||
paixingxiangqing.visible = false
|
|
||||||
fanhuipaixing.visible = true
|
|
||||||
self:SetPaixingxiangqing(1)
|
|
||||||
end)
|
|
||||||
fanhuipaixing.onClick:Add(function()
|
|
||||||
paixingxiangqing.visible = true
|
|
||||||
fanhuipaixing.visible = false
|
|
||||||
self:SetPaixingxiangqing(0)
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
if over ~= 2 then
|
|
||||||
if result.liuju then
|
|
||||||
ctr_type.selectedIndex = 3
|
|
||||||
else
|
|
||||||
local info_list = result.info_list
|
|
||||||
for i = 1, #info_list do
|
|
||||||
local is_win = info_list[i].is_win
|
|
||||||
if is_win then
|
|
||||||
if info_list[i].seat == room.self_player.seat then
|
|
||||||
ctr_type.selectedIndex = 1
|
|
||||||
else
|
|
||||||
ctr_type.selectedIndex = 2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if over == 0 then
|
|
||||||
_btnCtr.selectedIndex = 0
|
|
||||||
_sdkCtr.selectedIndex = 1
|
|
||||||
btn_confirm.onClick:Add(function()
|
|
||||||
local _gamectr = ControllerManager.GetController(GameController)
|
|
||||||
_gamectr:PlayerReady()
|
|
||||||
self:DestroyWithCallback()
|
|
||||||
end)
|
|
||||||
self:AddClearItem(room, result.info_list, nil, over, result.niao, result.active_player)
|
|
||||||
elseif over == 1 then
|
|
||||||
_btnCtr.selectedIndex = 1
|
|
||||||
_sdkCtr.selectedIndex = 1
|
|
||||||
btn_result.onClick:Add(function()
|
|
||||||
self.maPaiCtr.selectedIndex = 0
|
|
||||||
_overCtr.selectedIndex = 1
|
|
||||||
_btnCtr.selectedIndex = 0
|
|
||||||
_sdkCtr.selectedIndex = 0
|
|
||||||
if self._qsinfo_view then
|
|
||||||
self._qsinfo_view:Dispose()
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
btn_close.onClick:Add(function()
|
|
||||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|
||||||
end)
|
|
||||||
|
|
||||||
self:AddClearItem(room, result.info_list, total_result.info_list, over, result.niao, result.active_player)
|
|
||||||
end
|
|
||||||
else
|
|
||||||
_overCtr.selectedIndex = 1
|
|
||||||
self.maPaiCtr.selectedIndex = 0
|
|
||||||
btn_close.onClick:Add(function()
|
|
||||||
ViewManager.ChangeView(ViewManager.View_Lobby)
|
|
||||||
end)
|
|
||||||
|
|
||||||
self:AddClearItem(room, nil, total_result.info_list, over)
|
|
||||||
end
|
|
||||||
-----------------------lingmeng----------------------------
|
|
||||||
local showClearMainBtn = self._view:GetChild("btn_showClearMain")
|
|
||||||
local nextRoundBtn = self._view:GetChild("btn_nextRound")
|
|
||||||
local MainCtr = self._view:GetController("main")
|
|
||||||
|
|
||||||
showClearMainBtn.onClick:Set(function()
|
|
||||||
MainCtr.selectedIndex = 1
|
|
||||||
end)
|
|
||||||
|
|
||||||
nextRoundBtn.onClick:Set(function()
|
|
||||||
local _gamectr = ControllerManager.GetController(GameController)
|
|
||||||
_gamectr:PlayerReady()
|
|
||||||
self:DestroyWithCallback()
|
|
||||||
end)
|
|
||||||
-----------------------------------------------------------
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:AddClearItem(room, data, total_data, over, niao, active_player)
|
|
||||||
local n = over + 1
|
|
||||||
local list_view1 = self._view:GetChild("player_list_1")
|
|
||||||
local list_view2 = self._view:GetChild("player_list_2")
|
|
||||||
|
|
||||||
if 0 == over or 1 == over then
|
|
||||||
table.sort(data, function(a, b) return a.seat < b.seat end)
|
|
||||||
list_view1:RemoveChildrenToPool()
|
|
||||||
|
|
||||||
for i = 1, #data do
|
|
||||||
local item = list_view1:AddItemFromPool()
|
|
||||||
self:FillItemData(room, data[i], item, active_player, niao)
|
|
||||||
end
|
|
||||||
if #data == 3 then
|
|
||||||
list_view1.lineGap = 54
|
|
||||||
elseif #data == 2 then
|
|
||||||
list_view1.lineGap = 108
|
|
||||||
end
|
|
||||||
if 1 == over then
|
|
||||||
self:FillItemData2(room, total_data, list_view2)
|
|
||||||
end
|
|
||||||
elseif 2 == over then
|
|
||||||
self:FillItemData2(room, total_data, list_view2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:FillItemData(room, data, item, active_player, niao)
|
|
||||||
local _gamectr = ControllerManager.GetController(GameController)
|
|
||||||
local p = room:GetPlayerBySeat(data["seat"])
|
|
||||||
item:GetChild("playerName").text = p.self_user.nick_name
|
|
||||||
item:GetChild("lab_hp").text = "" --抓马
|
|
||||||
local user = room:GetPlayerBySeat(data["seat"]).self_user
|
|
||||||
local head = item:GetChild('head'):GetChild('n4')
|
|
||||||
ImageLoad.Load(user.head_url, head)
|
|
||||||
|
|
||||||
-- 手牌
|
|
||||||
local hand_cards = data["hand_card"]
|
|
||||||
table.sort(hand_cards, ViewUtil.HandCardSort)
|
|
||||||
local hand_list_view = item:GetChild("hand_card_list")
|
|
||||||
hand_list_view:RemoveChildrenToPool()
|
|
||||||
for i = 1, #hand_cards do
|
|
||||||
local card = hand_list_view:AddItemFromPool()
|
|
||||||
card.icon = "ui://Main_Majiang/202_" .. hand_cards[i]
|
|
||||||
end
|
|
||||||
hand_list_view.width = 52 * #hand_cards
|
|
||||||
|
|
||||||
local fz_card = p.fz_list
|
|
||||||
local fz_card_list = item:GetChild("fz_card_list")
|
|
||||||
fz_card_list.width = 157 * #fz_card * 0.8
|
|
||||||
fz_card_list:RemoveChildrenToPool()
|
|
||||||
|
|
||||||
for i = 1, #fz_card do
|
|
||||||
if fz_card[i].type == FZType.Peng then
|
|
||||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
|
||||||
for j = 1, 3 do
|
|
||||||
local card = item:GetChild("card_" .. j)
|
|
||||||
card.icon = "ui://Main_Majiang/202_" .. fz_card[i].card
|
|
||||||
end
|
|
||||||
elseif fz_card[i].type == FZType.Chi then
|
|
||||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_3")
|
|
||||||
for j = 1, 3 do
|
|
||||||
local card = item:GetChild("card_" .. j)
|
|
||||||
card.icon = "ui://Main_Majiang/" .. self:GetPrefix() .. "202_" .. fz_card[i].opcard[j]
|
|
||||||
end
|
|
||||||
elseif fz_card[i].type == FZType.Gang or fz_card[i].type == FZType.Gang_An or fz_card[i].type == FZType.Gang_Peng then
|
|
||||||
local item = fz_card_list:AddItemFromPool("ui://Main_Majiang/clearing_fz_4")
|
|
||||||
for j = 1, 4 do
|
|
||||||
local card = item:GetChild("card_" .. j)
|
|
||||||
if fz_card[i].type == FZType.Gang_An and j == 4 then
|
|
||||||
card.icon = "ui://Main_Majiang/202_00"
|
|
||||||
else
|
|
||||||
card.icon = "ui://Main_Majiang/202_" .. fz_card[i].card
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local huadd = data["hu_score"]
|
|
||||||
local gangadd = data["gang_score"]
|
|
||||||
local jingadd = data["jing_score"]
|
|
||||||
local total = data["round_score"]
|
|
||||||
local geng_zhuan = data["geng_zhuan"]
|
|
||||||
local sp = " "
|
|
||||||
local str = "胡:" .. huadd .. "分"
|
|
||||||
if gangadd then
|
|
||||||
str = str .. sp .. "杠:" .. gangadd .. "分"
|
|
||||||
end
|
|
||||||
if jingadd then
|
|
||||||
str = str .. sp .. "博精:" .. jingadd .. "分"
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
item:GetChild("score1").text = str
|
|
||||||
-- local total_score = data["total_score"]
|
|
||||||
if total >= 0 then
|
|
||||||
item:GetChild("score2").text = "+" .. total
|
|
||||||
item:GetChild("score2").grayed = false
|
|
||||||
else
|
|
||||||
item:GetChild("score2").text = total
|
|
||||||
item:GetChild("score2").grayed = true
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
--计算牌型
|
|
||||||
local totalPeson = DataManager.CurrenRoom.room_config.people_num - 1
|
|
||||||
local win_list = data["win_list"]
|
|
||||||
local is_win = data["is_win"] or false
|
|
||||||
local str1 = ""
|
|
||||||
sp = "、"
|
|
||||||
if is_win then
|
|
||||||
if win_list then
|
|
||||||
if DataManager.CurrenRoom.isZiMoHu then
|
|
||||||
str1 = "自摸"
|
|
||||||
else
|
|
||||||
str1 = "接炮"
|
|
||||||
end
|
|
||||||
for i = 1, #win_list do
|
|
||||||
local huName = Hu_Type_Name[win_list[i].type]
|
|
||||||
if huName then
|
|
||||||
str1 = str1 .. sp .. huName .. "x" .. win_list[i].score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " +" .. huadd .. "分"
|
|
||||||
end
|
|
||||||
else
|
|
||||||
printlog("输家============")
|
|
||||||
if DataManager.CurrenRoom.isZiMoHu then
|
|
||||||
printlog("自摸处理============")
|
|
||||||
--str1=""
|
|
||||||
if #self.WinList == 1 then
|
|
||||||
for i = 1, #self.WinList do
|
|
||||||
for j = 1, #self.WinList[i] do
|
|
||||||
local huName = Hu_Type_Name[self.WinList[i][j].type]
|
|
||||||
if huName then
|
|
||||||
if j == 1 then
|
|
||||||
str1 = str1 .. huName .. "x" .. self.WinList[i][j].score
|
|
||||||
else
|
|
||||||
str1 = str1 .. sp .. huName .. "x" .. self.WinList[i][j].score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " " .. huadd .. "分"
|
|
||||||
else
|
|
||||||
printlog("服务端自摸计算异常===>>>")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
printlog("非自摸处理====>>>")
|
|
||||||
--点炮 一炮多响
|
|
||||||
local yipaoduoxiang = false
|
|
||||||
if #self.WinList > 1 then
|
|
||||||
yipaoduoxiang = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if yipaoduoxiang then
|
|
||||||
printlog("一炮多响====>>>")
|
|
||||||
str = "点炮"
|
|
||||||
local allTypeList = {}
|
|
||||||
local isHas = false
|
|
||||||
for i = 1, #self.WinList do
|
|
||||||
for j = 1, #self.WinList[i] do
|
|
||||||
isHas = IsHasDictionary(self.WinList[i][j].type, allTypeList)
|
|
||||||
if isHas == false then
|
|
||||||
table.insert(allTypeList, self.WinList[i][j].type)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if #allTypeList > 0 then
|
|
||||||
for i = 1, #allTypeList do
|
|
||||||
local huName = Hu_Type_Name[allTypeList[i]]
|
|
||||||
if huName then
|
|
||||||
str1 = str1 .. huName .. "、"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " " .. huadd .. "分"
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if p.self_user.account_id == active_player and is_win == false and not data["liuju"] then
|
|
||||||
str1 = "点炮"
|
|
||||||
if #self.WinList == 1 then
|
|
||||||
for i = 1, # self.WinList do
|
|
||||||
for j = 1, #self.WinList[i] do
|
|
||||||
local huName = Hu_Type_Name[self.WinList[i][j].type]
|
|
||||||
if huName then
|
|
||||||
str1 = str1 .. sp .. huName .. "x" .. self.WinList[i][j].score
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
str1 = str1 .. " " .. huadd .. "分"
|
|
||||||
else
|
|
||||||
printlog("服务端自摸计算异常===>>>")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
--
|
|
||||||
printlog("牌型计算==>>>", str1)
|
|
||||||
|
|
||||||
if data["ming_gang_num"] > 0 then
|
|
||||||
str1 = str1 .. " 明杠x" .. data["ming_gang_num"]
|
|
||||||
end
|
|
||||||
|
|
||||||
if data["an_gang_num"] > 0 then
|
|
||||||
str1 = str1 .. " 暗杠x" .. data["an_gang_num"]
|
|
||||||
end
|
|
||||||
|
|
||||||
if data["dian_gang_num"] > 0 then
|
|
||||||
str1 = str1 .. " 点杠x" .. data["dian_gang_num"]
|
|
||||||
end
|
|
||||||
|
|
||||||
if gangadd ~= 0 then
|
|
||||||
if gangadd > 0 then
|
|
||||||
str1 = str1 .. " +" .. gangadd .. "分"
|
|
||||||
else
|
|
||||||
str1 = str1 .. " " .. gangadd .. "分"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if data["ma_geng_gong"] and data["ma_geng_gong"] ~= 0 then
|
|
||||||
if data["ma_geng_gong"] > 0 then
|
|
||||||
str1 = str1 .. " 马跟杠:+" .. data["ma_geng_gong"] .. "分"
|
|
||||||
else
|
|
||||||
str1 = str1 .. " 马跟杠:" .. data["ma_geng_gong"] .. "分"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if geng_zhuan and geng_zhuan ~= 0 then
|
|
||||||
if geng_zhuan > 0 then
|
|
||||||
str1 = str1 .. " 跟庄:+" .. geng_zhuan .. "分"
|
|
||||||
else
|
|
||||||
str1 = str1 .. " 跟庄:" .. geng_zhuan .. "分"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
item:GetChild("score3").text = str1
|
|
||||||
item:GetChild("score4").text = str1
|
|
||||||
local paixingCtr = item:GetController("detail")
|
|
||||||
table.insert(self.PaiXingXiangQingCtrList, paixingCtr)
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
local hp_nonnegative = room:checkHpNonnegative()
|
|
||||||
item:GetController("nonnegative").selectedIndex = hp_nonnegative and 1 or 0
|
|
||||||
if hp_nonnegative then
|
|
||||||
local hp_info = data.hp_info
|
|
||||||
local ctr_hp_limit = item:GetController("hp_limit")
|
|
||||||
local hp = d2ad(hp_info.round_actual_hp)
|
|
||||||
if hp >= 0 then hp = "+" .. tostring(hp) end
|
|
||||||
item:GetChild("tex_hp").text = hp
|
|
||||||
ctr_hp_limit.selectedIndex = hp_info.upper_limit and 1 or 0
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
item:GetController("win").selectedIndex = is_win and 0 or 1
|
|
||||||
if p.self_user.account_id == active_player and is_win == false and total < 0 then
|
|
||||||
item:GetController("win").selectedIndex = 2
|
|
||||||
end
|
|
||||||
|
|
||||||
if is_win then
|
|
||||||
item:GetController("bg").selectedIndex = 1
|
|
||||||
else
|
|
||||||
item:GetController("bg").selectedIndex = 0
|
|
||||||
end
|
|
||||||
local win_card = item:GetChild("win_card")
|
|
||||||
win_card.icon = "ui://Main_Majiang/202_" .. data["win_card"]
|
|
||||||
|
|
||||||
if niao and #niao > 0 then
|
|
||||||
local currentNiaoList = self:CalculateNiao(niao, data["seat"])
|
|
||||||
if currentNiaoList and #currentNiaoList > 0 then
|
|
||||||
local lst_niao = item:GetChild("list_niao")
|
|
||||||
lst_niao:RemoveChildrenToPool()
|
|
||||||
for i = 1, #currentNiaoList do
|
|
||||||
if currentNiaoList[i].score > 0 then
|
|
||||||
local card_niao = lst_niao:AddItemFromPool()
|
|
||||||
card_niao.icon = "ui://Main_Majiang/202_" .. currentNiaoList[i].card
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if p.seat == room.banker_seat then
|
|
||||||
item:GetController("bank").selectedIndex = 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:CalculateNiao(niaoList, seat)
|
|
||||||
local tempNiao = {}
|
|
||||||
for i = 1, #niaoList do
|
|
||||||
if niaoList[i].seat == seat then
|
|
||||||
table.insert(tempNiao, niaoList[i])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return tempNiao
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:FillItemData2(room, data, list)
|
|
||||||
-- 赋值result_info,聊天室分享需要
|
|
||||||
local player_list = {}
|
|
||||||
for i = 1, #data do
|
|
||||||
player_list[i] = {}
|
|
||||||
local user = room:GetPlayerBySeat(data[i].seat).self_user
|
|
||||||
player_list[i].id = user.account_id
|
|
||||||
player_list[i].hp_info = data[i].hp_info
|
|
||||||
player_list[i].score = data[i].total_score
|
|
||||||
player_list[i].house = room.owner_id == player_list[i].id and 1 or 0
|
|
||||||
player_list[i].nick = user.nick_name
|
|
||||||
player_list[i].head_url = user.head_url
|
|
||||||
|
|
||||||
local settle_log = data[i].settle_log
|
|
||||||
player_list[i].param = {}
|
|
||||||
player_list[i].param[1] = {}
|
|
||||||
player_list[i].param[1].key = "自摸次数:"
|
|
||||||
player_list[i].param[1].value = tostring(data[i].settle_log.zimo)
|
|
||||||
player_list[i].param[2] = {}
|
|
||||||
player_list[i].param[2].key = "接炮次数:"
|
|
||||||
player_list[i].param[2].value = tostring(data[i].settle_log.jie_pao)
|
|
||||||
player_list[i].param[3] = {}
|
|
||||||
player_list[i].param[3].key = "点炮次数:"
|
|
||||||
player_list[i].param[3].value = tostring(data[i].settle_log.dian_pao)
|
|
||||||
player_list[i].param[4] = {}
|
|
||||||
player_list[i].param[4].key = "暗杠次数:"
|
|
||||||
player_list[i].param[4].value = tostring(data[i].settle_log.an_kong)
|
|
||||||
player_list[i].param[5] = {}
|
|
||||||
player_list[i].param[5].key = "明杠次数:"
|
|
||||||
player_list[i].param[5].value = tostring(data[i].settle_log.ming_kong)
|
|
||||||
end
|
|
||||||
|
|
||||||
local round = room.room_config.round
|
|
||||||
self:GenerateRoomResultInfo(round, room.room_config:GetGameName(), room.room_id, room.create_time, player_list)
|
|
||||||
local big_result = self._view:GetChild("big_result")
|
|
||||||
big_result:GetChild("txt_room_info").text = string.format("%s 房号%s 局%s/%s", os.date("%Y/%m/%d", os.time()),
|
|
||||||
room.room_id, room.curren_round, room.room_config.round)
|
|
||||||
local lst_p = big_result:GetChild("player_list")
|
|
||||||
if #player_list == 3 then
|
|
||||||
lst_p.columnGap = 108
|
|
||||||
elseif #player_list == 2 then
|
|
||||||
lst_p.columnGap = 208
|
|
||||||
end
|
|
||||||
|
|
||||||
self:InitBigResult(room, 30)
|
|
||||||
local show_detail = room.hpOnOff == 1
|
|
||||||
for i = 1, lst_p.numChildren do
|
|
||||||
local com_p = lst_p:GetChildAt(i - 1)
|
|
||||||
com_p:GetController("jsicon").selectedIndex = i - 1
|
|
||||||
local list_param = com_p:GetChild("list_param")
|
|
||||||
for j = 1, list_param.numChildren do
|
|
||||||
local tem = list_param:GetChildAt(j - 1)
|
|
||||||
tem:GetChild("txt_value").textFormat.size = 30
|
|
||||||
end
|
|
||||||
if show_detail then
|
|
||||||
local score = 0
|
|
||||||
if com_p:GetController("pn").selectedIndex == 0 then
|
|
||||||
score = com_p:GetChild("txt_navigate").text
|
|
||||||
else
|
|
||||||
score = com_p:GetChild("txt_positive").text
|
|
||||||
end
|
|
||||||
score = score / room.score_times
|
|
||||||
com_p:GetChild("tex_detail_score").text = string.format("%s × %s倍", score, room.score_times)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if room.group_id ~= 0 then
|
|
||||||
big_result:GetController("group").selectedIndex = 1
|
|
||||||
end
|
|
||||||
DataManager.CurrenRoom = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:LoadHead(p, room)
|
|
||||||
local btn_head = self._view:GetChild("btn_head")
|
|
||||||
for i = 1, #room.player_list do
|
|
||||||
local player = room.player_list[i]
|
|
||||||
if p.seat == player.seat and player.self_user.head_url ~= "" then
|
|
||||||
ImageLoad.Load(player.self_user.head_url, btn_head.icon)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local prefix
|
|
||||||
function M:GetPrefix()
|
|
||||||
-- if not prefix then
|
|
||||||
prefix = get_majiang_prefix(10)
|
|
||||||
-- end
|
|
||||||
return prefix
|
|
||||||
end
|
|
||||||
|
|
||||||
function M:DestroyWithCallback()
|
|
||||||
if self._callback then
|
|
||||||
self._callback()
|
|
||||||
end
|
|
||||||
self:Destroy()
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
|
||||||
|
|
@ -306,7 +306,7 @@ end
|
||||||
|
|
||||||
function M:OneventResult1(evt_data)
|
function M:OneventResult1(evt_data)
|
||||||
local over = evt_data.type
|
local over = evt_data.type
|
||||||
printlog("OneventResult1")
|
print("OneventResult1")
|
||||||
pt(evt_data)
|
pt(evt_data)
|
||||||
--0:小结算 1:小大结算 2:大结算
|
--0:小结算 1:小大结算 2:大结算
|
||||||
self._room._reload_flag = false
|
self._room._reload_flag = false
|
||||||
|
|
|
||||||
|
|
@ -174,9 +174,9 @@ end
|
||||||
|
|
||||||
function M:LoadConfigToDetail(data)
|
function M:LoadConfigToDetail(data)
|
||||||
local configData = json.decode(data)
|
local configData = json.decode(data)
|
||||||
local returnString = string.format("人数%s人%s%s,%s", configData.maxPlayers,
|
local returnString = string.format("人数%s人,%s,%s,%s", configData.maxPlayers,
|
||||||
configData.zimo and ",只能自摸" or ",自摸可点炮",
|
configData.zimo and "只能自摸" or "自摸可点炮",
|
||||||
configData.tuoguan and string.format(",%d秒后自动托管", configData.tuoguan_active_time) or "不能托管",
|
configData.tuoguan and string.format("%d秒后自动托管", configData.tuoguan_active_time) or "不能托管",
|
||||||
configData.jingbibo and "有精必博" or "有精可胡")
|
configData.jingbibo and "有精必博" or "有精可胡")
|
||||||
return returnString
|
return returnString
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
local MJPlayerSelfCardInfoView = import(".MJPlayerSelfCardInfoView")
|
local MJPlayerSelfCardInfoView = import(".MJPlayerSelfCardInfoView")
|
||||||
local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView")
|
local MJPlayerCardInfoView = require("main.majiang.MJPlayerCardInfoView")
|
||||||
local MJMainView = require("main.majiang.MJMainView")
|
local MJMainView = require("main.majiang.MJMainView")
|
||||||
local EXClearingView = import(".EXClearingView_JiangXi")
|
local EXClearingView = import(".EXClearingView")
|
||||||
local TX_GameEvent = import(".GameEvent")
|
local TX_GameEvent = import(".GameEvent")
|
||||||
local HuTipView = import("main.majiang.HuTipView")
|
local HuTipView = import("main.majiang.HuTipView")
|
||||||
local SettingView = import(".EXSettingView")
|
local SettingView = import(".EXSettingView")
|
||||||
|
|
@ -473,7 +473,7 @@ function M:EventInit()
|
||||||
-- info:UpdateScore()
|
-- info:UpdateScore()
|
||||||
info._view:GetChild("zhanji").visible = true
|
info._view:GetChild("zhanji").visible = true
|
||||||
local num = data[i].hp_info.total_hp
|
local num = data[i].hp_info.total_hp
|
||||||
if num > 0 then
|
if num >= 0 then
|
||||||
info._view:GetController("text_color").selectedIndex = 0
|
info._view:GetController("text_color").selectedIndex = 0
|
||||||
info._view:GetChild("text_jifen").text = "+" .. d2ad(num)
|
info._view:GetChild("text_jifen").text = "+" .. d2ad(num)
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ local function run_test(testname, func, input, should_work, output)
|
||||||
if status ~= nil then
|
if status ~= nil then
|
||||||
name = name .. statusmap[status]
|
name = name .. statusmap[status]
|
||||||
end
|
end
|
||||||
-- print(("[%s] %s"):format(name, serialise_value(value, false)))
|
print(("[%s] %s"):format(name, serialise_value(value, false)))
|
||||||
end
|
end
|
||||||
|
|
||||||
local result = { pcall(func, unpack(input)) }
|
local result = { pcall(func, unpack(input)) }
|
||||||
|
|
@ -200,7 +200,7 @@ local function run_test(testname, func, input, should_work, output)
|
||||||
test_count_total = test_count_total + 1
|
test_count_total = test_count_total + 1
|
||||||
|
|
||||||
local teststatus = { [true] = "PASS", [false] = "FAIL" }
|
local teststatus = { [true] = "PASS", [false] = "FAIL" }
|
||||||
-- print(("==> Test [%d] %s: %s"):format(test_count_total, testname,
|
print(("==> Test [%d] %s: %s"):format(test_count_total, testname,
|
||||||
teststatus[correct]))
|
teststatus[correct]))
|
||||||
|
|
||||||
status_line("Input", nil, input)
|
status_line("Input", nil, input)
|
||||||
|
|
@ -208,7 +208,7 @@ local function run_test(testname, func, input, should_work, output)
|
||||||
status_line("Expected", should_work, output)
|
status_line("Expected", should_work, output)
|
||||||
end
|
end
|
||||||
status_line("Received", success, result)
|
status_line("Received", success, result)
|
||||||
-- print()
|
print()
|
||||||
|
|
||||||
return correct, result
|
return correct, result
|
||||||
end
|
end
|
||||||
|
|
@ -216,11 +216,11 @@ end
|
||||||
local function run_test_group(tests)
|
local function run_test_group(tests)
|
||||||
local function run_helper(name, func, input)
|
local function run_helper(name, func, input)
|
||||||
if type(name) == "string" and #name > 0 then
|
if type(name) == "string" and #name > 0 then
|
||||||
-- print("==> " .. name)
|
print("==> " .. name)
|
||||||
end
|
end
|
||||||
-- Not a protected call, these functions should never generate errors.
|
-- Not a protected call, these functions should never generate errors.
|
||||||
func(unpack(input or {}))
|
func(unpack(input or {}))
|
||||||
-- print()
|
print()
|
||||||
end
|
end
|
||||||
|
|
||||||
for _, v in ipairs(tests) do
|
for _, v in ipairs(tests) do
|
||||||
|
|
|
||||||
|
|
@ -146,15 +146,15 @@ function _event:Dump()
|
||||||
|
|
||||||
for _, v in ilist(self.list) do
|
for _, v in ilist(self.list) do
|
||||||
if v.obj then
|
if v.obj then
|
||||||
-- print("update function:", v.func, "object name:", v.obj.name)
|
print("update function:", v.func, "object name:", v.obj.name)
|
||||||
else
|
else
|
||||||
-- print("update function: ", v.func)
|
print("update function: ", v.func)
|
||||||
end
|
end
|
||||||
|
|
||||||
count = count + 1
|
count = count + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
-- print("all function is:", count)
|
print("all function is:", count)
|
||||||
end
|
end
|
||||||
|
|
||||||
_event.__call = function(self, ...)
|
_event.__call = function(self, ...)
|
||||||
|
|
@ -165,7 +165,6 @@ _event.__call = function(self, ...)
|
||||||
for i, f in ilist(_list) do
|
for i, f in ilist(_list) do
|
||||||
self.current = i
|
self.current = i
|
||||||
local flag, msg = f(...)
|
local flag, msg = f(...)
|
||||||
|
|
||||||
if not flag then
|
if not flag then
|
||||||
_list:remove(i)
|
_list:remove(i)
|
||||||
self.lock = false
|
self.lock = false
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
--
|
--
|
||||||
-- Example usage:
|
-- Example usage:
|
||||||
--
|
--
|
||||||
-- luajit -jbc -e 'local x=0; for i=1,1e6 do x=x+i end; -- print(x)'
|
-- luajit -jbc -e 'local x=0; for i=1,1e6 do x=x+i end; print(x)'
|
||||||
-- luajit -jbc=- foo.lua
|
-- luajit -jbc=- foo.lua
|
||||||
-- luajit -jbc=foo.list foo.lua
|
-- luajit -jbc=foo.list foo.lua
|
||||||
--
|
--
|
||||||
|
|
@ -24,10 +24,10 @@
|
||||||
--
|
--
|
||||||
-- local bc = require("jit.bc")
|
-- local bc = require("jit.bc")
|
||||||
--
|
--
|
||||||
-- local function foo() -- print("hello") end
|
-- local function foo() print("hello") end
|
||||||
--
|
--
|
||||||
-- bc.dump(foo) --> -- BYTECODE -- [...]
|
-- bc.dump(foo) --> -- BYTECODE -- [...]
|
||||||
-- -- print(bc.line(foo, 2)) --> 0002 KSTR 1 1 ; "hello"
|
-- print(bc.line(foo, 2)) --> 0002 KSTR 1 1 ; "hello"
|
||||||
--
|
--
|
||||||
-- local out = {
|
-- local out = {
|
||||||
-- -- Do something with each line:
|
-- -- Do something with each line:
|
||||||
|
|
@ -55,14 +55,10 @@ local stdout, stderr = io.stdout, io.stderr
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local function ctlsub(c)
|
local function ctlsub(c)
|
||||||
if c == "\n" then
|
if c == "\n" then return "\\n"
|
||||||
return "\\n"
|
elseif c == "\r" then return "\\r"
|
||||||
elseif c == "\r" then
|
elseif c == "\t" then return "\\t"
|
||||||
return "\\r"
|
else return format("\\%03d", byte(c))
|
||||||
elseif c == "\t" then
|
|
||||||
return "\\t"
|
|
||||||
else
|
|
||||||
return format("\\%03d", byte(c))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -191,3 +187,4 @@ return {
|
||||||
off = bclistoff,
|
off = bclistoff,
|
||||||
start = bcliston -- For -j command line option.
|
start = bcliston -- For -j command line option.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
--
|
--
|
||||||
-- Example usage:
|
-- Example usage:
|
||||||
--
|
--
|
||||||
-- luajit -jdump -e "local x=0; for i=1,1e6 do x=x+i end; -- print(x)"
|
-- luajit -jdump -e "local x=0; for i=1,1e6 do x=x+i end; print(x)"
|
||||||
-- luajit -jdump=im -e "for i=1,1000 do for j=1,1000 do end end" | less -R
|
-- luajit -jdump=im -e "for i=1,1000 do for j=1,1000 do end end" | less -R
|
||||||
-- luajit -jdump=is myapp.lua | less -R
|
-- luajit -jdump=is myapp.lua | less -R
|
||||||
-- luajit -jdump=-b myapp.lua
|
-- luajit -jdump=-b myapp.lua
|
||||||
|
|
@ -28,15 +28,15 @@
|
||||||
--
|
--
|
||||||
-- The following dump features are available (* marks the default):
|
-- The following dump features are available (* marks the default):
|
||||||
--
|
--
|
||||||
-- * t -- print a line for each started, ended or aborted trace (see also -jv).
|
-- * t Print a line for each started, ended or aborted trace (see also -jv).
|
||||||
-- * b Dump the traced bytecode.
|
-- * b Dump the traced bytecode.
|
||||||
-- * i Dump the IR (intermediate representation).
|
-- * i Dump the IR (intermediate representation).
|
||||||
-- r Augment the IR with register/stack slots.
|
-- r Augment the IR with register/stack slots.
|
||||||
-- s Dump the snapshot map.
|
-- s Dump the snapshot map.
|
||||||
-- * m Dump the generated machine code.
|
-- * m Dump the generated machine code.
|
||||||
-- x -- print each taken trace exit.
|
-- x Print each taken trace exit.
|
||||||
-- X -- print each taken trace exit and the contents of all registers.
|
-- X Print each taken trace exit and the contents of all registers.
|
||||||
-- a -- print the IR of aborted traces, too.
|
-- a Print the IR of aborted traces, too.
|
||||||
--
|
--
|
||||||
-- The output format can be set with the following characters:
|
-- The output format can be set with the following characters:
|
||||||
--
|
--
|
||||||
|
|
@ -222,11 +222,8 @@ local function colorize_ansi(s, t)
|
||||||
end
|
end
|
||||||
|
|
||||||
local irtype_ansi = setmetatable({},
|
local irtype_ansi = setmetatable({},
|
||||||
{
|
{ __index = function(tab, t)
|
||||||
__index = function(tab, t)
|
local s = colorize_ansi(irtype_text[t], t); tab[t] = s; return s; end })
|
||||||
local s = colorize_ansi(irtype_text[t], t); tab[t] = s; return s;
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
local html_escape = { ["<"] = "<", [">"] = ">", ["&"] = "&", }
|
local html_escape = { ["<"] = "<", [">"] = ">", ["&"] = "&", }
|
||||||
|
|
||||||
|
|
@ -236,11 +233,8 @@ local function colorize_html(s, t)
|
||||||
end
|
end
|
||||||
|
|
||||||
local irtype_html = setmetatable({},
|
local irtype_html = setmetatable({},
|
||||||
{
|
{ __index = function(tab, t)
|
||||||
__index = function(tab, t)
|
local s = colorize_html(irtype_text[t], t); tab[t] = s; return s; end })
|
||||||
local s = colorize_html(irtype_text[t], t); tab[t] = s; return s;
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
local header_html = [[
|
local header_html = [[
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|
@ -267,8 +261,7 @@ local colorize, irtype
|
||||||
|
|
||||||
-- Lookup tables to convert some literals into names.
|
-- Lookup tables to convert some literals into names.
|
||||||
local litname = {
|
local litname = {
|
||||||
["SLOAD "] = setmetatable({}, {
|
["SLOAD "] = setmetatable({}, { __index = function(t, mode)
|
||||||
__index = function(t, mode)
|
|
||||||
local s = ""
|
local s = ""
|
||||||
if band(mode, 1) ~= 0 then s = s.."P" end
|
if band(mode, 1) ~= 0 then s = s.."P" end
|
||||||
if band(mode, 2) ~= 0 then s = s.."F" end
|
if band(mode, 2) ~= 0 then s = s.."F" end
|
||||||
|
|
@ -278,11 +271,9 @@ local litname = {
|
||||||
if band(mode, 32) ~= 0 then s = s.."I" end
|
if band(mode, 32) ~= 0 then s = s.."I" end
|
||||||
t[mode] = s
|
t[mode] = s
|
||||||
return s
|
return s
|
||||||
end
|
end}),
|
||||||
}),
|
|
||||||
["XLOAD "] = { [0] = "", "R", "V", "RV", "U", "RU", "VU", "RVU", },
|
["XLOAD "] = { [0] = "", "R", "V", "RV", "U", "RU", "VU", "RVU", },
|
||||||
["CONV "] = setmetatable({}, {
|
["CONV "] = setmetatable({}, { __index = function(t, mode)
|
||||||
__index = function(t, mode)
|
|
||||||
local s = irtype[band(mode, 31)]
|
local s = irtype[band(mode, 31)]
|
||||||
s = irtype[band(shr(mode, 5), 31)].."."..s
|
s = irtype[band(shr(mode, 5), 31)].."."..s
|
||||||
if band(mode, 0x800) ~= 0 then s = s.." sext" end
|
if band(mode, 0x800) ~= 0 then s = s.." sext" end
|
||||||
|
|
@ -290,8 +281,7 @@ local litname = {
|
||||||
if c == 2 then s = s.." index" elseif c == 3 then s = s.." check" end
|
if c == 2 then s = s.." index" elseif c == 3 then s = s.." check" end
|
||||||
t[mode] = s
|
t[mode] = s
|
||||||
return s
|
return s
|
||||||
end
|
end}),
|
||||||
}),
|
|
||||||
["FLOAD "] = vmdef.irfield,
|
["FLOAD "] = vmdef.irfield,
|
||||||
["FREF "] = vmdef.irfield,
|
["FREF "] = vmdef.irfield,
|
||||||
["FPMATH"] = vmdef.irfpm,
|
["FPMATH"] = vmdef.irfpm,
|
||||||
|
|
@ -300,14 +290,10 @@ local litname = {
|
||||||
}
|
}
|
||||||
|
|
||||||
local function ctlsub(c)
|
local function ctlsub(c)
|
||||||
if c == "\n" then
|
if c == "\n" then return "\\n"
|
||||||
return "\\n"
|
elseif c == "\r" then return "\\r"
|
||||||
elseif c == "\r" then
|
elseif c == "\t" then return "\\t"
|
||||||
return "\\r"
|
else return format("\\%03d", byte(c))
|
||||||
elseif c == "\t" then
|
|
||||||
return "\\t"
|
|
||||||
else
|
|
||||||
return format("\\%03d", byte(c))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -563,11 +549,8 @@ end
|
||||||
-- Dump trace states.
|
-- Dump trace states.
|
||||||
local function dump_trace(what, tr, func, pc, otr, oex)
|
local function dump_trace(what, tr, func, pc, otr, oex)
|
||||||
if what == "stop" or (what == "abort" and dumpmode.a) then
|
if what == "stop" or (what == "abort" and dumpmode.a) then
|
||||||
if dumpmode.i then
|
if dumpmode.i then dump_ir(tr, dumpmode.s, dumpmode.r and what == "stop")
|
||||||
dump_ir(tr, dumpmode.s, dumpmode.r and what == "stop")
|
elseif dumpmode.s then dump_snap(tr) end
|
||||||
elseif dumpmode.s then
|
|
||||||
dump_snap(tr)
|
|
||||||
end
|
|
||||||
if dumpmode.m then dump_mcode(tr) end
|
if dumpmode.m then dump_mcode(tr) end
|
||||||
end
|
end
|
||||||
if what == "start" then
|
if what == "start" then
|
||||||
|
|
@ -675,9 +658,7 @@ local function dumpon(opt, outfile)
|
||||||
local term = os.getenv("TERM")
|
local term = os.getenv("TERM")
|
||||||
local colormode = (term and term:match("color") or os.getenv("COLORTERM")) and "A" or "T"
|
local colormode = (term and term:match("color") or os.getenv("COLORTERM")) and "A" or "T"
|
||||||
if opt then
|
if opt then
|
||||||
opt = gsub(opt, "[TAH]", function(mode)
|
opt = gsub(opt, "[TAH]", function(mode) colormode = mode; return ""; end)
|
||||||
colormode = mode; return "";
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local m = { t=true, b=true, i=true, m=true, }
|
local m = { t=true, b=true, i=true, m=true, }
|
||||||
|
|
@ -728,3 +709,4 @@ return {
|
||||||
off = dumpoff,
|
off = dumpoff,
|
||||||
start = dumpon -- For -j command line option.
|
start = dumpon -- For -j command line option.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,26 +104,26 @@ local function dump_trace(what, tr, func, pc, otr, oex)
|
||||||
if what == "abort" then
|
if what == "abort" then
|
||||||
local loc = fmtfunc(func, pc)
|
local loc = fmtfunc(func, pc)
|
||||||
if loc ~= startloc then
|
if loc ~= startloc then
|
||||||
-- print(format("[TRACE --- %s%s -- %s at %s]\n", startex, startloc, fmterr(otr, oex), loc))
|
print(format("[TRACE --- %s%s -- %s at %s]\n", startex, startloc, fmterr(otr, oex), loc))
|
||||||
else
|
else
|
||||||
-- print(format("[TRACE --- %s%s -- %s]\n", startex, startloc, fmterr(otr, oex)))
|
print(format("[TRACE --- %s%s -- %s]\n", startex, startloc, fmterr(otr, oex)))
|
||||||
end
|
end
|
||||||
elseif what == "stop" then
|
elseif what == "stop" then
|
||||||
local info = traceinfo(tr)
|
local info = traceinfo(tr)
|
||||||
local link, ltype = info.link, info.linktype
|
local link, ltype = info.link, info.linktype
|
||||||
if ltype == "interpreter" then
|
if ltype == "interpreter" then
|
||||||
-- print(format("[TRACE %3s %s%s -- fallback to interpreter]\n", tr, startex, startloc))
|
print(format("[TRACE %3s %s%s -- fallback to interpreter]\n", tr, startex, startloc))
|
||||||
elseif ltype == "stitch" then
|
elseif ltype == "stitch" then
|
||||||
-- print(format("[TRACE %3s %s%s %s %s]\n", tr, startex, startloc, ltype, fmtfunc(func, pc)))
|
print(format("[TRACE %3s %s%s %s %s]\n", tr, startex, startloc, ltype, fmtfunc(func, pc)))
|
||||||
elseif link == tr or link == 0 then
|
elseif link == tr or link == 0 then
|
||||||
-- print(format("[TRACE %3s %s%s %s]\n", tr, startex, startloc, ltype))
|
print(format("[TRACE %3s %s%s %s]\n", tr, startex, startloc, ltype))
|
||||||
elseif ltype == "root" then
|
elseif ltype == "root" then
|
||||||
-- print(format("[TRACE %3s %s%s -> %d]\n", tr, startex, startloc, link))
|
print(format("[TRACE %3s %s%s -> %d]\n", tr, startex, startloc, link))
|
||||||
else
|
else
|
||||||
-- print(format("[TRACE %3s %s%s -> %d %s]\n", tr, startex, startloc, link, ltype))
|
print(format("[TRACE %3s %s%s -> %d %s]\n", tr, startex, startloc, link, ltype))
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
-- print(format("[TRACE %s]\n", what))
|
print(format("[TRACE %s]\n", what))
|
||||||
end
|
end
|
||||||
out:flush()
|
out:flush()
|
||||||
end
|
end
|
||||||
|
|
@ -160,3 +160,4 @@ return {
|
||||||
off = dumpoff,
|
off = dumpoff,
|
||||||
start = dumpon -- For -j command line option.
|
start = dumpon -- For -j command line option.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,9 @@
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
bcnames =
|
bcnames = "ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW",
|
||||||
"ISLT ISGE ISLE ISGT ISEQV ISNEV ISEQS ISNES ISEQN ISNEN ISEQP ISNEP ISTC ISFC IST ISF ISTYPEISNUM MOV NOT UNM LEN ADDVN SUBVN MULVN DIVVN MODVN ADDNV SUBNV MULNV DIVNV MODNV ADDVV SUBVV MULVV DIVVV MODVV POW CAT KSTR KCDATAKSHORTKNUM KPRI KNIL UGET USETV USETS USETN USETP UCLO FNEW TNEW TDUP GGET GSET TGETV TGETS TGETB TGETR TSETV TSETS TSETB TSETM TSETR CALLM CALL CALLMTCALLT ITERC ITERN VARG ISNEXTRETM RET RET0 RET1 FORI JFORI FORL IFORL JFORL ITERL IITERLJITERLLOOP ILOOP JLOOP JMP FUNCF IFUNCFJFUNCFFUNCV IFUNCVJFUNCVFUNCC FUNCCW",
|
|
||||||
|
|
||||||
irnames =
|
irnames = "LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS ATAN2 LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF STRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ",
|
||||||
"LT GE LE GT ULT UGE ULE UGT EQ NE ABC RETF NOP BASE PVAL GCSTEPHIOP LOOP USE PHI RENAMEPROF KPRI KINT KGC KPTR KKPTR KNULL KNUM KINT64KSLOT BNOT BSWAP BAND BOR BXOR BSHL BSHR BSAR BROL BROR ADD SUB MUL DIV MOD POW NEG ABS ATAN2 LDEXP MIN MAX FPMATHADDOV SUBOV MULOV AREF HREFK HREF NEWREFUREFO UREFC FREF STRREFLREF ALOAD HLOAD ULOAD FLOAD XLOAD SLOAD VLOAD ASTOREHSTOREUSTOREFSTOREXSTORESNEW XSNEW TNEW TDUP CNEW CNEWI BUFHDRBUFPUTBUFSTRTBAR OBAR XBAR CONV TOBIT TOSTR STRTO CALLN CALLA CALLL CALLS CALLXSCARG ",
|
|
||||||
|
|
||||||
irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "exp", "exp2", "log", "log2", "log10", "sin", "cos", "tan", "other", },
|
irfpm = { [0]="floor", "ceil", "trunc", "sqrt", "exp", "exp2", "log", "log2", "log10", "sin", "cos", "tan", "other", },
|
||||||
|
|
||||||
|
|
@ -361,3 +359,4 @@ return {
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,11 @@
|
||||||
-- ...
|
-- ...
|
||||||
-- zone("A*")
|
-- zone("A*")
|
||||||
-- ...
|
-- ...
|
||||||
-- -- print(zone:get()) --> "A*"
|
-- print(zone:get()) --> "A*"
|
||||||
-- ...
|
-- ...
|
||||||
-- zone()
|
-- zone()
|
||||||
-- ...
|
-- ...
|
||||||
-- -- print(zone:get()) --> "AI"
|
-- print(zone:get()) --> "AI"
|
||||||
-- ...
|
-- ...
|
||||||
-- zone()
|
-- zone()
|
||||||
--
|
--
|
||||||
|
|
@ -42,3 +42,4 @@ return setmetatable({
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,9 +68,7 @@ updatelocale()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local I = m.P(function(s, i)
|
local I = m.P(function (s,i) print(i, s:sub(1, i-1)); return i end)
|
||||||
print(i, s:sub(1, i - 1)); return i
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
local function getdef (id, defs)
|
local function getdef (id, defs)
|
||||||
|
|
@ -156,20 +154,19 @@ local function firstdef(n, r) return adddef({ n }, n, r) end
|
||||||
local function NT (n, b)
|
local function NT (n, b)
|
||||||
if not b then
|
if not b then
|
||||||
error("rule '"..n.."' used outside a grammar")
|
error("rule '"..n.."' used outside a grammar")
|
||||||
else
|
else return mm.V(n)
|
||||||
return mm.V(n)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local exp = m.P{ "Exp",
|
local exp = m.P{ "Exp",
|
||||||
Exp = S * ( m.V"Grammar"
|
Exp = S * ( m.V"Grammar"
|
||||||
+ m.Cf(m.V "Seq" * ("/" * S * m.V "Seq") ^ 0, mt.__add)),
|
+ m.Cf(m.V"Seq" * ("/" * S * m.V"Seq")^0, mt.__add) );
|
||||||
Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix"^0 , mt.__mul)
|
Seq = m.Cf(m.Cc(m.P"") * m.V"Prefix"^0 , mt.__mul)
|
||||||
* (#seq_follow + patt_error),
|
* (#seq_follow + patt_error);
|
||||||
Prefix = "&" * S * m.V"Prefix" / mt.__len
|
Prefix = "&" * S * m.V"Prefix" / mt.__len
|
||||||
+ "!" * S * m.V"Prefix" / mt.__unm
|
+ "!" * S * m.V"Prefix" / mt.__unm
|
||||||
+ m.V "Suffix",
|
+ m.V"Suffix";
|
||||||
Suffix = m.Cf(m.V"Primary" * S *
|
Suffix = m.Cf(m.V"Primary" * S *
|
||||||
( ( m.P"+" * m.Cc(1, mt.__pow)
|
( ( m.P"+" * m.Cc(1, mt.__pow)
|
||||||
+ m.P"*" * m.Cc(0, mt.__pow)
|
+ m.P"*" * m.Cc(0, mt.__pow)
|
||||||
|
|
@ -183,7 +180,7 @@ local exp = m.P { "Exp",
|
||||||
)
|
)
|
||||||
+ "=>" * S * m.Cg(Def / getdef * m.Cc(m.Cmt))
|
+ "=>" * S * m.Cg(Def / getdef * m.Cc(m.Cmt))
|
||||||
) * S
|
) * S
|
||||||
) ^ 0, function(a, b, f) return f(a, b) end),
|
)^0, function (a,b,f) return f(a,b) end );
|
||||||
Primary = "(" * m.V"Exp" * ")"
|
Primary = "(" * m.V"Exp" * ")"
|
||||||
+ String / mm.P
|
+ String / mm.P
|
||||||
+ Class
|
+ Class
|
||||||
|
|
@ -196,8 +193,8 @@ local exp = m.P { "Exp",
|
||||||
+ "{|" * m.V"Exp" * "|}" / mm.Ct
|
+ "{|" * m.V"Exp" * "|}" / mm.Ct
|
||||||
+ "{" * m.V"Exp" * "}" / mm.C
|
+ "{" * m.V"Exp" * "}" / mm.C
|
||||||
+ m.P"." * m.Cc(any)
|
+ m.P"." * m.Cc(any)
|
||||||
+ (name * -arrow + "<" * name * ">") * m.Cb("G") / NT,
|
+ (name * -arrow + "<" * name * ">") * m.Cb("G") / NT;
|
||||||
Definition = name * arrow * m.V "Exp",
|
Definition = name * arrow * m.V"Exp";
|
||||||
Grammar = m.Cg(m.Cc(true), "G") *
|
Grammar = m.Cg(m.Cc(true), "G") *
|
||||||
m.Cf(m.V"Definition" / firstdef * m.Cg(m.V"Definition")^0,
|
m.Cf(m.V"Definition" / firstdef * m.Cg(m.V"Definition")^0,
|
||||||
adddef) / mm.P
|
adddef) / mm.P
|
||||||
|
|
@ -230,10 +227,8 @@ local function find(s, p, i)
|
||||||
fmem[p] = cp
|
fmem[p] = cp
|
||||||
end
|
end
|
||||||
local i, e = cp:match(s, i or 1)
|
local i, e = cp:match(s, i or 1)
|
||||||
if i then
|
if i then return i, e - 1
|
||||||
return i, e - 1
|
else return i
|
||||||
else
|
|
||||||
return i
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,6 @@ local function _StructPackDecoder(wire_type, value_size, format)
|
||||||
local result = struct_unpack(format, buffer, pos)
|
local result = struct_unpack(format, buffer, pos)
|
||||||
return result, new_pos
|
return result, new_pos
|
||||||
end
|
end
|
||||||
|
|
||||||
return _SimpleDecoder(wire_type, InnerDecode)
|
return _SimpleDecoder(wire_type, InnerDecode)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -299,16 +299,13 @@ local function _AttachFieldHelpers(message_meta, field_descriptor)
|
||||||
local is_repeated = (field_descriptor.label == FieldDescriptor.LABEL_REPEATED)
|
local is_repeated = (field_descriptor.label == FieldDescriptor.LABEL_REPEATED)
|
||||||
local is_packed = (field_descriptor.has_options and field_descriptor.GetOptions().packed)
|
local is_packed = (field_descriptor.has_options and field_descriptor.GetOptions().packed)
|
||||||
|
|
||||||
rawset(field_descriptor, "_encoder",
|
rawset(field_descriptor, "_encoder", TYPE_TO_ENCODER[field_descriptor.type](field_descriptor.number, is_repeated, is_packed))
|
||||||
TYPE_TO_ENCODER[field_descriptor.type](field_descriptor.number, is_repeated, is_packed))
|
rawset(field_descriptor, "_sizer", TYPE_TO_SIZER[field_descriptor.type](field_descriptor.number, is_repeated, is_packed))
|
||||||
rawset(field_descriptor, "_sizer",
|
|
||||||
TYPE_TO_SIZER[field_descriptor.type](field_descriptor.number, is_repeated, is_packed))
|
|
||||||
rawset(field_descriptor, "_default_constructor", _DefaultValueConstructorForField(field_descriptor))
|
rawset(field_descriptor, "_default_constructor", _DefaultValueConstructorForField(field_descriptor))
|
||||||
|
|
||||||
local AddDecoder = function(wiretype, is_packed)
|
local AddDecoder = function(wiretype, is_packed)
|
||||||
local tag_bytes = encoder.TagBytes(field_descriptor.number, wiretype)
|
local tag_bytes = encoder.TagBytes(field_descriptor.number, wiretype)
|
||||||
message_meta._decoders_by_tag[tag_bytes] = TYPE_TO_DECODER[field_descriptor.type](field_descriptor.number,
|
message_meta._decoders_by_tag[tag_bytes] = TYPE_TO_DECODER[field_descriptor.type](field_descriptor.number, is_repeated, is_packed, field_descriptor, field_descriptor._default_constructor)
|
||||||
is_repeated, is_packed, field_descriptor, field_descriptor._default_constructor)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
AddDecoder(FIELD_TYPE_TO_WIRE_TYPE[field_descriptor.type], False)
|
AddDecoder(FIELD_TYPE_TO_WIRE_TYPE[field_descriptor.type], False)
|
||||||
|
|
@ -439,8 +436,7 @@ local _ED_meta = {
|
||||||
local _extended_message = rawget(self, "_extended_message")
|
local _extended_message = rawget(self, "_extended_message")
|
||||||
if (extension_handle.label == FieldDescriptor.LABEL_REPEATED or
|
if (extension_handle.label == FieldDescriptor.LABEL_REPEATED or
|
||||||
extension_handle.cpp_type == FieldDescriptor.CPPTYPE_MESSAGE) then
|
extension_handle.cpp_type == FieldDescriptor.CPPTYPE_MESSAGE) then
|
||||||
error('Cannot assign to extension "' ..
|
error('Cannot assign to extension "'.. extension_handle.full_name .. '" because it is a repeated or composite type.')
|
||||||
extension_handle.full_name .. '" because it is a repeated or composite type.')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local type_checker = GetTypeChecker(extension_handle.cpp_type, extension_handle.type)
|
local type_checker = GetTypeChecker(extension_handle.cpp_type, extension_handle.type)
|
||||||
|
|
@ -509,7 +505,6 @@ end
|
||||||
function sortFunc(a, b)
|
function sortFunc(a, b)
|
||||||
return a.index < b.index
|
return a.index < b.index
|
||||||
end
|
end
|
||||||
|
|
||||||
function pairsByKeys (t, f)
|
function pairsByKeys (t, f)
|
||||||
local a = {}
|
local a = {}
|
||||||
for n in pairs(t) do table.insert(a, n) end
|
for n in pairs(t) do table.insert(a, n) end
|
||||||
|
|
@ -517,10 +512,8 @@ function pairsByKeys(t, f)
|
||||||
local i = 0 -- iterator variable
|
local i = 0 -- iterator variable
|
||||||
local iter = function () -- iterator function
|
local iter = function () -- iterator function
|
||||||
i = i + 1
|
i = i + 1
|
||||||
if a[i] == nil then
|
if a[i] == nil then return nil
|
||||||
return nil
|
else return a[i], t[a[i]]
|
||||||
else
|
|
||||||
return a[i], t[a[i]]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return iter
|
return iter
|
||||||
|
|
@ -964,3 +957,4 @@ local function Message(descriptor)
|
||||||
end
|
end
|
||||||
|
|
||||||
_M.Message = Message
|
_M.Message = Message
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -76,3 +76,4 @@ function msg_format(msg)
|
||||||
msg_format_indent(write, msg, 0)
|
msg_format_indent(write, msg, 0)
|
||||||
return table.concat(out)
|
return table.concat(out)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ if jit then
|
||||||
jit.opt.start(3)
|
jit.opt.start(3)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- print("ver"..jit.version_num.." jit: ", jit.status())
|
print("ver"..jit.version_num.." jit: ", jit.status())
|
||||||
-- print(string.format("os: %s, arch: %s", jit.os, jit.arch))
|
print(string.format("os: %s, arch: %s", jit.os, jit.arch))
|
||||||
end
|
end
|
||||||
|
|
||||||
if DebugServerIp then
|
if DebugServerIp then
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
pSDShowRemoveMatteOption: 0
|
pSDShowRemoveMatteOption: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName: base/main_majiang/d2fa434d27dc07bf09395dc32491060b
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 965 KiB After Width: | Height: | Size: 483 KiB |
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
pSDShowRemoveMatteOption: 0
|
pSDShowRemoveMatteOption: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 166 KiB |
|
|
@ -0,0 +1,92 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ffe28b30c5a6cf24298b352cb37c18b2
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 11
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: -1
|
||||||
|
aniso: -1
|
||||||
|
mipBias: -100
|
||||||
|
wrapU: -1
|
||||||
|
wrapV: -1
|
||||||
|
wrapW: -1
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
pSDShowRemoveMatteOption: 0
|
pSDShowRemoveMatteOption: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName: base/main_majiang/d2fa434d27dc07bf09395dc32491060b
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
pSDShowRemoveMatteOption: 0
|
pSDShowRemoveMatteOption: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName: base/main_majiang/d2fa434d27dc07bf09395dc32491060b
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
pSDShowRemoveMatteOption: 0
|
pSDShowRemoveMatteOption: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName: base/main_majiang/d2fa434d27dc07bf09395dc32491060b
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
|
|
@ -88,5 +88,5 @@ TextureImporter:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
pSDShowRemoveMatteOption: 0
|
pSDShowRemoveMatteOption: 0
|
||||||
userData:
|
userData:
|
||||||
assetBundleName: base/main_majiang/d2fa434d27dc07bf09395dc32491060b
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,5 @@ guid: 326fa64ee0dd8b94aa86fa1978e56fa5
|
||||||
TextScriptImporter:
|
TextScriptImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName: base/main_majiang/d2fa434d27dc07bf09395dc32491060b
|
assetBundleName: base/main_majiang/abf0e2af8fb6daf78fa8ebcdd8acc4f0
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue