找回密码
 点一下
查看: 809|回复: 5

谁可以给我一个使用hashtable的演示?

[复制链接]
发表于 2012-4-25 17:37:32 | 显示全部楼层 |阅读模式
1.24的编辑器里面有  哈希表

貌似最大值是9位数。

可我往往把 字符转换成整数去作为索引,或者单位转换为整数。。。

好像都大于了9位数。。。所以无法作为索引,给我一个思路。

尽可能用GUI吧。。多谢了,什么演示都可以,只是一个调用hashtable的演示。。。

如果要有一个命题,我想说。。唔。。双击选英雄吧。
发表于 2012-4-25 17:51:50 | 显示全部楼层
简单的例子:
globals
   hashtable udg_HT = null  //需要初始化 InitHashTable()
endglobals

...//
local timer t = CreateTimer()
local integer parentKey = GetHandleId(t)
local integer childKey = 0
local unit u = bj_lastCreateUnit()
call SaveUnitHandle(udg_HT,parentKey,childKey ,u)
...//

你可以去看玻璃渣的AIP呀,做索引的话直接用GetHandleId就可以得到一个独一无二的索引值了

还有你可以去搜索一下hashtable
回复

使用道具 举报

发表于 2012-4-25 18:02:15 | 显示全部楼层
双击选择英雄(PS:在公司,用记事本写的,有失误的地方还请谅解)
function trg_PickHero_Conditions takes nothing returns nothing
    return IsUnitType(GetTriggerUnit(),UNIT_TYPE_HERO)
endfunction

// udg_HT 先声明并且初始化
function trg_PickHero_Actions takes nothing returns nothing
    local integer parentKey = GetHandleId(GetTriggerUnit())//根据选取的单位获得P_ID
    local integer pickCount = LoadInteger(udg_HT,parentKey,0)//C_ID就用0就行了,有没其他数据
    if (pickCount==0) then
        set pickCount++
        call SaveInteger(udg_HT,parentKey,0)
    elseif (pickCount==1) then
        //选取成功,改变英雄所属...
    endif
endfunction

function Init_trg_PickHero takes nothing returns nothing
    set gg_trg_PickHero = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(gg_trg_PickHero,EVENT_PLAYER_UNIT_SELECTED)
    call TriggerAddCondition(gg_trg_PickHero,function trg_PickHero_Conditions)
    call TriggerAddAction(gg_trg_PickHero,function trg_PickHero_Actions)
endfunction
回复

使用道具 举报

 楼主| 发表于 2012-4-25 19:15:03 | 显示全部楼层
[trigger]未命名触发器 001
    事件
        时间 - 当游戏逝去 0.01 秒
    条件
    动作
        哈希表 - 创建一个新的哈希表
        设置 HT = 最后创建的哈希表 [Ci]
        哈希表 - 在 HT 的主索引 0 子索引 0 中保存单位 孙悟空 0005 <预设>[/trigger]

[trigger]未命名触发器 002
    事件
        玩家 - 玩家1(红色) 按下Esc键(跳过电影)
    条件
    动作
        单位 - 杀死 (在 HT 的主索引 0 子索引 0 内提取单位)[/trigger]
那为什么我按下Esc的时候,
孙悟空 0005 <预设>
没有死掉。。。
回复

使用道具 举报

发表于 2012-4-25 19:42:35 | 显示全部楼层
哈希失效了
   哈希表 - 创建一个新的哈希表 你用了CJ那个了 不要那个 可以的
回复

使用道具 举报

发表于 2012-4-25 21:23:08 | 显示全部楼层
设置 HT = 新建哈希表
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-10-6 12:17 , Processed in 0.084517 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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