TC官方合作论坛

 找回密码
 立即注册
查看: 1290|回复: 12
打印 上一主题 下一主题

[已解决] 小地图大地图的换算

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-12 22:18:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小地图与屏幕的换算(或者是小地图与大地图的换算)
梦幻西游打宝图任务,是提供坐标的任务,让玩家去杀强盗。坐标给了,如何让脚本识别坐标。
识别坐标以后,就要去坐标那里杀强盗,一般都是通过小地图自动到达,然后pk强盗。
小弟不才,想要学习这个知识,还请大神们不吝赐教。
我研究的是2D游戏,梦幻西游。


回复

使用道具 举报

5#
发表于 2012-11-12 22:37:45 | 只看该作者
上边是识别完坐标 把游戏坐标转换成屏幕坐标的 方法,要是下边在附上识别坐标。先利用多点找色建立坐标数字特征库。
  1. 字符型[][] 特征点,特征点1,特征点2
  2. 功能 逻辑型 初始化当前人物坐标数组()
  3. 特征点 = 字符型[10][2]
  4. 特征点[0][0] = "87D4DA"
  5. 特征点[0][1] = "-2|0|87D4DA,-3|0|75B8BD,-3|-2|87D4DA,-3|-3|87D4DA,-3|-3|87D4DA,-3|-5|87D4DA,-3|-7|87D4DA,-2|-9|6CAAAE,0|-8|87D4DA"
  6. 特征点[1][0] = "75B8BD"
  7. 特征点[1][1] = "1|0|87D4DA,1|-1|6CAAAE,2|-2|6CAAAE,2|-1|87D4DA,2|1|87D4DA,2|3|87D4DA,2|4|87D4DA,2|5|87D4DA,2|7|87D4DA,2|8|87D4DA"
  8. 特征点[2][0] = "87D4DA"
  9. 特征点[2][1] = "-2|0|87D4DA,-4|0|87D4DA,-5|0|517F83,-4|-2|517F83,-2|-3|7EC6CB,-1|-6|75B8BD,0|-8|87D4DA"
  10. 特征点[3][0] = "87D4DA"
  11. 特征点[3][1] = "0|-1|7EC6CB,2|-2|87D4DA,4|-1|75B8BD,4|1|87D4DA,4|2|639BA0,3|2|7EC6CB,2|2|3F6366,2|3|87D4DA,4|5|87D4DA,4|6|87D4DA,2|8|87D4DA"
  12. 特征点[4][0] = "87D4DA"
  13. 特征点[4][1] = "0|-2|7EC6CB,1|-3|87D4DA,2|-5|87D4DA,2|-6|75B8BD,3|-7|87D4DA,3|-4|87D4DA,3|-1|7EC6CB,3|1|87D4DA,3|3|75B8BD,1|0|7EC6CB,2|0|7EC6CB,4|0|87D4DA"
  14. 特征点[5][0] = "7EC6CB"
  15. 特征点[5][1] = "2|0|87D4DA,4|0|87D4DA,0|2|87D4DA,0|4|87D4DA,1|4|87D4DA,2|4|87D4DA,3|5|6CAAAE,4|6|87D4DA,4|8|87D4DA,3|9|87D4DA,1|10|87D4DA,0|9|87D4DA"
  16. 特征点[6][0] = "87D4DA"
  17. 特征点[6][1] = "-2|-2|87D4DA,-4|0|75B8BD,-4|3|87D4DA,-4|5|87D4DA,-2|8|87D4DA,0|7|87D4DA,0|5|87D4DA,0|3|87D4DA,-1|3|6CAAAE,-1|2|87D4DA,-2|2|87D4DA"
  18. 特征点[7][0] = "2D4749"
  19. 特征点[7][1] = "2|0|87D4DA,3|0|87D4DA,5|0|87D4DA,5|2|87D4DA,4|4|87D4DA,4|5|87D4DA,3|7|87D4DA,3|9|87D4DA"
  20. 特征点[8][0] = "87D4DA"
  21. 特征点[8][1] = "-1|0|87D4DA,-2|-1|7EC6CB,-2|-4|7EC6CB,0|-5|87D4DA,2|-3|87D4DA,2|-2|87D4DA,2|2|87D4DA,2|3|87D4DA,0|5|87D4DA"
  22. 特征点[9][0] = "87D4DA"
  23. 特征点[9][1] = "-2|-2|87D4DA,-2|-4|87D4DA,0|-6|87D4DA,1|-5|87D4DA,2|-4|87D4DA,2|0|87D4DA,2|1|87D4DA,1|2|75B8BD,0|3|517F83,0|4|87D4DA"
  24. 返回 真
  25. 功能结束
  26. 功能 字符型 识别X坐标()
  27. 识别坐标.初始化当前人物坐标数组()
  28. 字符型 坐标
  29. 整型 x,y,i,x1,y1

  30. 图像.多点找色(913,189,934,196,#365557,"1|0|365557,0|1|6CAAAE,1|1|639BA0,0|2|6CAAAE,1|2|3F6366,0|3|517F83",0.9,0,x1,y1)
  31. 如果(x1>0)
  32. 遍历(i=0;i<10;i=i+1)
  33. 如果(图像.多点找色(x1-25,y1-11,x1-18,y1+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],1.0,0,x,y))
  34. 坐标 = 坐标 + 转换.整型转字符型(i)
  35. 跳出
  36. 如果结束   
  37. 遍历结束
  38. 遍历(i=0;i<10;i=i+1)
  39. 如果(图像.多点找色(x1-18,y1-11,x1-10,y1+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
  40. 坐标 = 坐标 + 转换.整型转字符型(i)
  41. 跳出
  42. 如果结束
  43. 遍历结束
  44. 遍历(i=0;i<10;i=i+1)
  45. 如果(图像.多点找色(x1-10,y1-11,x1-2,y1+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
  46. 坐标 = 坐标 + 转换.整型转字符型(i)
  47. 跳出
  48. 如果结束   
  49. 遍历结束
  50. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"人物x"+坐标)  
  51. 返回 坐标
  52. 否则
  53. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"逗号失败")     
  54. 返回 ""   
  55. //辅助.消息框("识别人物坐标逗号失败")  
  56. 如果结束  
  57. 功能结束
  58. 功能 字符型 识别Y坐标()
  59. 识别坐标.初始化当前人物坐标数组()   
  60. 字符型 坐标
  61. 整型 x,y,i,x2,y2
  62. 如果(图像.多点找色(913,189,934,196,#365557,"1|0|365557,0|1|6CAAAE,1|1|639BA0,0|2|6CAAAE,1|2|3F6366,0|3|517F83",0.9,0,x2,y2))
  63. 遍历(i=0;i<10;i=i+1)
  64. 如果(图像.多点找色(x2+14,y2-11,x2+22,y2+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
  65. 坐标 = 坐标 + 转换.整型转字符型(i)
  66. 跳出
  67. 如果结束   
  68. 遍历结束
  69. 遍历(i=0;i<10;i=i+1)
  70. 如果(图像.多点找色(x2+22,y2-11,x2+30,y2+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
  71. 坐标 = 坐标 + 转换.整型转字符型(i)
  72. 跳出
  73. 如果结束   
  74. 遍历结束
  75. 遍历(i=0;i<10;i=i+1)
  76. 如果(图像.多点找色(x2+30,y2-11,x2+38,y2+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
  77. 坐标 = 坐标 + 转换.整型转字符型(i)
  78. 跳出
  79. 如果结束   
  80. 遍历结束
  81. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"人物y"+坐标)
  82. 返回 坐标

  83. 否则
  84. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"逗号失败")     
  85. 返回 ""   
  86. //辅助.消息框("识别人物坐标逗号失败")  
  87. 如果结束  
  88. 功能结束
复制代码
回复 支持 反对

使用道具 举报

沙发
发表于 2012-11-12 22:29:03 | 只看该作者
任务栏把 坐标的前面每次强盗任务都会在任务栏出现几个字做成字库,

下次就找出这几个字的坐标,然后坐标加偏移,识别出 强盗所在坐标,  小地图点击寻路,

这个兔子的帖子貌似有讲 寻路的,你翻翻
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2012-11-12 22:31:22 | 只看该作者
回复 2楼陌上青衣。的帖子

谢谢大神,兔子的帖子在哪能看到,还请指教。
回复 支持 反对

使用道具 举报

地板
发表于 2012-11-12 22:32:14 | 只看该作者
这个我研究很长时间,这个方法适合倾斜坐标系(连偏移带压缩坐标轴偏移夹角60°)这个对于新手理解有点难。
  1. 功能 逻辑型 小地图智能移动(字符型 坐标地图x1,字符型 坐标地图y1,字符型 目标地图x1,字符型 目标地图y1)
  2.     //整型 a,b
  3. //浮点型 c
  4. //a=935-894
  5. //b=127-106
  6. //c=数学.开方(a*a+b*b)
  7. //列表框.增加文本("列表框0",转换.浮点型转字符型(c))
  8. //列表框.增加文本("列表框0",转换.浮点型转字符型(20/c))//比例尺算法
  9. 比例尺1=0.434167
  10. 比例尺2=0.414641
  11. 如果(目标地图x1!=""&&目标地图y1!=""&&坐标地图x1!=""&&坐标地图y1!="")
  12. 目标地图x=转换.字符型转浮点型(目标地图x1)
  13. 目标地图y=转换.字符型转浮点型(目标地图y1)
  14. 坐标地图x=转换.字符型转浮点型(坐标地图x1)
  15. 坐标地图y=转换.字符型转浮点型(坐标地图y1)
  16. 否则
  17. 键盘.按下(83)
  18. 辅助.等待(辅助.随机数(1000,2000))
  19. 键盘.弹起(83)
  20. 返回 假
  21. 如果结束
  22. 坐标实际x=929//人物箭头
  23. 坐标实际y=149//人物箭头

  24. 目标实际x=坐标实际x+(目标地图x-坐标地图x)/比例尺1*数学.开方(3.0)/2+(目标地图y-坐标地图y)/比例尺2*数学.开方(3.0)/2

  25. 目标实际y=坐标实际y+(目标地图x-坐标地图x)/比例尺1/2-(目标地图y-坐标地图y)/比例尺2/2

  26. 实际x=目标实际x

  27. 实际y=目标实际y

  28. 屏幕坐标x=转换.浮点型转整型(实际x)
  29. //列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"屏幕x"+转换.整型转字符型(屏幕坐标x))
  30. 屏幕坐标y=转换.浮点型转整型(实际y)
  31. //列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"屏幕y"+转换.整型转字符型(屏幕坐标y))
  32. 鼠标.移动(屏幕坐标x,屏幕坐标y)
  33. 辅助.等待(500)
  34. 鼠标.右键单击(1)
  35. 返回 真

  36. 功能结束
复制代码
回复 支持 反对

使用道具 举报

6#
发表于 2012-11-12 23:39:32 | 只看该作者
膜拜啊!!
回复 支持 反对

使用道具 举报

7#
发表于 2012-11-13 09:22:01 | 只看该作者
呃呃
回复 支持 反对

使用道具 举报

8#
发表于 2012-11-13 09:40:54 | 只看该作者
喜欢
回复 支持 反对

使用道具 举报

9#
发表于 2012-11-13 11:10:05 | 只看该作者
膜拜楼上的楼上的楼上的大神
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2012-11-13 13:01:57 | 只看该作者
你们这些人,要么比我学的时间长,要么跟我一样,都是小鸟,为啥平时不多问问大神呢,
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-9 08:12 , Processed in 0.212009 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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