守望先锋地图工坊不可用(守望先锋地图工坊)
《守望先锋》从零基础开始学习:地图工坊入门教程
作者:NGA-泷涯
本文的目的是从0开始到入门。如果你已经理解了地图工坊是怎么回事了,那么本文可能对你帮助并不大。
我们先用几个问题来“揭开”地图工坊神秘的“面纱”:
地图工坊是什么?它是一个功能更多的自定义模式。地图工坊能做什么?现阶段,它可以做一些很有意思的玩法,相信你已经体验过地图工坊的作品了。地图工坊不能做什么?它不能脱离游戏的基本框架,例如OW限制了只能有12个玩家,地图工坊并不能让你的房间能塞更多人。现阶段它也不能替换模型,不能改变地形。地图工坊在哪里?它不难找,新建一个自定义房间,打开设置,你就会发现一个大大的“地图工坊”按钮。地图工坊所有的设置就在这里面了。什么是规则
地图工坊是由很多条“规则”组成的。规则是什么?你可以把它看做是一条一条的“条例”。当“规则”该被运行的时候,它就会被运行。
举个例子:在生活中,如果你上班迟到了,那么老板就会扣你工资。当你早上闹铃响了,那么你就应该起床了。这些都是生活中的“规则”。
规则由三个部分组成:事件,条件和动作。还是上面的例子,当你上班迟到,并且今天不是休息日的话,那么老板就会扣你工资。这条“规则”中,“上班迟到”是事件,“今天不是休息日”是条件,“扣工资”则是动作。
那在游戏里怎么体现呢?例如,我们知道,DVA的核爆会对一定范围内的敌人造成伤害,那么,“机甲爆炸”是事件,“玩家在爆炸范围内,且玩家和DVA是敌对关系”是条件,“造成伤害”则是动作。(PS:这里只是用“机甲爆炸”举例子,让你明白事件、条件、动作之间的关系)
总而言之,规则即是:当某件事(事件)发生,且条件满足时,就做一些动作。
编写规则
相信你已经知道“规则”是什么了,那么,接下来,我们就通过“规则”做一件简单的事:让玩家每次受伤时,回复10生命值。
过程其实很简单:玩家受伤→回血。那么相应的规则应该是什么样?
通过翻阅事件列表,我们发现有一个事件刚好合适:玩家受到伤害。那么我们就用它作为事件了。
我们并没有什么特别的要求,所以不需要“条件”。
动作是给玩家回血。我们应该用什么动作?通过翻阅文档,我们发现了一个“治疗”的动作。它需要选择几个东西:
玩家治疗者治疗量“玩家”就是这个动作的目标,即给谁治疗。我们怎么让游戏知道,治疗的目标是受伤的玩家呢?我们可以使用“事件玩家”。顾名思义,“事件玩家”指的是触发事件的玩家。我们在上面使用了“玩家受到伤害”事件,那么,在这里“事件玩家”指的就是受到伤害的那个玩家。类似的,如果我们使用“玩家阵亡”作为事件,那么就可以用“事件玩家”来代指阵亡的那个玩家。
在本例中,治疗者是谁并不重要,所以我们选择“无”就行了。
最后,我们设定的治疗量是10点,所以我们选择“数字”,然后输入10。
变量
没接触过编程的朋友可能会觉得这个东西有一些难以理解。但它并没有想象中那么难。我们可以用数学来理解它。
例如我们有一个等式:y=x+1。在数学上,我们把x叫做自变量:当我们放入不同的x时,y就不一样。我们的“方程”只是定义了一个从x到y的过程。
在我们上面的例子中,我们有一条动作:给事件玩家治疗10点生命值。这里面,“事件玩家”是一个变量——因为触发事件的玩家可以有很多个。过程是给玩家治疗。而10我们一般把它叫做“常量”——因为它不会变,无论是哪个玩家受伤了,治疗量都是10。
当然了,这只是变量最基本的概念。其实变量就像一个“盒子”,我们可以把东西放进去,也可以把里面的东西拿出来。
在OW中,变量和常量统称叫“值”。
实现“冰冻弹”
现在我们来写一点更复杂的规则。我们希望让麦克雷的子弹变成“冰冻弹”——被麦克雷打中的玩家,就会被冰冻住1秒。
同样的,我们先想一想过程:玩家被麦克雷打中→把玩家冻住。
我们发现“事件”并没有“被麦克雷打中”的事件。怎么办?这时候就该让“条件”出马了。被麦克雷打是受到伤害的一种,所以“事件”我们可以继续用“玩家受到伤害”。但是我们有一个附加条件:伤害的来源应该是一名麦克雷玩家。
我们翻阅文档,找到“攻击方”可以代指伤害来源。但我们应该直接拿它来做比较吗?仔细想想,“玩家使用的是麦克雷”比较的应该是英雄,而不是玩家。因此,我们继续找找怎么知道玩家用的什么英雄。最后,我们找到了“英雄”这个选项。条件便是:英雄(攻击方) == 英雄(麦克雷)
注意:等号的左右两边一定要是相同类型的,即类似事件玩家 == 英雄(麦克雷)是不正确的,因为左边是玩家,右边是英雄。正确的写法是英雄(事件玩家) == 英雄(麦克雷)
动作应该是什么?“冰冻”是官方提供的状态之一,我们可以直接使用“设置状态”。
玩家助攻者状态持续时间“玩家”和上面一样,使用“事件玩家”即可。助攻者即为“攻击方”。状态是“冻结”。“持续时间”输入“1”。
两个“特殊”的事件
通过上面的内容,我们已经知道了规则是什么,以及基本都规则编写。但你发现,“事件”只有非常少的几项。如果我们要做一些其他功能,例如,我们想让玩家重生后马上将他移到某个位置,无论是受到、造成伤害事件,还是阵亡事件,都不能满足要求。这时候,就需要用到持续事件+条件了。
持续事件和其他的事件都不太一样。其他事件都是“当这件事发生时”,而持续事件则是“我会一直等着,直到条件满足”。
例如,我们可以用“存活”来判断玩家阵亡与否。而结合我们上面所说的持续事件,我们可以写出这样的规则:
事件:持续 - 每名玩家条件:存活(事件玩家) == 真这是什么意思呢?根据上面的介绍,我们把它“翻译”过来,就是:一直等,直到玩家活着的时候,就做下面的动作。
官方文档中有这样的解释:“当首次检查就满足条件时,则会执行行动。当未满足条件列表,但之后又满足时,则会尝试再次执行行动”。
因此,我们上面的规则,实际上就是:当玩家阵亡的时候,游戏就会等——等到玩家复活,然后做相应的动作。之后玩家又阵亡了,游戏又会继续等。不断重复上述的过程。
类似的,我们现在要编写一个规则,能响应不在地板上的玩家按互动键(F),那么我们就可以这样写
事件:
* 持续 - 每名玩家
条件:
* 在地面上(事件玩家) == 假
* 按钮被按下(事件玩家, 互动) == 真
动手做一个模式
通过上面的文章,我们已经知道了如何编写规则。但相信你还不知道如何编写一个简单的玩法。不知道大家是否玩过有“守望传火”之称的“烫手山芋”模式?这里,我们就以此模式为例子。(如果没玩过的朋友可以在[这里]体验)
注意:因为本文是一篇教程文章,所以不会完整覆盖整个游戏模式。
传火
我们想想这个模式是怎么玩的?带着“火”的玩家通过攻击别的玩家(不论是何种方式),就可以把“火”传给别人。
那么,这个过程用规则怎么描述?我们可以这样说:当一名玩家受到伤害,并且他自己没有火,但是攻击他的玩家有火的时候,就把火传给这名玩家。
从上面的描述不难看出,我们应该选择“玩家受到伤害”事件。但是,我们如何知道玩家有没有“火”呢?不知道大家是否记得艾什的“延时雷管”——我们可以用点燃状态来表示火。通过翻阅手册,我们可以找到“具有状态”和“设置状态”、“清除状态”几个东西。这样,我们就可以把条件组合出来。
条件是受伤的玩家没有火,而攻击方有火。因为我们使用了“玩家受到伤害”事件,因此,我们使用“事件玩家”表示前者,“攻击方”表示后者。条件便是:
具有状态(事件玩家, 点燃) == 假具有状态(攻击方, 点燃) == 真动作是把火“传给”另一名玩家。“传”的过程,又分为一名玩家“失去”火,和一名玩家“得到”火。因此,规则有两条:
* 设置状态(事件玩家, 无, 点燃, 9999)
* 清除状态(攻击方, 点燃)
另外,“点燃”只是效果——能看不能用,所以,我们还得再加上一个“伤害”的动作:
* 开始持续伤害(事件玩家, 无, 9999, 50)
* 设置玩家变量(事件玩家, A, 上一个持续伤害效果ID)
* 停止持续伤害(玩家变量(攻击方, A))
这里我们用到了变量。大家可以结合上面的变量小节,想一想为什么要这样做。(PS:你可以把变量想象成一个“盒子”,设置就是往“盒子”里放东西)
最终的规则如图所示:
加分
俗话说“万事开头难”。既然我们已经把最基本的东西做出来了,那么我们就可以做下一个东西了:胜利判断。我们的逻辑是:剩下一名玩家的时候,就给这名玩家加一分。
我们不知道什么时候会剩下一名玩家——可能是某位玩家死亡后,但也可能是某位玩家退出游戏后。我们没办法确定到底是什么时候,但我们条件非常清楚:只剩下一名活着的玩家。因此,我们使用持续事件+条件来做这件事。我们翻阅手册,可以找到一个叫做“存活玩家数量”的值。我们直接使用它:
事件:持续 - 全局条件:存活玩家数量(所有队伍) == 1而我们要做的,就是给他加一分。我们在手册中找到一个叫“所有存活玩家”的内容,但注意:它是一个数组。因为游戏中可能有很多玩家存活,也可能一个都没有。游戏没有那么智能,它并不知道我们的规则一定只有一个玩家。因此,我们需要使用“数组中的值”:
修改玩家分数(数组中的值(所有存活玩家(所有队伍), 0), 1)接下来,我们要复活所有玩家,开始一局新的比赛:
重生(所有玩家(所有队伍))最终的规则如图所示:
随机传火
现在大体框架已经有了,但是,我们还没处理一些特别的情况:例如,当玩家死亡时,或者玩家退出游戏,导致“火”不见了的时候,我们需要将“火”随机给一名玩家。和上面一样,我们使用持续事件+条件。
我们的条件应该是,当所有玩家都没有火的时候。换句话说,就是有火的玩家数量=0的时候。游戏并不能直接获取到有火的玩家,但我们可以利用“已过滤的数组”来做到这一点:我们从所有存活玩家里,筛选出有火的玩家,不就可以了?
换成条件,就应该这样写:数量(已过滤的数组(所有存活玩家, 具有状态(当前数组元素, 被点燃))) == 0。(如果这条规则你不太看得懂,请尝试把括号拆开,从里到外,结合手册,一点一点看)
动作则是从存活玩家里面,随机选择一个玩家,让他有“火”。同样的,我们又要用到“数组”了:
设置全局变量(A, 数组随机取值(所有存活玩家(所有队伍)))设置状态(全局变量(A), 点燃)开始持续伤害(全局变量(A), 无, 9999, 50)设置玩家变量(全局变量(A), A, 上一个持续伤害效果ID)最终规则如下:
修复问题:死亡掉火
现在邀请几个好友,或者多开账号进入游戏。开始一局游戏。你们愉快的传火中,有一名玩家阵亡了。但是,你们发现,“火”并没有传给下一个人。房主打开“地图工坊查看器”一看,哎?随机传火的规则怎么没有运行呢?
原来,死亡是不会自动掉火的,我们还需要手动处理它:
* 事件:玩家阵亡
* 具有状态(事件玩家, 点燃) == 真
“掉火”其实就是把状态去掉,所以动作也很简单,基本上就是上面的规则复制粘贴:
* 清除状态(事件玩家, 点燃)
* 停止持续伤害(玩家变量(事件玩家, A))
最终规则如下:
总结
通过几条规则,我们就写出了一个简单的“烫手山芋”模式。相信你也发现了,这并不是什么难事。你需要的,只是把一件事变成一件件小事,然后用规则来完成它。
春花秋实,《守望先锋》地图工坊作者访谈
作者:NGA-Conse
2019年春季,《守望先锋》地图工坊功能正式上线,转眼间,时间已经带我们驶向了这个年份的末尾。在今年内,诸多玩家朋友们在地图工坊中不断探索,为大家制作了丰富多彩的新鲜地图,带来了无数的趣味体验,同时也奉献了数不清的汗水。每张为大家带来欢乐的地图,背后都有着默默调试着的工坊作者们。借此年末之际,我们希望能将这些在幕后的工坊作者们,引到台前,和广大的玩家朋友们聊一聊他们的故事。今天我们有幸请到了2位活跃在地图工坊第一线的作者,勤勤恳恳的托比昂 [@ow_rig] (下文均简称为“勤”),与 守望教官 [@守望教官] (下文均简称为“教”)。让我们欢迎他们!
先向大家介绍一下自己吧。勤:大家好,我是Rig,也是勤勤恳恳的托比昂,现在有在运营一个地图工坊的主题微博,是名大三的学生。教:我的名字叫守望教官,33岁,是名哔哩哔哩UP主,目前在一家普通企业做程序员。
两位是什么时候开始进入守望先锋大家庭的呢?勤:我被召唤得比较晚,是17年的时候被同学拉进了坑,从此便深陷其中了。教:大概2年前。
是因为什么被地图工坊吸引了呢?勤:因为它的自由度、丰富游戏体验等等,简单点说就是好玩。教:通过简单的几行代码就能实现各式各样、“花里胡哨”的游戏模式,这个就很有意思。在常规模式之外,来几局不一样的模式,会是一种全新的体验。
什么时候开始制作地图工坊地图的呢?勤:从地图工坊正式上线的那一天开始,也就是今年的5月22日。其实很惭愧,我到现在并没有什么自己的作品,绝大多数都是改造和搬运。教:在大概测试服务器有了这个功能开始,就在制作地图工坊地图了。
众所周知,鲜花的结果不仅需要园丁的孕育与培养,还需要蜜蜂与蝴蝶的不辞辛劳的往返。今天的两位嘉宾就扮演了其中不同的角色,那让我们先来了解下蜜蜂的故事。[勤奋的托比昂:工坊玩什么|练习特辑]
至今有搬运多少种工坊地图呢?勤:基本上看到自己觉得好玩的,或者朋友们有需要的我就会去搬运,搬到现在加起来大概有二三十个。
搬运外服的工坊地图需要多长时间?勤:搬运相对简单,还是地图作者们辛苦。搬运分为2个阶段,在地图工坊最开始上线那段时间,还没有复制粘贴这个功能,所以我们就只能自己照着写规则,那个时候花的时间比较久。可能一个稍微复杂点的作品就要坐在那里搬一个下午。现在搬运起来比较轻松,加上测试的时间可能不到半小时就能搬运一个作品。
搬运过程能和大家介绍一下么?勤:首先你得到外服去复制规则,同时记录下地图的设置,然后再到国服粘贴规则,把设置复现。这个时候一个作品就已经搬运过来了,但是还需要进行测试,以防自己在设置的时候出了什么问题。最后再把作者写的描述翻译过来添加到描述里。最后,留下作者名或者来源,一个作品就搬运完成了。
在搬运过程中有遇到什么有趣的故事么?勤:在和作者联系的时候,发现一直关注的日本作者很喜欢成龙。因为工坊而去和外国人交流是一种很奇妙的体验。
有遇到什么困难么?勤:部分中文的翻译需要对照英文版本才能理解,对不管是工坊制作还是搬运都带来了一定的麻烦。还有就是会有人抄袭甚至冒充工坊作者获利,投入大量心血的作品被人窃取或随意对待,这很打击作者的积极性。
让我们回过头来,听听作为辛勤的园丁,教官这边又会有什么有趣的分享呢。[守望教官:3D吃豆人]
目前有制作过多少张工坊地图?教:大概做了30个左右的工坊地图,而且都做了视频介绍。
单独制作一张工坊地图需要消耗多长时间呢?教:不同地图制作耗时上下限差距很大,以我自己制作的几张地图为例吧,比如路霸娃娃机(国服代码:DQFHS)这一张,制作、测试加视频只用了一个晚上,但最近做的火影模式(国服代码:47HQ9)则大概花了3个礼拜。
能和大家介绍下一张工坊地图的制作过程或步骤么?教:我自己一般把制作过程分为5步,需求分析、模型设计、VIP实现、全功能实现,以及半自动化测试。1. 需求分析,需要看这个模式是谁希望玩到的,希望怎么玩,虽然大多数都是自己拍脑袋想出来的模式;2. 模型设计,就是要设计功能、安排变量,一般采用事件驱动开发的模式,定义好功能会触发什么样的事件,每个事件又会有什么动作,用到的一些变量需要用记一下;3. VIP实现,就是先实现一个最简单可玩的模式,自己先体验一下;4. 然后再往上堆细节实现全功能;5. 最后一步就需要创建若干个机器人来协助完成某些功能的测试。
制作过程中有什么花絮么?教:除了服务器崩溃、脚本太多需要重启、网络中断、客户端停止响应这些意外情况,大概就是自己的数学太差,无法实现想要的运动轨迹,心态爆炸,哈哈哈哈。
制作过程中遇到的最大的难点在哪里?教:是当前地图工坊的性能瓶颈。我大概有90%的时间都是在设计新的模型,改写代码以获取更好的性能。
花开花落皆成果实,那他们俩对自己与他人的成果又是如何看。两位,自己最满意的一张地图是哪一张?勤:安娜一枪(国服代码:75GZK),通过工坊限制安娜开镜时间,并且利用弹跳台改造地图结构使得游戏更有乐趣。教:自我感觉吃豆人(国服代码:5S4PN)最好了,bug少,设计了不少buff,隐含了不少游戏策略。
最喜欢的工坊地图是哪一张?勤:我喜欢所有的练习模式,尽管我不一定会玩,但每次发现我都会收藏下来,收藏了等于自己练习了。当然,最喜欢的作品是AI练习——Overbot(国服代码:E1HQS),我可以通过这个作品练习大锤挡拍反应,击落双飞等。教:躲避堡垒(国服代码:SZXWW)——可以不断发掘一些英雄的使用方法,独立过关——我很享受这个发掘的过程。
如果玩家朋友也想加入工坊作者的行列,该如何着手。两位,在之前有编程基础么?或类似经验么?
勤:我就是相关专业的学生,所以有一点编程基础。之前也有和朋友一起做过运营过服务器,那段时间里认识了很多朋友,留下很多回忆,算是有类似的经验吧。教:有几年开发经验了。大学时期还用过魔兽争霸编辑器做了MOBA类游戏里的英雄。如果有不会编程的朋友想要制作地图工坊地图,推荐他们做哪些准备呢?
勤:其实地图工坊上手并不难,有基础的朋友认真琢磨几天就能自己做了玩。对于没有编程基础的朋友们首先推荐他们去哔哩哔哩搜索一下地图工坊制作的视频教学,有很多的做得非常细致贴心。其次推荐他们去搜索实例教程和一些相关的文章,自己跟着做一做可以收获很大的乐趣,最重要的是一定要坚持学下去,形成良性循环后相信很快就能享受制作工坊内容的乐趣,而且这对零基础的朋友以后学习编程也是有一定帮助的。
教:最好能先了解分解问题的方法。比如一个比较复杂的功能:将其他玩家射出去,并伤害碰到的敌方玩家。需要将这个过程分解成:“按下某个按键,对某个玩家施加推力”和“循环伤害该玩家周围的敌方玩家”两个规则。这两个规则就比较简单,可以在工坊里直接搜索到对应的命令,搜索的时候可以用“按下”、“推”、“循环”、“玩家”、“伤害”、“周围”这些短语,然后想办法把他们串联起来就好了。有了这个过程,再复杂的问题都可以微笑着面对了。
今载将逝,来年可有期待?如果可能的话,你最想在地图工坊中实现的功能或玩法是什么呢?勤:上传音效、修改模型、自定义地图等等等等。教:卡牌游戏。
对地图工坊有什么意见与建议么?勤:希望能尽早建立起一个作品筛选-分享推荐的机制,很多作者的作品没人玩不是因为不好玩不用心,而是没人知道没人去玩,有的时候一个作品做出来甚至没人去帮忙测试,这对工坊作者制作热情的打击是致命性的。同时也希望未来暴雪能开发一些能保护原创作者的机制。
教:非常希望有复制带出处或者编辑锁定这样的功能。可以保护作者、保护优质内容不断产生,也不影响作者直接互相学习互相促进。然后就是一些小的愿望了:1. 创建一些实体模型(石头、箱子)2. 允许选项接收变量(颜色、特效类型)3. 多加一些特效类型4. 提高英雄数量上限5. 通过代码控制游戏设置6. 获取角色身上各个位置的矢量(枪口、正确的头部)7. 独立代码编辑器带mock runtime
对《守望先锋》有什么想要说的呢?勤:希望能尽早解决我一直无法定级百强的BUG(手动滑稽)教:希望越办越好,我很喜欢守望的各个大大小小的细节,期待未来能发现更多!
感谢2位参与本次访谈,祝两位工作学习顺利,在2020年为工坊制作更多精彩的地图与玩法,谢谢!玩家朋友们还可以通过微博(勤勤恳恳的托比昂)与哔哩哔哩(守望教官)关注了解两位作者的最新地图工坊作品。
震惊,国服玩家竟然这么玩守望,守望先锋地图工坊推荐!第二弹
各位看官老爷们大家好,又到了每天一次的·守望先锋地图工坊代码分享时间了,今天的分享依旧是五个超好玩的对战地图,希望大家能够喜欢,哒哒哒哒哒哒哒哒哒!
逃离黑洞 国服代码:kdp8w 模式作者:不详
你有很多好朋友吗?那就来玩逃离黑洞吧,这个友尽地图绝对可以让朋友更加亲密!游戏开始时地图边缘会出现一个黑洞,黑洞会把玩家吸过去,离得越近吸力越大,碰到黑洞也就失败了,而最后一个存活的玩家则获得胜利。也就是说,不要犹豫,拿起手里的冰墙去坑队友吧!
大锤蹦蹦床 国服代码:3q2x1 代码来源:b站焦耳
这个模式是利用了大锤普通攻击击退的机制,所有玩家出生在一个巨大的弹力球上,边蹦蹦跳跳边把队友打下球球,活到最后的玩家胜利,小哈特,白又白,一只大锤拿起来,爱锤队友爱锤怪,蹦蹦跳跳真可爱!
星球大战 国服代码:khc6k 模式作者:不详
还记得小时候玩过的愤怒的小鸟太空版吗?里面星球改变重力的设定可谓时惊艳了当时还很年轻的小编,现在星球改变重力这个设定也被大佬带到了守望先锋里,这张地图里玩家要受星球引力影响环绕在星球周围,不择手段消灭敌人。虽然听上去不错,但实际上大家只能水平旋转,刚开始晚上几局确实很舒服,但是多玩几局就有些不好玩了。
烫手山芋 国服代码:594h2 代码来源:墨球儿
小学的时候每到六一老师都会组织同学们玩击鼓传花,现在这个小游戏也来到守望先锋啦!开局随机一名玩家持有烫手的山芋持续性掉血,通过攻击其他玩家将山芋转移,生存道最后的玩家获胜,模式限定英雄麦克雷,只能使用近战攻击,按e可以跳的老高,但是有二十秒的冷却时间,和一帮老同学一起开黑,在守望里拾起童年的回忆吧!
穿越火线终结者模式 国服代码:DPSEV 模式作者:脆皮手枪腿#51888(已弃坑) 优化维护作者:b站@笑尼玛波快睡觉(弟弟吞噬我的敌人#5244)
大佬们终于对穿越火线下手了吗?作为曾经国产fps网游一哥,穿越火线号称三亿鼠标的枪战梦想,而cf里最有特色的两个模式就是幽灵模式和终结者模式啦,幽灵模式的隐身不太好实现,但是终结者模式竟然被大佬做出来啦!虽然还是有地图工坊不能改模型的老问题,可是看看这游戏规则,还是很有情怀的嘛!爷青回!
僵尸(所有重装+托比昂)需要杀掉所有人获得胜利;人类需坚持到最后或变成猎手后杀掉所有僵尸获得胜利。每个僵尸/人类都有专属的特殊技能,详情见游戏内右上角。普攻可对僵尸造成击退效果,场上只剩下2名人类时,蹲+F可变成幽灵猎手 ,是不是满满的回忆呢?
今天的五个创意工坊地图就介绍到这里啦,想要知道更多的地图代码就点个关注吧!觉得代码容易忘记就不妨点个收藏吧,关注小编,每日更新守望先锋地图工坊代码哦,我们明天再见叭!
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送至邮件举报,一经查实,本站将立刻删除。转载务必注明出处:http://www.hixs.net/article/20231109/169624752647983.html