当前位置:首页 > 实操教程 > GOM引擎 > 正文内容

新手问:GOM引擎NPC复制文字的对话框怎么做?

M2GM2026-10-13GOM引擎45
摘要:本文讲解GOM引擎SetClipboardText剪贴板命令的完整用法,包括复制到剪贴板的功能描述、SetClipboardText内容格式、NPC对话框跳转写法与执行段配置,并给出固定网址、带变量动态内容、配合条件判断多分支复制三阶案例与实操步骤。玩家点对话即可把指定文字写入剪贴板,全文仅供单机本地学习调试。…
[TOCM]

昨天有个刚学脚本的朋友来问,他想在NPC对话框里放一行网站地址,让点到的人直接把地址带走,省得手打一长串出错。这个需求靠复制文字就能实现,做法是让对话框给出一个可点跳转,点完把指定内容写进系统剪贴板。

新手容易把它和弹提示搞混:弹个窗只是把文字显示在屏幕上,真正能粘到聊天框或输入框里的,是写进剪贴板的那份内容。

下面把SetClipboardText的格式、参数、对话框里怎么放跳转,再到几个分层案例从头梳理一遍,全程以GOM引擎帮助文档原文为准。

复制文字配图 - M2GM

SetClipboardText命令格式

帮助文档对这条命令的功能描述原文只有一句:复制到剪贴板。对应的命令格式原文如下:

SetClipboardText 内容

这条剪贴板脚本命令只有一个参数,就是紧跟在命令名后面的那段文字。它本身不弹窗、不说话,只负责把内容送进系统剪贴板,玩家随后在任何输入框里直接粘贴就能拿到。想让玩家知道复制成功,还得另外配一条提示命令。

帮助文档给出的完整示例整块引用如下,段名、跳转写法和提示文案都保持原文:

<复制网站地址/@复制文本>
[@复制文本]
#IF
#ACT
SetClipboardText www.gameofmir.com
Messagebox 复制文字 www.gameofmir.com 到剪粘版中成功

逐行看这段示例:第一行<复制网站地址/@复制文本>写在NPC对话文本里,尖括号内前半段是对话框里显示的可点文字,后半段/@后面是要跳到的段名;玩家点「复制网站地址」就会跳到下一行的[@复制文本]段;#ACT下面先用SetClipboardText把www.gameofmir.com写进剪贴板,再用Messagebox弹一句提示。帮助文档原文里提示文案写作「到剪粘版中成功」,代码块内按原样保留,正文行文统一写作剪贴板。

复制文字内容示意图 - M2GM

参数说明

SetClipboardText只有一个参数,没有更多可选项。这个参数就是要写入剪贴板的内容,它可以是固定网址、一句提示文字,也可以是一个当前已赋值的变量,运行时把参数的实际内容写进剪贴板。

参数 类型 用途 示例
内容 文本或变量 要写进系统剪贴板的文字,固定写死或取变量当前值 www.gameofmir.com

使用时有两个细节要留意:一是参数和命令名之间只留一个空格,内容本身没有空格时最稳;二是如果内容里需要带空格或换行,建议先把整段文字拼进一个变量,再把变量名填到参数位置,避免命令把内容截断成半截。这套对话框脚本在本地做版本调试时,先用Messagebox把参数原样弹出来核对,再正式交给SetClipboardText,最不容易出错。

复制文字脚本配置示意图 - M2GM

NPC对话框复制实操

第一步,打开要配置的NPC对话脚本,在玩家能看到的对话文本里加一行跳转写法<复制网站地址/@复制文本>,尖括号里前半段是对话框中显示的可点文字,后半段/@后面是准备执行的段名。

第二步,在脚本下方另起一行写段名[@复制文本],段名要和跳转里/@后面写的内容完全一致,多一个空格或少一个字都跳不过去。

第三步,在[@复制文本]段的#IF、#ACT结构下,于#ACT后面写SetClipboardText,再跟上要复制的内容,例如SetClipboardText www.gameofmir.com,这一句负责把网址真正写进系统剪贴板。

第四步,在SetClipboardText下面紧接着写Messagebox给出提示,文案里可以把刚复制的内容再显示一遍,让玩家核对剪贴板里拿到的是不是同一段文字。

第五步,保存脚本后在本地版本管理面板重新加载NPC脚本,或者小退重进,再找到这个NPC点一下那行可点跳转,确认粘贴出来的内容和脚本里写的一致。

三阶案例

初级案例(固定网址):最基础的用法就是原样套用帮助文档示例,把网站地址写死在脚本里。本地调试时直接复制下面这段,进对话点一下就能把固定网址写进剪贴板。

<复制官网地址/@复制官网>
[@复制官网]
#IF
#ACT
SetClipboardText www.gameofmir.com
Messagebox 官网地址已复制到剪贴板

中级案例(带变量的动态内容):想让复制的内容跟着玩家或当天场景变化,就先把动态文字放进一个变量,再把变量名交给SetClipboardText。下面这段把当日兑换口令放进变量,运行时复制的就是口令当前的值。

<复制今日口令/@复制口令>
[@复制口令]
#IF
#ACT
SetClipboardText S$今日口令
Messagebox 今日兑换口令已复制到剪贴板

