首页 > 其他分享 >仙境传说RO :ra脚本加载结构和开发语法讲解​

仙境传说RO :ra脚本加载结构和开发语法讲解​

时间:2023-06-02 15:00:58浏览次数:39  
标签:脚本 map NPC 文档 ra scripts RO 加载

仙境传说RO :ra脚本加载结构和开发语法讲解

大家好,我是艾西。上一篇文章中我们聊完了怎么在游戏中新建NPC,感觉还是有不少小伙伴没有太看懂原理。今天艾西给大家深度讲解一下脚本加载结构和开发语法环境文档。

我们最后都是以ra脚本为主要讲解以及实操,那想完全掌握ra脚本查看相关的文档是比不可少的。脚本文档是在Pandas(服务端)的doc目录中,找到script_commands.txt文件所有的文档都在这里了。

仙境传说RO :ra脚本加载结构和开发语法讲解​_驰网艾西


文档结构有些语法约定:比如说前面加个

参数:文档中使用<尖括号>括起来的,一般前面是命令后面接若干个参数

可选参数:文档中使用的是{花括号} 括起来的 可填可不填参数 打个比方我想传送到某个地图,先填地图名字在填xy(坐标),如果我不填入在{花括号} 内的话那么就是默认传送到地图入口

字符串:文档中使用”双引号”引起来的


脚本加载结构

脚本加载由map server加载,目前总共是三个服务器分别是

login server登陆服,管理登陆账号的

char server角色服,管理角色一个账号可以有N个角色

map server地图服,游戏服务器,基本所有上游戏逻辑都在这里例如打怪、NPC等


入口文件:npc/(pre-)re/scripts_ main.conf

写死在代码里的,map.cpp

void map_ reloadnpc(bool clear)

{

if (clear)

npc_ addsrcfile("clear", false); // this will clear the current script list

#ifdef RENEWAL

map_ reloadnpc_ sub("npc/re/scripts_ main.conf");

#else

map_ reloadnpc_ sub("npc/ pre-re/scripts_ main.conf");

#endif

}

注:map.cpp是不能配置的,也没有必要配置,因为可以改写scripts_ main.conf文件,这个文件想加什么都可以直接填入加载

图中能看到import(导入),这个文件是没有任何NPC加载的都是导入文件比如说我们之前说的custom(GM自定义,自定义脚本都在这里)

仙境传说RO :ra脚本加载结构和开发语法讲解​_驰网艾西_02



仙境传说RO :ra脚本加载结构和开发语法讲解​_脚本定制开发_03


就这相当于文件夹管理scripts是父文件夹,文件夹里在分很多子文件夹大家都可以点进去看看比如scripts_athena.conf文件就定义了很多NPC可以知道它是怎么去配NPC:

仙境传说RO :ra脚本加载结构和开发语法讲解​_仙境传说RO服务端架设技术_04



加载所有文件后,服务器会先执行所有的top-level commands,创建NPC,怪物生成器,地图标记等等。

(脚本里)大部分其实都是这些(顶级命令)


仙境传说RO :ra脚本加载结构和开发语法讲解​_服务器_05



top-level commands需注意它传参数是用的制表符(tab键)图中打箭头的就是制表符(直接空格的话是没用的这里大家要注意一下,上一篇文章中忘记备注了)

仙境传说RO :ra脚本加载结构和开发语法讲解​_服务器_06


在script commands.txt文档中也有明确的表示制表符用tab

仙境传说RO :ra脚本加载结构和开发语法讲解​_脚本定制开发_07


那么到了这里我们今天的仙境传说RO :ra脚本加载结构和开发语法讲解教程就结束了,希望对有需要的小伙伴有帮助。我是驰网艾西我们下期见,感兴趣的小伙伴记得多练习多实操,拥有一台服务器可以做很多有趣的事情!!!

标签:脚本,map,NPC,文档,ra,scripts,RO,加载
From: https://blog.51cto.com/idc02/6402796

相关文章

  • w task 2 - introductions
    Method:2sentencesintroducethetopicgiveageneralanswer30-40words. Fourtypesofquestion:DiscussionOpinionProblemandsolutiontwo-partquestion Discussion:Plan:Topic-AorBAnswer:sometimesAbutusuallybetterBPeoplehavediff......
  • [ASP.NET MVC 小牛之路]03 - Razor语法
    本文引用:https://www.cnblogs.com/willick/p/3224144.htmlRazor是MVC3中才有的新的视图引擎。我们知道,在ASP.NET中,ASPX的视图引擎依靠<%和%>来调用C#指令。而MVC3以后有了一套新的使用@标记的Razor语法,使用起来更灵活更简洁。下面通过一些简单示例让大家快速撑握Razor语法的使用......
  • RocketMQ启动和端口介绍【转】
    关闭namesrv和broker关闭namesrv服务#进入binshmqshutdownnamesrv   如图关闭broker服务shmqshutdownbroker   如图通过jps验证下 如图第五节:防火墙配置宿主机需要远程访问虚拟机的rocketmq服务和web服务,需要开放相关的端口号,简单粗暴的方式是直接......
  • Walkthrough-SolidState 1
    0x01环境靶机地址:https://www.vulnhub.com/entry/solidstate-1,261/0x02过程1.信息收集┌──(root㉿kali)-[/home/kali/Desktop/oscp]└─#netdiscover-r192.168.60.0/24Currentlyscanning:Finished!|ScreenView:UniqueHosts......
  • Terraform从0基础到上手项目
    Terraform从0基础到上手项目(DevOps自动化运维开发——IaC基础设施即代码)(导读版) 图例......
  • 传奇Hero引擎报错is not a valid date and time怎么解决?
    isnotavaliddateandtime翻译成中文的意思为不是有效的时间格式,当引擎启动时会提示如下造成这种原因并不是引擎本身有什么问题,而是我们之前使用了其它的引擎,使!setup.txt下的DayOfGuildFountain=2017-12-16 13:58:02,时间格式改变了引擎官方给出的格式是:HH:mm:ss短日期格式:y......
  • The 'Access-Control-Allow-Origin' header contains multiple values'*, *', but onl
    报错内容The'Access-Control-Allow-Origin'headercontainsmultiplevalues'*,http://192.168.237.131',butonlyoneisallowed.Havetheserversendtheheaderwithavalidvalue,or,ifanopaqueresponseservesyourneeds,setthereque......
  • P1001 A+B Problem
    考虑只用位运算去解决。\(a+b\)可以表示成\((a\landb)+(a\veeb)\),即把共有的\(1\)和独有的\(1\)分开。因为\((a\landb)\in(a\veeb)\),所以可以将前者左移一位,后者异或上前者,和保持不变。这样又回到了第一步,递归计算即可,边界条件为\(a=0\)。其实就是在模拟二进制加......
  • ModuleNotFoundError: No module named 'setuptools_rust'
    我在执行pip3installwebssh遇到以下的报错信息。报错信息Traceback(mostrecentcalllast):File“”,line1,inFile“/tmp/pip-build-my9sai1o/cryptography/setup.py”,line14,infromsetuptools_rustimportRustExtensionModuleNotFoundError:Nomodulenamed‘s......
  • [ROI 2018] Innophone 题解
    [ROI2018]Innophone看了半天网上仅有的一篇题解……才堪堪写出来不过在LOJ上看提交,全是KTT,看得我瑟瑟发抖(不会题意翻译在平面上有一些点,你需要在这个平面上任意确定一个点(不要求是给定的点),定义其贡献为横坐标\(\times\)其右侧的点\(+\)纵坐标\(\times\)其左上方的......