rock2:PushEvent("growfromash") rock2.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end end
inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy
¼´¿Éʹʯ¿óÑ»·ÀûÓÃ
ÎåÊ®Æß.²É¿óʱ50%¸ÅÂÊÍÚ³ö±¦Ê¯
ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\rocks.luaÎļþ£¬ÒÀ´Î²éÕÒÒÔÏÂÄÚÈÝ£º
inst.components.lootdropper:AddChanceLoot("nitre", 0.25) inst.components.lootdropper:AddChanceLoot("goldnugget", 0.25) inst.components.lootdropper:AddChanceLoot("rocks", 0.6) ÔÚÕâÈý¾äÿ¾äµÄÏÂÒ»ÐУ¬¾ù²åÈëÒÔÏÂÄÚÈÝ£º
inst.components.lootdropper:AddChanceLoot("bluegem", 0.5) inst.components.lootdropper:AddChanceLoot("redgem", 0.5) inst.components.lootdropper:AddChanceLoot("orangegem", 0.5) inst.components.lootdropper:AddChanceLoot("yellowgem", 0.5) inst.components.lootdropper:AddChanceLoot("greengem", 0.5)
¼´¿ÉÔڲɿóʱ50%¸ÅÂÊÍÚ³ö±¦Ê¯£¬Ò²¿É½«bluegem£¨À¶±¦Ê¯£©¡¢redgem£¨ºì±¦Ê¯£©¡¢orangegem£¨³È±¦Ê¯£©¡¢yellowgem£¨»Æ±¦Ê¯£©¡¢greengem£¨Â̱¦Ê¯£©»»³ÉÆäËûÎïÆ·£¨±ÈÈçkoalefant_summerºìÏó¡¢koalefant_winter¶¬Ï󣩣¬²¢µ÷Õû0.5£¨³öÏÖ¸ÅÂÊ£©ÎªÄãÏëÒªµÄÊý×Ö
ÎåÊ®°Ë.ÿ¶ä»¨Ï¶¼ÓÐÂüµÂÀ²Ý
ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\flower.luaÎļþ£¬
1.ÔÚinst:Remove()µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º
inst.components.lootdropper:SpawnLootPrefab("mandrake")
2.ÔÚinst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º
inst:AddComponent("lootdropper")
¼´¿ÉÔÚÕª»¨Ê±·¢ÏÖÂüµÂÀ²Ý£¬ÒòΪºûµû¿ÉÖÖΪ»¨£¬µÈÓÚÓÐÎÞÏÞ¶àµÄÂüµÂÀ²Ý¿ÉÒÔ²ÉÕª ÎåÊ®
¾Å.»¨°êÖÖ»¨£¨»¨¿ÉÒÆÖ²£© ÓüÇ
ÊÂ
±¾
´ò
¿ª
ÓÎ
Ï·
Ä¿
¼
\\data\\scripts\\prefabs\\petals.lua
ÎÄ
inst:AddComponent("tradable")µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º
local function OnDeploy (inst, pt)
local flower = SpawnPrefab("flower") if flower then
flower:PushEvent("growfrompetals") flower.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end end
inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy
¼´¿ÉÓû¨°êÖÖ»¨
ÁùÊ®.ÉúÃüºÅ½Ç£¨´µÅ£½ÇÈÃÅ©Ìï¡¢Ê÷辸ù¡¢²Ý¸ù¡¢Â«Î¸ù¡¢¿Õ¹ûÊ÷´ÔѸËÙ³¤³ö£©
ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\horn.luaÎļþ£¬
1.ÔÚÏÂÁÐÄÚÈÝ£º
local function onfinished(inst) inst:Remove() end
¼þ
£¬
ÔÚ
µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º
function growfn(inst, reader)
reader.components.sanity:DoDelta(TUNING.SANITY_LARGE) local range = 30
local pos = Vector3(reader.Transform:GetWorldPosition()) local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range) for k,v in pairs(ents) do if v.components.pickable then v.components.pickable:FinishGrowing() end
if v.components.crop then
v.components.crop:DoGrow(TUNING.TOTAL_DAY_TIME*3) end end return true end
2.½«ÏÂÁÐÄÚÈÝ£º
inst.components.instrument.range = TUNING.HORN_RANGE inst.components.instrument:SetOnHeardFn(HearHorn)
Ì滻ΪÒÔÏÂÄÚÈÝ£º
inst.components.instrument.onheard = growfn
¼´¿ÉÔڲɼ¯¹ýµÄÖ²Îï¸ù¸½½ü´µÅ£½Ç£¬´ÙʹֲÎï¿ìËÙÉú³¤³öÀ´£¬µ«Å£½ÇÔÓÐÈÃÅ£¸úË湦ÄÜʧЧ
Áùʮһ.Éñ֮죨ì¹¥»÷ʱÕÙ»½ÉÁµç£©
ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\spear.luaÎļþ£¬
1.ÔÚÏÂÁÐÄÚÈÝ£º
local function onunequip(inst, owner)
owner.AnimState:Hide("ARM_carry") owner.AnimState:Show("ARM_normal") end
µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º
function firefn(inst, reader)
local num_lightnings = 32
reader.components.sanity:DoDelta(TUNING.SANITY_LARGE) reader:StartThread(function() for k = 0, num_lightnings do
local rad = math.random(3, 15) local angle = k*((4*PI)/num_lightnings)
local pos = Vector3(reader.Transform:GetWorldPosition()) + Vector3(rad*math.cos(angle), 0, rad*math.sin(angle))
GetSeasonManager():DoLightningStrike(pos) Sleep(math.random( .3, .5)) end end) return true end
2.½«inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE)Ì滻ΪÏÂÁÐÄÚÈÝ£º
inst.components.weapon:SetDamage(TUNING.SPEAR_DAMAGE*100) inst.components.weapon:SetRange(8, 10) inst.components.weapon.onattack = firefn
¼´¿ÉÈÃìÔÚ¹¥»÷ʱÕÙ»½ÉÁµç
ÁùÊ®¶þ.×°±¸»ØÐýïÚÕÙ»½»ð¼¦£¨´òÁÔ
ÓÎÏ·£©
ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\boomerang.luainst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º
local function cancreatelight(staff, caster, target, pos) local ground = GetWorld() if ground and pos then
Îļþ£¬ÔÚ