公布【复活术】设计思路、机理及明码|以及些许心路感慨

2020-02-09 13:53:48  阅读 218 次 评论 0 条

陆陆续续发了几个技能脚本了。每个都是自己一行一行写的,没有任何参考别人的过程。


然而,仍然扛不住各种键盘侠和带路党的恶心。


遂,决定公布该脚本设计思路,和所有关键代码。


并承诺今后不在脚本区发布任何脚本。


                                                                                                                    以上


设计思路
引擎现有的           @MagSelfFuncX 取不到死尸的人名,既而无法继续实现接下来的任何功能。
                           @MagTagFuncX 同上。
                           @MagTagFuncEXX 施法者无法触发,施法者的目标死尸无法被触发。




既然如此,那我反其道思之,


我只要在玩家死亡触发字段@PLAYDIE里,写下代码,记录玩家死亡时候的<$MAP><$X><$Y>,写到一个DATA.TXT内,用WriteConfigFileItem完成,写作[<$MAP><$X><$Y>],然后为了防止覆盖这个坐标上已有的死人,用ReadConfigFileItem读取这个坐标下的计数变量N$计数
                        若N$计数=0,则把死亡玩家的名字写到这个Section的下面,作DiePlayerN1=<$USERNAME>
                        N$计数≠0,则读取N$计数,赋值给当前死亡玩家N$计数back,并把N$计数back+1,再把把                  死亡玩家的名字写到这个Section的下面,作DiePlayerN<$STR(N$计数back)>=<$USERNAME>


此时,已建立好了某个地图的某个坐标上的所有死尸及其对应的玩家名。


最难的一步就实现了,然后就可以再玩家自定义技能复活术的[@MagSelfFuncX]下,直接取玩家鼠标变量及人物地图变量<$MAP>,直接CHECKTEXTLIST去检测DATA.TXT里存在不存在字段[<$施法者MAP><$施法者鼠标X><$施法者鼠标Y>],
                        若不存在,则说明施法者释放复活术的鼠标位置没死人,则终止技能释放,并发出没死人提示。


                        若存在,则说明施法者释放复活术的鼠标位置有死人,则ReadConfigFileItem读取N$计数
              N$计数=1,则说明目标坐标就一个死尸,这时直接执行ReadConfigFileItem读取DiePlayerN1,这时         得到了目标死尸的玩家名,随后可用各种触发比如多级脚本的<$对方USNERNAE>.messegebox XXXX给死尸弹
       对话框提示有人复活你,是不是接受;或者直接用HCALL触发死亡玩家的脚本。
             N$计数>1,则说明目标坐标存在两个或以上的死尸,此时情况比较复杂,提供两个思路:1要么按照
        我双工复活术的帖子的模式II,遍历所有死尸名字、职业、等级、性别,在施法者释放技能时候弹出UI让你
       选择复活谁;2要么按照我简易复活术帖子取随机数 1~【N$计数+1】,直接取DiePlayerN<$STR(N$随机数)>对应的玩家的名字,然后进行后续触发。


被触发成功复活的死亡玩家,要把DATA.TXT内自己的死亡信息<$MAP><$X><$Y>下的DiePlayerNX条目删除,并把该SECTION下的计数-1。


若死亡玩家拒绝复活,然后小退或者大退,则小退触发字段@PlayReconnection下、大退触发字段@PlayOffLine
必须加入命令,来清除死亡玩家在DATA.TXT的对应死亡信息,以防造成后续BUG和数据大量积累。


=========到此,所有设计全部完毕====================

本文地址:http://www.uc845.com/post/473.html
版权声明:本文为原创文章,版权归 qweqwe1121 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?