找回密码
 注册
搜索
查看: 1020|回复: 14

修改了一下p版mush的skills窗显示,贡献代码

[复制链接]
门派:天龙寺
发表于 2017-8-3 23:11:36 | 显示全部楼层 |阅读模式
p版的mush中,有个技能列表,不过这个显示技能时没有排序,我在代码里面加了一段,可以按技能级别高低排序显示

打开show_switch.lua,其中有个函数叫draw_skillswindow,找里面对应的位置,把我添加的那短代码粘贴进去即可

function draw_skillswindow()
    if not flag_win_skills or flag_win_skills~=1 then
       if win_skills then
          WindowShow (win_skills, false)
       end
       return
    end
    if not skills then
       return
    end
    local _basic ={}
    local _skills_ch = {}
    local _skills_lev = {}
    local _skills_pot = {}
    for k,v in pairs(skills) do
        table.insert(_basic,k)
    end
    for i=1,#_basic do
        table.insert(_skills_ch,skills[_basic[i]]["name"])
        table.insert(_skills_lev,skills[_basic[i]]["lvl"])
        table.insert(_skills_pot,skills[_basic[i]]["pot"])
    end

--下面是我新加的代码,可以按技能按级别高低排序
    for i=1,#_basic-1 do
        local max_val = i
        
        for j=i+1,#_basic do
            if _skills_lev[j]>_skills_lev[max_val] then
                max_val = j
            end
        end
        if max_val ~=i then
            local _basic_temp
            _basic_temp=_basic[i]
            _basic[i]=_basic[max_val]
            _basic[max_val]=_basic_temp
            
            local _skills_ch_temp
            _skills_ch_temp=_skills_ch[i]
            _skills_ch[i]=_skills_ch[max_val]
            _skills_ch[max_val]=_skills_ch_temp
            
            local _skills_lev_temp
            _skills_lev_temp=_skills_lev[i]
            _skills_lev[i]=_skills_lev[max_val]
            _skills_lev[max_val]=_skills_lev_temp
            
            local _skills_pot_temp
            _skills_pot_temp=_skills_pot[i]
            _skills_pot[i]=_skills_pot[max_val]
            _skills_pot[max_val]=_skills_pot_temp
        end
    end
--我增加的代码在这里结束,从上面到这里这部分,粘贴到你的文件对应部分即可

    WINDOW_WIDTH = 190
    if win_skills_show == 0 then
        WINDOW_HEIGHT = 30
        WINDOW_WIDTH = 70
    else
门派:少林派
发表于 2017-8-4 11:42:24 | 显示全部楼层
哇,又一位大神献身了         
门派:少林派
发表于 2017-8-4 11:43:08 | 显示全部楼层
可惜我好像看不懂啊                  
门派:少林派
发表于 2017-8-4 11:43:39 | 显示全部楼层
大神,这个具体改了有什么作用啊           
门派:少林派
发表于 2017-8-4 11:44:20 | 显示全部楼层
p版的以后就大神你来更新了啊                                   
门派:桃花岛
发表于 2017-8-13 09:33:59 来自手机 | 显示全部楼层
woshicy@tj 发表于 2017-8-4 11:42
哇,又一位大神献身了

献身?   水僧你够可以的了!
门派:天龙寺
发表于 2017-8-13 13:23:25 | 显示全部楼层
woshicy@tj 发表于 2017-8-4 11:43
可惜我好像看不懂啊

看不懂无所谓,会照着改就行了,我们只要站在巨人的肩膀上就行啦
门派:丐帮
发表于 2017-8-13 15:30:12 | 显示全部楼层
woshicy@tj 发表于 2017-8-4 11:43
大神,这个具体改了有什么作用啊

应该就是贴帖子的时候可以排整齊一点
门派:丐帮
发表于 2017-8-13 15:33:01 | 显示全部楼层
coolstar@tj 发表于 2017-8-13 13:23
看不懂无所谓,会照着改就行了,我们只要站在巨人的肩膀上就行啦

就是啊, 有大神真是好, 都是高手
门派:明教
发表于 2017-8-13 19:10:09 | 显示全部楼层
有点复杂了

用这个吧

    for k,v in pairs(skills) do
                table.insert(_basic,k)
    end       
        table.sort(_basic,function(a,b) return skills[a].lvl > skills[b].lvl end)
    for i=1,#_basic do
            table.insert(_skills_ch,skills[_basic[i]]["name"])
                table.insert(_skills_lev,skills[_basic[i]]["lvl"])
                table.insert(_skills_pot,skills[_basic[i]]["pot"])
    end
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-23 03:54 , Processed in 0.046871 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表