• 277阅读
  • 0回复

脚本编程中的一些经验点滴(持续更新) [复制链接]

上一主题 下一主题
离线toweiyg
 

只看楼主 倒序阅读 楼主  发表于: 2017-11-15
1、从list变量中取出某个值
一个list可以包含各种类型的值,取的时候,需要类型转换,如下:
  1. //其中parts是一个list类型的变量
  2.     vector mycol = (vector)llList2String(parts, 3);
  3.     integer mycount = (integer)llList2String(parts, 4);
  4.     float myprop = (float)llList2String(parts, 5);

2、脚本间通信
通过llMessageLinked来实现物体所含脚本间的通信。通过link_message(integer sender_num, integer num, string msg, key id)事件来响应
llMessageLinked( integer link, integer num, string str, key id );

3、类型转换
脚本的类型转换包括隐式转换和显式转换,显示转换需要在类型前面加上需要转换成的。下表中,表示可以互相转换。
Supported Typecasts
To
integerfloatstringkeylistvectorrotation
Fromintegerxxxx
floatxxxx
stringxxxxxxx
keyxxx
listxx
vectorxxx
rotationxxx


4、小心并发问题
由于脚本运行的时候,可能同时和多个用户交互。所以在设计逻辑的时候,一定要想到,如果在你交互的过程,另外一个化身来交互,会有什么问题?比如对于全局变量的修改。

5、对指定的化身显示内容
由于所有人都在同一个世界,所以要考虑脚本要对哪些人生效?比如llSay、llTextBox等API


6、关于事件队列
从测试来看,如果两个人都点击了同一个物体,那么所触发的事情会被轮流执行。每个事件执行的时间有限制,超过时间会被忽略。




快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个