找回密码
 点一下
查看: 930|回复: 35

Timer类动作

[复制链接]
发表于 2015-4-20 04:10:32 | 显示全部楼层 |阅读模式
// Timers
const fixed c_timerDurationInfinite = -1.0;

native timer    TimerCreate ();

native void     TimerStart (timer t, fixed duration, bool periodic, int timeType);
native void     TimerRestart (timer t);
native timer    TimerLastStarted ();

native void     TimerPause (timer t, bool pause);
native bool     TimerIsPaused (timer t);

native fixed    TimerGetElapsed (timer t);
native fixed    TimerGetRemaining (timer t);
native fixed    TimerGetDuration (timer t);

我........kao.没有destroy也没有clear?

如果无限创建了不删除,不就是内存泄露了么?

话说死活找不到GetHandle类的动作.... T T...只有一个UnitGetTag...

这、不、科、学、啊!!!
 楼主| 发表于 2015-4-20 04:12:17 | 显示全部楼层
如果能取整数地址....那不是爽死了

结构体能有自己的整数地址么???


如果有的话,哇塞,爽死了啊!!!!!!

可惜感觉没有,直觉
回复

使用道具 举报

 楼主| 发表于 2015-4-20 04:14:30 | 显示全部楼层
QAQ

....想弄0秒延时,怎么绑定啊....

如果实在不行,,,一咬牙,我只能用物编辅助了

0秒的效果打单位,触发器相应

这用法也太窝囊了点.....
回复

使用道具 举报

 楼主| 发表于 2015-4-20 04:37:08 | 显示全部楼层
真是.....。 SF30DIFXO_8FNLSFTN22U.png
大半夜的我为什么会笑.....
回复

使用道具 举报

发表于 2015-4-20 08:55:00 | 显示全部楼层
本帖最后由 solon58552 于 2015-4-20 08:57 编辑

我记得Galaxy自带的排泄机制能回收大部分变量,timer应该是其中之一.
GetHandleId其实是返回一个基码+句柄类型码+句柄ID组合成的整数,这就是Jass里面这个函数的工作原理,换言之自己定义一个ID规则,然后写一个这样的库就可以,但是不清楚Galaxy是否还有Handle这个变量型.
不过你不用担心没法取到独一无二的索引,Galaxy把单位自定义值变成了数组,你现在如果设置或者取用单位自定义值,函数要求你给出自定义值索引,所以你懂得.
另外,自从指针被砍了之后,现在的阉割式指针(也就是引用)肯定不会让你直接取到内存地址,要获取结构体恐怕只有事先准备全局结构体变量组,分配索引ID,然后在需要的时候通过去结构体ID直接调取全局变量对应的结构体.

点评

变量组是数组么?? 分配引索ID是堆栈么???  详情 回复 发表于 2015-4-20 09:38
为什么砍了?逗比么.... 感觉没handle好麻烦啊,数据表直接给废了,跟变量的作用没区别了... timer类的handle最大的优良就是不像单位是一个实体单位,会卡..... 现在好了,可以获取handle的有行为,  详情 回复 发表于 2015-4-20 09:36
回复

使用道具 举报

 楼主| 发表于 2015-4-20 09:36:30 | 显示全部楼层
solon58552 发表于 2015-4-20 08:55
我记得Galaxy自带的排泄机制能回收大部分变量,timer应该是其中之一.
GetHandleId其实是返回一个基码+句柄 ...

为什么砍了?逗比么....

感觉没handle好麻烦啊,数据表直接给废了,跟变量的作用没区别了...

timer类的handle最大的优良就是不像单位是一个实体单位,会卡.....

现在好了,可以获取handle的有行为,要handle何用

不卡的又不能获取handle.....额啊,,,醉了
回复

使用道具 举报

 楼主| 发表于 2015-4-20 09:38:28 | 显示全部楼层
solon58552 发表于 2015-4-20 08:55
我记得Galaxy自带的排泄机制能回收大部分变量,timer应该是其中之一.
GetHandleId其实是返回一个基码+句柄 ...

变量组是数组么??

分配引索ID是堆栈么???
回复

使用道具 举报

发表于 2015-4-20 09:47:09 | 显示全部楼层
楼主最近很活跃啊?在预谋什么大作吗?

点评

没有~~~性格而已~~~  详情 回复 发表于 2015-4-20 10:11
回复

使用道具 举报

发表于 2015-4-20 09:59:41 | 显示全部楼层
本帖最后由 jifengxiang 于 2015-4-20 10:14 编辑

LZ 加了个油
回复

使用道具 举报

 楼主| 发表于 2015-4-20 10:11:17 | 显示全部楼层
wyg5105478 发表于 2015-4-20 09:47
楼主最近很活跃啊?在预谋什么大作吗?

没有~~~性格而已~~~
回复

使用道具 举报

发表于 2015-4-20 10:45:14 | 显示全部楼层
很简单,因为sc2用不到handle。

