tts脚本教学贴(连载)

嗯,每天一个脚本小知识。
我尽量按顺序发一些脚本,如有不对请大佬纠正!
先是脚本的基础操作,以及x、y、z

————-第一课「xyz」—————-
xyz可以用f8(要有权限)使用:

(后面那些我也不知道怎么用,反正不用管,按一次f8就行)
按后你可能会看到有一些带♂颜♂色♂的区域,像这样:

有些是脚本区,有些是手牌区,有些是隐藏区,反正都是区域。

在你按一个物体(如黑棋子)后,会出现它的xyz轴:

最上面Position是他的位置,就是坐标;
中间Rotation是角度,就是它面向什么;
最下面是Scale貌似是大小,有点忘了。

我们大部分时间都是看最上面的值,你可以尝试修改数值,修改后按enter会发现物体位置变了(建议不要修改太大),每个图包坐标的单位都不一样,所以尽量不要想一个脚本多个图包用(不移动物体xyz的脚本可以通用)
右边那个按钮是一键复制,xyz就讲到这里

———-第二课「脚本在哪调整?和GUID」———————
「脚本在哪调整?」
有些人可能不知道脚本在哪调整,有2种调物体脚本的方法
-1.全局脚本(此类脚本都是在一个图包里用,不能切到其他图包里用)
首先打开单人游戏,随便开个什么测试(我比较喜欢开Poker单人搞脚本,如果是往某个图包里做脚本请打开该图包)
然后按Modding,在下面几个中选择Scripting

如果是原来没有脚本的游戏会变成这样,建议先把所有东西删掉

UI不要管(我也不会),看Lua就行(虽然我也不是Lua编程师,只是看了看steam论坛的教程总结了一些而已)
-2.单体脚本(此类脚本都是附在一个物体上,通常可以在各个图包中用)
随便选择桌子上一个物体,右键,按这个(就是Scripting右边的Scripting Editor)

按了后会进入单物体的脚本编程,像这样

看左边,比全局脚本区别的是多了一个Chip 1000 – 51dc1c,这是这个物体的代号,上方也能看到。
“-”左边的是此物体的名字(我用的是1000的筹码),“-”右边的是它的GUID,GUID一会讲,可以算是它的代号,每个物体代号都不一样,即使你把它复制了一份也是不一样的代号。
那么如果写完脚本后怎么运作呢?按一下左上方的“Save & Play”就行,但是这样不行,会提示一段话:

这段话的意思是:你没有载入存档。
这是为什么呢?因为将脚本搞入时需要是一个存档,那么怎么存档呢?(如果会存档请跳过这里)

首先先按左上角Games,按Save & Load

然后按右上方SAVE GAME,会把游戏进度储存(建议等一会直到你存的出现再继续)
之后按你刚才存的档,进去。
这样你就可以写你的脚本啦!(请注意,如果你存档载入后新放了个物体进去往那个物体写脚本,再在脚本框按Save & Play,那么那个物体会消失,脚本会失效【因为Save & Play就是重新载入一遍你这个存档,然后执行脚本,所以一开始没有存进去的物体会消失】,建议新加东西后存一下【通常来说,当你写完一段脚本后不用再存,脚本貌似你不退出就一直存着】)
「GUID」
前面我讲了一点GUID的东西,现在接着讲:
获取一个物体GUID的方式很简单:
1.在脚本区像刚才那样调出物体的单体脚本,能看到GUID(不推荐这样做,太麻烦)
2.对那个物体右键,还是Scripting,但是是右下角的Copy GUID

然后它的GUID就被你复制了,之后粘贴就行

此处简单讲下怎么将一个物体在全局脚本中突出表示
有2种方法,现在先说较复杂的一个
先把全局脚本清理一下,然后打出:「      我好骚啊_GUID = ‘0370e0’    」
咳咳,格式是     你想要的该物体在脚本中的名字_GUID = ‘物体的GUID’
(首先,所有符号得是英文输入法的符号,其次“=”左右都有空格,请注意)
例:我写入Happy_GUID = ‘0370e0’ (请忽视我底下的脚本)

那么你GUID为0370e0的物体以后在这个脚本里就可以用Happy表示(只要你记得住是哪个,把名字改为a都可以)

—————————–第三课「function及更容易的GUID」——————–
function可以理解为一串指令,就是当某人触发这个东西时会进行的一大串脚本
请写出 function onLoad()
这串指令就是说当有人加载这个图包时触发(Save & Play脚本也算)
里面一般会写一些。 GUID,编辑某些东西名字,设置按钮等。

这类脚本格式为:

