这是一款Pokemmo小程序。
原始项目:https://github.com/Spitz3492/PokeMMO-Bot
原始项目不能满足我,所以自己就动手加功能。
程序主要就是识别图片,是不是匹配程序规定的,是的话执行相应的操作。
images文件夹下面有相应的子文件夹用与验证状态。
可以自定义识别屏幕内指定状态的坐标。(程序目录下有个‘ColorPix.exe’可用于手动获取坐标)
可以计算成功抓多少只,使用多少个球。
可以判断PM的血量以及是否睡眠状态,血量低或者睡眠状态直接丢球抓。
可以检测捕抓失败。
VU检测没来得及做,号就被和谐了。
被和谐是检测到空地上来回走的关系。(没进草丛原地打圈圈)。
程序:DayMBot
源码:DayMBotSrc
不能运行的话,自行安装一下.net框架
PS:有编程能力的话,只要有对应的图片处理方案,可以搞各种小动作,自动钓鱼,自动孵蛋,自动刷努力啥的都可以自己加。。。
被封号不关我事啊,感觉不打对战,还不如单机金手指。
分享下C#CorelDraw插件的开发
一、新建WinFrom程序
在CS代码中添加以下引用 using CorelDRAW; using VGCore;
在代码中添加一个CorelDRAW.Application的字段,所有对文档、物件的操作都在里面。
public CorelDRAW.Application App; 如下图
二、创建与CorelDraw的关联
在窗体界面设计器中添加一个按钮,在给按钮添加一个事件。
下面看按钮代码中的事件 这里添加了一个判断,判断CorelDRAW.Application字段有没有赋值,防止打开多个CorelDraw程序。
上图中代码写的代码写重了,视图模式的代码为: App.ActiveWindow.ActiveView.Type = CorelDRAW.cdrViewType.cdrEnhancedView;
cdrViewType :可以设置CorelDraw视图模式,越简单的模式执行效率越高 cdrViewType.cdrEnhancedView 是增强模式,默认的视图模式 cdrViewType.cdrSimpleWireframeView 是线宽模式,在该模式下执行宏效率较高。
cdrWindowState :CorelDraw窗体的设置,最大化最小化等。
cdrUnit :设置CorelDraw当前文档的单位(mm毫米、cm厘米、m米)
执行程序,点击按钮会自动打开CorelDraw并创建一个文档。
三、操作CorelDraw中的物件 首先绘制控件,并添加按钮事件
注: App.ActiveSelectionRange 表示CorelDraw文档当前选中的物件 Shape、Shapes、ShapeRange
设计CorelDraw插件主要操作的就是这几个对象 Duplicate 表示复制、再制,效率没有 Clone 高,如果是 Clone 母体被删除时,所有的克隆体都会被消灭。
下图为执行效果。
四、遍历操作物件 遍历文档当前在操作的层中所有的物件,如果含有指定文本的话,改变其颜色
下图为执行效果
五、进阶操作 绘制控件
添加按钮事件 Shapes中有一个很有用的方法:FindShapes 该方法可以寻找各种物件,可以通过物件名称、类型、大小、颜色(边框颜色)、文本等进行寻找物件。
下图未进行操作任何操作
下图为寻找物件1 按钮的效果
下图为寻找物件2按钮的效果
最后,可以把创建CorelDraw连接的代码定义成一个方法。
在窗体载入后调用该方法
各种类、属性的用法,CorelDraw中VB宏中都有英文的帮助库。
不想排版不想组织语言,就这样吧。
上面的源码下载:coreldrawapp
上一张自己开发的插件的截图。
经过两个多月的努力,CorelDraw插件的开发终于告一段落啦。
第一次开发第三方软件,磕磕碰碰,接触了许多不得不去接触的东西,还是完成了开发。感觉自己棒棒哒。
小激动下,继续去练我的和弦。
热血曲棍球修改器
————————————————————————–
文本翻译乱来的。有需要的可以打开修改器data目录下的txt文件进行修改。
数据也写在里面了。
载入的文件记得去掉只读属性。 程序需要.net 2.0的支持。
日文资料来自 http://www.geocities.jp/m_jackson0313/dlpage.html
————————————————————————–
热血曲新记录 热血进行曲修改器
————————————————————————–
汉化版进行曲跟日版进行曲血量地址不一样。请注意勾选对应版本。
下载:
度娘盘
我的永硕盘- 热血系列专栏—修改器 目录下。
程序需要 .net 2.0的支持。
部分代码来自这里http://tieba.baidu.com/p/1667280530
如上图:可以修改 敌我 双方 球员的 体力 特性(AI+防御力) 技能 必杀等。
必杀附带游戏里未用到的代码,精华版的基本不会出BUG可以在场上使用。
对战模式选择,两列按照顺序跟游戏里是一样的。
进球后报幕队名修改。就是电子显示牌子上面的英文。
补丁区的数据由 黯然漫游者 提供。(百度Id)
下载:
度娘盘
我的永硕盘- 热血系列专栏—修改器 目录下。
程序需要 .net 2.0的支持。
这个工具有两种用途,一个是生成字库,另外一个是田字转换。
文本转Chr,就是生成的字库图片可以用YYCHR打开,然后附加到要用到的ROM里面。
如下面的两张图。
田字转换是SKY叫我做的,好像是为了实现头像导入,估计是跟NAM有关。
田字转换应该不需要更新了。
田字转换可转1k文件。每八行就是8×16个元素进行一次转换。增加转换地址选择。
文本转Chr有点单调,想做个类似 NES_2bpp视图字库写入工具,可以对应Tile进行修改。
之前的代码双向转换都没搞定呢。。。看着办吧。。。
这是一个小程序 :A
把要写入到ROM里的168X48规格的LOGO修正代码定义到数组yypatch。
把要写入到ROM里的128X64规格的LOGO修正代码定义到数组Logopatch。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace fff { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public static Byte[] yypatch = new Byte[] { 0x00,0x82,0x83,0x84, 0x00,0x97,0x98,0x99, 0x00,0xac,0xad,0xae, 0x00,0xc1,0xc2,0xc3, 0xaa,0x85,0x86,0x87, 0x88,0x9a,0x9b,0x9c, 0x9d,0xaf,0xb0,0xb1, 0xb2,0xc4,0xc5,0xc6, 0xc7,0xaa,0x89,0x8a, 0x8b,0x8c,0x9e,0x9f, 0xa0,0xa1,0xb3,0xb4, 0xb5,0xb6,0xc8,0xc9, 0xca,0xcb,0xaa,0x8d, 0x8e,0x8f,0x90,0xa2, 0xa3,0xa4,0xa5,0xb7, 0xb8,0xb9,0xba,0xcc, 0xcd,0xce,0xcf,0xaa, 0x91,0x92,0x93,0x94, 0xa6,0xa7,0xa8,0xa9, 0xbb,0xbc,0xbd,0xbe, 0xd0,0xd1,0xd2,0xd3, 0xaa,0x95,0x96,0x00, 0x00,0xaa,0xab,0x00, 0x00,0xbf,0xc0,0x00, 0x00,0xd4,0xd5,0x00, 0x00,0xaa,0x00,0xd6, 0xd7,0xd8,0x00,0xeb, 0xec,0xed,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0xaa,0xd9, 0xda,0xdb,0xdc,0xee, 0xef,0xf0,0xf1,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xaa, 0xdd,0xde,0xdf,0xe0, 0xf2,0xf3,0xf4,0xf5, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0xaa,0xe1,0xe2,0xe3, 0xe4,0xf6,0xf7,0xf8, 0xf9,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0xaa,0xe5,0xe6, 0xe7,0xe8,0xfa,0xfb, 0xfc,0xfd,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0xaa,0xe9, 0xea,0x00,0x00,0xfe, 0xff,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00 }; public static Byte[] Logopatch = new Byte[] { 0xAA,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0xAA,0x80,0x81, 0x82,0x83,0x90,0x91, 0x92,0x93,0xA0,0xA1, 0xA2,0xA3,0xB0,0xB1, 0xB2,0xB3,0xAA,0x84, 0x85,0x86,0x87,0x94, 0x95,0x96,0x97,0xA4, 0xA5,0xA6,0xA7,0xB4, 0xB5,0xB6,0xB7,0xAA, 0x88,0x89,0x8A,0x8B, 0x98,0x99,0x9A,0x9B, 0xA8,0xA9,0xAA,0xAB, 0xB8,0xB9,0xBA,0xBB, 0xAA,0x8C,0x8D,0x8E, 0x8F,0x9C,0x9D,0x9E, 0x9F,0xAC,0xAD,0xAE, 0xAF,0xBC,0xBD,0xBE, 0xBF,0xAA,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0xAA,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xAA, 0xC0,0xC1,0xC2,0xC3, 0xD0,0xD1,0xD2,0xD3, 0xE0,0xE1,0xE2,0xE3, 0xF0,0xF1,0xF2,0xF3, 0xAA,0xC4,0xC5,0xC6, 0xC7,0xD4,0xD5,0xD6, 0xD7,0xE4,0xE5,0xE6, 0xE7,0xF4,0xF5,0xF6, 0xF7,0xAA,0xC8,0xC9, 0xCA,0xCB,0xD8,0xD9, 0xDA,0xDB,0xE8,0xE9, 0xEA,0xEB,0xF8,0xF9, 0xFA,0xFB,0xAA,0xCC, 0xCD,0xCE,0xCF,0xDC, 0xDD,0xDE,0xDF,0xEC, 0xED,0xEE,0xEF,0xFC, 0xFD,0xFE,0xFF,0xAA, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 }; //定义写入类型。 static byte[] xieru(byte[] xdaima, int i, int num) { xdaima[i] = (byte)num; return xdaima; } byte[] xdaima; string home; string shome; bool te = false; //打开ROM private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "所有合适文件*.*|*.*|.nes文件(*.nes)|*.nes"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; if (DialogResult.OK == openFileDialog1.ShowDialog()) { FileStream asave = new FileStream(openFileDialog1.FileName, FileMode.Open); xdaima = new byte[asave.Length]; asave.Read(xdaima, 0, Convert.ToInt32(asave.Length)); MessageBox.Show("成功载入文件!", "提示"); home = openFileDialog1.FileName; shome = openFileDialog1.SafeFileName; asave.Close(); label2.Text = "文件" + openFileDialog1.FileName; } te = true; } private void button2_Click(object sender, EventArgs e) { if (te) { try { Logopatch.CopyTo(xdaima, 0x11154); //保存文件 if (!File.Exists(home + "备份.nes")) File.Copy(home, home + "备份.nes"); FileStream asav = new FileStream(home, FileMode.Create, FileAccess.ReadWrite); asav.Write(xdaima, 0, xdaima.Length); MessageBox.Show("修正成功,原文件复本保存为:" + shome + "备份.nes", "成功提示"); asav.Flush(); asav.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); //MessageBox.Show("数据输入有误","错误",MessageBoxButtons.OK,MessageBoxIcon.Error); } } else MessageBox.Show("还未载入文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } private void button3_Click(object sender, EventArgs e) { if (te) { try { yypatch.CopyTo(xdaima, 0x11154); //保存文件 if (!File.Exists(home + "备份.nes")) File.Copy(home, home + "备份.nes"); FileStream asav = new FileStream(home, FileMode.Create, FileAccess.ReadWrite); asav.Write(xdaima, 0, xdaima.Length); MessageBox.Show("修正成功,原文件复本保存为:" + shome + "备份.nes", "成功提示"); <em id="__mceDel"> asav.Flush(); asav.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); //MessageBox.Show("数据输入有误","错误",MessageBoxButtons.OK,MessageBoxIcon.Error); } } else MessageBox.Show("还未载入文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }</em> private void button4_Click(object sender, EventArgs e) { Form2 gg = new Form2(); gg.ShowDialog(); } } } |
download :LOGO 修正工具
这个工具是天使之翼1代的剧情界面日文换成代码的工具,可以双向转换。
程序按钮过多,可能运行的时候会卡。
日文字符转换,可点下面的按钮或者粘贴已经写好的文本,再进行转换。
代码转换,可以拷贝进制编辑器中的代码,然后进行转换。
这里要注意:为了区分代码,大多人会在每个代码间加空格。
向部分16进制编辑器替换代码,空格也会算一个位置,所以添加去空格功能。
还有,工具中去了空格的代码不允许转成日文字符。PS:估计代码转日文的几乎没人用。。。
按钮左侧日文是平假名,左侧下方是数字和字母,中间“■”代表游戏里面的空格。
按钮右侧日文是片假名,右侧下方是各种标点符号。
红色按钮的 ゛ 和 ゜ 为日文字符右上方的两个点和一个圆圈。
其实没啥用。。。1代研究的人不多 – -。先留着。
程序运行需要安装.net 2.0或2.0以上版本支持。
这是我写的第一个可以用的C#程序=_=,感谢下好友小曹的帮助。
Download: 天使之翼1代字符转换工具
2013-10-04更新:修正部分转换错误。增加16进制和10进制互转工具以及计算器。
Text:
Captain Tsubasa 2 hack!
Design By daymoe!
Code:
43 61 70 74 61 69 6E 20 54 73 75 62 61 73 61 20 35 20 68 61 63 6B 21 FC
44 65 73 69 67 6E 20 42 79 20 64 61 79 6D 6F 65 21
这个工具是在天使之翼1代转换工具的基础上,集成2代英文版和日文版字符转换功能的转换工具。
天使之翼1代字符转换器//daymoe.com/1819.html
相比之前的版本,把原先的数组替换改成了匹配字典元素。
程序用C#语言编写,需要.net 4.0的支持。
修正1代J按钮无效,更正错误注解,修整按钮排列,更新图标。
download:CT Chr To Code fix 2013-4-7 CT Chr To Code fix 4-9 CT Chr To Code fix 10-042013-10-04
修改:天使之翼2代英文版默认键盘空格转换的代码为20,天使之翼2代日文版键盘空格代码转换为80.
过几天完善英文版手动输入要转换的单词被名字优先匹配BUG。
我想名字还是分开做算了。。。或者直接给出天2英文版里的名字排列组合。。。。
——————————————————————————–
关于程序运行是提示
1 | .Net Framework Initialization Error – Unable to find a version of the runtime to run this applicatio |
错误的解决办法。
解压此文件放到程序的目录 download CT Chr To Code.exe.config
1 2 3 4 5 | <configuration> <startup> <supportedruntime version="v这里是要修改的版本号"></supportedruntime> </startup> </configuration> |
用txt打开config文件,把上文记事本中的红色文本改成你电脑上的.net 4.0的版本号。