用再多timer也没效果和行为来得方便。

以及Timer会自动回收,用不着手动销毁。

点评

如果触发器注册到期动作当计时器用呢. 用triggercreate创建的.  详情 回复 发表于 2015-4-20 10:49
话说头目,我鼓捣出了一个比较蛋疼的判断字符串的办法 用数据集弄的,拿来做装备搜索什么的还可以 但是需要玩家自行下txt补丁......QAQ  详情 回复 发表于 2015-4-20 10:48
也就是说触发器也能回收?  详情 回复 发表于 2015-4-20 10:47
回复

使用道具 举报

 楼主| 发表于 2015-4-20 10:47:09 | 显示全部楼层
麦德三世 发表于 2015-4-20 10:45
很简单,因为sc2用不到handle。

用再多timer也没效果和行为来得方便。

也就是说触发器也能回收?

点评

貌似不能,你可以关闭它,但是关闭的触发器也不会被回收。  发表于 2015-4-23 14:49
回复

使用道具 举报

 楼主| 发表于 2015-4-20 10:48:06 | 显示全部楼层
麦德三世 发表于 2015-4-20 10:45
很简单,因为sc2用不到handle。

用再多timer也没效果和行为来得方便。

话说头目,我鼓捣出了一个比较蛋疼的判断字符串的办法

用数据集弄的,拿来做装备搜索什么的还可以

但是需要玩家自行下txt补丁......QAQ

点评

为啥要下载?直接写在代码里面不就ok么?  详情 回复 发表于 2015-4-20 11:16
回复

使用道具 举报

 楼主| 发表于 2015-4-20 10:49:40 | 显示全部楼层
麦德三世 发表于 2015-4-20 10:45
很简单,因为sc2用不到handle。

用再多timer也没效果和行为来得方便。

如果触发器注册到期动作当计时器用呢.

用triggercreate创建的.

点评

为什么不用等待?sc2里面等待和计时器的精度完全一样。  详情 回复 发表于 2015-4-20 12:28
回复

使用道具 举报

发表于 2015-4-20 11:16:18 | 显示全部楼层
东方油瓶 发表于 2015-4-20 10:48
话说头目,我鼓捣出了一个比较蛋疼的判断字符串的办法

用数据集弄的,拿来做装备搜索什么的还可以

为啥要下载?直接写在代码里面不就ok么?

点评

[attachimg]164329[/attachimg] 我.......我是个逗比!!!!!! 不对啊!!!为什么直接填字符串就行了!!!!!***!!!!!  详情 回复 发表于 2015-4-20 12:31
手动输入只能输英文,输中文要用StringE..一个函数,记不清了,在里面直接输UTF8的编码才能转换成中文 很奇怪,数据集保存之后,字符显示也是中文而不是乱码,字符比较也可以进行 但是你不能以非数据集的形式  详情 回复 发表于 2015-4-20 11:48
回复

使用道具 举报

 楼主| 发表于 2015-4-20 11:48:33 | 显示全部楼层
windywel 发表于 2015-4-20 11:16
为啥要下载?直接写在代码里面不就ok么?

手动输入只能输英文,输中文要用StringE..一个函数,记不清了,在里面直接输UTF8的编码才能转换成中文

很奇怪,数据集保存之后,字符显示也是中文而不是乱码,字符比较也可以进行

但是你不能以非数据集的形式,将一个中文,以字符串的变量类型,储存起来

数据集能储存是因为可以在外部用记事本写~~~这样sc2就管不着了~~~

还有一种保存中文为字符串的方法就是玩家输入信息,但是这个....没法愉快的用...

数据集保存是本地的,跟地图又是分开的.....所以需要下载,并且放到sc2的bank盘里

回复

使用道具 举报

发表于 2015-4-20 11:58:21 | 显示全部楼层
(⊙o⊙)… 我的中文字符串全写代码中的..例如 “你好”用string储存就是
string hello="\u4f60\u597d";
这样就可以比较
回复

使用道具 举报

发表于 2015-4-20 12:28:34 | 显示全部楼层
东方油瓶 发表于 2015-4-20 10:49
如果触发器注册到期动作当计时器用呢.

用triggercreate创建的.

为什么不用等待?sc2里面等待和计时器的精度完全一样。
回复

使用道具 举报

 楼主| 发表于 2015-4-20 12:31:37 | 显示全部楼层
windywel 发表于 2015-4-20 11:16
为啥要下载?直接写在代码里面不就ok么?

J[`QW8${(S2(RO_%W3UR6.jpg

我.......我是个逗比!!!!!!

不对啊!!!为什么直接填字符串就行了!!!!!***!!!!!
回复

使用道具 举报

 楼主| 发表于 2015-4-20 12:32:09 | 显示全部楼层
麦德三世 发表于 2015-4-20 12:28
为什么不用等待?sc2里面等待和计时器的精度完全一样。

我...我害怕....习惯了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-20 20:25 , Processed in 0.275343 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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