function“空格” “对应指令的名字”(“括号里面是什么我之后在讲,现在不填就行”)
XXXXXX(此为中间的一些脚本)
end

记住,最后要有end,否则会用不了
如果你用的是之前我讲的GUID那串,那么目前脚本区应该是

Happy_GUID = ‘0370e0’

function onLoad()
Happy = getObjectFromGUID(Happy_GUID)
end

有没有觉得很麻烦,而且在function onLoad()里多了一大行,那么怎么方便点呢,往下看

首先,最开始的Happy_GUID = ‘0370e0’ 删掉,function onLoad()里的Happy = getObjectFromGUID(Happy_GUID)删掉。取而代之的是在function onLoad()里放一个Happy = getObjectFromGUID(“0370e0”)
对,就这么简单,拆分一下
Happy就是在全局脚本中这个物体的名字(随意起)
getObjectFromGUID不能改
(”0370e0″)英文括号和英文双引号必须有,里面的是那个物体的GUID

记住,所有在脚本中的符号都是英文输入法的符号

—————————–第四课「按钮」——————–
嗯,今天将怎么做一个按钮
首先还是先把上节课的脚本弄好,然后在Happy = getObjectFromGUID(“65166a”)后面隔一行,写下
Happy.createButton({
label=”哈喽啊”, click_function=”H”, function_owner=nil,
position={5.8,0.1,0}, height=600, width=600, font_size=100, rotation={0,0,0}
})
我解释一下意思,可以更改的部分为:
1.Happy
2.哈喽啊
3.H
4.nil
5.   5.8,0.1,0
6. 600
7. 600
8. 100
9.   0,0,0
逐一解释
1.Happy–此处是该物体在全局脚本中的名字,根据你之前弄的名字设置
2.哈喽啊–此处是在按钮上的文字,除了“哈喽啊”这三个字外英文以及””不要删掉或修改
3.H–此处是人按这个按钮后触发的指令名字,比如说你要按这个按钮后跳到H指令,那么就此处写H(不要删掉那个””),然后在这个指令end后面做一个function H()
4.nil–此处是那个玩家可以按这个按钮,通常为nil(就是说谁都可以按)
5.   5.8,0.1,0–此处是该按钮的位置,请自行调试(可以配合一开始讲的xyz)
6. 600–这个是按钮的高度,自行调整
7. 600–这个是按钮的宽度,自行调整
8. 100–此处是按钮中文字的大小自行调整
9. 0,0,0–此处是按钮角度0,0,0就是朝上,自行调整

举个例子:

function onLoad()
Happy = getObjectFromGUID(“65166a”)
Happy.createButton({
label=”哈喽啊”, click_function=”H”, function_owner=nil,
position={5.8,0.1,0}, height=600, width=600, font_size=100, rotation={0,0,0}
})

end

function H()
print(“哈喽啊”)
–注,此处print(“哈喽啊”)的意思是在左下角发送‘哈喽啊’。还有一件事,在写脚本是,你可以像我这样在某个位置打2个 – 符号,这样系统就会忽视这条指令,就是用来提醒你这里写的啥意思。如果要继续写脚本就下一行继续写
end
–每个function脚本都要对应一个end

就是这样

—————————–第伍課瞬間移動」—————–
今天讲最有用的setPosition,真的很有用!
这个东西你可以用于一个东西的按钮里
格式为: XX.setPosition{X,X,X}
还是逐个讲
XX就是这个物体在脚本中的名字
.setPosition不能改
{X,X,X}和上一课的那个一样,是一个位置,也是用xyz试出来的(就是先把一个东西弄到你想要的地方,然后用xyz按它,按第一行右边的按钮复制就行)
拿上节课的举例,如果你想让上节课的那个东东被按按钮就移到某个地方(假如是“3.68, 1.24, -12.10”这个位置),那么总体脚本是这样的。

function onLoad()
Happy = getObjectFromGUID(“65166a”)
Happy.createButton({
label=”哈喽啊”, click_function=”H”, function_owner=nil,
position={5.8,0.1,0}, height=600, width=600, font_size=100, rotation={0,0,0}
})

end

function H()
Happy.setPosition{3.68, 1.24, -12.10}
end

对,这个要加载一个按钮的指令里面,当然呢,你不一定要把这个东西加在对应物体的按钮里,比如说你可以在一个别的地方的按钮里写上让这个Happy移动

【额外知识:如果你是要把什么脚本放到单体上也就是“单体脚本”。那么这个东西不能使别的东西动。但是你不用再写上Happy = getObjectFromGUID(“65166a”)这样的东西了。你在后续的脚本中,只要是对这个物体做什么东西,那么就是self.XXXXX,比如说在这个上面做按钮让它移动,就是

