幻想森林

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

[NS] (已解决) setcursor和abssetcursor命令无效,textgosub函数的问题?

[复制链接]

2

主题

5

帖子

54

积分

②入门

积分
54
发表于 2010-1-18 18:46:00 | 显示全部楼层 |阅读模式
setcursor和abssetcursor这两个命令……光标它一直无法显示呢
无论是放在执行区开头,还是鼠标事件中间,还是剧本中间;无论是把文件放到根目录下还是别的文件夹下……

开了一个空白的txt试了一下都可以正常显示,甚至不用指定位置放到根目录下也OK的。但不知为何加到自己的脚本里它就是不显示,同时也不会对游戏的正常运行造成任何影响。

问题求解,或者可能是因为加了什么命令会导致setcursor无法显示,望赐教。

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

今天把脚本一段一段地删,最后发现只要没有textgosub这函数就能正常显示光标……但是textgosub用来做自定义右键菜单用了,无论如何也是不能省掉的 OTL
求解决办法,或者用LSP实现一句话显示后在句尾显示光标的方法

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

4L出现的问题解决了,erasetextwindow的位置有点微妙 OTL……感谢pengyu5008大人的指教
回复

使用道具 举报

7

主题

138

帖子

1162

积分

⑥精研

脑残的我。。。。

积分
1162
QQ
发表于 2010-1-18 20:34:02 | 显示全部楼层
只是这么说的话。。还真无法判断如何使用。。。
也许是指令少写了一些东西。。也许是图片格式的问题。。也许和NS的版本有关
其实感觉用这个和直接用lsp没什么区别。。。这个实在不行。。那个等待点击的图标还是用lsp来显示好了
回复 支持 反对

使用道具 举报

2

主题

5

帖子

54

积分

②入门

积分
54
 楼主| 发表于 2010-1-18 22:20:57 | 显示全部楼层
请问lsp……要怎么配合当前文字的句尾来显示呢?我有试过用getcursorpos命令,但效果很奇怪。
lsp固定位置显示也不是不行。。但是那样感觉就是一个图片不断在闪,根本没有提示点击的效果了 OTL 理想状态应该是在显示文字显示的过程中光标消失,需要点击的时候才重新出现。

顺带一提,用的图片就是NS自带(?)的那种,三角和纸张的图案
回复 支持 反对

使用道具 举报

7

主题

138

帖子

1162

积分

⑥精研

脑残的我。。。。

积分
1162
QQ
发表于 2010-1-19 20:41:53 | 显示全部楼层
恩,貌似是这样的,用了textgosub以后setcursor和abssetcursor是无效的。。。刚和某大人确认过。。
至于lsp如何用。。看看伪圣书就晓得了
回复 支持 反对

使用道具 举报

2

主题

5

帖子

54

积分

②入门

积分
54
 楼主| 发表于 2010-1-20 12:36:38 | 显示全部楼层
  非常感谢,现在光标能显示,还可以用getcursorpos来实时刷新位置了,但是现在遇到一个更怪的问题……
  按伪圣书的写法加了脚本后,先lsph光标,然后在*textbtnloop时间下把vsp改为1后出现了……光标出现后文字框会被自动消除,点击后刷出来一段文字后文字框继续消失,只剩下光标在闪。
  后来在*textbtnloop的vsp语句后加入了texton强制开启对话框,即使是显示效果为1都免不了会闪烁一下。检查了其他语句也没发现问题出在哪里 OTL
  erasetextwindow我和伪圣书一样是设置的1,如果这里设置为0则不会有这个问题,文字框一直都在。看起来像是改变光标vsp的时候被算作了效果所以文字框暂时消失,但实际情况是文字框它只要不点击就持续消失了……
回复 支持 反对

使用道具 举报

7

主题

138

帖子

1162

积分

⑥精研

脑残的我。。。。

积分
1162
QQ
发表于 2010-1-20 15:58:59 | 显示全部楼层
汗了。。刚回来看到。。。
大概就是这样。。
textgosub *text_lb;跳转自制对话系统
然后定义对话框,在对话框的定义里一起定义等待游标。。
*prep
setwindow 88,457,20,4,29,29,2,4,500,1,1,":a;form.jpg",0,0
lsph 0,":l/3,300,2;cursor0.bmp",715,551
return
然后就是自制对话系统里的设置。。
*text_lb
erasetextwindow 0
*textbtnloop
vsp 0,1
print 1
textbtnwait %0
repaint
if %0=0 goto *end_textbtn
if %0=-1 vsp 0,0:print 1:systemcall windowerase:goto *text_lb
goto *textbtnloop

*end_textbtn
texec
vsp 0,0
print 1
saveon
erasetextwindow 1
return

这样大概就OK了。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 22:47 , Processed in 0.027509 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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