哇噢星球

 找回密码
 申请注册
搜索
热搜: 地形 技能 Lua

YDWE自带Lua教程第三课:物体编辑器数据的读取

[复制链接]
皇家骑士 发表于 2019-5-26 13:36:09 | 显示全部楼层 |阅读模式
[Jass] 纯文本查看 复制代码
// 第三课

// 初始化整个系统,具体的语法可以不必深究,只需要记得,把这一行放在最前面就行了
// 一张地图只需要调用一次
<?local slk = require 'slk' ?>

function Test1 takes nothing returns nothing
    // 读取物品'afac'的'goldcost'值
    // 'afac'是物品的id,相信会用Jass的人都不会陌生,具体的值可以在物体编辑器中按Ctrl+D看到
    // 'goldcost'是物品的一个属性,其中文的含义是这个物品在商店的售价,同样可以在物体编辑器中按Ctrl+D看到
    local integer item_goldcost = <?=slk.item.afac.goldcost?>
    
    // 打开物体编辑器可以看到,一共有七个列表分别是单位、物品、可破坏物、地形装饰物、技能、魔法效果、科技
    // 分别对应slk.unit、slk.item、slk.destructable、slk.doodad、slk.ability、slk.buff、slk.upgrade
    // 他们的读取方法都是一样的
    local string ability_name      = "<?=slk.ability.Aply.Name?>"   

    // 我们还可以:
    <? local AHtb = slk.ability.AHtb ?>
    local string ability_order = "<?= AHtb.Order ?>"
    // 这是把技能'AHtb'的对象保存到一个变量里,然后在随后的式子里使用它
    
    local real ability_dur3 = <?= AHtb.Dur3 ?>
    // 我们可以用Dur3来获取第3级的属性
    
    local string ability_tip2 = "<?= AHtb.Tip2 ?>"
    // 有些属性的名字是相同的,你可以指定取出第几个属性
    
    local integer ability_button = <?= AHtb.Buttonpos ?>
    // 不特别指定的话,会取出第一个属性
endfunction

function Test2 takes nothing returns nothing
    // 到目前为止,我们都是读取指定ID的物体,但如果我们要读取所有的物体,
    // 又或者需要搜索满足某些特定条件的物体该怎么呢    
    local integer ability_id
    local string  ability_name
    <? for id, obj in pairs(slk.ability) do ?>
        set ability_id = '<?= id?>'
        set ability_name = "<?= obj.Name ?>"
    <? end ?>
    
    // 结合条件控制语句来实现搜索
    // 搜索所有热键为T的技能
    <? 
        for id, obj in pairs(slk.ability) do
            if 'T' == obj.Hotkey then
    ?>
                set ability_id = '<?= id?>'
    <?
            end
        end 
    ?>
    
    
    // 遍历物体的所有属性
    <? for key, val in pairs(slk.ability.Aply) do ?>
            set ability_name = "<?= '['..key..'] = ' ?>" + <?= string.format('%q', tostring(val)) ?>
    <? end ?>
    
endfunction


回复

使用道具 举报

Archiver|手机版|小黑屋|哇噢星球  

GMT+8, 2019-6-25 09:17 , Processed in 0.814621 second(s), 13 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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