九州青帝吧 关注:399贴子:15,552
  • 25回复贴,共1

给吧里初学单机的朋友写了一个关于脚本的教材

只看楼主收藏回复

希望度娘这次通过


IP属地:四川1楼2012-12-05 18:35回复
    哎呀我艹 通过了 那我楼下开始


    IP属地:四川2楼2012-12-05 18:36
    回复
      全力支持!多写点,我加精收藏


      IP属地:安徽来自手机贴吧5楼2012-12-05 18:47
      收起回复
        从最基础的讲起,传奇服务端脚本大概分为两种 第一是NPC执行脚本 第二是系统执行脚本 这两种脚本大体差不多 只是在编写时要注意对象 这个后面会说 我先囫囵吞枣的来说一下,如果以后还有机会给大家介绍,我可以通过一些脚本成品给大家说些更深的东西
        先说NPC执行的脚本 通俗点就是玩家在游戏里点击NPC时 弹出的对话框 你想写什么内容或者功能都必须写在脚本里那么我们举个例子 假设要在土城安全区弄一个NPC 叫做"测试" 我们要通过这个NCP实现的功能是:用木剑换麻痹戒指.
        (声明:以后我们默认服务端都放在D盘根目录,不再多作说明)
        首先我们建立脚本的文本,在D:\mirserver\Mir200\Envir\Market_Def下新建txt文本文档,取名为"测试-3.txt" 这里的测试二字只是文本名 不是NPC名 可以随便取 后面的-3表示存在盟重省 如果是-0那么就是比奇 也就说NPC在什么地图 那么-后面就得是地图名然后在打开 D:\mirserver\Mir200\Envir下 MerChant.txt 在里面写上 测试 3 333 333 测试 0 1 0 0 0 这个我不多介绍 我主要讲脚本
        打开测试-3.txt文本 开始编写
        首先是脚本的开头 现在一般新的NPC都不承担买药啊仓库这些服务,所以可以直接跳过NPC特殊功能和折扣,直接进入脚本主体 我先写好然后每段会有注释
        [@main]----脚本的最开头命令
        你好,在我这里你可以用木剑换麻痹戒指.\ -----这是游戏里大家看到的白色的字体 其中"\"符号表示换行
        <好的,我要换/@1>\ ----- 这里是游戏中黄色的字体,玩家可以点的那种 后面的@1 表示点击后跳转到 @1脚本段
        <退出/@exit> ---- 这里同样是黄色字体 只不过@exit作为特殊的命令 不是跳转 而是直接关闭对话框
        [@1] ---- 这里表示名为"1"脚本段开始
        #if ------判断命令
        checkitem 木剑 1 ----检查包袱里是否有木剑1个
        #act -----如果有的话 则执行..
        take 木剑 1 --- 拿走木剑1个
        give 麻痹戒指 1 ---- 给予麻痹1个
        messagebox 恭喜,木剑换麻痹成功. -----弹出一个对话框
        #elseact ---- 如果包袱里没有木剑则执行..
        messagebox 我没有在你包袱里找到木剑 -----弹出一个对话框
        ------------------------------以上就是一个完整的脚本了 也是最简单的脚本 值得注意的是一,在[@main]下面 其实省略了一个命令 #say 表达的意思是对玩家说XX内容 也就是玩家看到的白色的字体.这里可以直接省略掉二, 在1脚本段的检查包袱命令checkitem后 可以不用#ACT这个命令 改用#say 不过表达的意思为如果有木剑则说.. 同理#elsesay表达的是 如果没有木剑则说,还有换成#say后 下面的所有命令都失效了 都会变成点击@1后 NPC检查木剑 如果有木剑 NPC会对玩家说take 木剑 1 ..... 也就是执行命令变成了语言命令 通俗点就是把动作命令变成一句话说给玩家了
        


        IP属地:四川11楼2012-12-05 19:12
        回复
          ----------------------------------这是笼统的讲了一下NPC的脚本 再讲一下系统执行的脚本内容和NPC脚本差不多 只是执行者变成了系统 而不是NPC 用得较多是功能脚本QFunction-0.txt 登陆脚本QManage.txt和机器人脚本RobotManage.txt 其他还有任务导航脚本 经络脚本 等等用的比较少 我们就不多说了 我们这里结合一个装备卷的脚本来讲一下
          装备卷大家不陌生吧 就是双击打开之后包袱里多出一套装备 命令和NPC脚本命令一摸一样 只是执行者稍微不同
          首先我们在DB库中建立一个新物品 添加东西大家都会吧 我就不多讲 将物品的stdmode值设为31 anicount值设为100 这里要主要DB中是否还有stdmode值设为31且anicount值设为100的物品 如果有 那么将新加的这个装备卷的anicount值改成一个没有的值 我们这里就用100做例子
          弄好DB之后 打开功能脚本 位于D:\mirserver\Mir200\Envir\Market_Def下的QFunction-0.txt 拉到最下面 写上
          [@StdModeFunc100] ---- 类似NPC脚本中的[@main] 100为之前DB中的anicount值 如果你设置的是101 那么这里就是@StdModeFunc101
          #act -----执行
          give 屠龙 1 ---给予屠龙1个
          give 天魔神甲 1
          give 麻痹戒指 1
          SENDMSG 7 你得到了屠龙天魔麻痹. ------这个是在聊天框里出现的信息
          -------------------------这样在游戏中 你打开装备卷 就会得到屠龙 天魔 麻痹了 如果心细的人写这个装备卷 会在#ACT前面一个检查包袱空位的命令CHECKBAGSIZE 现在一般的人都不会做得这么细 当然我也比较懒 我们就直接跳过
          关于SENDMSG 这个命令 后面的数字不同 则表示的对象不同
          1、发送普通红色全服广播信息。
          2、发送普通红色全服广播信息,并显示NPC名称。
          3、发送普通红色全服广播信息,并人物NPC名称。
          4、在NPC头顶,显示普通说话信息。
          5、发送红色信息给人物
          6、发送绿色信息给人物
          7、发送蓝色信息给人物
          ---------------------------------------这差不多就是脚本的最基本的知识 算一个入门吧 如果大家还有兴趣往深出学 我以后可以结合一些脚本例子给大家讲一下 


          IP属地:四川12楼2012-12-05 19:15
          回复
            少的楼是你自己抽的?


            IP属地:安徽来自手机贴吧13楼2012-12-05 19:33
            收起回复
              我次哦!好高深的样子。貌似涉及到编程这一块了。


              来自手机贴吧17楼2012-12-06 08:55
              收起回复
                不错,有点收获


                IP属地:四川19楼2012-12-06 23:44
                回复
                  求问个问题,是假人端的,假人装备等级这些修改的话要在哪个地方改呢?以前好像改过忘了
                  ——来自 爱贴吧 Windows Phone 客户端


                  IP属地:江西来自WindowsPhone客户端23楼2015-11-04 07:20
                  回复