高级案例(配合条件判断的多内容复制):不同玩家点同一个按钮,复制的内容不同,就用#IF先判断条件,满足分支写一份内容,不满足走#ELSEACT写另一份。下面这段按渠道编号把不同口令写进剪贴板。

<复制专属口令/@复制专属>
[@复制专属]
#IF
EQUAL N$渠道编号 1
#ACT
SetClipboardText 渠道一口令AAA
Messagebox 已复制渠道一口令
#ELSEACT
SetClipboardText 渠道二口令BBB
Messagebox 已复制渠道二口令

注意要点

第一点,SetClipboardText只负责写剪贴板,本身不弹窗。想让玩家知道复制成功,必须自己配Messagebox,否则玩家点了没动静,还会以为脚本坏了。

第二点,对话文本里的跳转写法<复制网站地址/@复制文本>不能省掉尖括号和/@,对应的执行段必须写成[@复制文本],段名一字不差才能跳过去,对不上就只显示文字、不执行复制。

第三点,复制内容带空格或特殊符号时,先拼进变量再交给这条剪贴板命令,写完用Messagebox原样显示一遍核对;网址这类没有空格的内容直接跟在命令后面最稳妥。

第四点,这条剪贴板命令面向GOM引擎设计,只在本地单机学习调试时演示复制效果,搬到其他引擎前要自行测试修改,不能直接照搬。

第五点,复制内容较长时,不要在一行命令里堆太长文字,先把内容组织好再写入,避免脚本排版错位或被截断。

热点问答

1. NPC对话框里的复制文字按钮到底放在哪一段脚本里?

放在NPC的对话文本里,用尖括号把可点跳转包起来,格式是<显示文字/@段名>,比如<复制网站地址/@复制文本>;对应的执行段另起一行写成[@复制文本],复制命令和提示都放在这个段下面。要注意跳转必须出现在玩家能看到的对话内容中,只写段名不写跳转,玩家那边就没有可点的入口。

2. SetClipboardText写好后玩家点了没反应是什么原因?

先核对跳转里/@后面的段名和实际[@段名]是否一字不差,多一个空格或少一个字都跳不过去;再确认SetClipboardText紧跟在#ACT下面、命令名和内容参数之间只留一个空格;保存后记得重新加载NPC脚本或小退重进,旧脚本没重载时改动不会生效。

3. SetClipboardText和Messagebox弹提示命令有什么区别?

两者分工不同:SetClipboardText负责把指定文字写进系统剪贴板,玩家随后能在聊天框或其他输入框直接粘贴;Messagebox只是弹出窗口把文字显示出来,文字并不会进剪贴板,玩家还得自己手动选中复制。实际用法是先用SetClipboardText写入,再用Messagebox告诉玩家已经复制成功。

4. 要复制的网址或文字里带有特殊符号怎么处理?

网址本身不带空格时最稳妥,直接跟在命令后面即可;如果文字里确实要带空格或引号这类符号,建议先把完整内容拼进一个变量,再把变量交给SetClipboardText,写完用Messagebox原样显示一遍核对,避免命令把带空格的内容截断成半截文字。

5. 复制文字的时候可以一次复制多行内容吗?

SetClipboardText一次只写入紧跟在命令后的那一段内容,相当于一行文字;想让玩家一次带走多段信息,可以先把多行内容用换行拼进同一个变量,再把这个变量作为参数交给SetClipboardText,而不是连续写多条命令,连续多条时剪贴板只会保留最后一次写入的内容。

6. 点了跳转但剪贴板里拿到的是空内容怎么办?

多半是内容参数没有真正取到值。如果写的是变量,先确认这个变量在执行到本段之前已经被赋过值,空变量写进去剪贴板就是空的;可以先用Messagebox把变量当前值弹出来看一眼,确认有内容之后再用SetClipboardText写入,本地调试时这一步最能快速定位问题。

7. 动态生成的文字内容能不能用复制文字一起带走?

可以。把动态内容(比如玩家名字、当日口令、渠道编号对应的文案)先通过脚本放进一个变量,再让SetClipboardText后面跟这个变量名,运行时就会把变量当前的值写进剪贴板;配合#IF条件判断还能让不同玩家点同一个按钮带走不同内容,适合做邀请码、兑换口令这类场景。

写在最后

把GOM引擎的复制文字用法收拢一下:核心就是SetClipboardText这一条剪贴板命令,对话文本里用<复制网站地址/@复制文本>给出可点跳转,段[@复制文本]里用SetClipboardText写入内容,再用Messagebox提示玩家。配合变量和#IF条件判断,还能把固定网址扩展成动态口令、多分支复制,整套对话框脚本在本地调试时重载脚本后就能看到效果。

SetClipboardText复制文字流程在本地GOM引擎环境验证通过;命令仅适配GOM引擎,其他引擎需自行测试修改。本文仅供单机本地学习调试。

扫描二维码推送至手机访问。

本文章M2GM发布,如需转载请注明出处。如有侵权请联系站长删除。

本文内容仅供个人单机学习研究、功能调试、玩法逻辑测试使用,不涉及任何公网搭建、商业运营、资源交易行为,仅用于个人学习与实操体验。

本文链接:https://www.m2gm.com/tech/gom/gom-clipboardtext/

分享给朋友: