文档详情

halo通用改java程序为数字键版教程..doc

发布:2016-12-30约1.89千字共6页下载文档
文本预览下载声明
halo通用改java程序为数字键版教程 尐豬(5段) 广州 08年11月29日 17:32 选用程序: QQ2008BETA2-063.jar.难度:容易。 需要的工具:Halo、JavaMagic v0.60a 在这个教程里,我们将看看如何通过键值的修改让程序变为数字键版,这种修改是最省内存,而且也很简单,基本不会出错。我们做一让QQ变为数字键版的过程. 首先, JAVA程序对于按键的定义一般会使用到两个函数,一个是Keypressed(keycode),另一个是 getgameaction(keycode)。而监听按键事件的有三个关键方法: keyPressed, keyReleased, keyRepeated 我们从英文的字面上看就知道这三个方法实际上是代表的意思是: 有按键按下,有按键松开,有按键重复 我们使用halo进行修改,但由于halo没有提供对方法名字的搜索,那么难道我们要每个class打开看看? [halo2.20已经支持方法名的搜索,使用方法点击进入] 当然是不用这么麻烦,我们可以利用JavaMagic v0.60a就知道是哪个class在监听按键事件 我们打开JavaMagicv0.60a,接着打开设置-Misc2,去掉“仅显示摘要”前的钩。 再点一下上面的keycode,钩上启用键码转换功能-确定 接着我们处理一下要修改的QQ2008BETA2-063,处理完后看到以下的界面: JavaMagic每个class分析结果都显示在上面了。这样我们只需要看看哪个class的分析结果有按键说明的就知道这个class就是我们需要修改的了。拖动鼠标,我们发现以下分析结果: 目标文件: dp.class 分析中... Found: Displayable.getHeight() or Displayable.getWidth() 可能会自动适应屏幕高度 调用了MIDP Canvas类 ◇已将MIDP Canvas类替换为CanvaPlus 可能监听了按键事件 ◇已处理 数据已写入,修改完毕。 这里提到“可能监听了按键事件”,这就说明dp.Class可能就是我们需要修改的class了。 我们用halo打开QQ2008BETA2-063,然后找到dp.clsss: 鼠标右键打开,点Edit Calss,打开方法后我们看到: 那三个方法就是我们需要修改的了。 现在我们知道了dp.class就是我们需要修改的class了。 通过代码编辑表来编辑keyPressed方法,选中第一行,然后点击 “新建(高级 )”。如图: 记住了,在halo里面插入代码段,都是在当前选中行的上一行插入的。在弹出的窗口中,我们复制粘贴以下代码: iload_1 bipush 50 if_icmpne 6 bipush 255 istore_1 iload_1 bipush 56 if_icmpne 11 bipush 254 istore_1 iload_1 bipush 52 if_icmpne 16 bipush 253 istore_1 iload_1 bipush 54 if_icmpne 21 bipush 252 istore_1 iload_1 bipush 53 if_icmpne 26 bipush 251 istore_1 iload_1 bipush 55 if_icmpne 31 bipush 52 istore_1 iload_1 bipush 57 if_icmpne 36 bipush 54 istore_1 iload_1 bipush 48 if_icmpne 41 bipush 53 istore_1 iload_1 bipush 248 if_icmpne 46 bipush 48 istore_1 复制粘贴后如图所示: 按确定完成,是不是看到在halo里面已经插入了以上的代码呢,ok,那么我们点保存方法、编译、打包,看图: 这样我们就改好一个方法了。 而接下来的keyRelease和keyRepeated,也是按照上面的方法同样复制代码就可以了。是不是很简单! 三个方法都改好后,qq的数字键为: 2键为↑ 4键为← 6键为→ 8键为↓ 5键为确定键(即摇杠按中间那个确定) 1键和3键没变 7键和9键相当于原版的4和6键 *键为显示或屏蔽不在线的好友 #键为关闭或打开好友列表 0键为收取新信息 C键为皮肤切换 教程就写到这里了,如写得不好还请多多见谅。
显示全部
相似文档