先写一下几个常见函数的意义。后面就是我说的千年内建的命令,我没搞明白其中是什么区别
Inc() 追加函数 i := i+1 的缩写
Dec() 递减函数 i := i-1 的缩写
Callfunc() 传递函数 也就是把获取的信息传递给变量
StrToInt() 将变量类型由字符串型转换为整型
IntToStr() 将变量类型由整型转换为字符串型
Random() 随机函数 随机产生数字
//----------------------------------
下面三个我还不知道实际怎么用,有待补充
GetToken() 返回值
CompareStr() 比较字符串(区分大小写)
Length() 获取字符串长度
--------------------------------------------------------------------
第一个,关于公告的用法
sendnoticemsgformapuser 向使用某地图的全部用户发通知
sendcentermsg 向全体通知,在中间现示
sendsenderchatmessage 向玩家发出聊天信息
sendsendertopmsg 向全体通知,在顶部现示
这四个函数都是发出公告的,
第一个我没用过,第二个我用了不管用。
第三个和第四个的区别是什么呢?
例子如下:
一、
print ('sendsenderchatmessage 西域魔人任务完成 2'); //发送给玩家聊天信息
二、
Name := callfunc ('getsendername');
Str := 'sendsendertopmsg ' + '玩家【';
Str := Str + Name;
Str := Str + '】恭喜大家新年愉快';
print (Str);
-------------------------------------------------------------
关于任务标记的用法,这里以帝王石谷脚本为例
第一组:这一组的值从1000-1600。在帝王任务中扮演者重要的角色
getsendercompletequest 获得玩家已经完成的任务标记(就是刚刚完成的那一步)
getsendercurrentquest 获得玩家当前的任务标记(就是正在做的任务)
changesendercurrentquest 改变玩家已经完成的任务标记
changesendercurrentquest 改变玩家当前的任务标记(就是让玩家准备做的任务)
第二组:这一组的值从1到3
在系统脚本system.txt中,新人开始游戏的时候被自动初始化为1
然后在抽屉任务完成的时候改变为2
在牌王任务结束时改成3
getsenderqueststr 获得玩家当前任务标记str
changesenderqueststr 改变玩家当前任务标记str
那么这两组任务标记的区别在哪里呢?
//--------------------------------------------------------------------
print ('deletequestitem'); 这个是删除所有任务物品
那么物品文件item.sdb中哪个字段是对应的这里呢?
//--------------------------------------------------------------------
QuestNotice文件夹中记录了任务说明,和“书函”对应,那么书函是怎么自动对应这些说明文件的呢?
Init文件夹下QuestSummary.sdb文件设置和任务又有什么联系呢?
QuestNum,QuestMainTitle,QuestSubTitle,Request
1100,I. 西域魔人的阴谋,第1章. 万年雪参,找万年雪参
1150,I. 西域魔人的阴谋,第2章. 东天北霸,将魂魄装进葫芦里
1200,I. 西域魔人的阴谋,第3章. 侠客指环,找侠客指环
1300,II. 南帝王任务,第4章. 南帝王,杀了南帝王
1350,II. 南帝王任务,第5章. 查明实情,1.到黄金沙漠的村庄调查,
1400,II. 南帝王任务,第5章. 查明实情,2. 再次询访南帝王,
1450,II. 南帝王任务,第6章. 恶的幻影,1. 制造石窟钥匙及降魔符,
1500,II. 南帝王任务,第6章. 恶的幻影,2. 决战西域魔人,
1550,任务结束,,全部任务结束
9998,I. 神功 2 级Quest,第1章. 查寻神功秘密,
9999,II. 神功 3 级 Quest,第2章. 查寻神功秘密,
//=====================================
setallowhitbytick 使允许记号
注: print (''setallowhitbytick true 500'');
这个命令是不是配合这用的呢?
--------------------------------------------------------
关于在一个地图内添加和删除怪物的方法
一、比较常用的
第一组:
mapdelobjbyname 在地图中删除某怪物
注:print (''mapdelobjbyname monster 东天王魂1'');
mapaddobjbyname 在地图中加入某怪物
注:print (''mapaddobjbyname monster 远距离野神族3 456 59 2 0 false'');
第二组:
setallowdelete 使允许删除
注: print (''setallowdelete dynamicobject 妖华'');
也可以是 print (''setallowdelete monster 死狼女实像'');
mapaddobjbytick
print (''mapaddobjbytick monster 上古雨中客2 178 176 1 97 false 800'');让NPC在一个地方摆造型
上面的删除的用法是什么呢?
-----------------------------------------------------
关于怪物或盒子的状态的问题
第一组:
checkobjectalive //检查怪物在本地图是否存活
Str := callfunc ('checkobjectalive 北海雪原 dynamicobject 被绑着的北霸王');
changedynobjstate //改变状态
print ('changedynobjstate 被绑着的北霸王 true');
第二组:
addtotalstatepoint 增加总数状态点
changesenderdynobjstate 改变玩家动力物体状态
selfchangedynobjstate 自己改变状态
注: Str := ''selfchangedynobjstate TRUE''; print (Str);
这两组的区别在哪里? 尤其是第二组是什么意思呢?
//==============================================
遇到一个新的命令不知道什么意思(关键是chech是什么意思)
chechobjectalive
Str := callfunc ('chechobjectalive 北海雪原 monster 北霸王灵魂 1');
//==================================================
既然可以改变怪物和玩家的状态,那么怪物、盒子、NPC的状态在哪里设置呢?
------------------------------------------------------------------
其他一些琐碎的疑问
//===========================
第一个,这几个移动命令的区别是什么
movespace 移动
directmovespace 直接移动
注:print (''directmovespace 晋级3牛俊 npc 87 20 21'');
movespacebyname 移动玩家
注: Name := callfunc (''getsendername'');
Str := ''movespacebyname '' + Name;
Str := Str + '' user 1 165 775 密室太极老人 npc 300'';
print (Str);
boMapEnter 是否输入地图 注: print (''boMapEnter 76 false'');
为什么有的传送脚本要加上输入地图呢?
//================================
第二个,这几个冷冻命令怎么用呢,他们的区别是什么,在哪个字段设置
boiceallbyname 是否冷冻 注: print (''boiceallbyname 室5四臂金刚 monster false'');
commandice 冷冻
commandicebyname 冷冻的对象
//===========================================
同样,这几个打击命令怎么用
bohitallbyname 是否打击 注: print (''bohitallbyname 室7四臂金刚 monster true'');
setallowhit 使允许打击
setallowhitbyname 使允许打击 注: print (''setallowhitbyname 一级捕盗大将 monster true'');
//==============================================
clearworkbox 清除盒子 注:print (''clearworkbox'');
regen 刷新 注:print (''regen 放火装置3 monster'');
mapregen 刷新地图 注:print (''mapregen 78''); 78为地图名
reposition 重新配置 注: print (''reposition'');
//====================================================
bopickbymapname 是否挖掘的地图
注: print (''bopickbymapname 地下采石场2层 false'');
setallowhitbytick 使允许记号
注: print (''setallowhitbytick true 500'');
senderrefill 获得补充(加血、三防、三攻)
注: print (''senderrefill'');
获得补充我测试了,很好用
selfkill 自杀
注:print (''selfkill''); npc将重生。
gotoxy 去哪?
注:print (''gotoxy 500 500''); npc将走到500 500这个座标
上面这两个我都测试过,很好用
changesendercurdurabyname 消除耐久
注: print (''changesendercurdurabyname 大型竹筒 0'');
decreasePrisonTime 减少监狱时间
注: print (''decreasePrisonTime b7'')
这个减少监狱时间的命令我测试过,没有效果,不知道是不是写的不对
athleticprocess 运动的过程
showeffect 显示效果
注: print (''showeffect 22 1'');
