【经验及教程】论Map的用法



  • 先挖坑,老子睡觉去了


  • 超级萌新

    萌新仰望大佬:100:



  • 激动,大佬的诞生 :100: :100:



  • 上面两个人的讽刺鼓励吓到我了qwq:100:



  • 那好,首先,我们要了解什么是map,map是不同于列表的,map可以存两个“东西”,一个键和一个值
    键的作用是你可以从这个键里提取东西0_1478845378903_upload-42e9c3ea-a1e3-4d19-9b98-b8fb4f171bbd
    不过前提是,你需要设置这个键的值
    0_1478845423196_upload-4354791e-f8e8-4656-acb1-61ac414dddf0
    ps:map的值理论上可以是任何东西,map的作用和变量一模一样



  • 但是如果你运行这个代码
    0_1478845533556_upload-bad40653-1c38-453b-b2dc-6790445e2ba2 就会发现你得到的是一堆红色的英语,那是因为你还没有设置变量map,现在像这样0_1478845597847_upload-2d6b3116-3b72-419a-841f-55d78bb258ac 再运行一次代码试试



  • 那好,现在可能就有同学说了,这和我用变量有什么区别啊0_1478845756376_upload-3c16a5e5-fa70-405b-9a0c-9b2fef667e84
    那好,现在我们把map里的键换一下
    0_1478845829290_upload-1d3f6cd7-48d5-4dab-b904-43015685192e
    那么也就是说现在我们可以通过这个来制作其它功能,之后会讲



  • 现在我们开始了解map里所有积木的功能,进入系统一栏往下滚动0_1478846051239_upload-62120cf5-34cf-4a6f-aa9b-30c2544ecb69
    现在我们能看到4个map的积木

    第一个积木0_1478846105175_upload-99160a2c-c85f-4bea-8c20-de2aef565dee 有两个作用1.赋值某变量为一个map,这样就不会像上面一样出来红色英文 2.这个积木的作用还有一个就是清除某个map所有的键和值,就像创建空列表一样

    第二个积木0_1478846517498_upload-0ea4c7c5-af6a-4cfa-90c5-960c6c7a0cdb 取出map中某个键的值,也就是说它的功能基本等于0_1478846569482_upload-b5fa3663-dfe0-426b-870e-cd6e911b9be3 它们都可以返回之前设置的值,不过这个map积木需要键才能取出值

    第三个积木0_1478846297493_upload-1591ec41-97c9-4e6e-bf16-9678a431c626 它的作用是设置map里某个键的值,没有设置map里的键的值怎么可能取出呢?它的作用基本和赋值一样,既然功能和变量一样,那么也就是说某个键的值可以是任何东西,甚至是再创建一个空map,值得注意的是,map里的键只能是文本,不能是数字,如果是数字那也只能是转换为文本化的数字

    第四个积木0_1478846697030_upload-ef5a34c2-0027-466b-a4de-5689081ca7fc它的的作用是删除map中某个键的值,也就是相当于这俩货0_1478846776277_upload-cbf92477-9b1a-42cc-83ad-1ce86f60c250 0_1478846799951_upload-e16566a7-b22c-40ce-9e75-0b1a15bf17ed



  • 不知道自己哪来的信心写教程alt text



  • 补充:
    MAP和列表本质上是一样的,都是数组
    列表用的是数字作为下标,而MAP用的是字符串
    看源码很容易就能发现这一点

    和平。。。和平万岁!

    0


  • 这什么啊,我我都没在教程里见到过

    ——英雄系列始祖,PVPIN管理之一

    0


  • 此回复已被删除!


  • 就没人奇怪我怎么发得表情吗alt text



  • @ChenglinWu 上传图片



  • 还有两个神奇的积木,0_1480055520730_upload-69c53919-d055-4f38-94a1-c4a3418f28450_1480055533872_upload-37d5f121-88be-4381-9d89-edddc0acebfe ,那么他们有什么用呢,他们和普通的map又有什么区别呢?我懒得说
    alt text

    首先,0_1480055520730_upload-69c53919-d055-4f38-94a1-c4a3418f2845 这个积木我们仔细看看,会发现这是持久的(废话),也就是说,不管你重启服务器,重启网站,重启插件,删除插件黑掉网站它里面的内容都还在,永远都不会消失,它还有一个好处就是它可以两个插件共用,比如A插件里面有个store的持久map,里面存上0_1480056104637_upload-d7cc5b9c-124f-489a-9ba5-8c566df32552 然后B插件里写0_1480056212638_upload-a40ad105-689a-4784-a47e-f112081b4190 ,你们猜它和普通map有什么区别,没错,这就是持久map的强大之处,它可以两个插件共用同样的map,也就是说B插件就算没有设置变量store为持久化map它也可以发送hello, ChenglinWu给我



  • 全教程完alt text



  • 完你妹啊,还有一大堆没写呢



  • 实战1,用map制作英雄cd,对于某些同学来说,cd的概念可能是这样的alt text
    这样的alt text
    也或者,是这样的…0_1480147350761_upload-f97ea05f-2c74-4077-b7b5-df0fdcd4d124
    在这里,在这个帖子里,在这个教程里,在这个网站里,我, ChenglinWu要教大家一种全新的,前所未有的,无缺点的,高大上的cd计算方式,那就是,map0_1480147471889_upload-badd626f-ed78-46dd-977d-80a2d652da65
    那么可能就有的同学问了,map不是存一个字的值吗,怎么用来做cd呢?对于这样的疑问,请回到第8页看看alt text
    看到什么了吗?没错,mapcd的思路是这样的alt text仔细看,技能是一个空map0_1480147644032_upload-8e0d381b-0ce8-490b-8cea-a2746cd0a1f6,然后我们给它存所以英雄玩家的值(注意,必须是获得xxx的名字,不然最后的文本会是CraftPlayer{name=xxx}什么的奇怪的东西0_1480147701869_upload-4f65bad5-443c-47ba-a173-32d9a63fee33
    所以说,现在cd的思路有了,让我们来做一个简单的英雄吧,做英雄第一步是监听执行命令(会命令监听的同学请跳过这一段),你要是只把“我”设置为英雄,那别人怎么办呢?咱们PVPIN的人怎么可以这么自私呢?所以我们需要的是一个监听0_1480147888122_upload-b990dbcc-1787-4453-a688-bd60d9ba9c9c有的同学可能就问了,那我怎么获得玩家的命令呢?教程里没有啊(233,这其实是我新手时的梗)!请将教程倒背谢谢
    可是有的人就说了,这里面的是交谈监听啊,我怎么改成命令!?0_1480148100662_upload-9ed6fd0b-817f-4bdf-b828-eff052d0b100
    我懒得回答

    anyway,现在我们有了命令监听(命令可以改成任何你想要的命令 )0_1480148250337_upload-339b5529-e443-4426-86c0-4fef911b1429 ,那怎么设置触发事件的玩家为英雄呢?看看这张图alt text,明白了吗?我们只要讲触发事件的玩家设置成英雄,把他的cd设置为任何你要的数字就行了0_1480148426291_upload-b46c30a7-d2fc-40b0-be32-ed2edad198a6



  • 那好,现在我们怎样消耗cd呢?用变量消耗cd可能是alt text,但这有个缺点就是一人技能冷却所有人都冷却,那么map就相当于是一个进阶版变量,恰好解决了这种问题,所以同样的思路,用map为0_1480148713597_upload-a7ca0e49-85d8-4b46-a857-6f444d162d88可能就有人说了,麻麻,这是什么鬼啊,又有在每个项目中,又有取出什么鬼减去1,好难啊,还不如用变量呢!对于这种同学,我只想,有利必有劣,map虽然支持多人,但是它(对于某些人)是比较复杂的,所以我们把它拆开看,把它和变量对比一下

    首先这里0_1480148906066_upload-d8fd2525-07d8-465e-8847-2a74157a5b45,我们之前不是设置触发事件的玩家为英雄了吗,所以需要获得他是否为英雄,不然一个人不是英雄也要被强行减去技能点,这不是虐人吗

    anyway,让我们再看看这个最重要的东西0_1480149092387_upload-31056b98-84be-4273-b1d2-c2be60364b36 ,把它跟变量对比,0_1480149113541_upload-bff8317b-747a-4af7-9801-8ec8d5c005e5 tongx同学们自己琢磨把,我去吃饭了



  • 有萌新看请吱一声,已让我知道我不是单机或大佬围观模式,五个吱就更新



  • 吱吱吱吱吱吱吱吱

    和平。。。和平万岁!

    0

登录后回复