编辑代码

-- JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
print "Hello world!     -  lua.jsrun.net"

print(table.concat({'SS','XX'},'=='))
print(table.concat({['SS']=true,['XX']=true},'=='))
print(('消耗杀敌数'):sub(7,-1))
local time = 7.6
        local qz = math.modf(time / 5) -- 取整数
        local qy = math.fmod(time, 5)  -- 取余数
print(qz,qy)

--循环打印 table
function printr(lua_table, indent)
    if type(lua_table) == "string" then
        print(lua_table)
        return
    end
    indent = indent or 0
    for k, v in pairs(lua_table) do
        if type(k) == "string" then
            k = string.format("%q", k)
        end
        local szSuffix = ""
        if type(v) == "table" then
            szSuffix = "{"
        end
        local szPrefix = string.rep("    ", indent)
        local formatting = szPrefix .. "[" .. k .. "]" .. " = " .. szSuffix
        if type(v) == "table" then
            print(formatting)
            printr(v, indent + 1)
            print(szPrefix .. "},")
        else
            local szValue = ""
            if type(v) == "string" then
                szValue = string.format("%q", v)
            else
                szValue = tostring(v)
            end
            print(formatting .. szValue .. ",")
        end
    end
end


local vv = 0.7


if vv >= 0.8 then
print('A1')
elseif vv >= 0.6 then
print('A2')
elseif vv >= 0.4 then
print('A3')
else
print('A4')
end

local ac = {}
--按指定内容分割字符串
function ac.split(str, p)
    local rt = {}
    str:gsub('[^' .. p .. ']+', function(w)
        table.insert(rt, w)
    end)
    return rt
end

function ac.split2(str, p)
    local rt = {}
    str:gsub('[^' .. p .. ']*', function(w)
        table.insert(rt, w)
    end)
    return rt
end

local str ='级别技能|D*1'

local tbls = ac.split(str,'|')

for index, value in ipairs(tbls) do
    print(index, value)
end

local effect_pool = {}
setmetatable(effect_pool, effect_pool)
local mt = {}
effect_pool.__index = mt

mt.size=1
mt.speed=2


function effect_pool.create(data)
    print('circle.createcircle.create')
	return setmetatable(data, effect_pool)
end

function effect_pool:__call(data)
	return self.create(data)
end

local effp = effect_pool{
    anim='stand',
    time = 10,
    size=5,
}

print(effp.size)
print(effp.speed)
print(effp.anim)
print(effp.time)

local tf ='拳法家+'
print(tf:sub(1,-2))
local tf ='拳法家sx'
print(tf:sub(1,-3))

print(('拳法家SX'):match('%W+'))

local v = 2.55*86
print(string.format('%02X',math.floor(v)))
print(tonumber('FF',16))


--   for life_perc = 0, 100, 1 do
--     local rval = life_perc < 50 and 255 or 255 - (life_perc - 50) * 5.1
--     local gval = life_perc > 50 and 255 or life_perc * 5.1
--     print(life_perc,rval,gval, string.format('%02X',math.floor(rval)), string.format('%02X',math.floor(gval)))    
-- end



-- print(rawget(ac.skill, 'SSS'))
-- print(rawget(ac.skill, 'SSSA'))



	-- for k, v in pairs(ac.skill) do
    --     print('ac.skill k,v',k,v)
	-- end

    -- print(fasle or fasle or 'AA')

    local reward_name = '攻击+100~200'

    local name, value, max_value
    if reward_name:find('~') then
        name, value, max_value = reward_name:match '(%S+)%+(%S+)%~(%S+)' --支持小数点
        value = math.random(value, max_value)
    elseif reward_name:find('+') then
        name, value = reward_name:match '(%S+)%+(%S+)' --支持小数点
        value = value or 1
    else
        name = reward_name
        value = 0
    end
print(' name, value, max_value', name, value, max_value)

print('===========')
local str ='物品|重置石'
local str ='品质技能|神话*2~2'
local str ='物品'
-- print(str:gmatch('^[|]+')())
print('===========')
print('===========')
print(('拳法家SX'):match('%W+'))
print(('拳法家12'):match('%d+'),type(('拳法家1'):match('%d+')))
local str ='品质技能|神话*2~2'
print(str:match('%S+%|(%S+)'))
print('===========')
print('===========')

-- local send_strs = {'SS'}
-- print(table.concat(send_strs, ' '))

-- print(tonumber('0.22'))

local reward_name = '攻击+0.3~0.5'
print(reward_name: match'(%S+)%+(%S+)%~(%S+)')

print('--------------------')
-- local reward_name = '法强+0.05'
-- local a,b,c =reward_name: match'(%S+.)(%S+)'
-- print(('a=%s b=%s c=%s'):format(a,b,c))
local reward_name = '物品C*100'
local reward_name = '法强+0.05'
local reward_name = '|cff7FFFD4最大生命+1|r'
local reward_name = '|cff7FFFD4最大生命*132.6|r'
local reward_name = '|cff7FFFD4|cff7FFFD4最大生命*132.6|r|r'
-- local reward_name = '最大生命*132.6|r'
-- local reward_name = '最大生命*132.566'
-- local reward_name = '|cff7FFFD4最大生命D*0.11|r'
-- local reward_name = '最大生命D*0.11'
-- local a,b,c =reward_name: match'[*+].-(%d+)'
local a,b,c =reward_name:match'|*c*%w*r*[*+]([0-9]*.*[0-9]*)'
print(('a=%s b=%s c=%s'):format(a,b,c))


local reward_name = '单位属性|攻击+7000'
reward_name:match'|*c*%w*r*[*+]([0-9]*.*[0-9]*)'


local reward_name='单位属性|最大生命+30000'

        local type, key, value =reward_name:match '(%S+)%|(%S+)%+(%S+)'
        print( type, key, value)

        print(string.unpack('>I4', 'hpea'))
        print(string.unpack('>I1', 'hpea'))
        print(string.unpack('>I2', 'hpea'))
        print(string.unpack('>I3', 'hpea'))



local items={}
for i = 1, 4 do
    table.insert(items,'ITEM'..i)
end
for index, item in ipairs(items) do
	print(index,item)
end



for i = 1, 11 do
    print('ii',i)
for j = 1, 5 do
    print('jj',j)
    if j==2 then
    break
    end
end
end