找回密码
 点一下
查看: 1753|回复: 34

谁帮我用哈希表存储方法做个单位环绕的演示

[复制链接]
发表于 2012-1-29 22:17:02 | 显示全部楼层 |阅读模式
就是放技能创建4个单位绕着施法单位旋转。T的话会做的就是想学会哈希表方法做这个,自己做的时候发现N多问题所以求演示参考+研究
发表于 2012-1-29 22:35:01 | 显示全部楼层
LZ不说下具体遇到了什么问题吗?
如果做了半成品的话也可以贴上来~
回复

使用道具 举报

发表于 2012-1-29 23:09:15 | 显示全部楼层
直接给你看没意思的。。。。。而且环绕什么好土。。。。先贴你的代码?
可惜以前的号被砍了。。。。不然应该还有这种土演示。。。
回复

使用道具 举报

发表于 2012-1-30 00:50:20 | 显示全部楼层
恶。。居然忘了怎么用哈希表了。。谁来帮我找下问题根源把。。

哈希表测试.w3x

151 KB, 下载次数: 19

回复

使用道具 举报

发表于 2012-1-30 14:27:23 | 显示全部楼层
写了个,给你把。话说标题写的不错,有利搜索。
huanraoo.gif

要环绕是吧.w3x

160 KB, 下载次数: 59

回复

使用道具 举报

发表于 2012-1-30 14:51:23 | 显示全部楼层

回 破喉咙 的帖子

破喉咙:恶。。居然忘了怎么用哈希表了。。谁来帮我找下问题根源把。。
(2012-01-30 00:50)
喉咙的哈希表看起来比T作环绕还麻烦呢!
回复

使用道具 举报

 楼主| 发表于 2012-1-30 17:19:15 | 显示全部楼层
呵呵谢谢了自己做碰到一下子创建N个单位那技能就不知道怎么存了像实数有x y坐标的还有方向的变量多了就头晕
回复

使用道具 举报

发表于 2012-1-30 22:18:22 | 显示全部楼层
求自定义代码意义
回复

使用道具 举报

发表于 2012-1-30 22:58:24 | 显示全部楼层
啥意义,这是个模板。自定义代码调用这个模板啊~
回复

使用道具 举报

发表于 2012-1-30 23:00:29 | 显示全部楼层
啥意义,这是个模板。自定义代码调用这个模板啊~
0.03是计时器的速度
然后是计时器到达多少多少秒后停止
然后是离心速度
然后是特效
回复

使用道具 举报

发表于 2012-1-30 23:25:42 | 显示全部楼层
求无自定义代码版
回复

使用道具 举报

发表于 2012-1-30 23:28:21 | 显示全部楼层

回 破喉咙 的帖子

破喉咙:
求无自定义代码版
触发建单位也写成J的那种吗?
代码在最顶端=。=!
回复

使用道具 举报

发表于 2012-1-30 23:49:36 | 显示全部楼层
我需要的是夜天UI能打开的没有自定义代码的版本
回复

使用道具 举报

发表于 2012-1-30 23:57:57 | 显示全部楼层
globals
    hashtable P_hash = InitHashtable()
    hashtable round_hash = InitHashtable()
endglobals

function angxy takes real x1,real y1,real x2,real y2 returns real
    return bj_RADTODEG * Atan2(y2-y1,x2-x1)
endfunction


function disxy takes real x1,real y1,real x2,real y2 returns real
    return SquareRoot((x2 - x1)*(x2 - x1)+(y2 - y1)*(y2 - y1))
endfunction

function round_time takes nothing returns nothing
    local integer one = GetHandleId(GetExpiredTimer())
    local unit u = LoadUnitHandle(round_hash,one,1)
    local unit A_u = LoadUnitHandle(round_hash,one,2)
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    local real M_x = GetUnitX(A_u)
    local real M_y = GetUnitY(A_u)
    local real E_time = LoadReal(round_hash,one,12)
    local real ang = LoadReal(round_hash,one,14)+5
    local real index = LoadReal(round_hash,one,13)+1
    local real space = LoadReal(round_hash,one,11)
    local real lxl = LoadReal(round_hash,one,15)
    local real s = LoadReal(round_hash,one,16)
    local real time = LoadReal(round_hash,one,17)
    local string Effect = LoadStr(round_hash,one,18)
    set s = s +lxl
    call SaveReal (round_hash,one,16,s)
    call SaveReal(round_hash,one,13,index)
    set M_x = x + (space+s) * (CosBJ(ang))
    set M_y = y + (space+s) * (SinBJ(ang))
    call DestroyEffect(AddSpecialEffect(Effect,M_x,M_y))
    call SaveReal(round_hash,one,14,ang)
    call SetUnitX(A_u,M_x)
    call SetUnitY(A_u,M_y)
    set u = null
    set A_u = null
    if index > E_time*(1/time) then
        set u = null
        set A_u = null
        call FlushChildHashtable(round_hash,one)
        call DestroyTimer(GetExpiredTimer())
    endif
endfunction


function round takes unit u1 , unit u2 ,real time ,real E_time,real lxl,string Effect returns nothing
    local timer t= CreateTimer()
    local integer one = GetHandleId(t)
    local real x = GetUnitX(u1)
    local real y = GetUnitY(u1)
    local real M_x = GetUnitX(u2)
    local real M_y = GetUnitY(u2)
    local real space = disxy (x,y,M_x,M_y)
    local real A = angxy (x,y,M_x,M_y)
    call SaveReal(round_hash,one,17,time)
    call SaveReal(round_hash,one,15,lxl)
    call SaveReal(round_hash,one,14,A)
    call SaveUnitHandle(round_hash,one,1,u2)
    call SaveUnitHandle(round_hash,one,2,u1)
    call SaveReal(round_hash,one,10,E_time)
    call SaveReal(round_hash,one,11,space)
    call SaveReal(round_hash,one,12,E_time)
    call SaveStr(round_hash,one,18,Effect)
    call TimerStart(t,time,true,function round_time)
    set u1 = null
    set u2 = null
endfunction
复制过去直接能用了。
回复

使用道具 举报

发表于 2012-1-31 00:20:21 | 显示全部楼层
明显不能用,globals都在,UI怎么能打开……
回复

使用道具 举报

发表于 2012-1-31 00:21:01 | 显示全部楼层
  [s:195]  [s:195]
回复

使用道具 举报

发表于 2012-1-31 00:24:48 | 显示全部楼层
从没脱离过YDWE、
回复

使用道具 举报

发表于 2012-1-31 12:30:13 | 显示全部楼层
夜天UI其实也有很多的漏洞……
比如它升级老狼UI时并没有使用bak版的TriggerData
再加上1.24官方UI的诸多漏洞……夜天UI并没能完全弥补

唯一好用的是它自带的“自定义代码”功能,用好它的确可以实现任何功能
所以摒弃自定义代码是不对的……
回复

使用道具 举报

发表于 2012-1-31 12:54:09 | 显示全部楼层
[s:195] 看不懂自定义代码啊
回复

使用道具 举报

发表于 2012-1-31 12:55:26 | 显示全部楼层
d.w3x (13 KB, 下载次数: 33)
做了个简陋的演示~~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-26 07:20 , Processed in 0.053044 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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