搜索
热搜: 活动 交友 discuz
查看: 3557|回复: 2

[讨论] 学习代码君的自定义UI的panorama的教程

[复制链接]

216

主题

227

帖子

1885

积分

Lv:6 苍空龙法师

UID
12420
金币
7676
精华
0
节操
-3
发表于 2017-8-6 09:29:37 | 显示全部楼层 |阅读模式

前方高能预警!非战斗人员请尽快登录!

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
本帖最后由 qq382767 于 2017-10-1 20:13 编辑

新UI教程,基础入门
http://www.dota2rpg.com/forum.ph ... =1949&fromuid=12420
(出处: 中国DOTA2 RPG DOTA2地图门户 - 阿哈利姆魔法隐修议会(AMHC))


新UI教程,新手向?
http://www.dota2rpg.com/forum.ph ... =1975&fromuid=12420
(出处: 中国DOTA2 RPG DOTA2地图门户 - 阿哈利姆魔法隐修议会(AMHC))

Dota2自定义UI教程,AMHC.帅哥系列.代码君出品
http://www.dota2rpg.com/forum.ph ... =1615&fromuid=12420
(出处: 中国DOTA2 RPG DOTA2地图门户 - 阿哈利姆魔法隐修议会(AMHC))

学习了 按钮 的样式 的建立、按钮的事件响应、



E:\Program Files (x86)\SteamLibrary\steamapps\common\dota 2 beta\content\dota_addons\test001\panorama\layout\custom_game
myui_button.xml
E:\Program Files (x86)\SteamLibrary\steamapps\common\dota 2 beta\content\dota_addons\test001\panorama\styles\custom_game
myui_button.css

按照【新UI教程,新手向?】出现了问题
Error parsing layout and style files
41.png


41.png
41.png

E:\Program Files (x86)\SteamLibrary\steamapps\common\dota 2 beta\game\dota_addons\test001\scripts\vscripts
addon_game_mode.lua

[mw_shl_code=applescript,true]--UI

if CAddonTemplateGameMode == nil then
        CAddonTemplateGameMode = class({})
end


--自动预载入
function PrecacheEveryThingFromKV( context )
        local kv_files = {"scripts/npc/npc_units_custom.txt","scripts/npc/npc_abilities_custom.txt","scripts/npc/npc_heroes_custom.txt","scripts/npc/npc_abilities_override.txt","npc_items_custom.txt"}
        for _, kv in pairs(kv_files) do
                local kvs = LoadKeyValues(kv)
                if kvs then
                        print("!!! BEGIN TO PRECACHE RESOURCE FROM: ", kv)
                        PrecacheEverythingFromTable( context, kvs)
                end
        end
    print("done loading shiping")
end

function  PrecacheEverythingFromTable(context,kvtable)
        -- body
        for key,value in pairs(kvtable) do
                if type(value) == "table" then
                        PrecacheEverythingFromTable(context,value)
                else
                        if string.find(value,"vpcf") then
                                PrecacheResource("particle",value,context)
                                print("!!! PRECACHE PARTICLE RESOURCE",value)
                        end
                        if string.find(value,"vmdl") then
                                PrecacheResource("model",value,context)
                                print("!!! PRECACHE MODEL RESOURCE",value)
                        end
                        if string.find(value,"vsndevts") then
                                PrecacheResource("soundfile",value,context)
                                print("!!! PRECACHE SOUND RESOURCE",value)
                        end
                end
        end
end
function Precache( context )
        --[[
                Precache things we know we'll use.  Possible file types include (but not limited to):
                        PrecacheResource( "model", "*.vmdl", context )
                        PrecacheResource( "soundfile", "*.vsndevts", context )
                        PrecacheResource( "particle", "*.vpcf", context )
                        PrecacheResource( "particle_folder", "particles/folder", context )
        ]]
        print("!!! BEGIN TO PRECACHE RESOURCE")
        local time = GameRules:GetGameTime()
        PrecacheEveryThingFromKV(context)
        PrecacheResource("particle_folder","particles/buildinghelper",context)
        PrecacheUnitByNameSync("npc_dota_hero_tinker",context)
        time = time - GameRules:GetGameTime()
        print("!!! DONE PRECHACHE IN:"..tostring(time).."Seconds")
