找回密码
 点一下
查看: 2954|回复: 6

jasscraft检查GetHandleId函数出错

[复制链接]
发表于 2010-2-13 22:04:27 | 显示全部楼层 |阅读模式
常用的JASS的运用的两种手法是:return bug和GetHandleId   都是很好的JASS常识
我两种都喜欢用

return bug众知周知用jasscraft检查是不出语法毛病的,
GetHandleId在地图中用了后,明摆着是明确的,地图也可以运行,用jasscraft等多种工具检查,都是出错的,
明摆没错,普通工具却不识得GetHandleId,检查会出错,给写JASS造成了困惑,
因为GetHandleId是比return bug ,还要好用的东东,


以下这句,

function YZO takes nothing returns nothing
local trigger t=CreateTrigger()
local unit DII=GetTriggerUnit()
local location l=GetSpellTargetLoc()
local real x=GetLocationX(l)
local real y=GetLocationY(l)
local integer CLI=GetHandleId(t)
set DII=null
set t=null
set l=null
endfunction

是正确的,用jasscraft检查,因为语句中有GetHandleId,所以出错,如何解决?
发表于 2010-2-13 22:08:37 | 显示全部楼层
因为cj中新的函数使用tab('\\t')作为whitespace的,而jasscraft检测不出来,又或者你没更新jasscraft里的cj代码
你可以看下你的jasscraft中函数列表里是不是变成了GetHandleIdtakes,如果是的话就是这个问题了
你可以手动的修改cj代码文件还修正这个问题,这段代码在我这里检测无问题
回复

使用道具 举报

 楼主| 发表于 2010-2-13 23:09:23 | 显示全部楼层

回 1楼(zhuzeitou) 的帖子

如何手动修改CJ函数,我不会呀。给个函数表吧。
发个CJ函数文件给我,不胜感激。

目前本人的魔兽版本也无法保存新JASS函数:
GetHandleId和哈希表函数Hashtable等,更新CJ后就可以解决 吗?

我的jasscraft版本是1.22,过时了吧。
回复

使用道具 举报

发表于 2010-2-13 23:18:03 | 显示全部楼层
这个你可以去看看疯人在工具区发的帖,那个jasscraft增强版
改很简单啊,写个程序替换也行,在文件中搜索那个制表符替换成四个空格也行
回复

使用道具 举报

 楼主| 发表于 2010-2-13 23:47:22 | 显示全部楼层

回 3楼(zhuzeitou) 的帖子

增加了这句:
native I2R  takes integer i returns real
native R2I  takes real r returns integer
native I2S  takes integer i returns string
native R2S  takes real r returns string
native R2SW takes real r, integer width, integer precision returns string
native S2I  takes string s returns integer
native S2R  takes string s returns real
native GetHandleId takes handle h returns integer
native SubString takes string source, integer start, integer end returns string
native StringLength takes string s returns integer
native StringCase takes string source, boolean upper returns string
native StringHash takes string s returns integer
解决了,jasscraft出错问题。

但我的魔兽地图编辑器版本,还是保存不了这函数,

说明:我的魔兽地图是WOW8全函数增强版。
回复

使用道具 举报

发表于 2010-2-13 23:51:14 | 显示全部楼层
刚才说的修正只限于jasscraft,对魔兽是无关的
回复

使用道具 举报

 楼主| 发表于 2010-2-14 11:27:47 | 显示全部楼层

回 5楼(zhuzeitou) 的帖子

鉴于新的1.24魔兽版本,已经禁止了return bug的运用,修复了这个老BUG。

现在,凡是地图里运用了return bug的图,都无法运行于1.24和以后的魔兽版本,

广大地图作者兄弟们只能向GetHandleId和哈希函数hash看齐,
真是可惜,Everguo算是白写JASS培训教材了。

也真是要命了,我有许多的ruturn bug函数写在我的地图里。凡是以前我的老地图都无法运行1.24魔兽版本,要把老地图一一转化成适用于1.24的魔兽版本真是....累。



楼上的版主有GetHandle和hash教材的话给个连接。以后得深入学习了
第一,以后要全部抛弃return bug
第二,要把以前地图中的所有return bug转化为gethandle类。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 02:03 , Processed in 0.169750 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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