function onLoad()
self.createButton({
label=”哈喽啊”, click_function=”H”, function_owner=nil,
position={5.8,0.1,0}, height=600, width=600, font_size=100, rotation={0,0,0}
})

function H()
self.setPosition{3.68, 1.24, -12.10}
end

没错,self就是只“自己”也就是这个单体

—————————–第六课「投」—————–

没想到吧,我又回来了,断更了辣么久,我大概休息好了(其实就是最近玩多了忘了更新了)

不多bb,直接讲
今天主要来讲如何用脚本对一个物体按“R”,大多是给骰子或硬币用的

其实很容易,就是
xxx.roll()
嗯,xxx就是该物体的名字,就是这么简单
但是我亲测……投不起来
这个时候怎么办呢,多复制几次就行了hhh

xxx.roll()
xxx.roll()
xxx.roll()
xxx.roll()
xxx.roll()
xxx.roll()

嗯,还是要写在一个按钮的指令里面
如果你觉得还是投不起来,建议用上节课的知识先把这个骰子/物体放在固定的一个位置比较高的地方,然后再用这个指令投它

总体指令一览

function onLoad()
Happy = getObjectFromGUID(“65166a”)
Happy.createButton({
label=”哈喽啊”, click_function=”H”, function_owner=nil,
position={5.8,0.1,0}, height=600, width=600, font_size=100, rotation={0,0,0}
})

end

function H()
Happy.setPosition{3.68, 4, -12.10}
Happy.roll()
Happy.roll()
Happy.roll()
Happy.roll()
Happy.roll()
end

PS:骰子投的位置,骰子UUID以及骰子上按钮的位置都需要自己调。
因为骰子特殊6面的情况,按钮会瞎鸡儿飘,所以我建议把按钮载体放在一个固定的地方,然后把那个被setPosition和roll的物体变为另一个,比如我这样

function onLoad()
Happ = getObjectFromGUID(“af7fcd”)
Happy = getObjectFromGUID(“ff4052″)
Happ.createButton({
label=”哈喽啊”, click_function=”H”, function_owner=nil,
position={5.8,0.1,0}, height=600, width=600, font_size=100, rotation={0,0,0}
})

end

function H()
Happy.setPosition{3.68, 4, -12.10}
Happy.roll()
Happy.roll()
Happy.roll()
Happy.roll()
Happy.roll()
end

(Happ是按钮载体,Happy是骰子)

—————————–第七课「脚本区域」—————–

嗯,我又来了,今天稍微讲一点点知识,就是如何做一个脚本区域,脚本区域之后应该会有用的
制作方法:f3最右面有个scripting(只有有权限的人或房主才能用)

在桌子上做一个长方形,右键可以获得他的UUID(可以用第三课的方法做一个这个区域的名字)

例如:
Area = getObjectFromGUID(“1a737e”)

具体有什么用,之后再讲吧
今天就讲这么一点点,下次再见

————————–未完待续2020.8.15————————–

任何人在本网站展示图片,应经合法权利人的授权,本网站只做形式上的审核。任何未经授权便在本网站上使用该图片都可能违反国际法,商标法,隐私权法,通讯、通信等法律法规。一经权利人提出异议,本网站在承担立即删除该信息义务外,不再承担其他任何法律责任。本网站上表述的任何意见均属于作者个人意见,并不代表爱桌游网及其管理者的意见。浏览者可以下载本网站上显示的资料,但这些资料只限用于个人学习研究使用,不得用于任何商业用途,无论是否在资料上明示,所有此等资料都是受到版权法的法律保护。浏览者没有获得版权所有者明确的书面同意下,不得分发、修改、散布、再使用、再传递或使用本网站的内容用于任何公众商业用途。
爱桌游 » tts脚本教学贴(连载)

14 评论

  1. 不知道该干啥,刷个贴

  2. 谢谢搬运,论坛改版辛苦了

  3. 求个更新

  4. 感谢分享,刚刚入坑

  5. 感谢分享

  6. 谢谢!!!

  7. 这个怎么用啊

  8. 感觉很猛 但是不会

  9. 厉害了,我的哥,请继续

  10. 桌游模拟器如何用指令提高房间人数的上限啊,突破最高10人房的限制,请指教

  11. 感谢

  12. 感谢大佬分享,另外想问问从盒子里取出东西的脚本应该怎么写。主要是想按键就能把里面东西取出来然后铺开,比如卡牌这种。

发表评论