代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1
2一七0.反物质制造机(绿魔杖左键点敌人,生成敌人反物质分身自相残杀)
3
4 用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/staff.lua文件,在local inst = commonfn("green")的下一行插入以下内容:
5
6local function onattack_green(inst, owner, target)
7 if target.prefab == "bee" or target.prefab == "killerbee" or target.prefab == "flies" or target.prefab == "mosquito" or target.prefab == "frog" or target.prefab == "beefalo" or target.prefab == "lightninggoat" or target.prefab == "pigman" or target.prefab == "pigguard" or target.prefab == "bunnyman" or target.prefab == "merm" or target.prefab == "spider_hider" or target.prefab == "spider_spitter" or target.prefab == "spider" or target.prefab == "spider_warrior" or target.prefab == "spiderqueen" or target.prefab == "spider_dropper" or target.prefab == "hound" or target.prefab == "firehound" or target.prefab == "icehound" or target.prefab == "leif" or target.prefab == "leif_sparse" or target.prefab == "walrus" or target.prefab == "little_walrus" or target.prefab == "smallbird" or target.prefab == "teenbird" or target.prefab == "tallbird" or target.prefab == "koalefant_summer" or target.prefab == "koalefant_winter" or target.prefab == "penguin" or target.prefab == "slurtle" or target.prefab == "snurtle" or target.prefab == "bat" or target.prefab == "rocky" or target.prefab == "monkey" or target.prefab == "buzzard" or target.prefab == "catcoon" or target.prefab == "knight" or target.prefab == "bishop" or target.prefab == "rook" or target.prefab == "crawlinghorror" or target.prefab == "terrorbeak" or target.prefab == "deerclops" or target.prefab == "minotaur" or target.prefab == "worm" or target.prefab == "abigail" or target.prefab == "ghost" or target.prefab == "krampus" or target.prefab == "moose" or target.prefab == "dragonfly" or target.prefab == "warg" or target.prefab == "bearger" then
8 local copy = SpawnPrefab(target.prefab)
9 copy.Transform:SetPosition(target.Transform:GetWorldPosition())
10 copy.AnimState:SetMultColour(0/255,0/255,0/255,0.5)
11 if copy:HasTag("monster") then copy:RemoveTag("monster") end
12 copy.task = copy:DoPeriodicTask(1, function() copy.components.combat.target = target end)
13 target:ListenForEvent("death", function()
14 if not copy.components.health:IsDead() then
15 copy:Remove()
16 end
17 end )
18 copy:DoTaskInTime(60, function()
19 if not copy.components.health:IsDead() then
20 copy:Remove()
21 end
22 end )
23 else
24 local copy = SpawnPrefab("leif")
25 copy.Transform:SetPosition(target.Transform:GetWorldPosition())
26 copy.AnimState:SetMultColour(0/255,0/255,0/255,0.5)
27 copy.Transform:SetScale(0.5, 0.5, 0.5)
28 copy:RemoveTag("monster")
29 copy.components.combat:SetAttackPeriod(1)
30 copy.task = copy:DoPeriodicTask(1, function() copy.components.combat.target = target end)
31 target:ListenForEvent("death", function()
32 if not copy.components.health:IsDead() then
33 copy:Remove()
34 end
35 end )
36 copy:DoTaskInTime(60, function()
37 if not copy.components.health:IsDead() then
38 copy:Remove()
39 end
40 end )
41 end
42end
43 inst:AddComponent("weapon")
44 inst.components.weapon:SetDamage(0)
45 inst.components.weapon:SetRange(30, 35)
46 inst.components.weapon:SetOnAttack(onattack_green)
47 inst.components.weapon:SetProjectile("bishop_charge")
48
49 即可装备绿魔杖时,按鼠标左键点敌人,生成敌人的反物质分身,与敌人自相残杀。敌人有多强大,其反物质分身就有多强大,主角只须观战即可。反物质分身最多存在60秒,当敌人死去时,反物质分身也将消失。中立的小动物、修改技巧创生的生物,将生成反物质树精