仙境传说RO:添加NPC的定义以及逻辑

仙境传说RO:添加NPC的定义以及逻辑

大家好我是艾西,前面几篇文章中我有跟大家讲解怎么定义一个NPC或是创建一个NPC去实现某个功能等。那么npc的定义是什么呢?今天艾西就跟大家讲解下定义一个npc时每一个参数的作用以及去哪里找每个参数填的值。

我们直接进入主题:

定义分为四个部分

地图,X坐标,Y坐标,朝向 制表符tab script 制表符tab NPC名字 精灵ID,{代码}

地图,X坐标,Y坐标,朝向,制表符tab script 制表符tab NP&名字精灵 ID,触发半径X,触发半径Y, {代码}

Script:为固定用法  NPC名字要和所有的NPC名字不同不能重复,所有的脚本代码都是在{ }内填写

地图的参数值在Pandas服务端目录-----db-----map_ index.txt文档中

X坐标和Y坐标大家进入游戏就可以看到坐标,不会看的输入@where+角色名查看

朝向总的有8个朝向,0-7,逆时针旋转加1,每加1就是 45度 有的精灵只有一个朝向

朝向示例:8个NPC朝向

精灵ID可通过访问dotalux.com/ro/npclist/直接查看查找,鼠标停留就会有名字以及id

想看某个npc的详细参数以及序列帧可以用everything(对这个程序不懂怎么操作的看编译的那篇文章教程)这个程序去搜索npc的资源名,都是可以搜到的其中.spr就是这个精灵模组文件,npc的序列帧可以用spr conview工具去查看

在我们填入精灵代码时以 403精灵为例:你可以直接输入403 或4_ f _valkyrie2(字符串)都可以

触发半径X、Y:只要你在NPCxy的触发范围内就会触发相应的逻辑,否则的话需要点击才能触发

举例:在npc > custom > tutorial >  test.ras文档中创建NPC

回到游戏中输入:@reloadsoript 加载一下脚本即可 大家可以对比一下外观以及定义是不是一样的

怪物可以到db>re>mob_db.yml文档去查看 如果是官方的就是mob_db.txt查看,怪物NPC创建完后鼠标放到它身上会变成攻击的图标名字也是红色的。

●预定义的常量

。在代码src\map\npc.hpp里,比如:

JT_ HIDDEN NPC = 111,不可见的NPC,但仍可点击,在制作3D地形的可点击对象时很有用。

JT FAKENPC = -1,不可见且不可点击的NPC,常用于浮动NPC。

JT 4 F JOB BLACKSMITH = 726,上篇文章我们使用过。

。常量定义和客户端名是相同的,所以写脚本时也可以直接填对应精灵的文件名的全大写形式。

触发区域.

TriggerX和triggerY (如果给定)将定义一一个区域,以NPC为中心并在X的每个方向上跨越triggerX单元格,在Y的每个方向.上跨越triggerY 单元格。走进该区域将触发NPC。如果NPC代码中没有'OnTouch:'特殊标签,则执行将从脚本的开头开始,否则,将从'OnTouch:'标签开始

例:prontera, 156,170,4- script >波利#TestNpcTrigger1 >909,1,1,{

npctalk"你离我太近了,送你一个小苹果,请离我远-点! ";

getitem 512,1;

end ;

}

说一段话送玩家一个苹果,触发半径是1,意味着围绕npc一格内即触发

prontera, 156,170,4- script- 波利#TestNpcTrigger1 909 ,2,2,{

mes”[波利]" ;

mes"你好呀,我是波利,请不要打我! ";

close;

注释:当你走进NPC的触发区域close是点击触发会弹窗说你好呀我是波利请不要打我,ontoych是走过去触发,只要在触发区域内就会触发{  } 内的代码

OnToych:

npctalk "你离我太近了,送你一个小苹果,请离我远-点! ";

getitem 512,1;

end ;

那么今天的分享教程就到这里啦我们下期再见! 我是驰网艾西

拥有一台服务器可以做很多有趣的事情!

猜你喜欢

转载自blog.csdn.net/V13807970340/article/details/131106778