js制作大师吧 关注:356贴子:2,416

JS(基本教程)

只看楼主收藏回复



来自Android客户端1楼2016-03-05 13:46回复
    。。。。。


    来自Android客户端4楼2016-03-05 13:48
    回复
      上面的钩子函数是点击方块触发
      itemID是手上的方块ID
      blockID是被点击的方块
      ==后面的是方块的id
      解析
      假如手上的方块是石头,点了一下草地
      发生在x,y,z坐标半径5的爆炸
      坐标为x,y,z,即被点击的方块的坐标,function()中的x,y,z
      else if()作用来了
      ()中是判定的条件
      假如if()中的条件不满足,而满足else if()中的条件
      即例子中,id0空手点击草地,输出楼主拯救地球
      else if()的作用是当if()的条件不成立时,则运行else if(){}中的函数
      众人:那么如果我想只要不满足if()就执行另外一条函数怎么写?
      答else if(){}可省略为else{} 即不需要判定条件,只要if不满足,就直接运行else{}的函数
      众人:preventDefault();是什么来的
      答:这是一条阻止函数
      比如,原来石头点草地,草地上会放置石头,加入这个函数后就不会放置了
      即阻止原来的动作,可利用这个函数做出锁箱子之类的JS
      [大家要多看函数表,熟悉函数呀]


      来自Android客户端7楼2016-03-05 13:50
      收起回复
        Ⅱ局部变量与整体变量
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        整体变量
        var a=1
        function(...)
        在function外面设置的变量影响全局的函数
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        局部变量
        function(...)
        {if(..){var a=1}}
        只影响function中的函数
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 局部变量影响整体变量
        var a=1
        function(...)
        {if(..){a=2}}
        假如满足function中的if()条件a就被赋值为2,从而整天变量中的a也会变为2而不是1
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        误区:重复设置变量
        错例
        var a=1
        function(...)
        {if(..){var a=2}}
        导致a不再是局部变量了
        小白:又躺枪了⊙ε⊙
        习题
        做一个遥控炸弹
        用赋值保存坐标
        要求:铁剑点击
        print出设置炸弹
        再次点击任意地方
        发生爆炸
        print爆炸成功
        ---------------------------------------


        来自Android客户端9楼2016-03-05 13:51
        回复
          ③介绍常用钩子函数
          1钩子函数中的modTick
          格式:
          function modTick(){}
          作用:
          将后面的大括号内的语句每0.05秒循环重复一次,不停重复,可当做定时器使用。
          例子:酷冰侠.js
          function modTick()
          {if(Player.getCarriedItem()==276){
          setTile(getPlayerX(),getPlayerY()-2,getPlayerZ(),79)
          }}
          解释:
          手上拿着钻石剑时,每0.05秒在玩家脚下放置冰块
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          拓展:20*0.05==1
          现实1秒,等于这个函数运行20次,可以用赋值做到计时
          var time=0
          i++
          if(i==20)
          {
          i=0
          time+1
          }
          [为了不混淆大家,我之后等于都用==
          不过大家考试别这样⊙ε⊙]
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          2.攻击实体的函数
          例子:
          骑动物,这个真是经典
          function attackHook(attacker,victim)
          {
          if(getCarriedItem==283)//如果玩家攻击生物的时候,手里拿着的是金剑(id:283)
          {
          rideAnimal(attacker, victim)
          //攻击者骑上别攻击者
          实体1骑上实体2
          preventDefault();
          }
          }
          众人问://是啥
          答:在编辑器中可以作为备注而不影响js内容
          比如*/
          考察你有没有认真看
          问:preventDefault();是啥?
          楼中楼回复⊙ε⊙


          来自Android客户端10楼2016-03-05 13:51
          回复
            //这是自定义方块的函数,后面的课程我会详细讲解
            Block.defineBlock(par1int, par2String, par3Object, par4Object, par5Object, par6Object);
            设定方块
            par1int为方块的id(0~255)
            par2String为方块名字
            par3Object为方块材质名字(在terrain.meta里的名字引用) (详见后面材质方法)
            par4Object为材料原id(就是把方块的物理等属性设定成id里的那个方块)
            par5Object为是否透明,为布尔值,true或false
            par6Object为其模型(详见后面方块模型表)
            现在这个函数还存在许多漏洞


            来自Android客户端17楼2016-03-05 13:55
            回复
              。。。。。。。。。。。。


              来自Android客户端18楼2016-03-05 13:57
              收起回复
                //合成函数(例子)
                Item.addShapedRecipe(267,1,0,["bab","bab","bab"], ["a",3,0,"b",0,0])/*括号里的第一个数是合成物品的is第二个是合成的数量,[括号]里的是工作台第一行,第二行,第三行,摆放的形状,第二个[括号]里是字母代表的id
                例:
                上面一个是如果摆放
                空气 泥土 空气
                空气 泥土 空气
                空气 泥土 空气
                (泥土id3 空气id0)
                所以a代表泥土b代表空气
                也可以弄c d等等代表!
                注意如果自定义物品的话要写在自定义物品的后面,不然点工作台崩溃的*/
                //熔炉教程
                Item.addFurnaceRecipe(3,264,0)
                //括号里(被烧物品id,烧完获得物品id,特殊值0)
                //如上述,如果放入熔炉的是泥土,烧之后变钻石


                来自Android客户端19楼2016-03-05 13:57
                回复
                  1.print("内容"):弹出语言框显示你设的内容;
                  2.explode(x,y,z,半径):爆炸设置的半径的范围;
                  3.clientMessage(ChatColor.颜色+"内容"):在发言框显示你设的指定颜色的内容;
                  4.setTile(x,y,z,方块id,特殊值):放置指定方块;
                  5.Player.addItemInventory(物品id,数量,特殊值):获得某某数量的某某物品;
                  6.getPlayerX():获得玩家的X座标,和Player.getX()一样;
                  7.getPlayerY():获得玩家的Y座标,和Player.getY()一样;
                  8.getPlayerY():获得玩家的Z座标,和Player.getZ()一样;
                  9.Level.spawnMob(x,y,z,实体ID,"贴图"):生成实体;
                  10.preventDefault():取消动作;
                  11.Level.dropltem(x,y,z,距离,物品ID,数量,特殊值):掉落指定的物品;
                  12.Player.setHealth(数值):设置玩家血量;
                  13.Entity.getX(实体名称):获取实体X的座标;
                  14.Entity.getY(实体名称):获取实体Y的座标;
                  15.Entity.getZ(实体名称):获取实体Z的座标;
                  16.Level.setGameMode(0):变为生存模式;
                  17.Level.setGameMode(1):变为创造模式;
                  18.Level.setTime(28800):设置时间为日落;
                  19.Level.setTime(31200):设置时间为晚上;
                  20.Level.setTime(19200):设置时间为日出;
                  21.Block.setLightLevel(id,亮度等级):设置方块的亮度;
                  22.Level.setSpawn(x,y,z):设置出生点;
                  23.getPlayerEnt():获取玩家的实体,和Player.getEntity一样;
                  24.Entity.setFireTicks(实体名称,时间):使实体燃烧多少秒;
                  25.Entity.setAnimalAge(实体名称,年龄):设置动物龄(-24000到0);
                  26.Entity.remove(实体名称):移除实体;
                  27.Entity.setHealth(实体名称,生命):设置动物生命;
                  28.Entity.setPosition(实体名称,x,y,z):设置实体的位置;
                  29.Entity.setMobSkin(指定实体,"贴图"):设置生物贴图;
                  30.Entity.setRenderType(实体名称,实体模型):设置实体外形;
                  31.Entity.setCarriedItem(实体名称,物品ID,数量,特殊值):设置实体手持物品;
                  32.Entity.setNameTag(,实体名称,ChatColor.颜色+"名字"):设置实体的名称;
                  33.getTile(x,y,z):获取方块ID;
                  34.Block.setExplosionResistance(方块ID,抗性):设置方块的爆炸抗性;
                  35.Entity.getHealth(实体名称):获取实体的血量;
                  36.setPositionRelative(实体名称,x,y,z):设置指定实体对于玩家的相对位置;
                  37.ModPE.readData("变量名"):读取储存的数据;
                  38.ModPE.removeData("变量名"):移除储存的数据;
                  39.ModPE.saveData(".变量名","变量的数据"):保存数据;
                  40.ModPE.selectLevel(世界名):跳转世界;
                  41.ModPE.setFoodItem(物品ID,"在材质item.meta中的名称",材质的排列值,补的血量,物品名字):设置指定物品为食物;
                  42.ModPE.setItem(ID,"在材质item.meta中的名称",材质的排列值,"名字"):添加新物品;
                  43.getCarriedItem():探测玩家手持物品ID;
                  44.Item.addFurnaceRecipe(烧的物品id,烧出来的物品id,烧出来的物品的特殊值):添加熔炉配方;
                  45.Item.addCraftRecipe(合成输出的物品id,合成输出的物品数量,合成输出的物品的特殊值,[ID,数量,特殊值,ID,数量,特殊值...]):添加合成配方;
                  46.Level.destroyBlock(x,y,z,是否掉落物品(填true或false)):破坏指定位置的方块;
                  47.Level.getGameMode():获取当前存档模式;
                  48.Level.getWorldName():获取存档名字;


                  来自Android客户端21楼2016-03-05 13:58
                  回复
                    92.ModPE.setFov(度数):设定视觉;
                    93.Level.getData(x,y,z):获取方块的特殊值;
                    94.Level.getFurnaceSlot(x,y,z,第几格):获取熔炉里物品的ID;
                    95.Level.getFurnaceSlotCount(x,y,z,第几格):获取熔炉里物品的数量;
                    96.Level.setFurnaceSlot(x,y,z,第几格,物品ID,特殊值,数量):设定熔炉的物品;
                    97.Player.setArmorSlot(第几格,ID,特殊值):设定盔甲;
                    98.Server.getAllPlayerNames():获取全部玩家的名字;
                    99.Server.getAllPlayers():获取全部玩家的实体;
                    100.Level.playSound(x,y,z,"发出的声音",声音的大小,音调):在指定坐标发出声音;
                    101.Level.playSoundEnt(实体名称,"发出的声音",声音的大小,音调):指定的实体发出声音;
                    102.Entity.getRider(实体名称):获取骑着实体的实体;
                    103.Entity.getRiding(实体名称):获取实体骑着的实体;
                    104.Player.getPointedEntity():获取玩家指着的实体;
                    105.Level.addParticle(ParticleType.粒子类型,x,y,z,x速度,y速度,z速度,大小):生成粒子效果;


                    来自Android客户端23楼2016-03-05 13:59
                    收起回复
                      药水ID
                      状态效果id表:
                      名称/常用用法(id)/推荐用法(MobEffect)
                      速度/1/MobEffect.movementSpeed
                      缓慢/2/MobEffect.movementSlowdown
                      急迫/3/MobEffect.digSpeed
                      挖掘疲劳/4/MobEffect.digSlowdown
                      力量/5/MobEffect.damageBoost
                      瞬间治疗/6/MobEffect.heal
                      瞬间伤害/7/MobEffect.harm
                      跳跃提升/8/MobEffect.jump
                      反胃/9/MobEffect.confusion
                      生命恢复/10/MobEffect.regeneration
                      抗性提升/11/MobEffect.damageResistance
                      防火/12/MobEffect.fireResistance
                      水下呼吸/13/MobEffect.waterBreathing
                      隐身/14/MobEffect.invisibility
                      失明/15/MobEffect.blindness
                      夜视/16/MobEffect.nightVision
                      饥饿/17/MobEffect.hunger
                      虚弱/18/MobEffect.weakness
                      中毒/19/MobEffect.poison
                      凋零/20/MobEffect.wither
                      生命提升/21/MobEffect.healthBoost
                      伤害吸收/22/MobEffect.absorption
                      饱和/23/MobEffect.saturation


                      来自Android客户端25楼2016-03-05 14:01
                      回复
                        最后@嘻嘻哈哈走过去 @钱啦→中国 @xyrpk


                        来自Android客户端27楼2016-03-05 14:05
                        收起回复
                          〖精〗


                          来自Android客户端28楼2016-03-05 14:06
                          回复
                            ҉٩(*´︶`*)۶҉我跳起来就是一个么么哒


                            来自Android客户端29楼2016-03-05 14:07
                            回复
                              。。。。。教程结束。。。。。


                              来自Android客户端30楼2016-03-05 14:07
                              回复