YN292-野球拳赌场(用火腿短棍种野球拳赌场,与庄家玩剪刀、石头、布赢奖金)
代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接: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个大肉制造