找回密码
 点一下
查看: 6570|回复: 24

测试中允许随时修改加入脚本方法

[复制链接]
发表于 2007-10-26 13:49:21 | 显示全部楼层 |阅读模式
魔兽脚本的加入规则,cj及common ai 里的部分属于接口,bj在war3map。j前按默认路径读入,地图主要脚本war3map。j可以调用的额外脚本主要有 AI 脚本,和被忽略已久的预载脚本pld,以前似乎我得出过pld中无法使用预载以外语句的结论,但现在发现并非如此。
那么有兴趣的话可以试试:

在允许魔兽加载本地文件的基础下(那个相关注册表),可手动修改:
[HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III]
"Allow Local Files"=dword:00000001
解出演示中的 jt.pld ,放在D盘根目录(默认设定),相对目录可在演示里调整。
然后遍可以在游戏中一边调试,一边用jass工具修改该脚本了。

LocalScripts.w3x

17 KB, 下载次数: 126

wc3.reg.txt

1 KB, 下载次数: 100

发表于 2007-10-26 14:57:57 | 显示全部楼层
很好~~可以评选年度发现了~~
回复

使用道具 举报

发表于 2007-10-26 15:50:51 | 显示全部楼层
好强大.MB.........
回复

使用道具 举报

发表于 2007-10-26 15:52:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2007-10-26 16:01:35 | 显示全部楼层
测试无效阿无效   注册表是不是写错了阿
回复

使用道具 举报

发表于 2007-10-26 16:04:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2007-10-26 16:11:00 | 显示全部楼层
确实无效
回复

使用道具 举报

发表于 2007-10-26 16:12:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2007-10-26 16:15:02 | 显示全部楼层
当然是放到D盘
回复

使用道具 举报

发表于 2007-10-26 16:16:09 | 显示全部楼层
war3map.j中改成内部文件就能正常读取   改成D\\\\jt.pld就不行  所以我怀疑是不是注册表不对
回复

使用道具 举报

发表于 2007-10-26 16:35:33 | 显示全部楼层
有效的~~而且~~

楼主你说pld里不能用return bug?

其实pld里是可以I2H和H2I的~~我楼主八成是试图把那个integer给debug出来结果显示null才说不能用吧?~~



确实~~如果在pld里I2S的话会显示null或者出来乱七八糟的字符~~但是这不代表H2I没有成功~~其实integer变量里面已经有值了~~只是不能被显示在屏幕上而已~~

不能用的其实是I2S~~而不是H2I~~


我照你的pld改了下~~给你看看H2I能用的证据~~

JT.pld

1 KB, 下载次数: 69

回复

使用道具 举报

发表于 2007-10-26 16:40:09 | 显示全部楼层
原来是要删了原来的JT.pld 才行
回复

使用道具 举报

 楼主| 发表于 2007-10-26 16:44:36 | 显示全部楼层
= = 注册表应该没有,厄,好吧,现在暂时失效了,我再去看看怎么回事。。
回复

使用道具 举报

 楼主| 发表于 2007-10-26 16:54:10 | 显示全部楼层
不对。。不小心把键值改回0了 0.0
回复

使用道具 举报

发表于 2007-10-26 16:57:44 | 显示全部楼层
return bug确实可用  InitGameCache  StoreInteger也没报错  但是到GetStoredInteger就不行了  好吧  我再研究研究
回复

使用道具 举报

发表于 2007-10-26 17:02:02 | 显示全部楼层
local integer i=100000000
local integer j=10000000
local integer a=782

loop
exitwhen i<=1

loop
exitwhen i<=a
set i=i/10
endloop
set j=i
loop
exitwhen i>=a
set i=i+j
endloop
call msg("xx="+I2S((i/j)-1))
set a=a-i+j
set i=i/10
endloop


call msg("0="+I2S(0))
call msg("1="+I2S(1))
call msg("2="+I2S(2))
call msg("3="+I2S(3))
call msg("4="+I2S(4))
call msg("5="+I2S(5))
call msg("6="+I2S(6))
call msg("7="+I2S(7))
call msg("8="+I2S(8))
call msg("9="+I2S(9))


好吧  写一个能简单确定数值的东西 通过对比确定每一位数是什么  虽说很简陋  但聊胜于无   还有要在字符串有一定数量的情况下才行 否则现实的null
回复

使用道具 举报

发表于 2007-10-26 17:02:32 | 显示全部楼层
哦 还有 TriggerSleepAction用不了
回复

使用道具 举报

发表于 2007-10-26 17:05:21 | 显示全部楼层
啊哈 GetStoredInteger也可以 是我写错了
回复

使用道具 举报

发表于 2007-10-26 17:08:26 | 显示全部楼层
阿哈  完全成功  用cache可以和jass传递变量
回复

使用道具 举报

 楼主| 发表于 2007-10-26 17:18:44 | 显示全部楼层
的确。字符串的转化挺成问题,或者说native中所有返回string的失灵了,以string为参的不受影响的话,说明在这里,string的句柄系统是存得进、取不出的局面。。厄不对,是之前存在的无法正常取出;如果在这区域内给个新的string,存入和取出都是正常的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 16:06 , Processed in 0.314857 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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