代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1
2二九三.网上宠宠店(将鸟、兔子、昆虫、鼹鼠放入网店销售箱在线销售)
3
4 1.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/rabbit.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
5
6 inst:AddComponent("stackable")
7 inst.components.stackable.maxsize = 999
8
9
10 2.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/birds.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
11
12 inst:AddComponent("stackable")
13 inst.components.stackable.maxsize = 999
14
15
16 3.用MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/mole.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
17
18 inst:AddComponent("stackable")
19 inst.components.stackable.maxsize = 999
20
21
22 4.用MT管理器打开游戏目录/assets/scripts/prefabs/bugnet.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
23
24local function netsell(inst)
25 inst.AnimState:SetBloomEffectHandle( "shaders/anim.ksh" )
26 inst:DoTaskInTime(3, function() inst.AnimState:SetBloomEffectHandle( "" ) end )
27 if inst.components.container:Has("goldnugget", 10) then
28 if inst.components.container:Has("bee", 3) then
29 local sellnum = math.random(1,3)
30 inst.components.container:ConsumeByName("bee", sellnum)
31 inst.components.container:ConsumeByName("goldnugget", -sellnum)
32 end
33 if inst.components.container:Has("killerbee", 3) then
34 local sellnum = math.random(1,3)
35 inst.components.container:ConsumeByName("killerbee", sellnum)
36 inst.components.container:ConsumeByName("goldnugget", -sellnum*2)
37 end
38 if inst.components.container:Has("butterfly", 3) then
39 local sellnum = math.random(1,3)
40 inst.components.container:ConsumeByName("butterfly", sellnum)
41 inst.components.container:ConsumeByName("goldnugget", -sellnum)
42 end
43 if inst.components.container:Has("fireflies", 3) then
44 local sellnum = math.random(1,3)
45 inst.components.container:ConsumeByName("fireflies", sellnum)
46 inst.components.container:ConsumeByName("goldnugget", -sellnum*2)
47 end
48 if inst.components.container:Has("crow", 3) then
49 local sellnum = math.random(1,3)
50 inst.components.container:ConsumeByName("crow", sellnum)
51 inst.components.container:ConsumeByName("goldnugget", -sellnum*3)
52 end
53 if inst.components.container:Has("robin", 3) then
54 local sellnum = math.random(1,3)
55 inst.components.container:ConsumeByName("robin", sellnum)
56 inst.components.container:ConsumeByName("goldnugget", -sellnum*3)
57 end
58 if inst.components.container:Has("robin_winter", 3) then
59 local sellnum = math.random(1,3)
60 inst.components.container:ConsumeByName("robin_winter", sellnum)
61 inst.components.container:ConsumeByName("goldnugget", -sellnum*3)
62 end
63 if inst.components.container:Has("rabbit", 3) then
64 local sellnum = math.random(1,3)
65 inst.components.container:ConsumeByName("rabbit", sellnum)
66 inst.components.container:ConsumeByName("goldnugget", -sellnum*2)
67 end
68 if inst.components.container:Has("mole", 3) then
69 local sellnum = math.random(1,3)
70 inst.components.container:ConsumeByName("mole", sellnum)
71 inst.components.container:ConsumeByName("goldnugget", -sellnum*5)
72 end
73 end
74end
75local function OnDeploy (inst, pt)
76 if GetPlayer().components.inventory:Has("goldnugget", 200) then
77 GetPlayer().components.inventory:ConsumeByName("goldnugget", 200)
78 local sellbox = SpawnPrefab("bugnet")
79 sellbox.Transform:SetPosition(pt.x, pt.y, pt.z)
80 sellbox.AnimState:SetBank("bee_box")
81 sellbox.AnimState:SetBuild("bee_box")
82 sellbox.AnimState:PlayAnimation("idle")
83 sellbox.AnimState:SetMultColour(0/255,255/255,0/255,1)
84 sellbox.Transform:SetScale(1.2, 1.2, 1.2)
85 sellbox:AddTag("sellbox")
86 sellbox.components.container.canbeopened = true
87 sellbox:RemoveComponent("weapon")
88 sellbox:RemoveComponent("tool")
89 sellbox:RemoveComponent("finiteuses")
90 sellbox:RemoveComponent("inventoryitem")
91 sellbox:RemoveComponent("equippable")
92 sellbox:AddTag("fridge")
93 MakeLargeBurnable(sellbox)
94 inst:Remove()
95 end
96end
97 inst:AddComponent("deployable")
98 inst.components.deployable.ondeploy = OnDeploy
99local function onsave(inst, data)
100 if inst:HasTag("sellbox") then
101 data.sellbox = true
102 end
103end
104local function onload(inst, data)
105 if data and data.sellbox then
106 inst.AnimState:SetBank("bee_box")
107 inst.AnimState:SetBuild("bee_box")
108 inst.AnimState:PlayAnimation("idle")
109 inst.AnimState:SetMultColour(0/255,255/255,0/255,1)
110 inst.Transform:SetScale(1.2, 1.2, 1.2)
111 inst:AddTag("sellbox")
112 inst.components.container.canbeopened = true
113 inst:RemoveComponent("weapon")
114 inst:RemoveComponent("tool")
115 inst:RemoveComponent("finiteuses")
116 inst:RemoveComponent("inventoryitem")
117 inst:RemoveComponent("equippable")
118 inst:AddTag("fridge")
119 MakeLargeBurnable(inst)
120 end
121end
122local function itemtest(inst, item, slot)
123 if item.prefab == "goldnugget" or item.prefab == "bee" or item.prefab == "killerbee" or item.prefab == "butterfly" or item.prefab == "fireflies" or item.prefab == "crow" or item.prefab == "robin" or item.prefab == "robin_winter" or item.prefab == "rabbit" or item.prefab == "mole" then
124 return true
125 end
126 return false
127end
128local slotpos = {Vector3(75,150,0)}
129for y = 2, 0, -1 do
130 for x = 0, 4 do
131 table.insert(slotpos, Vector3(75*x-75*2+75, 75*y-75*2+75,0))
132 end
133end
134 inst.OnSave = onsave
135 inst.OnLoad = onload
136 inst:AddComponent("container")
137 inst.components.container:SetNumSlots(#slotpos)
138 inst.components.container.widgetslotpos = slotpos
139 inst.components.container.widgetpos = Vector3(-100,200,0)
140 inst.components.container.side_align_tip = 160
141 inst.components.container.canbeopened = false
142 inst.components.container.itemtestfn = itemtest
143 inst:DoPeriodicTask(30, function() if inst:HasTag("sellbox") then netsell(inst) end end )
144
145 即可用捕虫网种网店销售箱,将花费200个黄金,身上黄金数不足时,不给网店销售箱。左键点网店销售箱会打开格子,在箱子最顶上的格子里放入10个黄金的保证金,并放入小宠物后(几个品种都可以,但一个品种至少3只),即可在线销售。网店销售箱亮灯时,是在联网结算,打开箱子可看到商品库存的减少、黄金数量的上升,可以取出黄金用于消费,但最顶上的格子里必须保留至少10个黄金的保证金。鼹鼠定价5个黄金,鸟定价3个黄金,杀人蜂、萤火虫、兔子定价2个黄金,蜜蜂、蝴蝶定价1个黄金,当某种商品库存不足3只时,该品种将无人购买,请及时检查并补货。千万不要将黄金放在下面的商品格中,而将最顶上的保证金格子空着,这代表所有商品定价0个黄金,小心被哄抢哦。从此经营自己的网上宠宠店,捕捉小宠物在线销售吧。不需要网店销售箱时,烧掉即可,记得取出黄金和商品哦