幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8311|回复: 34

[NE][更新]使用Window对话框的角色名称输入组件,支持背景图

 关闭 [复制链接]

5

主题

35

帖子

439

积分

④见习

积分
439
发表于 2004-10-11 13:34:40 | 显示全部楼层 |阅读模式
支持背景图片之后用起来就比以前麻烦了……

------------------------------

要使用[notexist]的Windows对话框角色名称输入组件,首先必须下载以下动态链接库(463K):

http://www.fslcy.com.cn/RGSSInputBox.dll

并且将这个文件放到你的工程目录中去,也就是game.exe所在的目录

(如果你用了旧的RgssInputBox.dll,则应当用这个新的覆盖)

这个动态链接库以Delphi6制作完成,本人仍旧保证其中绝无有意为之的任何形式的有害代码,

其源代码在以下位置(共三个)

http://www.fslcy.com.cn/RgssInputBox.dpr

http://www.fslcy.com.cn/UntInputBox.pas

http://www.fslcy.com.cn/UntInputBox.dfm
使用者也可以自行下载检查源代码并且进行编译,以获得这个动态链接库。

当放置好动态链接库RgssInputBox.dll之后,用RMXP打开工程文件,并且打开脚本编辑器

在Main之前插入一个脚本,名称随便取,然后在脚本中粘贴以下信息:

(如果你已经写入了配合之前dll的旧脚本,请先删除旧的脚本)

#--------------------------------------------------------------------------
# ● 显示RgssInputBox.dll中的输入角色名称的对话框
#    作者:notexist
#--------------------------------------------------------------------------
def ActorNameInput(actorID)
  actor = $game_actors[actorID]
  thename = actor.name
  thename = $NameInputBox.Call(thename)
  actor.name = thename
end
$NameInputBox = Win32API.new(\
  "RgssInputBox.dll", "NameInputBox", ['P'], 'P')
#创建对话框窗口,在调用NameInputBox之前必须调用这个函数
$CreateInputBox =  Win32API.new(\
  "RgssInputBox.dll", "CreateInputBox", [], '')
#设置窗口,参数分别为宽度,高度,和载入的skin图片是否拉伸
#在后面的LoadSkin调用中会根据图片情况自动设置窗口宽度高度
#所以不必手工调用这个函数
$InputBox_SetBox =  Win32API.new(\
  "RgssInputBox.dll", "SetBox", ['I','I','I'], '')
#载入背景图片,内容为图片的文件名(不包括路径)
#支持BMP和GIF,载入后会自动设置输入的窗口宽度和高度
$InputBox_LoadSkin =  Win32API.new(\
  "RgssInputBox.dll", "LoadSkin", ['P'], '')  
#设置窗口中文本输入框的位置和大小
#参数分别为X偏移(偏移相对于窗口左上角),Y偏移,宽度,高度
#以及输入框底色的蓝色,绿色,红色分量,颜色分量的范围是0~255
$InputBox_SetEdit =  Win32API.new(\
  "RgssInputBox.dll", "SetEdit", ['I','I','I','I','I','I','I'], '')
#设置文本输入框内输入文字的字体信息
#参数分别为字体名称(例如“宋体”),字体大小(五号字为11)
#字体颜色的蓝色,绿色,红色分量,颜色分量的范围是0~255
$InputBox_SetEditFont =  Win32API.new(\
  "RgssInputBox.dll", "SetEditFont", ['P','I','I','I','I'], '')
#释放对话框窗口,理论上创建之后就应该释放,不过游戏退出时应该能自动释放
#所以不必手工调用这个函数
$FreeInputBox =  Win32API.new(\
  "RgssInputBox.dll", "FreeInputBox", [], '')
#创建
$CreateInputBox.Call
#载入背景图fox.jpg,这时设定了窗口宽度高度
$InputBox_LoadSkin.Call('fox.jpg')
#设置文本输入框位置,并且设定底色为红色
$InputBox_SetEdit.Call(50,20,200,32,0,0,255)
#设定输入字体为黑体,字号为12(应该是“小四”),颜色为白色
$InputBox_SetEditFont.Call('黑体',12,255,255,255)
#重新设置输入窗口宽度和高度
$InputBox_SetBox.Call(300,72,0)

这样名称输入框就准备就绪了

要使用角色输入窗口,请在事件中加入一行执行内容,选择类型为“脚本”

