代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。
原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html
1
2二九二.野球拳赌场(用火腿短棍种野球拳赌场,与庄家玩剪刀、石头、布赢奖金)
3
4 用MT管理器打开游戏目录/assets/scripts/prefabs/hambat.lua文件,
5
6 1.在Asset("ANIM", "anim/swap_ham_bat.zip"),的下一行插入以下内容:
7
8 Asset("ANIM", "anim/wolfgang.zip"),
9 Asset("ANIM", "anim/wolfgang_skinny.zip"),
10 Asset("ANIM", "anim/wolfgang_mighty.zip"),
11 Asset("ANIM", "anim/player_wolfgang.zip"),
12
13
14 2.将inst.OnLoad = OnLoad替换为以下内容:
15
16local function game(inst)
17 local pt = inst:GetPosition()
18 local makers = SpawnPrefab("hambat")
19 makers.Transform:SetPosition(pt.x, pt.y, pt.z)
20 makers.AnimState:SetBank("wilson")
21 makers.AnimState:SetBuild("wolfgang")
22 makers.AnimState:Hide("ARM_carry")
23 makers.AnimState:Show("ARM_normal")
24 makers.Transform:SetFourFaced()
25 makers.AnimState:PlayAnimation("idle")
26 makers:RemoveComponent("weapon")
27 makers:RemoveComponent("edible")
28 makers:RemoveComponent("perishable")
29 makers:RemoveComponent("inventoryitem")
30 makers:RemoveComponent("equippable")
31 makers:RemoveTag("show_spoilage")
32 makers:AddTag("makers")
33 local light = makers.entity:AddLight()
34 light:SetFalloff(1)
35 light:SetIntensity(.8)
36 light:SetRadius(10)
37 light:SetColour(180/255, 195/255, 50/255)
38 light:Enable(true)
39 local chest1 = SpawnPrefab("hambat")
40 chest1.Transform:SetPosition(pt.x-1+2, pt.y, pt.z-1-2)
41 chest1.AnimState:SetBank("pandoras_chest_large")
42 chest1.AnimState:SetBuild("pandoras_chest_large")
43 chest1.AnimState:PlayAnimation("closed")
44 chest1.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
45 chest1:RemoveComponent("weapon")
46 chest1:RemoveComponent("edible")
47 chest1:RemoveComponent("perishable")
48 chest1:RemoveComponent("inventoryitem")
49 chest1:RemoveComponent("equippable")
50 chest1:RemoveTag("show_spoilage")
51 chest1:AddTag("goodbye")
52 local chest2 = SpawnPrefab("hambat")
53 chest2.Transform:SetPosition(pt.x-1-2, pt.y, pt.z-1+2)
54 chest2.AnimState:SetBank("pandoras_chest_large")
55 chest2.AnimState:SetBuild("pandoras_chest_large")
56 chest2.AnimState:PlayAnimation("closed")
57 chest2.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
58 chest2:RemoveComponent("weapon")
59 chest2:RemoveComponent("edible")
60 chest2:RemoveComponent("perishable")
61 chest2:RemoveComponent("inventoryitem")
62 chest2:RemoveComponent("equippable")
63 chest2:RemoveTag("show_spoilage")
64 chest2:AddTag("goodbye")
65 local carpet = SpawnPrefab("hambat")
66 carpet.Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5)
67 carpet.AnimState:SetBuild("staff_purple_base_ground")
68 carpet.AnimState:SetBank("staff_purple_base_ground")
69 carpet.AnimState:PlayAnimation("idle")
70 carpet.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround )
71 carpet.AnimState:SetLayer( LAYER_BACKGROUND )
72 carpet.AnimState:SetSortOrder( 3 )
73 carpet.Transform:SetRotation( 45 )
74 carpet.AnimState:SetMultColour(255/255,0/255,0/255,1)
75 carpet.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
76 carpet:RemoveComponent("weapon")
77 carpet:RemoveComponent("edible")
78 carpet:RemoveComponent("perishable")
79 carpet:RemoveComponent("inventoryitem")
80 carpet:RemoveComponent("equippable")
81 carpet:RemoveTag("show_spoilage")
82 carpet:AddTag("goodbye")
83 carpet:AddComponent("trader")
84 carpet.components.trader:SetAcceptTest(function(carpet, item)
85 if GetPlayer().components.inventory:Has("goldnugget", 11) then
86 if item.prefab == "goldnugget" then
87 return true
88 end
89 end
90 return false
91 end )
92 carpet.components.trader.onaccept = function(carpet, giver, item)
93 GetPlayer().components.inventory:ConsumeByName("goldnugget", 9)
94 makers.AnimState:PlayAnimation("give")
95 local gold = SpawnPrefab("hambat")
96 gold.Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5)
97 gold.AnimState:SetBank("goldnugget")
98 gold.AnimState:SetBuild("gold_nugget")
99 gold.AnimState:PlayAnimation("idle")
100 gold.AnimState:PlayAnimation("sparkle")
101 gold.AnimState:PushAnimation("idle")
102 gold:RemoveComponent("weapon")
103 gold:RemoveComponent("edible")
104 gold:RemoveComponent("perishable")
105 gold:RemoveComponent("inventoryitem")
106 gold:RemoveComponent("equippable")
107 gold:RemoveTag("show_spoilage")
108 gold:AddTag("goodbye")
109 local rock = SpawnPrefab("hambat")
110 rock.Transform:SetPosition(pt.x+4+1.8, 0, pt.z+4-1.8)
111 rock.AnimState:SetBank("rocks")
112 rock.AnimState:SetBuild("rocks")
113 rock.AnimState:PlayAnimation("f1")
114 rock:RemoveComponent("weapon")
115 rock:RemoveComponent("edible")
116 rock:RemoveComponent("perishable")
117 rock:RemoveComponent("inventoryitem")
118 rock:RemoveComponent("equippable")
119 rock:RemoveTag("show_spoilage")
120 rock:AddTag("goodbye")
121 rock.Transform:SetScale(1.2, 1.2, 1.2)
122 rock.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
123 local shears = SpawnPrefab("hambat")
124 shears.Transform:SetPosition(pt.x+4, 0, pt.z+4)
125 shears.AnimState:SetBank("razor")
126 shears.AnimState:SetBuild("razor")
127 shears.AnimState:PlayAnimation("idle")
128 shears:RemoveComponent("weapon")
129 shears:RemoveComponent("edible")
130 shears:RemoveComponent("perishable")
131 shears:RemoveComponent("inventoryitem")
132 shears:RemoveComponent("equippable")
133 shears:RemoveTag("show_spoilage")
134 shears:AddTag("goodbye")
135 shears.Transform:SetScale(1.2, 1.2, 1.2)
136 shears.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
137 local colth = SpawnPrefab("hambat")
138 colth.Transform:SetPosition(pt.x+3.8-1.9, 0, pt.z+3.8+1.9)
139 colth.AnimState:SetBank("blueprint")
140 colth.AnimState:SetBuild("blueprint")
141 colth.AnimState:PlayAnimation("idle")
142 colth:RemoveComponent("weapon")
143 colth:RemoveComponent("edible")
144 colth:RemoveComponent("perishable")
145 colth:RemoveComponent("inventoryitem")
146 colth:RemoveComponent("equippable")
147 colth:RemoveTag("show_spoilage")
148 colth:AddTag("goodbye")
149 colth.Transform:SetScale(1.2, 1.2, 1.2)
150 colth.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
151 local names = {"rocks","razor","blueprint"}
152 local goldnugget = SpawnPrefab("goldnugget")
153 rock.components.inspectable.getstatus = function(rock)
154 makers.AnimState:PlayAnimation("give")
155 local name = names[math.random(#names)]
156 local fist = SpawnPrefab(name)
157 fist.Transform:SetPosition(pt.x+0.7, 0, pt.z+0.7)
158 fist:AddTag("goodbye")
159 fist.Transform:SetScale(1.2, 1.2, 1.2)
160 fist.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
161 fist.components.inventoryitem.canbepickedup = false
162 shears:Remove() colth:Remove()
163 GetPlayer():DoTaskInTime(3, function() rock:Remove() fist:Remove() gold:Remove() end )
164 if fist.prefab == "rocks" then
165 makers.AnimState:SetBuild("wolfgang")
166 GetPlayer():DoTaskInTime(3, function()
167 for k = 1, 10 do
168 GetPlayer().components.inventory:GiveItem(goldnugget)
169 end
170 end )
171 end
172 if fist.prefab == "razor" then
173 makers.AnimState:SetBuild("wolfgang_skinny")
174 makers.AnimState:PlayAnimation("hit")
175 GetPlayer():DoTaskInTime(3, function()
176 for k = 1, 20 do
177 GetPlayer().components.inventory:GiveItem(goldnugget)
178 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold")
179 end
180 end )
181 end
182 if fist.prefab == "blueprint" then
183 makers.AnimState:SetBuild("wolfgang_mighty")
184 makers.AnimState:PlayAnimation("idle_onemanband1_loop",true)
185 GetPlayer():DoTaskInTime(3, function()
186 makers.AnimState:PlayAnimation("idle")
187 SpawnPrefab("collapse_small").Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5)
188 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
189 end )
190 end
191 end
192 shears.components.inspectable.getstatus = function(shears)
193 makers.AnimState:PlayAnimation("give")
194 local name = names[math.random(#names)]
195 local fist = SpawnPrefab(name)
196 fist.Transform:SetPosition(pt.x+0.7, 0, pt.z+0.7)
197 fist:AddTag("goodbye")
198 fist.Transform:SetScale(1.2, 1.2, 1.2)
199 fist.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
200 fist.components.inventoryitem.canbepickedup = false
201 rock:Remove() colth:Remove()
202 GetPlayer():DoTaskInTime(3, function() shears:Remove() fist:Remove() gold:Remove() end )
203 if fist.prefab == "razor" then
204 makers.AnimState:SetBuild("wolfgang")
205 GetPlayer():DoTaskInTime(3, function()
206 for k = 1, 10 do
207 GetPlayer().components.inventory:GiveItem(goldnugget)
208 end
209 end )
210 end
211 if fist.prefab == "blueprint" then
212 makers.AnimState:SetBuild("wolfgang_skinny")
213 makers.AnimState:PlayAnimation("hit")
214 GetPlayer():DoTaskInTime(3, function()
215 for k = 1, 20 do
216 GetPlayer().components.inventory:GiveItem(goldnugget)
217 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold")
218 end
219 end )
220 end
221 if fist.prefab == "rocks" then
222 makers.AnimState:SetBuild("wolfgang_mighty")
223 makers.AnimState:PlayAnimation("idle_onemanband1_loop",true)
224 GetPlayer():DoTaskInTime(3, function()
225 makers.AnimState:PlayAnimation("idle")
226 SpawnPrefab("collapse_small").Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5)
227 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
228 end )
229 end
230 end
231 colth.components.inspectable.getstatus = function(colth)
232 makers.AnimState:PlayAnimation("give")
233 local name = names[math.random(#names)]
234 local fist = SpawnPrefab(name)
235 fist.Transform:SetPosition(pt.x+0.7, 0, pt.z+0.7)
236 fist:AddTag("goodbye")
237 fist.Transform:SetScale(1.2, 1.2, 1.2)
238 fist.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
239 fist.components.inventoryitem.canbepickedup = false
240 shears:Remove() rock:Remove()
241 GetPlayer():DoTaskInTime(3, function() colth:Remove() fist:Remove() gold:Remove() end )
242 if fist.prefab == "blueprint" then
243 makers.AnimState:SetBuild("wolfgang")
244 GetPlayer():DoTaskInTime(3, function()
245 for k = 1, 10 do
246 GetPlayer().components.inventory:GiveItem(goldnugget)
247 end
248 end )
249 end
250 if fist.prefab == "rocks" then
251 makers.AnimState:SetBuild("wolfgang_skinny")
252 makers.AnimState:PlayAnimation("hit")
253 GetPlayer():DoTaskInTime(3, function()
254 for k = 1, 20 do
255 GetPlayer().components.inventory:GiveItem(goldnugget)
256 GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold")
257 end
258 end )
259 end
260 if fist.prefab == "razor" then
261 makers.AnimState:SetBuild("wolfgang_mighty")
262 makers.AnimState:PlayAnimation("idle_onemanband1_loop",true)
263 GetPlayer():DoTaskInTime(3, function()
264 makers.AnimState:PlayAnimation("idle")
265 SpawnPrefab("collapse_small").Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5)
266 GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
267 end )
268 end
269 end
270 end
271end
272local function OnDeploy (inst, pt)
273 game(inst)
274 inst:Remove()
275end
276 inst:AddComponent("deployable")
277 inst.components.deployable.ondeploy = OnDeploy
278local function onsave(inst, data)
279 if inst:HasTag("makers") then
280 data.makers = true
281 end
282 if inst:HasTag("goodbye") then
283 data.goodbye = true
284 end
285end
286local function onload(inst, data)
287 if data and data.makers then
288 game(inst)
289 inst:Remove()
290 end
291 if data and data.goodbye then
292 inst:Remove()
293 end
294end
295 inst.OnSave = onsave
296 inst.OnLoad = onload
297MakeLargeBurnable(inst)
298MakeLargePropagator(inst)
299
300 即可用火腿短棍种野球拳赌场,给红色三角10个黄金(拿着黄金对红色三角点鼠标左键),会出现石头、剪子、布选项,用鼠标左键点击要出的选项(比如点石头),庄家会同时出拳。野球拳的规则是,石头赢剪子输布、剪子赢布输石头、布赢石头输剪子。如果胜利则获得本金加10个黄金(共20个黄金),打平退还本金,输了就输掉本金。庄家不会与穷光蛋对赌,在付了10个黄金的本金后,身上至少须保有1个黄金。不想要野球拳赌场时,烧掉即可。火腿短棍在战斗选项(画着两把剑)下,用1个猪皮、2个树枝、2个大肉制造