Selaa lähdekoodia

Merge branch 'master' of https://github.com/LTCatt/LTW3

LTCatt 5 vuotta sitten
vanhempi
sitoutus
bc2e93e747

+ 6 - 0
data/mini/functions/trade/game/villager_tp.mcfunction

@@ -0,0 +1,6 @@
+tag @s add tempPlayerTp
+execute as @e[type=villager,tag=TradePlayer] if score @s player_id = @a[tag=tempPlayerTp,limit=1] player_id run tag @s add tempVillagerTp
+execute as @e[type=villager,tag=TradePlayer] if score @s player_id = @a[tag=tempPlayerTp,limit=1] player_id run tag @s add tpPlayer
+execute at @s anchored feet run tp @e[type=villager,tag=tempVillagerTp] ^ ^ ^0.5
+tag @e[type=villager,tag=tempVillagerTp] remove tempVillagerTp
+tag @s remove tempPlayerTp

+ 17 - 2
data/mini/functions/trade/game_init.mcfunction

@@ -19,8 +19,9 @@ kill @e[type=!player,x=950,y=-200,z=4950,dx=100,dy=600,dz=100]
 
 
 # 伤害管理
 # 伤害管理
 scoreboard players set $remove_resistance mem 1
 scoreboard players set $remove_resistance mem 1
-team modify playing friendlyFire true
-team modify playing collisionRule always
+team modify playing friendlyFire false
+team modify playing seeFriendlyInvisibles false
+team modify playing collisionRule never
 team modify playing deathMessageVisibility always
 team modify playing deathMessageVisibility always
 gamerule fallDamage false
 gamerule fallDamage false
 gamerule fireDamage true
 gamerule fireDamage true
@@ -32,3 +33,17 @@ gamerule keepInventory true
 gamerule doTileDrops true
 gamerule doTileDrops true
 gamerule doEntityDrops true
 gamerule doEntityDrops true
 gamerule doMobLoot true
 gamerule doMobLoot true
+
+# 生成实体
+summon villager 1000 5 5000 {Tags:["TradeMarker","TradeOrigin"],Invulnerable:1b,Silent:1b,Offers:{Recipes:[{buy:{id:"emerald",Count:4},maxUses:999999,rewardExp:false,xp:20,sell:{id:"spider_spawn_egg",Count:1b}}]},VillagerData:{level:5,type:"jungle",profession:"nitwit"},Xp:10}
+# 设置交易列表
+execute as @a[team=playing] run function mini:trade/villager_init
+# 复制交易列表
+execute as @e[type=villager,tag=TradePlayer] run data modify entity @s Offers.Recipes append from entity @e[type=villager,tag=TradeOrigin,limit=1] Offers.Recipes[0]
+execute as @e[type=villager,tag=TradePlayer] run data modify entity @s Offers.Recipes append from entity @e[type=villager,tag=TradeOrigin,limit=1] Offers.Recipes[0]
+execute as @e[type=villager,tag=TradePlayer] run data modify entity @s Offers.Recipes append from entity @e[type=villager,tag=TradeOrigin,limit=1] Offers.Recipes[0]
+execute as @e[type=villager,tag=TradePlayer] run data modify entity @s Offers.Recipes append from entity @e[type=villager,tag=TradeOrigin,limit=1] Offers.Recipes[0]
+# 村民碰撞箱处理
+team join playing @e[type=villager,tag=TradePlayer]
+# 村民隐身
+effect give @e[type=villager,tag=TradePlayer] invisibility 999999 0 true

+ 5 - 3
data/mini/functions/trade/tick2.mcfunction

@@ -1,3 +1,5 @@
-execute as @a[team=playing] store result score @s posX run data get entity @s Pos[0]
-execute as @a[team=playing] store result score @s posY run data get entity @s Pos[1]
-execute as @a[team=playing] store result score @s posZ run data get entity @s Pos[2]
+tag @e[type=villager,tag=TradePlayer] remove tpPlayer
+# 处理村民糊脸
+execute as @a[team=playing,gamemode=survival] if entity @s[nbt={SelectedItemSlot:8}] run function mini:trade/game/villager_tp
+# 归位村民
+tp @e[type=villager,tag=TradePlayer,tag=!tpPlayer] 1000 5 5000

+ 5 - 0
data/mini/functions/trade/villager_init.mcfunction

@@ -0,0 +1,5 @@
+# 每个玩家生成村民
+summon villager 1000 5 5000 {Tags:["TradeMarker","TradePlayer","newVillager"],Invulnerable:1b,Silent:1b,Offers:{Recipes:[]},VillagerData:{level:2,type:"jungle",profession:"nitwit"},Xp:10}
+# 设置对应的积分
+scoreboard players operation @e[type=villager,tag=newVillager] player_id = @s player_id
+tag @e[type=villager,tag=newVillager] remove newVillager