Project1

标题: 多功能 DLL SiNova v10015【6/9更新鼠标脚本】 [打印本页]

作者: Sion    时间: 2014-1-24 22:07
标题: 多功能 DLL SiNova v10015【6/9更新鼠标脚本】
本帖最后由 Sion 于 2018-1-21 20:04 编辑

DLL Version 10015
更新日志



最近 Get 了新技能。不过因为没有编程经验,所以不知道这个 dll 兼容性如何,有 Bug 请务必告诉我。
制作了一个傻瓜范例,即使你不了解脚本也可以轻松使用DLL提供的功能。


不想使用的功能也可以删除脚本取消掉。但要注意一些下面的脚本可能会需要上面的作为基础。
以后会慢慢添加更多实用的功能。


注意调整分辨率的语句(Graphics.resize_screen)要放置在NovaBase之前。

               BaseExample_v10015.rar (461.57 KB, 下载次数: 2564)
(附件未包含 RGSS300.dll ,请 Ctrl + S 保存后运行)
附源码: PubNova10001.rar (5.31 KB, 下载次数: 855)
(VS 2010 编译通过。源码版本 v10001 不包含控制台代码,因为那个实在太乱了,没有参考价值。)


作者: myownroc    时间: 2014-1-24 22:16
RM想调用自己做的dll好象很麻烦...不能直接用require...
总是说没找到文件...
还是说我dll放置的位置不对
ps:能指点一下么?
作者: Sion    时间: 2014-1-24 22:23
myownroc 发表于 2014-1-24 22:16
RM想调用自己做的dll好象很麻烦...不能直接用require...
总是说没找到文件...
还是说我dll放置的位置不对{: ...

要用 .def 文件导出函数以后才能调用。
反正我也不懂,就是百度以后照猫画虎。
作者: 喵呜喵5    时间: 2014-1-24 23:16
回复一下赚回花出去的经验【喂!
作者: SuperMario    时间: 2014-1-25 00:47
myownroc 发表于 2014-1-24 22:16
RM想调用自己做的dll好象很麻烦...不能直接用require...
总是说没找到文件...
还是说我dll放置的位置不对{: ...

用 Win32API 加载 dll 函数。
RM 不能加载 so 库。
作者: SuperMario    时间: 2014-1-25 00:50
这么快就弄出来了?牛逼啊。
作者: 渝川    时间: 2014-1-25 09:56
只想要一个新的全键盘脚本,sion触太厉害了。不过就是键盘那段看的好乱……(降调…)
作者: tan12345    时间: 2014-1-25 15:50
那个完整鼠标脚本,是即插即用的吗?
作者: Sion    时间: 2014-1-25 16:12
tan12345 发表于 2014-1-25 15:50
那个完整鼠标脚本,是即插即用的吗?

就是原来那个鼠标系统。
作者: a386881    时间: 2014-1-25 20:08
兼容性貌似比v2.2差……3.0不再兼容截图存档了,就是2.2兼容的那个截图存档。
作者: a386881    时间: 2014-1-25 23:47
a386881 发表于 2014-1-25 20:08
兼容性貌似比v2.2差……3.0不再兼容截图存档了,就是2.2兼容的那个截图存档。 ...

截图存档放置于鼠标脚本下方,main上方。进入存档页面同时跳错弹出。放置于同样位置v2.2运行良好。
作者: Sion    时间: 2014-1-26 00:01
a386881 发表于 2014-1-25 23:47
截图存档放置于鼠标脚本下方,main上方。进入存档页面同时跳错弹出。放置于同样位置v2.2运行良好。 ...

600 行
  1. elsif Input.trigger?(:F5)
复制代码
替换为
  1. elsif Input.key_trigger?( 0x09 )
复制代码
# 这是 Tab 键,你可以自己查表改别的键。
作者: a386881    时间: 2014-1-26 00:09
Sion 发表于 2014-1-26 00:01
600 行替换为# 这是 Tab 键,你可以自己查表改别的键。

万分感谢!大神您太厉害了!
作者: a386881    时间: 2014-1-26 12:51
Sion 发表于 2014-1-26 00:01
600 行替换为# 这是 Tab 键,你可以自己查表改别的键。

对了大神,为什么那里设置成鼠标中键01.elsif Input.key_trigger?( 0x04 )会没反应啊……
作者: 渝川    时间: 2014-1-28 09:16
发现一个bug了,就是会与默认的条件分歧按下某键有冲突……我下的是1.27跟新的那个@Sion  
作者: 无节乱串    时间: 2014-2-8 10:15
给自己回血,脚本很厉害,大概我不懂用
作者: 白衣仙卿    时间: 2014-2-9 00:06
看不了了,您的域名未备案被临时关闭,请联系您的空间商进行备案。谢谢
作者: 望翎生    时间: 2014-2-20 22:30
话说,那个源代码是怎么用的啊?
还有那个鼠标滚轮又怎么用啊,新人求详细解释。
作者: feizhaodan    时间: 2014-2-20 22:38
话说不用个Hash缓存已经被呼出过的函数么?
虽然我也不知道创建Win23API对象的花费高不高。。。
作者: Sion    时间: 2014-2-20 22:42
望翎生 发表于 2014-2-20 22:30
话说,那个源代码是怎么用的啊?
还有那个鼠标滚轮又怎么用啊,新人求详细解释。 ...

源码是要用 VS2010 来编译的,别的C++ 编译器估计有些东西要小改一下。

鼠标滚轮就是你滚鼠标,Mouse.z 的值就变了嘛。
作者: 736248591    时间: 2014-3-21 18:42
按F1时,鼠标出不来。
如图

作者: Sion    时间: 2014-3-25 18:29
736248591 发表于 2014-3-21 18:42
按F1时,鼠标出不来。
如图


别用 F1 了吧,可以在脚本里直接改按键了,F1没什么用了。下次更新直接把它屏蔽好了
作者: 736248591    时间: 2014-3-25 18:35
Sion 发表于 2014-3-25 18:29
别用 F1 了吧,可以在脚本里直接改按键了,F1没什么用了。下次更新直接把它屏蔽好了 ...

那 全屏/窗口 设置呢?
下次更新加上这个好不好?
作者: tz5514    时间: 2014-4-7 01:34
本帖最后由 tz5514 于 2014-4-7 02:36 编辑

想请问一下 既然2.3跟3.0x两个版本的鼠标系统只差在是否有侦测滑鼠滚轮的功能
为何不统一更新3.0x的版本就好了 是因为本质上有什么巨大差距需要让使用者作取舍吗?

另外贪心的想请问能否有鼠标对视窗(Window_Base)和其图片的响应method

最后建议一下
在Debug台开启时自动呼叫Mouse::show_system_cursor来显示系统鼠标以方便Debug台的操作
然后在Debug台关闭时自動呼叫Mouse::hide_system_cursor隐藏系统鼠标

谢谢
作者: Sion    时间: 2014-4-7 21:08
tz5514 发表于 2014-4-7 01:34
想请问一下 既然2.3跟3.0x两个版本的鼠标系统只差在是否有侦测滑鼠滚轮的功能
为何不统一更新3.0x的版本就 ...

没区别,但是估计有些人不喜欢dll。
那个鼠标你测试的时候把 hide_system_cursor 注释掉就行了,其它的东西自己学着弄吧。
作者: kinrwolf    时间: 2014-4-8 14:09
mark一记
作者: kinrwolf    时间: 2014-4-8 14:42
话说这个怎么用来着。。。DLL是VA的还是第三方应用的。。
作者: kinrwolf    时间: 2014-4-19 17:01
本帖最后由 kinrwolf 于 2014-4-19 17:30 编辑

游戏分辨率改了以后会发生奇怪的事情,是不是改了分辨率也对应改改脚本哪里呢?
补充一下,我改的分辨率是800*600。X轴上并没有误差,而Y轴上,Y=0处,系统鼠标和游戏鼠标是位于同一个点的,但是当游戏中Y=600时,系统鼠标已经到了Y=600+64位置了。偏移了64个像素。这个应该怎么改。

还有个问题请教,文字编辑输入可以应该怎样用于角色名字修改。
作者: Sion    时间: 2014-4-19 23:21
kinrwolf 发表于 2014-4-19 17:01
游戏分辨率改了以后会发生奇怪的事情,是不是改了分辨率也对应改改脚本哪里呢?
补充一下,我改的分辨率是8 ...

你上传个范例让我看看先。
作者: kinrwolf    时间: 2014-4-20 10:52
之前提出的问题,已经解决了,不是DLL的问题,是我自己的使用问题。
现在还想请教一个事,就是图片可以响应鼠标吗,例如:鼠标移动到显示的某张图片上,图片就放大一圈并且播放音效或者闪烁。
这个DLL的功能很强大,认真拜读学习中。
作者: 无双纳米蛇    时间: 2014-4-20 15:24
这。。完全不懂
作者: jxy    时间: 2014-4-21 18:00
这个东东主要的不应该是dll吗?怎么范例里没有dll?
作者: jxy    时间: 2014-4-21 19:13
这个东东主要的不应该是dll吗?怎么范例里没有dll?
作者: kinrwolf    时间: 2014-4-23 16:30
有个问题想问问:输入窗口可以设置成默认窗体的样式吗,我只看到了背景色和光标色的设置。
作者: Sion    时间: 2014-4-23 23:37
kinrwolf 发表于 2014-4-23 16:30
有个问题想问问:输入窗口可以设置成默认窗体的样式吗,我只看到了背景色和光标色的设置。 ...

可以创建一个空的窗口在后面。
作者: 落月小天魔    时间: 2014-4-28 19:23
设置按键的功能要怎么用?看了下范例没看懂...现在只知道在脚本里设置,怎么在游戏中设置?


作者: Sion    时间: 2014-4-28 20:42
落月小天魔 发表于 2014-4-28 19:23
设置按键的功能要怎么用?看了下范例没看懂...现在只知道在脚本里设置,怎么在游戏中设置?

...

自己用事件或者写脚本改。
到时候遍历一下全部按键,看看玩家按下那个就行了:
  1. def which_key_press
  2.   190.times {|i| return i if Input.key_trigger(i) }
  3. end
复制代码

作者: 359768715    时间: 2014-5-1 07:41
很强大,新手学习下怎么用
作者: mickeymo    时间: 2014-5-10 21:06
文字输入只能安排给变量吗?
可否用于角色名字输入
作者: Z061356    时间: 2014-5-15 11:39
支持~~~~~~~~~
作者: 落月小天魔    时间: 2014-5-19 20:39
希望鼠标系统可以加个控制开关吧,因为和鼠标冲突的脚本略多...如果可以通过脚本来控制鼠标开关就好了。
作者: Sion    时间: 2014-5-19 22:37
mickeymo 发表于 2014-5-10 21:06
文字输入只能安排给变量吗?
可否用于角色名字输入
  1. typein_active(1)
  2. $game_actors[1].name = $game_variables[1]
复制代码

作者: Sion    时间: 2014-5-19 22:40
落月小天魔 发表于 2014-5-19 20:39
希望鼠标系统可以加个控制开关吧,因为和鼠标冲突的脚本略多...如果可以通过脚本来控制鼠标开关就好了。 ...

这脚本是刚学的时候写的,乱七八糟,好难改。自己动手丰衣足食吧
作者: 喵呜喵5    时间: 2014-7-6 23:19
发现一个问题,修改窗口大小的功能在修改窗口的分辨率为正常值时窗口大小固定是544*416,如果游戏修改了分辨率以后用起来很蛋疼啊…………
作者: 岛国左近    时间: 2014-8-2 15:03

存档读档就会变成这样,请问该怎么办?用了一个美化存档的脚本,舍不得弃掉...
作者: 九靈    时间: 2014-8-20 17:46
文本输入那里
似乎不能输出"  _   "
还有DELETE不能用
作者: 失格病房    时间: 2014-12-28 11:26
好东西回复支持
作者: 翻滚牛宝宝    时间: 2015-9-11 20:34
本帖最后由 翻滚牛宝宝 于 2015-9-11 20:54 编辑

@Sion  楼主,这个鼠标指针变化 能不能在固定的地图变成固定的样子呀? 比如在Map2 就是鼠标指针2的样子   如果能扩展一下,按顺序自动0 1 2 3  显示就更好了, 这样就能动起来了……
作者: 384599268    时间: 2015-9-12 23:01
顶一个补回经验

作者: Vortur    时间: 2016-1-5 09:15
本帖最后由 Vortur 于 2016-1-10 16:52 编辑

感谢楼主的脚本!!

能否提供一个可以关闭鼠标脚本的代码呢?
   在下发现它与Falcao Pearl ABS Liquid v3 冲突,又不知从何改起。大概觉得可能是“鼠标”与“物品道具栏”有冲突。如果能有个“关闭鼠标脚本”的方法,或许就能解决一些因各种原因导致的不兼容现象。


  在下发现该脚本与 伪3D 脚本无法兼容;怀疑是因为“全键盘”功能与“伪3d”冲突的缘故。


在下的工程文件(伪3d已注释掉):
链接:http://pan.baidu.com/s/1hr1TLVe 密码:4c1v

脚本来自tseyik于该帖4楼的回复:
https://rpg.blue/thread-382183-1-1.html


在下使用这一版本的伪3d:
资料库

主程式
报错:
  当使用3d脚本后,点击鼠标,“SiNova_Input v1.03”的这一行就报错: @dkey_states[@dkey_map[btn]] == 1     
作者: 清远    时间: 2016-2-26 15:14
看起来无比高大上的样子
作者: 有丘直方    时间: 2016-2-27 21:41
唔。。。通用的吗?我VX想用。。。不过打不开工程。
作者: yaohongde    时间: 2016-3-7 00:36
本帖最后由 yaohongde 于 2016-3-7 00:40 编辑

很强大,不过为啥你的"实时调试工具 v1.07"我一调用脚本就显示报错QoQ(´゚Д゚`)
作者: 627759311    时间: 2016-3-16 15:38
28经验好贵……不过这个东西网上别的地方都找不到了……
作者: 563296144    时间: 2016-4-2 12:19
有一些 用的 不兼容  有人知道怎么用事件来制作按键功能吗 ?求给
作者: 有丘直方    时间: 2016-4-16 18:48
厉害
赞一个
作者: duzine    时间: 2016-4-20 18:00
sion 大
API_.call 'SiNova|BackGroundRun|i|v', 1 調用後台運行後
會讓一個F12修正腳本當機,使視窗黑掉,沒跳任何反應
希望能整合一下相容性,使後台運行也能應用F12 bitmap 釋放修正
  1. #==============================================================================
  2. #   ** F12 Reset Fix
  3. #   Author: Acezon
  4. #   Date: 2 June 2013
  5. #------------------------------------------------------------------------------
  6. #   Version 2.1
  7. #   - Fixed issue where game window is not in focus
  8. #     when Console_on is set to false
  9. #   - Now compatible with Tsuki's Test Edit script
  10. #   Version 2.0
  11. #   - Console option added
  12. #   - Automatically focuses window after pressing F12
  13. #   Version 1.1
  14. #   - Respawning the exe was better
  15. #   Version 1.0
  16. #   - Initial Release
  17. #------------------------------------------------------------------------------
  18. #   Just credit me. Free to use for commercial/non-commercial games.
  19. #   Thanks to Tsukihime and Cidiomar for the console scriptlet
  20. #==============================================================================

  21. $imported = {} if $imported.nil?
  22. $imported["Acezon-F12ResetFix"] = true

  23. #==============================================================================
  24. # ** START Configuration
  25. #==============================================================================
  26. module Config
  27.   Console_on = false       # duh
  28. end
  29. #==============================================================================
  30. # ** END Configuration
  31. #==============================================================================

  32. alias f12_reset_fix rgss_main
  33. def rgss_main(*args, &block)
  34.   f12_reset_fix(*args) do
  35.     if $run_once_f12
  36.        #pid = spawn ($TEST ? 'Game.exe test' : 'Game')
  37.        pid = spawn ($TEST ? 'Game.exe test' : 'Game.exe')
  38.       # Tell OS to ignore exit status
  39.       Process.detach(pid)
  40.       sleep(0.01)
  41.       exit
  42.     end
  43.     $run_once_f12 = true
  44.     # Run default rgss_main
  45.     block.call
  46.   end
  47. end

  48. module SceneManager
  49.   class << self
  50.     alias :acezon_f12_first :first_scene_class
  51.   end

  52.   def self.first_scene_class
  53.     focus_game_window
  54.     acezon_f12_first
  55.   end

  56.   def self.focus_game_window
  57.     # Just to prevent re-spawning the console since
  58.     # Tsuki uses this same part in his Test Edit script
  59.     if !$imported["TH_TestEdit"]
  60.       # Get game window text
  61.       console_w = Win32API.new('user32','GetForegroundWindow', 'V', 'L').call
  62.       buf_len = Win32API.new('user32','GetWindowTextLength', 'L', 'I').call(console_w)
  63.       str = ' ' * (buf_len + 1)
  64.       Win32API.new('user32', 'GetWindowText', 'LPI', 'I').call(console_w , str, str.length)

  65.       if Config::Console_on
  66.         # Initiate console
  67.         Win32API.new('kernel32.dll', 'AllocConsole', '', '').call
  68.         Win32API.new('kernel32.dll', 'SetConsoleTitle', 'P', '').call('RGSS3 Console')
  69.         $stdout.reopen('CONOUT)
  70.       end
  71.     end
  72.   end
  73. end
复制代码

作者: qq1366245769    时间: 2016-4-27 10:13

作者: 闲君    时间: 2016-11-8 23:45
不知道怎么调用啊
作者: Ouroboros    时间: 2016-11-20 00:07
本帖最后由 Ouroboros 于 2016-11-20 01:14 编辑

问了个比较白痴的问题然后发现想起来不能删回复】幸好还能编辑……
顺便这个dll太棒了!】
作者: yaohongde    时间: 2016-12-3 12:53
为什么鼠标点击移动复制到我的游戏中就用不了了

作者: yaohongde    时间: 2016-12-3 12:59
mickeymo 发表于 2014-5-10 21:06
文字输入只能安排给变量吗?
可否用于角色名字输入

可以
typein_active(1)
$game_actors[1].name = $game_variables[1]
作者: duzine    时间: 2017-2-8 16:43
Vortur 发表于 2016-1-5 09:15
感谢楼主的脚本!!

能否提供一个可以关闭鼠标脚本的代码呢?

這衝突後來解決了嗎?  我也發生了相同的錯誤,有無解方可提供?
作者: 漫动森林    时间: 2017-6-18 11:12
感谢大神,作为小白我还刚入门,请问我点测试游戏为什么出来的是大神的测试地图,不是我自己做的地图呢?
作者: 漫动森林    时间: 2017-6-18 11:18
奇怪,现在进入就是自己的地图了,然而没有鼠标了,。。。。我的安装方法就是解压,覆盖文件,这样对吗
作者: 神风虾仁    时间: 2017-11-17 23:36
那个,sion-mousebase3.02出现rgsserror了
作者: 神风虾仁    时间: 2017-11-18 00:24
截图存档一直显示错误,放哪儿都一样

作者: xieabc1234    时间: 2019-2-11 21:47
提示版本过低,屏蔽提示后显示stalk level over
作者: sansy    时间: 2019-6-6 18:29
请问可以禁用点击地图方位导航功能吗?
我只想把这个脚本用于菜单之类的地方
作者: Wimeael    时间: 2020-2-8 15:27
请问能不能使得“鼠标启动”的项目能够切换不同的鼠标图标?实际上现在也不能通过改变数字切换鼠标启动的图标qwq
作者: 213blackcat    时间: 2020-5-16 22:40
谢谢大佬的鼠标脚本!我想问一下,如果想要部分地图停用鼠标脚本,或者不设置键盘按键这种应该怎么做呢?(因为我还用了另一个即时战斗的脚本,那个脚本需要用到键盘上的ads键,然后加载了鼠标脚本后就失效了),求助大佬!!!跪谢!
作者: 风华尽绽    时间: 2020-12-15 16:23
如何取消左键的打开菜单呢?
作者: 风华尽绽    时间: 2020-12-15 16:29
取消右键的打开菜单。。。
作者: wwzj    时间: 2021-1-8 21:48
问一下怎么把输入的字赋值给角色的名字?
作者: allrobot    时间: 2022-5-16 14:28
本帖最后由 allrobot 于 2022-5-16 14:57 编辑

作者大大您好!有2个错误,不知道怎么解决

错误:

(1)无法使用之前的存档

载入脚本之前的存档无法正常使用该脚本,只有新建游戏再存档,就不会出现这样的错误警告。。。

运行老版本        [RMVA发布] VA鼠标脚本 6/9 更新 v2.32 by Sion  游戏报错


运行当前帖子的脚本,结果还是报错:


RUBY 代码复制下载
  1. #--------------------------------------------------------------------------
  2.   # ● 由鼠标移动
  3.   #--------------------------------------------------------------------------
  4.   def move_by_mouse
  5.     unless @mouse_move_path.empty? # 移动路线数组不为空则执行移动
  6.       dir = @mouse_move_path.shift
  7.       if passable?(x, y, dir) && !@mouse_move_path.empty?
  8.         move_straight(dir)
  9.       elsif @mouse_move_path.empty? # 判断是否是最后一步
  10.         x2 = $game_map.round_x_with_direction(x, dir)
  11.         y2 = $game_map.round_y_with_direction(y, dir)
  12.         move_straight(dir) unless dir.zero?
  13.         unless @x == x2 && @y == y2 # 如果移动失败,检查是否启动前方事件
  14.           check_event_trigger_there([0,1,2])
  15.           get_on_off_vehicle unless $game_map.setup_starting_event
  16.         end
  17.         $mouse_move_sign.transparent = true if $mouse_move_sign.direction == 2
  18.         @mouse_dash = false
  19.       elsif @mouse_move_path[0].zero? # 目标点无法抵达,调整朝向→目标点
  20.         @mouse_move_path.shift
  21.         @direction = dir
  22.         @mouse_dash = false
  23.       else
  24.         draw_move_path
  25.       end
  26.     end
  27.   end




(2)关闭窗口时出现gameEnd错误


游戏本体链接:https://pan.baidu.com/s/1oNKF_FV5CI6n3Ovp0GJTjg?pwd=k9uk

载入未使用脚本前的存档Save01.rvdata2出现错误(1)
载入新建游戏再保存Save02.rvdata2,不会出现此错误,但关掉窗口时出现错误(2)





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1