艾西服务器

 找回密码
 立即注册
查看: 299|回复: 0

仙境传说ro:如何在地图上刷怪教程

[复制链接]

239

主题

0

回帖

31

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31
QQ
发表于 2023-10-19 21:43:31 | 显示全部楼层 |阅读模式
仙境传说ro:如何在地图上刷怪教程

大家好这里是艾西服务器论坛,在仙境传说这个游戏中我们知道了怎么创建NPC添加商品售卖后,那么对于游戏的怪肯定也得有自己的想法以及对游戏的设定以及理解,今天跟大家分享的是怎么在地图中刷怪教程。
我们直接进入主题:我们需要达到想要效果其实就是去定义一个怪物生成器
地图,X坐标,Y坐标,X半径, Y半径
monste r
怪物名字,怪物等级
怪物ID,数量,延迟1,延迟2,事件,怪物大小,怪物AI   (此为怪物生成器格式)
<mapname>{,<x>{,<y>{,<xs>{,<ys>}}}}%TAB%monster%TAB%<monster name>{,<monster level>}%tab%<mob id>, <amount>{, <delay1>{, <delay2>{, <event>{, <mob size>{, <mob ai>}}}}}

<地图:名>{, <X坐标>{,<Y坐标>{, <X半径>{, <Y半径>}}} }%TAB%monster%TAB%<怪物名字>{, <怪物等级>}%TAB%<怪物ID>, <数量>{,<延迟1>{, <延迟2>{,<事件>{,<怪物大小>{,<怪物AI>}}}}




编写脚本在PANDAS>npc > custom > tutorial >  test.ras 文档中
Prontera(地图), 152,280(坐标),10,10(触发范围) monster(固定用法) 波利(怪物名称),10 (怪物等级)1002(怪物ID), 200(数量),2000(重生间隔), 0(第二个重生间隔随机), "TestMonsterDeath : :OnMonsterDeath"(触发事件)
注释说明:
生成位置,map name是怪物生成的地图名称
x和y是怪物生成的坐标,如果x和y都是0,怪物将在全地图随机生成
XS和ys是刷怪区域的X和Y方向的半径,如果xs和ys都是0,怪物将固定在x和y的位置生成
以上参数限定的区域只是刷怪时的初始区域,怪物- -旦生成,就会在全地图随机移动

名字和等级
monster name是怪物在屏幕上的名字,与它们在其他地方的名字没有任何关系
monster level 是怪物的等级,如果不指定,怪物将使用mob_ _db.txt里配置的等级。例如:波利,50 会生成-一个名为波利且等级为50的怪物
如果monster name为--ja-- ,则使用mob_ db. txt的” 日文名称”字段,(在rAthena中,它实际上包含一一个英文名称)如果它是"--en-它是怪物数据库中的”英文名称”(其中包含用于使用GM命令召唤怪物的大写名称)

怪物ID和数量

Mob id标识了要生成的怪物在" mob_ db.txt"怪物数据库中的记录
数量是执行此命令时将产生的怪物数量, 它受’'battle_ athena.conf"中的
产生率影响如果生成的怪不打死,是不会再生成的。

重生延迟

delay1表示固定时间和delay2表示随机时间 控制怪物重生延迟-第一一个是固定的基础重生时间,第二个是基础时间之上的随机变化。两个值都以毫秒为单位给出(1000= 1秒)。请注意,服务器还强制执行5秒的最小重生延迟

事件

事件是当怪物被杀死时要执行的脚本事件。
事件必须以NPCName ::OnEventName的形式执行,事件名称标签应以"On"开头。对于所有事件,如果NPC是触摸NPC,触发脚本的玩家必须在"触发'范围内才能使事件生效。
示例:
monster "prontera" , 123, 42, "Poringzθrd" , 2341,23, "Master: : 0nThi sMobDeat
amatsu,13,152,4 script Master 767,{
mes "Hi there";
close;

OnThi sMobDeath:
announce "Hey," + strcharinfo(0) + " just killed a Poringzθr
end;
}

怪物生成器代码示例:



怪物大小和AI
mob size 是怪物的尺寸
mob ai是怪物的Al(人工智能)类型
<mob size>可以是:
Size_ Small (0) //尺码_小号
Size_ Medium (1) //尺寸 _中号
Size_ Large  (2) //尺码_大号
<mob ai>可以是:
AI_ _NONE (0) (默认)
AI_ _ATTACK (1) (攻击/友好)
AI_ SPHERE (2) (炼金技能)
AI_ FLORA (3) (炼金技能)
AI_ ZANZOU (4) (阳炎/奥博罗技能)
AI_ LEGION (5) (世拉技能)
AI_ FAW (6) (机械技能)
可以在地图上以sc_ BOSSMAPINFO 状态检测到使用"boss_ monster' 而不是‘monster"生成的怪物。

怪物ID可在Pandas>db>re>mob_db_.yml 文档直接查看



演示:prontera ,152,280 monster波利 1002,2 (因没有指定范围会在固定地点刷新)



prontera ,152,280,10,10 monster波利 1002,2 (在10*10的范围刷新怪物没有设定等级默认刷出来的怪物都是1级)

prontera ,152,280,10,10 monster波利 10 tab 1002,2,1000
(即怪物刷出等级为10级,刷新的速度为1秒,后面在次定义一下随机时间5秒没有用估计是因为固定刷新时间太短了)

prontera,161, 287,4 script TestMonsterDeath > 767,{
mes"每当你杀一只波利, 我都会为你欢呼" ;
close ;
OnMonsterDeath :
npctalk "哇, 神勇无比的" +strcharinfo(0) + "消灭了一只波利! ";
end;
} 注释:杀死一只波利后NPC说一句话
这个就是比较简单的死亡脚本



也可以在这个基础上去做狩猎任务等,杀死多少只怪给一个奖励等
示例:
prontera ,161,287,4 script TestMonsterDeath 767,{
mes "每当你杀一只波利,我都会为你欢呼" ;
mes”当你杀满10只波利时,我会奖励你个< ITEM> 苹果<INF0>512</INFO></ITEM>";
mes"当前已击杀^FF0000" + killnum +”^000000 只波利";
close;
OnMonsterDeath:
killfum += 1; (注释:此为计数定义是会一直累计的)
npctalk "哇,神勇无比的" + strcharinfo(0) + "消灭了”+ kil1num + "只波利! ";
if (kil1num == 10) {
announce "哇,神勇无比的" + strcharinfo(e) + "消灭了10只波利,]已经超神了,奖励小苹果个]" , bc_ blue |bc_ a11;getitem 512,1;
}
end;
}
注:大家也可以根据自己的想法以及对于游戏的设定去创建行的奖励等





怪物大小的定义:

prontera ,152, 280,10,10 monster 波利,10 1002, 1, 1000,
0,"TestMonsterDeath: :OnMonsterDeath",0

prontera ,152, 280,10,10 monster波利,10 1002 ,1, 1000, 0,
"TestMonsterDeath: :OnMonsterDeath",1

prontera, 152,280,10,10+ monster 波利,101002, 1, 1000, 0, "TestMonsterDeath: : OnMonsterDeath" ,2



每写完新的脚本时记得回到游戏输入命令:@reloadsoript  (加载一下脚本)
今天的分享就到这里啦,艾西服务器论坛希望对有需要的小伙伴有帮助我们下期见

拥有一台服务器可以做很多有趣的事情
艾西服务器论坛 (注:本教程仅为个人娱乐参考使用,切勿用于商业用途否则后果自负)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|艾西服务器 ( 赣ICP备2023005995号 )

GMT+8, 2024-7-14 10:11 , Processed in 0.057589 second(s), 24 queries , Gzip On.

Powered by 艾西服务器论坛

© 2021-2023 联系艾西.

快速回复 返回顶部 返回列表