end


-- Create the game mode when we activate
function Activate()

        GameRules.AddonTemplate = CAddonTemplateGameMode()
        GameRules.AddonTemplate:InitGameMode()
                --GameRules:GetGameModeEntity():SetThink(PrintHello)
end


function CAddonTemplateGameMode:InitGameMode()
         print( "Template addon is loaded." )
         --监听游戏进度
        ListenToGameEvent("game_rules_state_change", Dynamic_Wrap(CAddonTemplateGameMode,"OnGameRulesStateChange"), self)
end
  
function CAddonTemplateGameMode:OnGameRulesStateChange( keys )
         local state = GameRules:State_Get()
  
         if state == DOTA_GAMERULES_STATE_PRE_GAME then
                   --调用UI
                   CustomUI:DynamicHud_Create(-1,"MyUIButton","file://{resources}/layout/custom_game/MyUI_button.xml",nil)
         end
end[/mw_shl_code]
41.png
41.png



解决办法

把MyUI改为myui即可

41.png

41.png
显示效果如下图所示
41.png
把 myui_button.xml 里面的 Label 那一行的 text="#按钮"进行更改,即可改变 如上图所示的 按钮上的字 MyUIButtonText
41.png 41.png


E:\Program Files (x86)\SteamLibrary\steamapps\common\dota 2 beta\content\dota_addons\test001\panorama\styles\custom_game
myui_button.css更改其中对应的东西,就可以改变长宽,颜色,背景颜色



下面轮到 点击 UI 响应事件
点击按钮,会在 中间 显示 一个面板

31.png

新UI教程,新手向?
http://www.dota2rpg.com/forum.ph ... =1975&fromuid=12420
(出处: 中国DOTA2 RPG DOTA2地图门户 - 阿哈利姆魔法隐修议会(AMHC))

根据如上,建立文件如下所示

myui_main.xml
31.png

myui_main.css
31.png

myui_button.css
31.png

31.png


myui_button.xml
31.png 31.png

把这个分割符 的这几个 文件 内容 ,都是如图所示,就会出现如下效果

31.png
把改为<Label id="title" text="#MyUIMain_title123"/>,则显示的字发生变化
31.png





31.png
点击左边的按钮“JavaScript-->Lua”出现如下结果,并且关闭 对话框
31.png
点击左边的按钮“Lua-->JavaScript”出现如下结果,并且关闭 对话框
31.png

myui_main.xml
31.png
myui_button.xml
31.png

addon_game_mode.lua
31.png
31.png

myui.js
31.png
31.png

结果如下所示
点击按钮





点击左边的按钮“JavaScript-->Lua”出现如下结果,并且关闭 对话框

点击左边的按钮“Lua-->JavaScript”出现如下结果,并且关闭 对话框



1.
把myui_main.xmlbuttonStyle 变为 buttons
                                        <Label class="buttons" text="JavaScript-->Lua"/>
31.png
31.png

2.
31.png
31.png


3.myui_main.xml
31.png myui_main.css
31.png
31.png


4.

31.png
31.png
31.png






[本地化][PUI]重新学习代码君的UI教程
http://www.dota2rpg.com/forum.ph ... 1&fromuid=12420
(出处: 中国DOTA2 RPG DOTA2地图门户 - 阿哈利姆魔法隐修议会(AMHC))


















回复

使用道具 举报

0

主题

9

帖子

430

积分

Lv:3 空明术士

UID
8879
金币
189
精华
0
节操
0
发表于 2017-8-19 09:43:34 | 显示全部楼层
赞一个。辛苦了。
回复 支持 反对

使用道具 举报

1

主题

3

帖子

105

积分

Lv:1 隐谧贤者

UID
14815
金币
45
精华
0
节操
0
发表于 2019-10-30 15:49:16 | 显示全部楼层
解决了很多困惑的事情。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|Archiver|手机版|小黑屋|AMHC!dota2rpg~ ( 闽ICP备14009209 )

GMT+8, 2019-11-21 00:49 , Processed in 0.068306 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Theme.Yeei

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