[樂游網導讀]我的世界手機版游戲中很多大型的建筑物的建造都需要js才能完成,否則的話,玩家的工作量就太大了,耗費大量的精神和時間,下面給大家分享我的世界手機版JS函數表一覽。
我的世界手機版游戲中很多大型的建筑物的建造都需要js才能完成,否則的話,玩家的工作量就太大了,耗費大量的精神和時間,下面給大家分享我的世界手機版JS函數表一覽。
JS函數全集(完整)
一.鉤子(hook)函數
當執行了特定動作時,這些函數會運行并執行其他函數
1.function useItem(x,y,z,itemId,blockId,side,itemDamage,blockDamage){}
當進行一次點擊時(如使用物品或放置方塊,食用食物不包括在內)會觸發這個函數,并返回數據。
x:被點擊方塊的x坐標
y:被點擊方塊的y坐標
z:被點擊方塊的z坐標
itemId:點擊時手里拿的物品id(空手為0)
blockId:被點擊方塊的id
side:方塊被從哪個方向點擊
itemDamage:點擊時手里拿的物品附加值(傷害值)
blockDamage:被點擊方塊的附加值(傷害值)
2.function attackHook(attacker,victim){}
當點擊或攻擊了一個生物mob(動物,怪物,玩家(待確認))時會觸發這個函數,并返回數據。
attacker:進行了點擊或攻擊動作的mob
victim:被點擊或攻擊的mob
3.function modTick(){}
每刻(1/20s 0.05s)執行一次
4.function procCmd(cmd){}
cmd:在聊天里輸入的以"/"開頭的文字(不包含"/")
5.function newLevel(){}
當世界被載入時(出現"Building terrain"時)會觸發
6.function leaveGame(){}
當離開當前世界(返回主菜單)時會觸發
7.function entityAddedHook(entity){}
當一個新的實體被添加(包括箭,下落的方塊,點燃的TNT等)時會觸發
entity:被添加的自然實體
8.function entityRemovedHook(entity){}
當一個實體(包括箭,下落的方塊,點燃的TNT等)消失或死亡時會觸發
entity:被移除的實體
9.function deathHook(murderer, victim){}
當一個生物mod死亡時會觸發
murderer:造成死亡的實體
victim:死亡的實體
10.function levelEventHook(entity,eventType,x,y,z,data){}
當門(木門,柵欄門,陷阱門)被打開或關閉時會觸發
當羊吃掉草時觸發
睡覺時觸發
entity:動作的實體(觀測數據。總是為0)
eventType:事件類型(觀測數據。開關門數據為1003,羊吃草的數據為2001,睡覺的數據為9800)
x,y,z:被點擊的門方塊的坐標,被吃掉的草方塊的坐標,睡覺時為(0,0,0)
data:未知(觀測數據。開關門,睡覺的數據為0,羊吃草的數據為2)
11.function blockEventHook(x,y,z,eventType,data){}
每三秒檢查所有箱子的開關狀態
x,y,z:箱子的坐標
eventType:事件類型(觀測數據為1)
data:未知(觀測數據。關閉為0,打開為1,打開過程中為2(待確認)。檢查大箱子時第二個被放置的箱子數值改變,另一個一直為0)
12.function destroyBlock(x,y,z,side){}
當一個方塊被破壞時會觸發
x,y,z:方塊的坐標
side:方塊被從哪個方向破壞
二.文字顯示函數
也就是在游戲中現實文字的函數,也比較常用。
1.print(text);
將數據顯示在浮動窗口里
text可以是非實體變量或被"括起來的字符串
如print("text");
2.clientMessage(text);
將數據顯示在聊天框里
text可以是非實體變量或被"括起來的字符串
如clientMessage("text");
顏色 clientMessage(ChatColor.顏色+text);
例子:clientMessage(ChatColor.YELLOW + "It's the " + ChatColor.RED + "Red " + ChatColor.GREEN + "Green " + ChatColor.YELLOW + "show!");
顏色表:BLACK,DARK_BLUE,DARK_GREEN,DARK_AQUA,DARK_RED,DARK_PURPLE,GOLD,GRAY,DARK_GRAY,BLUE,GREEN,AQUA,RED,LIGHT_PURPLE,YELLOW,WHITE
三.獲取坐標函數
即在游戲中獲取一個坐標,并使用。
1.getPlayerX();getPlayerY();getPlayerZ();
獲取玩家的x,y,z坐標
2.getPlayerEnt();
獲取玩家的實體
3.getYaw(ent);
獲取實體ent的頭部所朝向(左右)的角度值
ent為空時默認為玩家
面向z軸正方向是時為0±360n,面向x軸負方向時為90±360n
4.getPitch(ent);
獲取實體ent的頭部所朝向(上下)的角度值
ent為空時默認為玩家
面向y軸正方向時為-90,面向y軸負方向時為90
5.getCarriedItem();
獲取玩家手里正在拿著的物品或方塊的id
6.getTile(x,y,z);
獲取坐標為(x,y,z)的方塊的id
四.實體設置函數
對某個實體設置某種事件,并將其觸發。
1.setPosition(ent,x,y,z);
將一個實體ent的坐標設置為(x,y,z)
ent:目標實體
x,y,z:目標坐標
2.setPositionRelative(ent,x,y,z);
設置指定實體對于玩家的相對位置
ent:目標實體
x,y,z:相對坐標
3.setRot(ent,yaw,pitch);
將一個實體的頭部方向設為(yaw,pitch)
ent:目標實體
yaw:水平角度
pitch:垂直角度
4.setVelX(ent,velocity);setVelY(ent,velocity);setVelZ(ent,velocity);
將一個實體ent的x/y/z軸速度設為velocity
ent:目標實體
velocity:速度
5.setTile(x,y,z,blockID,damageValue);
將特定的方塊放置
x,y,z:放置的坐標
blockId:放置方塊的id
damageValue:放置方塊的附加值(傷害值)
6.setPlayerHealth(halfHearts);
設置玩家的血量
helfHearts:半心量,20時為滿血,但可以更高(<=255)
7.setNightMode(boolean);
夜晚模式。此函數尚未被證實能正常使用,但存在于源碼中
boolean:布朗值,只能為true或false
五.實體生成(spawn)函數
如題,我不多說。
1.spawnCow(x,y,z,"image");spawnChicken(x,y,z,"image");
在特定位置生成一只牛/雞,并將貼圖換成image
x,y,z:生成mod的坐標
image:在assets文件夾下的圖片路徑
2.spawnPigZombie(x,y,z,heldItemID,"image");
在特定位置生成一只僵尸豬人,并將貼圖換成image
x,y,z:生成mod的坐標
heldItemID:豬人手里拿的物品id
image:在assets文件夾下的圖片路徑
六.雜項函數
一些五花八門的雜項函數。
1.explode(x,y,z,radius);
在坐標為(x,y,z)處引發一場半徑為radius的爆炸
2.rideAnimal(player,target);
讓player騎在target身上
player,target為實體
3.addItemInventory(ID,amount,damageValue);
在背包里添加amount個id為ID,附加值(傷害值)為damageValue的物品
amount可以為負
4.preventDefault();
阻止原有動作
七.啟動器(BlockLauncher-only)函數
這些函數只能在BlockLauncher啟動器里使用
1.bl_spawnMob(x,y,z,mobID,"image");(停用,請使用Level.spawnMob)
在特定位置生成一個實體,并替換貼圖
x,y,z:指定位置
mobID:實體類別id
image:在assets文件夾下的圖片路徑
2.bl_setMobSkin(mob,"image");
將指定實體的貼圖更換
mob:指定的實體(不是實體類別)
image:在assets文件夾下的圖片路徑
八.Level函數
Level.explode(x,y,z,radius);
在坐標為(x,y,z)處引發一場半徑為radius的爆炸
與explode(x,y,z,radius)相同
Level.getTile(x,y,z);
獲取坐標為(x,y,z)的方塊的id
和getTile(x,y,z);相同
Level.setTile(x,y,z,blockID);
放置方塊
和setTile(x,y,z,blockID);相同
Level.getData(x,y,z);
獲取坐標為(x,y,z)的方塊的傷害值(附加值)
Level.getWorldDir();
返回當前世界所在的文件夾的名字
Level.getWorldName();
返回當前世界的名字
Level.spawnChicken(x,y,z,"image");Level.spawnCow(x,y,z,"image");
在特定位置生成一只牛/雞,并將貼圖換成image
x,y,z:生成mod的坐標
image:在assets文件夾下的圖片路徑
和spawnCow(x,y,z,"image");spawnChicken(x,y,z,"image");相同
Level.destroyBlock(x,y,z,shouldDropItem);
破壞一個方塊,擁有正常破壞時的所有特效
x,y,z:方塊坐標
shouldDropItem:是否掉落被破壞的方塊本身。布爾值,只能為true/false
Level.dropItem(x,y,z,range,id,count,damage);
從指定坐標掉落方塊
x,y,z:指定坐標
range;掉落的距離
id:掉落物id
count:掉落物數量
damage:掉落物傷害值
Level.getAddress();
用途不明。。
返回值是實體。。
Level.getChestSlot(x,y,z,slot);
讀取指定箱子指定位置的物品id
x,y,z:箱子坐標
slot:物品位置
Level.getChestSlotCount(x,y,z,slot);
讀取指定箱子指定位置的物品數量
x,y,z:箱子坐標
slot:物品位置
Level.getChestSlotData(x,y,z,slot);
讀取指定箱子指定位置的物品傷害值(附加值)
x,y,z:箱子坐標
slot:物品位置
Level.setChestSlot(x,y,z,slot,id,damage,amount);
向箱子指定位置放置物品
x,y,z:箱子坐標
slot:物品位置
id,damage,amount:物品id,傷害值,數量
Level.getGameMode();
獲取游戲模式。生存為0,創造為1。
Level.setGameMode(mode);
設置游戲模式。生存為0,創造為1。
Level.getTime();
獲取當前時間。0為正午,7200為日落,8280為晚上,13320為日出。
Level.setTime(time);
設置時間。0為正午,7200為日落,8280為晚上,13320為日出。
Level.getSignText(x,y,z,line);
獲取指定牌子的內容,為空時返回null
x,y,z:牌子的坐標
line:獲取的行數,第一行為0
Level.setSignText(x,y,z,line,"text");
設置指定牌子的內容
x,y,z:牌子的坐標
line:設置的行數,第一行為0
text:內容。必須是字符串
Level.playSound(x,y,z,sound,volume,pitch);
播放聲音
x,y,z:指定坐標
sound:MCPE中的聲音
volume:音量
pitch:角度,用途不明
Level.playSoundEnt(ent,sound,volume,pitch);
ent:自然實體
sound:MCPE中的聲音
volume:音量
pitch:角度,用途不明
Level.setNightMode(boolean);
夜晚模式。此函數尚未被證實能正常使用,但存在于源碼中
boolean:布朗值,只能為true或false
與setNightMode(boolean)相同
Level.setSpawn(x,y,z);
設置復活點
Level.setTile(x,y,z,blockID);
將特定的方塊放置
x,y,z:放置的坐標
blockId:放置方塊的id
和setTile(x,y,z,blockID)相同
九.Player函數
Player.addItemInventory(ID,amount,damage);
在背包里添加amount個id為ID,附加值(傷害值)為damageValue的物品
amount可以為負
和addItemInventory(ID,amount,damage)相同
Player.clearInventorySlot(slot);
清除背包里指定位置的物品
slot:物品在背包的位置
Player.getInventorySlot(slot);
獲取背包里指定位置的物品id
slot:物品在背包的位置
Player.getInventorySlotCount(slot);
獲取背包里指定位置的物品數量
slot:物品在背包的位置
Player.getInventorySlotData(slot);
獲取背包里指定位置的物品傷害值(附加值)
slot:物品在背包的位置
Player.getSelectedSlotId();
獲取被選中的物品欄的id(slot)
Player.getArmorSlot(slot);
獲取身上的指定裝備id
slot:裝備位置
Player.getArmorSlotDamage(slot);
獲取身上指定裝備的傷害值(耐久)
slot:裝備位置
Player.setArmorSlot(slot,id,damage);
設置身上的裝備
slot:裝備的位置
id:裝備id
damage:裝備傷害值(附加值)
Player.getCarriedItem();
獲取玩家手里正在拿著的物品或方塊的id
和getCarriedItem()相同
Player.getCarriedItemCount();
獲取玩家手里正在拿著的物品或方塊的數量
Player.getCarriedItemData();
獲取玩家手里正在拿著的物品或方塊的傷害值(附加值)
Player.getEntity();
獲取玩家的實體
和getPlayerEnt()相同
Player.getX();Player.getY();Player.getZ();
獲取玩家的x,y,z坐標
和getPlayerX();getPlayerY();getPlayerZ();相同
Player.setHealth(health);
設置玩家生命
health:半心量,20時為滿血,但可以更高(<=255)
和setPlayerHealth(halfHearts)相同
十.Entity函數
Entity.setFireTicks(ent,time);
使實體燃燒
ent:自然實體
time:燃燒時間,單位為秒
Entity.getAnimalAge(ent);
獲取動物年齡
ent:動物實體
取值為-24000到0,玩家一直為0
Entity.setAnimalAge(ent,age);
設置動物年齡
ent:動物實體
age:動物年齡(-24000(幼年)到0(成年))
對敵對生物和玩家無效
Entity.getEntityTypeId(ent);
返回實體種類id
Entity.getYaw(ent);
獲取實體ent的頭部所朝向(左右)的角度值
ent為空時默認為玩家
面向z軸正方向是時為0±360n,面向x軸負方向時為90±360n
和getYaw(ent)相同
Entity.getPitch(ent);
獲取實體ent的頭部所朝向(上下)的角度值
ent為空時默認為玩家
面向y軸正方向時為-90,面向y軸負方向時為90
和getPitch(ent)相同
Entity.setRot(ent,yaw,pitch);
將一個實體的頭部方向設為(yaw,pitch)
ent:目標實體
yaw:水平角度
pitch:垂直角度
與setRot(ent,yaw,pitch);相同
Entity.remove(ent);
移除實體。如果玩家實體被移除,玩家將不可見且不可移動
ent:自然實體
Entity.rideAnimal(player,target);
讓player騎在target身上
player,target為實體
和rideAnimal(player,target)相同
Entity.getHealth(ent);
獲取實體生命
ent:生物實體
Entity.setHealth(ent,health);
設置實體生命
ent:生物實體
health:半心量,20時為滿血,但可以更高(<=255)
Entity.setCarriedItem(ent,ID,int,DamageValue);
ent:實體。只能是玩家,僵尸豬人,小白(skeletons)
ID:物品id
int:未知值。數字
DamageValue:物品傷害值(附加值)
Entity.setSneaking(ent,boolean);
Entity.getX(ent);Entity.getY(ent);Entity.getZ(ent);
獲取實體坐標
ent:自然實體
Entity.setPosition(ent,x,y,z);
將一個實體ent的坐標設置為(x,y,z)
ent:目標實體
x,y,z:目標坐標
和setPosition(ent,x,y,z);相同
Entity.setPositionRelative(ent,x,y,z);
設置指定實體對于玩家的相對位置
ent:目標實體
x,y,z:相對坐標
和setPositionRelative(ent,x,y,z);相同
Entity.setVelX(ent,vel);Entity.setVelY(ent,vel);Entity.setVelZ(ent,vel);
將一個實體ent的x/y/z軸速度設為vel
ent:目標實體
vel:速度
與setVelX(ent,vel);setVelY(ent,vel);setVelZ(ent,vel);相同
Entity.spawnMob(x,y,z,mobID,"image");(停用,請使用Level.spawnMob)
在特定位置生成一個實體,并替換貼圖
x,y,z:指定位置
mobID:實體類別id
image:在assets文件夾下的圖片路徑
與bl_spawnMob(x,y,z,mobID,"image");相同
Entity.setMobSkin(mob,"image");
將指定實體的貼圖更換
mob:指定的實體(不是實體類別)
image:在assets文件夾下的圖片路徑
與bl_setMobSkin(mob,"image");相同
Entity.setRenderType(ent,type);
用不同的模型來偽裝實體
ent:自然實體
type:模型種類(0.no idea 1.no override 2.點燃的TNT 3.玩家 4.掉落的物品 5.??? 6.雞 7.牛 8.豬 9.羊 10.??? 11.僵尸 12.小白(骷髏) 13.蜘蛛 14.苦力怕(jj怪)(替換困難,有概率失敗) 15.射出的箭 16.玩家(因為沒有名字標簽,游戲會崩潰) 17.扔出的雞蛋 18.扔出的雪球 19.掛畫(游戲崩潰) 20.正在掉下落的方塊)
實體id:
10:雞
11:牛
12:豬
13:羊
32:僵尸
33:苦力怕(jj怪)
34:骷髏(小白)
35:蜘蛛
36:僵尸豬人
64:掉落的物品
65:點燃的TNT
66:下落的方塊
十一.1.5.5啟動器及以上可用材質函數。
Block.defineBlock(blockId,name,[textures/*六面材質*/],0/*材料源id*/,true/*透明*/, int renderType/*未知*/)
Block.setShape(blockId,x1,y1,z1,x2,y2,z2)//形狀
Block.setDestroyTime(id,time);
Block.setExplosionResistance(id,res)//爆炸阻力,未實現
Block.setLightLevel(id,level);
Block.setColor(id,[color/*數組*/]);
Block.setStepSound(blockId,sourceId);//未實現
Block.defineBlock(blockId,name,[1,2,3,4,5,6/*六面材質,右上角為0*/],0/*材料源id*/,true/*透明*/, renderType)
renderType
0 標準
1 花
2 火把
3 火
4 流體
6 作物
7 門
8 臺階
10 樓梯
11 柵欄
13 仙人掌
14 床
18 玻璃板
19 植物的莖
21 柵欄門
熱門評論
最新評論