YN292-野球拳赌场(用火腿短棍种野球拳赌场,与庄家玩剪刀、石头、布赢奖金)
代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。 原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html 二九二.野球拳赌场(用火腿短棍种野球拳赌场,与庄家玩剪刀、石头、布赢奖金) 用MT管理器打开游戏目录/assets/scripts/prefabs/hambat.lua文件, 1.在Asset("ANIM", "anim/swap_ham_bat.zip"),的下一行插入以下内容: Asset("ANIM", "anim/wolfgang.zip"), Asset("ANIM", "anim/wolfgang_skinny.zip"), Asset("ANIM", "anim/wolfgang_mighty.zip"), Asset("ANIM", "anim/player_wolfgang.zip"), 2.将inst.OnLoad = OnLoad替换为以下内容: local function game(inst) local pt = inst:GetPosition() local makers = SpawnPrefab("hambat") makers.Transform:SetPosition(pt.x, pt.y, pt.z) makers.AnimState:SetBank("wilson") makers.AnimState:SetBuild("wolfgang") makers.AnimState:Hide("ARM_carry") makers.AnimState:Show("ARM_normal") makers.Transform:SetFourFaced() makers.AnimState:PlayAnimation("idle") makers:RemoveComponent("weapon") makers:RemoveComponent("edible") makers:RemoveComponent("perishable") makers:RemoveComponent("inventoryitem") makers:RemoveComponent("equippable") makers:RemoveTag("show_spoilage") makers:AddTag("makers") local light = makers.entity:AddLight() light:SetFalloff(1) light:SetIntensity(.8) light:SetRadius(10) light:SetColour(180/255, 195/255, 50/255) light:Enable(true) local chest1 = SpawnPrefab("hambat") chest1.Transform:SetPosition(pt.x-1+2, pt.y, pt.z-1-2) chest1.AnimState:SetBank("pandoras_chest_large") chest1.AnimState:SetBuild("pandoras_chest_large") chest1.AnimState:PlayAnimation("closed") chest1.AnimState:SetBloomEffectHandle("shaders/anim.ksh") chest1:RemoveComponent("weapon") chest1:RemoveComponent("edible") chest1:RemoveComponent("perishable") chest1:RemoveComponent("inventoryitem") chest1:RemoveComponent("equippable") chest1:RemoveTag("show_spoilage") chest1:AddTag("goodbye") local chest2 = SpawnPrefab("hambat") chest2.Transform:SetPosition(pt.x-1-2, pt.y, pt.z-1+2) chest2.AnimState:SetBank("pandoras_chest_large") chest2.AnimState:SetBuild("pandoras_chest_large") chest2.AnimState:PlayAnimation("closed") chest2.AnimState:SetBloomEffectHandle("shaders/anim.ksh") chest2:RemoveComponent("weapon") chest2:RemoveComponent("edible") chest2:RemoveComponent("perishable") chest2:RemoveComponent("inventoryitem") chest2:RemoveComponent("equippable") chest2:RemoveTag("show_spoilage") chest2:AddTag("goodbye") local carpet = SpawnPrefab("hambat") carpet.Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5) carpet.AnimState:SetBuild("staff_purple_base_ground") carpet.AnimState:SetBank("staff_purple_base_ground") carpet.AnimState:PlayAnimation("idle") carpet.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround ) carpet.AnimState:SetLayer( LAYER_BACKGROUND ) carpet.AnimState:SetSortOrder( 3 ) carpet.Transform:SetRotation( 45 ) carpet.AnimState:SetMultColour(255/255,0/255,0/255,1) carpet.AnimState:SetBloomEffectHandle("shaders/anim.ksh") carpet:RemoveComponent("weapon") carpet:RemoveComponent("edible") carpet:RemoveComponent("perishable") carpet:RemoveComponent("inventoryitem") carpet:RemoveComponent("equippable") carpet:RemoveTag("show_spoilage") carpet:AddTag("goodbye") carpet:AddComponent("trader") carpet.components.trader:SetAcceptTest(function(carpet, item) if GetPlayer().components.inventory:Has("goldnugget", 11) then if item.prefab == "goldnugget" then return true end end return false end ) carpet.components.trader.onaccept = function(carpet, giver, item) GetPlayer().components.inventory:ConsumeByName("goldnugget", 9) makers.AnimState:PlayAnimation("give") local gold = SpawnPrefab("hambat") gold.Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5) gold.AnimState:SetBank("goldnugget") gold.AnimState:SetBuild("gold_nugget") gold.AnimState:PlayAnimation("idle") gold.AnimState:PlayAnimation("sparkle") gold.AnimState:PushAnimation("idle") gold:RemoveComponent("weapon") gold:RemoveComponent("edible") gold:RemoveComponent("perishable") gold:RemoveComponent("inventoryitem") gold:RemoveComponent("equippable") gold:RemoveTag("show_spoilage") gold:AddTag("goodbye") local rock = SpawnPrefab("hambat") rock.Transform:SetPosition(pt.x+4+1.8, 0, pt.z+4-1.8) rock.AnimState:SetBank("rocks") rock.AnimState:SetBuild("rocks") rock.AnimState:PlayAnimation("f1") rock:RemoveComponent("weapon") rock:RemoveComponent("edible") rock:RemoveComponent("perishable") rock:RemoveComponent("inventoryitem") rock:RemoveComponent("equippable") rock:RemoveTag("show_spoilage") rock:AddTag("goodbye") rock.Transform:SetScale(1.2, 1.2, 1.2) rock.AnimState:SetBloomEffectHandle("shaders/anim.ksh") local shears = SpawnPrefab("hambat") shears.Transform:SetPosition(pt.x+4, 0, pt.z+4) shears.AnimState:SetBank("razor") shears.AnimState:SetBuild("razor") shears.AnimState:PlayAnimation("idle") shears:RemoveComponent("weapon") shears:RemoveComponent("edible") shears:RemoveComponent("perishable") shears:RemoveComponent("inventoryitem") shears:RemoveComponent("equippable") shears:RemoveTag("show_spoilage") shears:AddTag("goodbye") shears.Transform:SetScale(1.2, 1.2, 1.2) shears.AnimState:SetBloomEffectHandle("shaders/anim.ksh") local colth = SpawnPrefab("hambat") colth.Transform:SetPosition(pt.x+3.8-1.9, 0, pt.z+3.8+1.9) colth.AnimState:SetBank("blueprint") colth.AnimState:SetBuild("blueprint") colth.AnimState:PlayAnimation("idle") colth:RemoveComponent("weapon") colth:RemoveComponent("edible") colth:RemoveComponent("perishable") colth:RemoveComponent("inventoryitem") colth:RemoveComponent("equippable") colth:RemoveTag("show_spoilage") colth:AddTag("goodbye") colth.Transform:SetScale(1.2, 1.2, 1.2) colth.AnimState:SetBloomEffectHandle("shaders/anim.ksh") local names = {"rocks","razor","blueprint"} local goldnugget = SpawnPrefab("goldnugget") rock.components.inspectable.getstatus = function(rock) makers.AnimState:PlayAnimation("give") local name = names[math.random(#names)] local fist = SpawnPrefab(name) fist.Transform:SetPosition(pt.x+0.7, 0, pt.z+0.7) fist:AddTag("goodbye") fist.Transform:SetScale(1.2, 1.2, 1.2) fist.AnimState:SetBloomEffectHandle("shaders/anim.ksh") fist.components.inventoryitem.canbepickedup = false shears:Remove() colth:Remove() GetPlayer():DoTaskInTime(3, function() rock:Remove() fist:Remove() gold:Remove() end ) if fist.prefab == "rocks" then makers.AnimState:SetBuild("wolfgang") GetPlayer():DoTaskInTime(3, function() for k = 1, 10 do GetPlayer().components.inventory:GiveItem(goldnugget) end end ) end if fist.prefab == "razor" then makers.AnimState:SetBuild("wolfgang_skinny") makers.AnimState:PlayAnimation("hit") GetPlayer():DoTaskInTime(3, function() for k = 1, 20 do GetPlayer().components.inventory:GiveItem(goldnugget) GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold") end end ) end if fist.prefab == "blueprint" then makers.AnimState:SetBuild("wolfgang_mighty") makers.AnimState:PlayAnimation("idle_onemanband1_loop",true) GetPlayer():DoTaskInTime(3, function() makers.AnimState:PlayAnimation("idle") SpawnPrefab("collapse_small").Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5) GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo") end ) end end shears.components.inspectable.getstatus = function(shears) makers.AnimState:PlayAnimation("give") local name = names[math.random(#names)] local fist = SpawnPrefab(name) fist.Transform:SetPosition(pt.x+0.7, 0, pt.z+0.7) fist:AddTag("goodbye") fist.Transform:SetScale(1.2, 1.2, 1.2) fist.AnimState:SetBloomEffectHandle("shaders/anim.ksh") fist.components.inventoryitem.canbepickedup = false rock:Remove() colth:Remove() GetPlayer():DoTaskInTime(3, function() shears:Remove() fist:Remove() gold:Remove() end ) if fist.prefab == "razor" then makers.AnimState:SetBuild("wolfgang") GetPlayer():DoTaskInTime(3, function() for k = 1, 10 do GetPlayer().components.inventory:GiveItem(goldnugget) end end ) end if fist.prefab == "blueprint" then makers.AnimState:SetBuild("wolfgang_skinny") makers.AnimState:PlayAnimation("hit") GetPlayer():DoTaskInTime(3, function() for k = 1, 20 do GetPlayer().components.inventory:GiveItem(goldnugget) GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold") end end ) end if fist.prefab == "rocks" then makers.AnimState:SetBuild("wolfgang_mighty") makers.AnimState:PlayAnimation("idle_onemanband1_loop",true) GetPlayer():DoTaskInTime(3, function() makers.AnimState:PlayAnimation("idle") SpawnPrefab("collapse_small").Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5) GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo") end ) end end colth.components.inspectable.getstatus = function(colth) makers.AnimState:PlayAnimation("give") local name = names[math.random(#names)] local fist = SpawnPrefab(name) fist.Transform:SetPosition(pt.x+0.7, 0, pt.z+0.7) fist:AddTag("goodbye") fist.Transform:SetScale(1.2, 1.2, 1.2) fist.AnimState:SetBloomEffectHandle("shaders/anim.ksh") fist.components.inventoryitem.canbepickedup = false shears:Remove() rock:Remove() GetPlayer():DoTaskInTime(3, function() colth:Remove() fist:Remove() gold:Remove() end ) if fist.prefab == "blueprint" then makers.AnimState:SetBuild("wolfgang") GetPlayer():DoTaskInTime(3, function() for k = 1, 10 do GetPlayer().components.inventory:GiveItem(goldnugget) end end ) end if fist.prefab == "rocks" then makers.AnimState:SetBuild("wolfgang_skinny") makers.AnimState:PlayAnimation("hit") GetPlayer():DoTaskInTime(3, function() for k = 1, 20 do GetPlayer().components.inventory:GiveItem(goldnugget) GetPlayer().SoundEmitter:PlaySound("dontstarve/HUD/get_gold") end end ) end if fist.prefab == "razor" then makers.AnimState:SetBuild("wolfgang_mighty") makers.AnimState:PlayAnimation("idle_onemanband1_loop",true) GetPlayer():DoTaskInTime(3, function() makers.AnimState:PlayAnimation("idle") SpawnPrefab("collapse_small").Transform:SetPosition(pt.x+2.5, 0, pt.z+2.5) GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo") end ) end end end end local function OnDeploy (inst, pt) game(inst) inst:Remove() end inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy local function onsave(inst, data) if inst:HasTag("makers") then data.makers = true end if inst:HasTag("goodbye") then data.goodbye = true end end local function onload(inst, data) if data and data.makers then game(inst) inst:Remove() end if data and data.goodbye then inst:Remove() end end inst.OnSave = onsave inst.OnLoad = onload MakeLargeBurnable(inst) MakeLargePropagator(inst) 即可用火腿短棍种野球拳赌场,给红色三角10个黄金(拿着黄金对红色三角点鼠标左键),会出现石头、剪子、布选项,用鼠标左键点击要出的选项(比如点石头),庄家会同时出拳。野球拳的规则是,石头赢剪子输布、剪子赢布输石头、布赢石头输剪子。如果胜利则获得本金加10个黄金(共20个黄金),打平退还本金,输了就输掉本金。庄家不会与穷光蛋对赌,在付了10个黄金的本金后,身上至少须保有1个黄金。不想要野球拳赌场时,烧掉即可。火腿短棍在战斗选项(画着两把剑)下,用1个猪皮、2个树枝、2个大肉制造