仙境传说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 ;
那么今天的分享教程就到这里啦我们下期再见! 我是驰网艾西
拥有一台服务器可以做很多有趣的事情!