并在脚本输入窗口中输入以下内容:

ActorNameInput(1)

其中前面一个“1”为角色的编号,更改这个编号就可以为不同的角色输入名字

输入完毕之后按回车键返回游戏。

要以不同的提示界面输入不同的的角色名字,必须在输入之前载入不同的图片背景,调用的脚本内容可能会变成这样:

$InputBox_LoadSkin.Call('另一张背景图片.jpg')

ActorNameInput(2)

注意背景图片必须放置在游戏根目录中,也就是game.exe和rgssinput.dll同一个目录

事件执行的时候输入角色姓名,可以在输入时使用Windows输入法,并且在全屏时一样有效

使用输入框时切换全屏/窗口模式产生的“脚本已备份”退出游戏BUG仍然存在……我不管了[em05]

使用效果示例如下图所示:



[此贴子已经被作者于2004-10-25 13:57:32编辑过]

本帖子中包含更多资源

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

x
回复

使用道具 举报

3

主题

18

帖子

449

积分

④见习

积分
449
发表于 2004-10-11 15:37:09 | 显示全部楼层
抱走原碼參考…
謝謝。
#1.某R的RMXP遊玩記事,但其實沒寫Blog的習慣… #2.處女作製作中…停在劇本的階段。 orz #3.永遠的OPEN SOURCE。
回复 支持 反对

使用道具 举报

8

主题

37

帖子

1622

积分

⑥精研

积分
1622
发表于 2004-10-11 17:34:43 | 显示全部楼层
[em04]不要打我:对话框好不协调........................
回复 支持 反对

使用道具 举报

5

主题

35

帖子

439

积分

④见习

积分
439
 楼主| 发表于 2004-10-11 18:24:06 | 显示全部楼层
对话框界面可以改的
但我没有美术细胞,不知道贴什么图片好看[em06]
当然最好是做成可以定制的
不过要等有时间……
回复 支持 反对

使用道具 举报

5

主题

19

帖子

1242

积分

⑥精研

积分
1242
发表于 2004-10-11 19:00:00 | 显示全部楼层
强烈要求加为精华~~~~~~虽然我还不是很明白   ==!!

不知道楼主想过要写可以支持鼠标的程序没有~~~~
以前大家已经在RPGXP中成功的调用了GetCursorPos,
不过GetCursorPos只能用来得到鼠标的位置的,但是不能捕获鼠标的动作.加上GetMessage或者PeekMessage这两个API
应该可以让RPGXP支持鼠标~~~但是[em06]大复杂了~~~~~~事件,进程,钩子~~~~
希望楼主能够写出~~~~
[em02]
回复 支持 反对

使用道具 举报

2

主题

23

帖子

665

积分

⑤进阶

积分
665
QQ
发表于 2004-10-11 19:33:29 | 显示全部楼层
楼主太强了
回复 支持 反对

使用道具 举报

5

主题

35

帖子

439

积分

④见习

积分
439
 楼主| 发表于 2004-10-11 20:48:46 | 显示全部楼层
倒不一定用GetMessage和进程钩子那堆东西
DirectX的DirectInput支持鼠标按钮状态读取
在主循环里面每一次循环都读一遍当前鼠标状态放到一个全局变量里面
然后各个模块,例如菜单,行走控制,点击触发事件这些部件再各自在判断的时候读那个全局变量决定行为就行了
不过即使如此,RMXP引擎鼠标化仍然是一个工作量很大的工作
必须读它原来的代码来改写,我怕是没那个毅力了,笑
恩,现在最大的目标还是空下来了好做自己的RPG……
回复 支持 反对

使用道具 举报

1

主题

79

帖子

1391

积分

⑥精研

物质和精神的变态形

积分
1391
发表于 2004-10-11 20:50:13 | 显示全部楼层
迄今为止从编程角度出发最有水准的技术帖,呵呵,鼠标那个早就有人做出来了,说实话我都能做出来........不过现在实在没空!
回复 支持 反对

使用道具 举报

<一个人& 该用户已被删除
发表于 2004-10-11 20:55:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

2

帖子

195

积分

③业余

积分
195
发表于 2004-10-11 22:40:54 | 显示全部楼层
除偶之外,的确人人都会一手。。。。。
[em04][em04][em04]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-18 19:31 , Processed in 0.026147 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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