¼¢»ÄʵÓÃÐ޸ļ¼ÇɸüРÏÂÔØ±¾ÎÄ

¼¢»ÄʵÓÃÐ޸ļ¼ÇÉ(--¸üÐÂ)

Ò×Äþ£º¼¢»ÄÓÎϷʵÓÃÐ޸ļ¼ÇÉ

8ÔÂ18ÈÕ¸üУºÓ¦¡°dkvup¡±ÒªÇóÔö¼Ó¡°Ê®Ò».¿³Ê÷ÎÞÊ÷×®¡±£¬Ó¦¡°‰ô¬w†YœÒÄܘUÒŠ¡±ÒªÇóÔö¼Ó¡°ÆßÊ®.ÖíÈËÓÀ¾Ã¸úËæ¡±£¬Ôö¼Ó¡°°ËÊ®.×°±¸²¶ÄñÆ÷¿ÉÎüÄñ£¨Ëü¾ø²»º±ÓУ¬Íù½ÖÀïÈÆ¹ýÒ»ÖÜ£¬Ëü±ã»¯ÎÚÓУ©¡± Ë÷Òý£º

Ò».Ìá¸ßÖ÷½ÇѪÁ¿10±¶ ¶þ.Ö÷½Ç×Ô¶¯»ØÑª

Èý.Ö÷½Ç×Ô¶¯²¹ÄÔ£¨ÂèÂèÔÙÒ²²»Óõ£ÐÄÎÒµÄѧϰ£© ËÄ.Ìá¸ßÖ÷½Ç¹¥»÷Á¦ Îå.Ö÷½ÇÅܵøü¿ì

Áù.È«ÈËÎï²»ÓûúÆ÷¾Í¿ÉÔìÈ«²¿ÎïÆ·£¨Ö»Ö§³Ö18°æ¼°ÒÔºó°æ±¾£© Æß.¸´»îʯÎÞÏÞʹÓã¨Ö÷½ÇÓÀÉú£©

°Ë.±³ÖíÆ¤°ü¡¢´©´óÀíʯ¿ø¼×ÐÐ×ßËٶȲ»¼õÂý ¾Å.Ìá¸ßÄÃÊÖÕÈÐÐ×ßËÙ¶È

Ê®.Ò»¸«¿³µ¹Ò»¿ÃÊ÷¡¢Ò»¸ä¿ªµôÒ»¿éʯ ʮһ.¿³Ê÷ÎÞÊ÷×® Ê®¶þ.Ò»´Î²É¼¯Îå¸ö Ê®Èý.¼Ó¿ì²É¼¯ËÙ¶È Ê®ËÄ.ÑÓ»º¶³¡¢¶öËÀÍöʱ¼ä Ê®Îå.Ôö¼ÓʳÎï¼°ÁÏÀí²¹ÑªÁ¿10±¶

Ê®Áù.¶ö¼±Á˲ݸùÊ÷è¾Ò²Äܳԣ¨²¹¼¢¶ö£¬µ«ÉËѪºÍÄÔ£© Ê®Æß.½¨ÔìÈâ¿éµñÏñ²»·£Ñª£¨Õý³£Òª´ÓѪµÄÉÏÏÞ¼õ30£© Ê®°Ë.µØ°åÒ»´ÎÔì4¸ö Ê®¾Å.¼Ó´óµ¥¸ñ¶ÑµþÊýÁ¿

¶þÊ®.ͬʱЯ´ø¶à¸ö±³°ü£¨±³°ü¿É¿â´æ£©

¶þʮһ.ÖÆÔ쿲ÆÕ˹±³°ü£¨18°æ¼°ÒÔºóÓÎϷʹÓã© ¶þÊ®¶þ.ÎäÆ÷É˺¦Öµ¼Ó´ó

¶þÊ®Èý.ÐÞ¸ÄħÕÈÉ˺¦Öµ£¨Ä§ÕÈÒ»»÷±ØÉ±£© ¶þÊ®ËÄ.ÐÞ¸Ä×°±¸Ê¹ÓôÎÊý¼°Ê±¼ä

¶þÊ®Îå.¿ø¼×ÔھͲ»µôѪ£¨¿ø¼×100%ÎüÊÕÉ˺¦Öµ£© ¶þÊ®Áù.Ìá¸ß¿ø¼×Ä;ÃÁ¦

¶þÊ®Æß.¿ø¼×²»Óþ¡£¨Óõ½Ê£0%²»Ïûʧ£¬¿É¼ÌÐøÓã© ¶þÊ®°Ë.»ð¾æ²»Óþ¡£¨Óõ½Ê£0%²»Ïûʧ£¬¿É¼ÌÐøÓã© ¶þÊ®¾Å.¿ó¹¤µÆÎÞÏÞʹÓà ÈýÊ®.ÌáµÆ¿ÉÒÔµã50Ìì

Èýʮһ.ÄϹϵÆÓÀ²»»µ£¨ÎÞÏÞʹÓã©

ÈýÊ®¶þ.ʯͷӪ»ðÓÀ²»Ã𣨱£Áô×îС³¤Ã÷»ð£©

ÈýÊ®Èý.ÓòÝÖÖ¸öС̫Ñô£¨ºÚÒ¹±ä°×Ö磬¿ÉÉÕ¿¾Ê³ÎÊÊÓÃ18°æ£©

ÈýÊ®ËÄ.¹ø¿ÉËæÉíЯ´ø

ÈýÊ®Îå.±£ÎÂʯ±£ÎÂʱ¼äÑÓ³¤1±¶ ÈýÊ®Áù.ħÕÈ¡¢»¤Éí·ûÎÞÏÞʹÓÃ

ÈýÊ®Æß.³ÈÉ«»¤Éí·ûÎüÈ¡ÎïÆ·¼ÓËÙ¡¢·¶Î§¼Ó´ó£¬²»ÎüÏÝÚå ÈýÊ®°Ë.ÑÀ³ÝÏÝÚå×Ô¶¯ÖØÖã¨1ÃëºóÖØÖã© ÈýÊ®¾Å.«έ´µ³ö´ßÃßÇú ËÄÊ®.×°±¸ÖíÆ¤°üÄܲ¹ÄÔ

ËÄʮһ.È«ÈËÎï¿ÉÖÆÔì´ò»ð»ú£¨Ô­À´Ö»ÓÐÞ±ÂåרÓã©

ËÄÊ®¶þ.È«ÈËÎï¿ÉÖÆÔìÎéµÏµÄ¸«×Ó£¨8Ï¿³µ¹1¿ÃÊ÷£¬ÆÕͨ¸«×Ó15Ï£© ËÄÊ®Èý.È«ÈËÎï¿ÉÖÆÔìħ·¨Êé ËÄÊ®ËÄ.ÑÓ³¤±ùÏä±£ÏÊʱ¼ä ËÄÊ®Îå.±³°ü¿ÉÀä²ØÊ³Æ· ËÄÊ®Áù.ÖÖ×Ó¸¯ÀñäÂý

ËÄÊ®Æß.´©Ç½Êõ£¨¶¼È¦ÆðÀ´°É£¬²»ÐèÒªÁôÃÅÁË£© ËÄÊ®°Ë.Ôö¼ÓǽµÄÄ;ÃÁ¦

ËÄÊ®¾Å.ǽ±ÚÓÀ¹Ì£¨×Ô¼º¿ÉÔÒ£¬¹ÖÎïÎÞ·¨ÆÆ»µ£©

ÎåÊ®.ÈÃÓÎÏ·ÖеÄÒ»Ìì¸üÂþ³¤£¨1Ìì´ÓÕæÊµÊÀ½çµÄ8·ÖÖÓÐÞ¸ÄΪ16·ÖÖÓ£© Îåʮһ.Ð޸İ×Ìì¡¢°øÍí¡¢ºÚÒ¹Õ¼Ò»ÌìµÄ±ÈÀý ÎåÊ®¶þ.µØÍ¼È«¿ª£¨ÓÎÏ·Öа´Ctrl +1£©

ÎåÊ®Èý.Ëõ¶Ì²Ý¡¢Ê÷辡¢Â«Î­¡¢¶´Ñ¨»¨³¤³öʱ¼ä ÎåÊ®ËÄ.Öֲݲ»ÓÃÊ©·Ê

ÎåÊ®Îå.ÓëέÖÖֲ«έ£¨·ÖÖêÖÖÖ²£© ÎåÊ®Áù.ÓÃľͷ¡¢Ä¾Ì¿

¡¢»ÒÖÖֲʯ¿ó£¨¿É³ÖÐø·¢Õ¹£© ÎåÊ®Æß.²É¿óʱ50%¸ÅÂÊÍÚ³ö±¦Ê¯ ÎåÊ®°Ë.ÿ¶ä»¨Ï¶¼ÓÐÂüµÂÀ­²Ý ÎåÊ®¾Å.»¨°êÖÖ»¨£¨»¨¿ÉÒÆÖ²£©

ÁùÊ®.ÉúÃüºÅ½Ç£¨´µÅ£½ÇÈÃÅ©Ìï¡¢Ê÷辸ù¡¢²Ý¸ù¡¢Â«Î­¸ù¡¢¿Õ¹ûÊ÷´ÔѸËÙ³¤³ö£© Áùʮһ.Éñ֮죨ì¹¥»÷ʱÕÙ»½ÉÁµç£© ÁùÊ®¶þ.×°±¸»ØÐýïÚÕÙ»½»ð¼¦£¨´òÁÔÓÎÏ·£© ÁùÊ®Èý.È®ÑÀ·ÉïÚ£¨×°±¸È®ÑÀ£¬Ò»ÕÐÖÆµÐ£©

ÁùÊ®ËÄ.ÖÖ¸¯ÀÃʳÎïµÃ¸ßÄñ£¬¸ßÄñÎÞ¹¥»÷ÐÐΪ¡¢Ï¸ßÄñµ°

ÁùÊ®Îå.ÇàÄê¸ßÄñ²»³¤´ó£¬²¢Ôö¼ÓѪÁ¿¼°¹¥»÷Á¦£¬Î¹Ê³¿ÉÖØÐÂÈÏÈË ÁùÊ®Áù.ι×ÔÑø¸ßÄñ²ú±ã±ã

ÁùÊ®Æß.×ÔÑø¸ßÄñ²»ÓÃιʳ£¨²»ÒªÓëι×ÔÑø¸ßÄñ²ú±ã±ãͬʱÐ޸ģ© ÁùÊ®°Ë.ÑÀ³ÝÏÝÚå²»É˺¦×ÔÑø¸ßÄñ ÁùÊ®¾Å.Ö÷½Ç´øÈâ²»±»ÍÃÈ˹¥»÷ ÆßÊ®.ÖíÈËÓÀ¾Ã¸úËæ Æßʮһ.ιÄñ·èÈâµÃ±¦Ê¯ ÆßÊ®¶þ.Å©ÌïÊÕ»ñ¸ü¶à²úÆ· ÆßÊ®Èý.Å©×÷Îï1Ã볤³öÀ´

ÆßÊ®ËÄ.ÁÀÈâÎÞÐèµÈ´ý£¨½«Èâ·ÅÔÚÁÀÈâ¼ÜÉϼ´¸É£© ÆßÊ®Îå.ÖóÒ»¹øÊÕ¶à¸öÁÏÀí ÆßÊ®Áù.Ëõ¶ÌÖóÁÏÀíʱ¼ä ÆßÊ®Æß.Ëõ¶ÌµöÓãʱ¼ä ÆßÊ®°Ë.ÊÕ»ñ·äÏä²»±»ÕÝ

ÆßÊ®¾Å.¿ÕÊÖ×¥Ã۷䡢ɱÈË·ä¡¢ºûµû¡¢Ó©»ð³æ£¨ÓóÈÉ«»¤Éí·û¿ÉÒÔ¿ìËÙÎüÈ¡£© °ËÊ®.×°±¸²¶ÄñÆ÷¿ÉÎüÄñ£¨Ëü¾ø²»º±ÓУ¬Íù½ÖÀïÈÆ¹ýÒ»ÖÜ£¬Ëü±ã»¯ÎÚÓУ© °Ëʮһ.°×ÌìÒ²ÄÜ˯ÕÊÅñ£¬Ë¯ÕÊÅñ²»¼õ¼¢¶ö °ËÊ®¶þ.Óø¯ÀÃʳÎïÖÖ³ö³ØÌÁ °ËÊ®Èý.Óòù×ÓÍÚµô³ØÌÁ

°ËÊ®ËÄ.³ýµôÈ«²¿Æó¶ì¼°Æó¶ì±ù£¨ÊÀ½ç´Ó´ËÇå¾²ÁË£© °ËÊ®Îå.ÑÓ³¤È¼ÁÏȼÉÕʱ¼ä °ËÊ®Áù.ʹ²»ÄܶѵþµÄÎïÆ·¿É¶Ñµþ °ËÊ®Æß.ʹ²»¿ÉȼÎïÆ·¿É×÷ȼÁÏ °ËÊ®°Ë.ÈÃÎïÆ·²»¸¯»µ °ËÊ®¾Å.ÐÞ¸ÄÖÆ×÷µÀ¾ßµÄÅä·½

Ò».Ìá¸ßÖ÷½ÇѪÁ¿10±¶

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

local wilson_health = 150 WX78_MIN_HEALTH = 100, WX78_MAX_HEALTH = 400, WOLFGANG_HEALTH_MIGHTY = 300, WOLFGANG_HEALTH_NORMAL = 200, WOLFGANG_HEALTH_WIMPY = 150, ÐÞ¸ÄΪ£º

local wilson_health = 1500 WX78_MIN_HEALTH = 1000, WX78_MAX_HEALTH = 4000, WOLFGANG_HEALTH_MIGHTY = 3000, WOLFGANG_HEALTH_NORMAL = 2000, WOLFGANG_HEALTH_WIMPY = 1500,

¼´¿ÉÈÃÈ«²¿Ö÷½ÇѪÁ¿Ìá¸ß10±¶£¬ÐÞ¸ÄÕâÀïҲʹ¿ø¼×µÄÄ;öÈͬ²½ÉÏÉý10±¶

¶þ.Ö÷½Ç×Ô¶¯»ØÑª

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\player_common.lua

inst.components.health:StartRegen(30, 10)

¼´¿ÉÈÃÖ÷½Ç×Ô¶¯»ØÑª£¬ÆäÖÐ30ΪѪÁ¿£¬10Ϊ10Ãë»ØÑªÒ»´Î£¬¿É×ÔÐе÷Õû

Èý.Ö÷½Ç×Ô¶¯²¹ÄÔ£¨ÂèÂèÔÙÒ²²»Óõ£ÐÄÎÒµÄѧϰ£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«SANITY_DAY_GAIN = 0,--100/(day_time*32),ÐÞ¸ÄΪSANITY_DAY_GAIN = 100/(day_time),¼´¿ÉÒ»¸ö°×Ìì²¹100µã¾«ÉñÖµ

ËÄ.Ìá¸ßÖ÷½Ç

¹¥»÷Á¦

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«local wilson_attack = 34ÐÞ¸ÄΪlocal wilson_attack = 500¼´¿É

Îå.Ö÷½ÇÅܵøü¿ì

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

WILSON_WALK_SPEED = 4, WILSON_RUN_SPEED = 6, ÐÞ¸ÄΪ£º

WILSON_WALK_SPEED = 8, WILSON_RUN_SPEED = 12,

¼´¿ÉÈÃÖ÷½ÇÅܲ½ËÙ¶ÈÔö¼Ó1±¶

Îļþ£¬ÔÚ

inst.components.health:SetMaxHealth(TUNING.WILSON_HEALTH)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

Áù.È«ÈËÎï²»ÓûúÆ÷¾Í¿ÉÔìÈ«²¿ÎïÆ·£¨Ö»Ö§³Ö18°æ¼°ÒÔºó°æ±¾£©

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\player_common.luainst:AddComponent("builder")ÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst.components.builder.science_bonus = 3 inst.components.builder.magic_bonus = 3 inst.components.builder.ancient_bonus = 3

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\wickerbottom.lua

¼´¿ÉÈ«ÈËÎï²»ÓûúÆ÷¾Í¿ÉÔìÈ«²¿ÎïÆ·

Æß.¸´»îʯÎÞÏÞʹÓã¨Ö÷½ÇÓÀÉú£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\resurrectionstone.luaÎļþ£¬ÔÚinst:Remove()µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

SpawnPrefab("resurrectionstone").Transform:SetPosition(inst.Transform:GetWorldPosition())

Ö÷½Ç¸´»îºó£¬ÔÙµãÉíϵĸ´»îʯ£¬¿Éʹ¸´»îʯÔÙ´ÎÍêÕû

°Ë.±³ÖíÆ¤°ü¡¢´©´óÀíʯ¿ø¼×ÐÐ×ßËٶȲ»¼õÂý

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

PIGGYBACK_SPEED_MULT = 0.8, ARMORMARBLE_SLOW = 0.7, ÐÞ¸ÄΪ£º

PIGGYBACK_SPEED_MULT = 1, ARMORMARBLE_SLOW = 1,

Îļþ£¬½«

inst.components.builder.science_bonus = 1Ìæ»»Îª--inst.components.builder.science_bonus = 1

Îļþ£¬ÔÚ

¾Å.Ìá¸ßÄÃÊÖÕÈÐÐ×ßËÙ¶È

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«CANE_SPEED_MULT = 1.25,ÐÞ¸ÄΪCANE_SPEED_MULT = 2.5,¼´¿É

Ê®.Ò»¸«¿³µ¹Ò»¿ÃÊ÷¡¢Ò»¸ä¿ªµôÒ»¿éʯ

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\axe.luainst.components.tool:SetAction(ACTIONS.CHOP)Ìæ»»ÎªÒÔÏÂÄÚÈÝ£º

inst.components.tool:SetAction(ACTIONS.CHOP, 15)

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÏÂÁÐÄÚÈÝ£º

ROCKS_MINE = 6, MARBLEPILLAR_MINE = 10, MARBLETREE_MINE = 8, ÐÞ¸ÄΪ£º ROCKS_MINE = 1, MARBLEPILLAR_MINE = 1, MARBLETREE_MINE = 1,

¼´¿ÉÒ»¸«¿³µ¹Ò»¿ÃÊ÷¡¢Ò»¸ä¿ªµôÒ»¿éʯ

ʮһ.¿³Ê÷ÎÞÊ÷×®

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\evergreens.luainst.AnimState:PushAnimation(inst.anims.stump)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:Remove()

¼´¿É¿³Ê÷ÎÞÊ÷×®

Ê®¶þ.Ò»´Î²É¼¯Îå¸ö

Îļþ£¬Îļþ£¬½«

ÔÚ

È«²¿²É¼¯Æ·Ò»´Î²É¼¯Îå¸ö£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\components\\pickable.luaÎļþ£¬½«self.numtoharvest = number or 1ÐÞ¸ÄΪself.numtoharvest = 5¼´¿É

Ò²¿Éµ¥¶ÀÐÞ¸ÄijÏîÎïÆ·

Ò»´Î²É¼¯Îå¸ö£º

1.²Ý£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\grass.lua

Îļþ£¬½«

inst.components.pickable:SetUp("cutgrass", TUNING.GRASS_REGROW_TIME)Ìæ»»Îªinst.components.pickable:SetUp("cutgrass", TUNING.GRASS_REGROW_TIME, 5)

2.Ê÷è¾£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\sapling.lua

Îļþ£¬½«

inst.components.pickable:SetUp("twigs", TUNING.SAPLING_REGROW_TIME)Ìæ»»Îªinst.components.pickable:SetUp("twigs", TUNING.SAPLING_REGROW_TIME, 5)

3.Ä¢¹½£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\mushrooms.luaÎļþ£¬½«inst.components.pickable:SetUp(data.pickloot, inst.components.pickable:SetUp(data.pickloot, nil, 5)

4.ºúÂܲ·£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\carrot.luainst.components.pickable:SetUp("carrot", inst.components.pickable:SetUp("carrot", 10, 5)

5.«έ£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\reeds.lua

Îļþ£¬½«

inst.components.pickable:SetUp("cutreeds", TUNING.REEDS_REGROW_TIME)Ìæ»»Îªinst.components.pickable:SetUp("cutreeds", TUNING.REEDS_REGROW_TIME, 5)

6.½¬¹û£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\berrybush.lua

Îļþ£¬½«

inst.components.pickable:SetUp("berries", TUNING.BERRY_REGROW_TIME)Ìæ»»Îªinst.components.pickable:SetUp("berries", TUNING.BERRY_REGROW_TIME, 5)

7.»¨£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\flower.luainst.components.pickable:SetUp("petals", inst.components.pickable:SetUp("petals", 10, 5)

8.¶ñħ»¨£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\flower_evil.luaÎļþ£¬½«inst.components.pickable:SetUp("petals_evil", inst.components.pickable:SetUp("petals_evil", 10, 5)

9.¶´Ñ¨»¨£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\flower_evil.luaÎļþ£¬½«inst.components.pickable:SetUp("lightbulb", TUNING.FLOWER_CAVE_REGROW_TIME)Ìæ

10)

Ìæ

»»

Ϊ

10)

Ìæ

Îļþ£¬½«»»

Ϊ

10)

Ìæ

Îļþ£¬½«»»

Ϊ

nil)

Ìæ

»»

Ϊ

»»

Ϊinst.components.pickable:SetUp("lightbulb",

TUNING.FLOWER_CAVE_REGROW_TIME, 5)

10.Ïã½¶£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\flower_evil.luaÎļþ£¬½«inst.components.pickable:SetUp("cave_banana", TUNING.CAVE_BANANA_GROW_TIME)Ìæ

11.Þ§ÀࣺÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cave_fern.luaÎļþ£¬½«»»

Ϊ

inst.components.pickable:SetUp("cave_banana",

TUNING.CAVE_BANANA_GROW_TIME, 5)

inst.components.pickable:SetUp("foliage", 10)

Ìæ

»»

inst.components.pickable:SetUp("foliage", 10, 5)

12.ľ̿£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\evergreens.luaÎļþ£¬inst.components.lootdropper:SpawnLootPrefab("charcoal")Ìæ»»ÎªÏÂÁÐÄÚÈÝ£º

inst.components.lootdropper:SpawnLootPrefab("charcoal") inst.components.lootdropper:SpawnLootPrefab("charcoal") inst.components.lootdropper:SpawnLootPrefab("charcoal") inst.components.lootdropper:SpawnLootPrefab("charcoal") inst.components.lootdropper:SpawnLootPrefab("charcoal")

Ê®Èý.¼Ó¿ì²É¼¯ËÙ¶È

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\¿É²É¼¯ÎïÆ·.luaÎļþ£¬inst:AddComponent("pickable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst.components.pickable.quickpick = true

¼´¿É¼Ó¿ì¿É²É¼¯Æ·²É¼¯ËÙ¶È

¿É²É¼¯ÎïÆ·£º

berrybush.lua ½¬¹û¹àľ´Ô cave_banana_tree.lua ¶´Ñ¨Ïã½¶Ê÷ flower_cave.lua ¶´Ñ¨»¨

grass.lua ²Ý marsh_bush.lua

¼â´Ì¹àľ

Ϊ

½«ÔÚ

reeds.lua «έ sapling.lua

Ê®ËÄ.ÑÓ»º¶³¡¢¶öËÀÍöʱ¼ä

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

FREEZING_KILL_TIME = 120, STARVE_KILL_TIME = 120, ÐÞ¸ÄΪ£º

FREEZING_KILL_TIME = 1200, STARVE_KILL_TIME = 1200,

¼´¿ÉÑÓ»º¶³¡¢¶öËÀÍöʱ¼ä10±¶

Ê®Îå.Ôö¼ÓʳÎï¼°ÁÏÀí²¹ÑªÁ¿10±¶

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

HEALING_TINY = 1, HEALING_SMALL = 3, HEALING_MEDSMALL = 8, HEALING_MED = 20, HEALING_MEDLARGE = 30, HEALING_LARGE = 40, HEALING_HUGE = 60, HEALING_SUPERHUGE = 100, ÐÞ¸ÄΪ£º

HEALING_TINY = 10, HEALING_SMALL = 30, HEALING_MEDSMALL = 80, HEALING_MED = 200, HEALING_MEDLARGE = 300, HEALING_LARGE = 400, HEALING_HUGE = 600, HEALING_SUPERHUGE = 1000,

Ê÷Ãç

tallbirdnest.lua ¸ßÄñ³²

¼´¿ÉÔö¼ÓʳÎï¼°ÁÏÀí²¹ÑªÁ¿10±¶

Ê®Áù.¶ö¼±Á˲ݸùÊ÷è¾Ò²Äܳԣ¨²¹¼¢¶ö£¬µ«ÉËѪºÍÄÔ£©

1.²ÝÄܳԣºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cutgrass.luaÎļþ£¬ÔÚinst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

inst:AddComponent("edible")

inst.components.edible.foodtype = "VEGGIE" inst.components.edible.healthvalue = -TUNING.HEALING_TINY*.5 inst.components.edible.hungervalue = TUNING.CALORIES_SMALL inst.components.edible.sanityvalue = -TUNING.SANITY_TINY

2.Ê÷è¾ÄܳԣºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cutgrass.luaÎļþ£¬ÔÚinst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

inst:AddComponent("edible")

inst.components.edible.foodtype = "VEGGIE" inst.components.edible.healthvalue = -TUNING.HEALING_TINY*.5 inst.components.edible.hungervalue = TUNING.CALORIES_SMALL inst.components.edible.sanityvalue = -TUNING.SANITY_TINY

¼´¿ÉÈòݡ¢Ê÷è¾¶¼ÄܳÔ

Ê®Æß.½¨ÔìÈâ¿éµñÏñ²»·£Ñª£¨Õý³£Òª´ÓѪµÄÉÏÏÞ¼õ30£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«EFFIGY_HEALTH_PENALTY = 30,ÐÞ¸ÄΪEFFIGY_HEALTH_PENALTY = 0,¼´¿É

Ê®°Ë.µØ°åÒ»´ÎÔì4¸ö

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\turfs.luaÎļþ£¬

1.ÔÚinst.data = dataµÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("stackable")

inst.components.stackable.maxsize = TUNING.STACK_SIZE_MEDITEM inst.components.stackable.s

tacksize = data.stacksize

2.½«ÏÂÁÐÄÚÈÝ£º

{name="road", {name="rocky",

anim="road", anim="rocky", anim="forest", anim="marsh", anim="grass", anim="dirt",

tile=GROUND.ROAD},

tile=GROUND.ROCKY}, tile=GROUND.FOREST}, tile=GROUND.MARSH}, tile=GROUND.GRASS},

{name="forest", {name="marsh", {name="grass", {name="dirt",

{name="savanna", {name="woodfloor",

tile=GROUND.WOODFLOOR},

anim="savanna", tile=GROUND.SAVANNA}, tile=GROUND.DIRT},

anim="woodfloor",

tile=GROUND.CARPET}, tile=GROUND.CHECKER}, tile=GROUND.CAVE},

tile=GROUND.FUNGUS},

{name="carpetfloor", anim="carpet",

{name="cave",

{name="checkerfloor", anim="checker",

anim="cave", anim="fungus", anim="rock", anim="mud",

{name="fungus", {name="sinkhole", {name="underrock", {name="mud", ÐÞ¸ÄΪ£º

{name="road",

tile=GROUND.ROAD},

{name="rocky",

tile=GROUND.ROCKY},

anim="sinkhole", tile=GROUND.SINKHOLE},

tile=GROUND.UNDERROCK},

tile=GROUND.MUD},

anim="road",stacksize = 4, anim="rocky",stacksize = 4, anim="forest",stacksize = 4, anim="marsh",stacksize = 4, anim="grass",stacksize = 4,

{name="forest",

tile=GROUND.FOREST}, tile=GROUND.MARSH},

tile=GROUND.GRASS}, {name="marsh", {name="grass",

{name="savanna",

tile=GROUND.SAVANNA},

{name="dirt",

tile=GROUND.DIRT},

anim="savanna",stacksize = 4,

anim="dirt",stacksize = 4, anim="woodfloor",stacksize

=

4,

{name="woodfloor",

tile=GROUND.WOODFLOOR}, tile=GROUND.CARPET}, tile=GROUND.CHECKER},

anim="cave",stacksize = 4, anim="fungus",stacksize = 4,

=

4,

{name="carpetfloor", anim="carpet",stacksize = 4, {name="checkerfloor", anim="checker",stacksize = 4,

{name="cave",

tile=GROUND.CAVE}, tile=GROUND.FUNGUS},

{name="fungus", {name="sinkhole",

tile=GROUND.SINKHOLE}, {name="underrock",

tile=GROUND.UNDERROCK},

{name="mud",

tile=GROUND.MUD},

anim="sinkhole",stacksize

anim="rock",stacksize = 4, anim="mud",stacksize = 4,

¼´¿ÉÒ»´ÎÔì4¸öµØ°å£¬ÆäÖÐ4¿ÉÒÔÐÞ¸ÄΪСÓÚ20µÄÆäËûÊý×Ö

Ê®¾Å.¼Ó´óµ¥¸ñ¶ÑµþÊýÁ¿

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º STACK_SIZE_LARGEITEM = 10, STACK_SIZE_MEDITEM = 20, STACK_SIZE_SMALLITEM = 40, ÐÞ¸ÄΪ£º

STACK_SIZE_LARGEITEM = 20, STACK_SIZE_MEDITEM = 50, STACK_SIZE_SMALLITEM = 99,

¼´¿É¼Ó´óµ¥¸ñ¶ÑµþÊýÁ¿£¬Èç¹ûÄãÏë¶¼ÐÞ¸ÄΪ999Ò²¿ÉÒÔŶ

¶þÊ®.ͬʱЯ´ø¶à¸ö±³°ü£¨±³°ü¿É¿â´æ£©

1.ͬʱЯ´ø¶à¸öÆÕͨ±³°ü£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\backpack.luaÎļþ£¬½«inst.components.inventoryitem.cangoincontainer inst.components.inventoryitem.cangoincontainer = true

=

false

ÐÞ

¸Ä

Ϊ

2.ͬʱЯ´ø¶à¸öСÖí°ü£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\piggyback.luaÎļþ£¬½«inst.components.inventoryitem.cangoincontainer inst.components.inventoryitem.cangoincontainer = true

3.ͬʱЯ´ø¶à¸ö¿²ÆÕ˹±³°ü£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\krampus_sack.luaÎļþ£¬½«inst.components.inventoryitem.cangoincontainer = falseÐÞ¸ÄΪinst.components.inventoryitem.cangoincontainer = true

¼´¿ÉͬʱЯ´ø¶à¸ö±³°ü

¶þʮһ.ÖÆÔ쿲ÆÕ˹±³°ü£¨18°æ¼°ÒÔºóÓÎϷʹÓã©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\recipes.luaÎļþ£¬ÔÚRecipe("piggyback", {Ingredient("pigskin", 4), Ingredient("silk", 6), Ingredient("rope", 2)}, RECIPETABS.SURVIVAL, TECH.SCIENCE_TWO)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

Recipe("krampus_sack",

¼´¿ÉÓÃ5¸ö²Ý¡¢5¸öÊ÷è¾ÖÆÔ쿲ÆÕ˹±³°ü

¶þÊ®¶þ.ÎäÆ÷É˺¦Öµ¼Ó´ó

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬²éÕÒÒÔÏÂÄÚÈÝ£º

UNARMED_DAMAGE = 10,

¿ÕÊÖ

NIGHTSWORD_DAMAGE = wilson_attack*2, °µÓ°½£ BATBAT_DAMAGE = wilson_attack * 1.25, òùòð°ô BATBAT_DRAIN = wilson_attack * 0.2, SPIKE_DAMAGE = wilson_attack*1.5, SPEAR_DAMAGE = wilson_attack, ì AXE_DAMAGE = wilson_attack*.8, ¸«Í· PICK_DAMAGE = wilson_attack*.8, ¸ä

¿Ý½ßòùòð°ô ÀÇÑÀ°ô

{Ingredient("cutgrass",

5),Ingredient("twigs", 5)}, RECIPETABS.SURVIVAL, TECH.NONE)

=

false

ÐÞ

¸Ä

Ϊ

HAMBAT_DAMAGE = wilson_attack, »ðÍȹ÷°ô

BOOMERANG_DAMAGE = wilson_attack*.8, »ØÐýïÚ TORCH_DAMAGE = wilson_attack*.5, SHOVEL_DAMAGE = wilson_attack*.5,

»ð¾æ ²ù×Ó

²Ý²æ

HAMMER_DAMAGE = wilson_attack*.5, ´¸ PITCHFORK_DAMAGE = wilson_attack*.5,

BUGNET_DAMAGE = wilson_attack*.125, ²¶³æÍø FISHINGROD_DAMAGE = wilson_attack*.125, Óã¸Ë UMBRELLA_DAMAGE = wilson_attack*.5, ÓêÉ¡ CANE_DAMAGE = wilson_attack*.5, ÊÖÕÈ BEAVER_DAMAGE = wilson_attack*1.5, º£Àê MULTITOOL_DAMAGE = wilson_attack*.9, PIPE_DART_DAMAGE = 100, ´µ¼ý TRAP_TEETH_DAMAGE = 60, ÑÀ³ÝÏÝÚå

¼Ó´óÿÐÐ×îºóµÄÊý×Ö£¬¼´¿ÉÔö´ó¸÷ÖÖÎäÆ÷µÄÉ˺¦Öµ£¬ÓÎÏ·ÖеÄÉ˺¦ÖµÊÇÄãÐ޸ĵÄÊý×Ö³Ë34£¨Ö÷½Ç¹¥»÷Á¦£©

¶þÊ®Èý.ÐÞ¸ÄħÕÈÉ˺¦Öµ£¨Ä§ÕÈÒ»»÷±ØÉ±£© ÓÃ

¼Ç

ÊÂ

±¾

´ò

¿ª

ÓÎ

Ï·

Ä¿

¼

\\data\\scripts\\prefabs\\staff.lua

ÐÞ

¸Ä

ÎÄ

¼þ

£¬

½«Îª

inst.components.weapon:SetDamage(0)inst.components.weapon:SetDamage(0)ÒªÐÞ¸Ä

¶þÊ®ËÄ.ÐÞ¸Ä×°±¸Ê¹ÓôÎÊý¼°Ê±¼ä

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬²éÕÒÒÔÏÂÄÚÈÝ£º

AXE_USES = 100,

¸«Í·

´¸

HAMMER_USES = 75,

¶à¹¦Äܹ¤¾ß

inst.components.weapon:SetDamage(TUNING.PIPE_DART_DAMAGE*30)¼´¿É£¬Ò»¹²ÓÐÁ½´¦

SHOVEL_USES = 25, ²ù×Ó PITCHFORK_USES = 25, ²Ý²æ PICKAXE_USES = 33, ¸ä BUGNET_USES = 10, ²¶³æÍø SPEAR_USES = 150, ì SPIKE_USES = 100, ÀÇÑÀ°ô FISHINGROD_USES = 9, Óã¸Ë TRAP_USES = 8,

ÏÝÚå

BOOMERANG_USES = 10, »ØÐýïÚ NIGHTSWORD_USES = 100, ICESTAFF_USES = 20, ±ùħÕÈ FIRESTAFF_USES = 20,

»ðħÕÈ TELESTAFF_USES = 5,

Ô¶³ÌħÕÈ

³ÈɫħÕÈ

YELLOWSTAFF_USES = 20, »ÆÉ«Ä§ÕÈ ORANGESTAFF_USES = 20, HAMBAT_USES = 100,

GREENSTAFF_USES = 5, ÂÌɫħÕÈ

»ðÍȹ÷°ô

BATBAT_USES = 75, òùòð°ô

MULTITOOL_AXE_PICKAXE_USES = 230, ¶à¹¦Äܹ¤¾ß¸«Í·ºÍ³úÍ· REDAMULET_USES = 20, ºìÉ«»¤Éí·û

BLUEAMULET_FUEL = total_day_time * 0.75, À¶É«»¤Éí·û PURPLEAMULET_FUEL = total_day_time * 0.4, ×ÏÉ«»¤Éí·û YELLOWAMULET_FUEL = total_day_time, »ÆÉ«»¤Éí·û ORANGEAMULET_USES = 225, ³ÈÉ«»¤Éí·û GREENAMULET_USES = 5, PANFLUTE_USES = 10, HORN_USES = 10, Å£½Ç

TRAP_TEETH_USES = 10, ÑÀ³ÝÏÝÚå TENT_USES = 6,

ÕÊÅñ

É¡ ÕëÏß°ü

»ð¾æ

ÌáµÆ

UMBRELLA_USES = 20, SEWINGKIT_USES = 5,

TORCH_FUEL = night_time*1.25,

MINERHAT_LIGHTTIME = (night_time+dusk_time)*2.6, ¿ó¹¤Ã± LANTERN_LIGHTTIME = (night_time+dusk_time)*2.6, SPIDERHAT_PERISHTIME = 4*seg_time, Ö©Öëñ ONEMANBAND_PERISHTIME = 6*seg_time,

¶À×àÀÖÆ÷

¶¬Ã± ţëñ ±³ÐÄ º£Ïóñ×Ó Óðëñ

EARMUFF_PERISHTIME = total_day_time*5, ÍöúÕÖ WINTERHAT_PERISHTIME = total_day_time*10, BEEFALOHAT_PERISHTIME = total_day_time*10,

TRUNKVEST_PERISHTIME = total_day_time*15, WALRUSHAT_PERISHTIME = total_day_time*25, FEATHERHAT_PERISHTIME = total_day_time*8, TOPHAT_PERISHTIME = total_day_time*8,

¼Ó´óÿÐеÄÊý×Ö£¬¼´¿ÉÔö¼Ó¸Ã×°±¸Ê¹ÓôÎÊý¼°Ê±¼ä SWEATERVEST_PERISHTIME = total_day_time*10, ë±³ÐÄ

ÂÌÉ«»¤Éí·û ÅÅóï

°µÓ°½£

¸ßÀññ

¶þÊ®Îå.¿ø¼×ÔھͲ»µôѪ£¨¿ø¼×100%ÎüÊÕÉ˺¦Öµ£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

ARMORGRASS_ABSORPTION = .6, ARMORWOOD_ABSORPTION = .8, ARMORMARBLE_ABSORPTION = .95, ARMOR_FOOTBALLHAT_ABSORPTION = .8, ARMOR_SLURTLEHAT_ABSORPTION = 0.9, ARMOR_BEEHAT_ABSORPTION = .8, ARMOR_SANITY_ABSORPTION = .95, ÐÞ¸ÄΪ£º

ARMORGRASS_ABSORPTION = 1, ARMORWOOD_ABSORPTION = 1, ARMORMARBLE_ABSORPTION = 1, ARMOR_FOOTBALLHAT_ABSORPTION = 1, ARMOR_SLURTLEHAT_ABSORPTION = 1, ARMOR_BEEHAT_ABSORPTION = 1, ARMOR_SANITY_ABSORPTION = 1,

¶þÊ®Áù.Ìá¸ß¿ø¼×Ä;ÃÁ¦

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

ARMORGRASS = wilson_health*1.5, ²Ý¿ø¼× ARMORWOOD = wilson_health*3, ľ¿ø¼× ARMORMARBLE = wilson_health*7, ´óÀíʯ¿ø¼× ARMOR_FOOTBALLHAT = wilson_health*3, ARMOR_BEEHAT = wilson_health*5, ARMOR_SANITY = wilson_health * 5,

¼Ó´óÿÐÐ×îºóµÄÊý×Ö£¬¼´¿ÉÌá¸ß¿ø¼×Ä;ÃÁ¦

×ãÇòñ

ARMOR_SLURTLEHAT = wilson_health*5, ÎÏţñ

·äñ ҹħ¿ø¼×

¶þÊ®Æß.¿ø¼×²»Óþ¡£¨Óõ½Ê£0%²»Ïûʧ£¬¿É¼ÌÐøÓã©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\components\\armor.luaÎļþ£¬½«self.inst:Remove()ÐÞ¸ÄΪ--self.inst:Remove()¼´¿ÉʵÏÖ¿ø¼×²»ÓÃ

¾¡

¶þÊ®°Ë.»ð¾æ²»Óþ¡£¨Óõ½Ê£0%²»Ïûʧ£¬¿É¼ÌÐøÓã©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\torch.luaÎļþ£¬ÒÀ´Î²éÕÒÒÔÏÂÄÚÈÝ£º inst:Remove()

inst.components.fueled:SetDepletedFn(function(inst) inst:Remove() end) ÐÞ¸ÄΪ£º --inst:Remove()

--inst.components.fueled:SetDepletedFn(function(inst) inst:Remove() end)

¼´¿ÉÈÃ»ð¾æ²»Óþ¡£¬ÔÚÓï¾äǰ¼ÓÈë--µÄ¹¦ÄܾÍÊǽ«¸Ã¾ä·Ïµô

¶þÊ®¾Å.¿ó¹¤µÆÎÞÏÞʹÓÃ

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\hats.luaÎļþ£¬ÏȲéÕÒlocal function miner()ºó£¬ÔÙÏòϲéÕÒÒÔÏÂÄÚÈÝ£º

inst:AddComponent("fueled")

inst.components.fueled.fueltype = "MINERHAT"

inst.components.fueled:InitializeFuelLevel(TUNING.MINERHAT_LIGHTTIME) inst.components.fueled:SetDepletedFn(miner_perish) ÐÞ¸ÄΪ£º

--inst:AddComponent("fueled")

--inst.components.fueled.fueltype = "MINERHAT"

--inst.components.fueled:InitializeFuelLevel(TUNING.MINERHAT_LIGHTTIME) --inst.components.fueled:SetDepletedFn(miner_perish)

¼´¿ÉÈÿ󹤵ÆÎÞÏÞʹÓÃ

ÈýÊ®.ÌáµÆ¿ÉÒÔµã50Ìì

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬ÒÀ´Î²éÕÒÒÔÏÂÄÚÈÝ£º MED_LARGE_FUEL = seg_time * 3,

LANTERN_LIGHTTIME = (night_time+dusk_time)*2.6, ÐÞ¸ÄΪ£º

MED_LARGE_FUEL = total_day_time*50, LANTERN_LIGHTTIME = total_day_time*50,

¼´¿ÉʹÌáµÆ¿ÉÒÔµã50Ì죬µ±È»¸Ä999ÌìÒ²ÐÐ

Èýʮһ.ÄϹϵÆÓÀ²»»µ£¨ÎÞÏÞʹÓã©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\pumpkin_lantern.lua

ÈýÊ®¶þ.ʯͷӪ»ðÓÀ²»Ã𣨱£Áô×îС³¤Ã÷»ð£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\firepit.luaÎļþ£¬½«if section == 0 thenÐÞ¸ÄΪif section < 0 then¼´¿É

ÈýÊ®Èý.ÓòÝÖÖ¸öС̫Ñô£¨ºÚÒ¹±ä°×Ö磬¿ÉÉÕ¿¾Ê³ÎÊÊÓÃ18°æ£©

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cutgrass.luainst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function OnDeploy (inst, pt)

local stafflight = SpawnPrefab("stafflight") if stafflight then

stafflight:PushEvent("growfromcutgrass") stafflight.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end

Îļþ£¬ÔÚÎļþ£¬½«

inst.components.perishable:StartPerishing()ÐÞ¸ÄΪinst.components.perishable:StopPerishing()¼´¿É

end

inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\stafflight.luaÎļþ£¬½«ÏÂÁÐÄÚÈÝ£º

local rad = Lerp(4, 5, s)

local intentsity = Lerp(0.8, 0.7, s)

Ìæ»»ÎªÒÔÏÂÄÚÈÝ£º

local rad = Lerp(4, 50, 1) local intentsity = Lerp(0.8, 0.7, 1)

3.½«inst.init_time = 1

20Ìæ»»Îªinst.init_time = 360

4.½«inst.components.propagator.heatoutput = 15Ìæ»»Îªinst.components.propagator.heatoutput = 0

ÈýÊ®ËÄ.¹ø¿ÉËæÉíЯ´ø

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cookpot.luaÎļþ£¬ÔÚÏÂÁÐÄÚÈÝ£º

local function onbuilt(inst)

inst.AnimState:PlayAnimation("place") inst.AnimState:PushAnimation("idle_empty") end

µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function onequip(inst, owner)

owner.AnimState:OverrideSymbol("swap_body", "swap_body") end

local function onunequip(inst, owner)

owner.AnimState:ClearOverrideSymbol("swap_body")

"swap_backpack",

end

local function turnon(inst)

inst.components.machine.ison = true

inst:AddComponent("inventoryitem") end

local function turnoff(inst)

inst.components.machine.ison = false

inst:RemoveComponent("inventoryitem") end

local function ondropped(inst) turnoff(inst) turnon(inst) end

2.ÔÚinst.AnimState:PlayAnimation("idle_empty")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("machine") inst.components.machine.turnonfn = turnon inst.components.machine.turnofffn = turnoff

inst:AddComponent("equippable") inst.components.equippable:SetOnEquip( onequip ) inst.components.equippable:SetOnUnequip( onunequip )

¶Ô·ÅÔÚµØÉϵĹø°´Êó±êÓÒ¼ü½â³ý¹Ì¶¨£¬¼´¿É½«¹øËæÉíЯ´ø¡£ÒªÖó¶«Î÷ʱ£¬ÏȰѹø·ÅÔÚµØÉÏ£¬ÔÙ¶ÔÆä°´Êó±êÓÒ¼ü¹Ì¶¨ºó£¬¾Í¿ÉÕý³£Ê¹ÓÃ

ÈýÊ®Îå.±£ÎÂʯ±£ÎÂʱ¼äÑÓ³¤1±¶

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\heatrock.luainst.components.temperature.inherentinsulation

ÈýÊ®Áù.ħÕÈ¡¢»¤Éí·ûÎÞÏÞʹÓÃ

=

TUNING.INSULATION_MED

Îļþ£¬½«

ÐÞ

¸Ä

Ϊ

inst.components.temperature.inherentinsulation = TUNING.INSULATION_MED*2¼´¿É

1.ħÕÈÎÞÏÞʹÓãºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\staff.luaÎļþ£¬½«ÏÂÁÐÄÚÈÝ£º

inst:AddComponent("finiteuses") inst.components.finiteuses:SetOnFinished( onfinished )

inst.components.finiteuses:SetMaxUses(TUNING.FIRESTAFF_USES) inst.components.finiteuses:SetUses(TUNING.FIRESTAFF_USES)

inst.components.finiteuses:SetMaxUses(TUNING.ICESTAFF_USES) inst.components.finiteuses:SetUses(TUNING.ICESTAFF_USES)

inst.components.finiteuses:SetMaxUses(TUNING.TELESTAFF_USES) inst.components.finiteuses:SetUses(TUNING.TELESTAFF_USES)

inst.components.finiteuses:SetMaxUses(TUNING.YELLOWSTAFF_USES) inst.components.finiteuses:SetUses(TUNING.YELLOWSTAFF_USES)

ÐÞ¸ÄΪÒÔÏÂÄÚÈÝ£¨¼´ÔÚÿ¾äÇ°Ãæ¼Ó--£©£º

--inst:AddComponent("finiteuses")

--inst.components.finiteuses:SetOnFinished( onfinished )

--inst.components.finiteuses:SetMaxUses(TUNING.FIRESTAFF_USES) --inst.components.finiteuses:SetUses(TUNING.FIRESTAFF_USES)

--inst.components.finiteuses:SetMaxUses(TUNING.ICESTAFF_USES) --inst

.components.finiteuses:SetUses(TUNING.ICESTAFF_USES)

--inst.components.finiteuses:SetMaxUses(TUNING.TELESTAFF_USES) --inst.components.finiteuses:SetUses(TUNING.TELESTAFF_USES)

--inst.components.finiteuses:SetMaxUses(TUNING.YELLOWSTAFF_USES) --inst.components.finiteuses:SetUses(TUNING.YELLOWSTAFF_USES)

2.»¤Éí·ûÎÞÏÞʹÓãºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\amulet.luaÎļþ£¬½«ÏÂÁÐÄÚÈÝ£º

inst.components.finiteuses:Use(1)

amulet.components.finiteuses:Use(1)

inst:AddComponent("finiteuses") inst.components.finiteuses:SetOnFinished( onfinished )

inst.components.finiteuses:SetMaxUses(TUNING.REDAMULET_USES) inst.components.finiteuses:SetUses(TUNING.REDAMULET_USES)

inst:AddComponent("finiteuses") inst.components.finiteuses:SetOnFinished( onfinished )

inst.components.finiteuses:SetMaxUses(TUNING.ORANGEAMULET_USES) inst.components.finiteuses:SetUses(TUNING.ORANGEAMULET_USES)

ÐÞ¸ÄΪÒÔÏÂÄÚÈÝ£¨¼´ÔÚÿ¾äÇ°Ãæ¼Ó--£©£º

--inst.components.finiteuses:Use(1)

--amulet.components.finiteuses:Use(1)

--inst:AddComponent("finiteuses")

--inst.components.finiteuses:SetOnFinished( onfinished )

--inst.components.finiteuses:SetMaxUses(TUNING.REDAMULET_USES) --inst.components.finiteuses:SetUses(TUNING.REDAMULET_USES)

--inst:AddComponent("finiteuses")

--inst.components.finiteuses:SetOnFinished( onfinished )

--inst.components.finiteuses:SetMaxUses(TUNING.ORANGEAMULET_USES) --inst.components.finiteuses:SetUses(TUNING.ORANGEAMULET_USES)

½«ÏÂÁÐÄÚÈÝ£º

inst.components.fueled:DoDelta(-(inst.components.fueled.maxfuel * 0.03))

inst.components.fueled:StartConsuming()

inst.components.fueled:StopConsuming()

inst.components.fueled:StartConsuming()

inst.components.fueled:StopConsuming()

inst:AddComponent("fueled")

inst.components.fueled.fueltype = "MAGIC"

inst.components.fueled:InitializeFuelLevel(TUNING.BLUEAMULET_FUEL) inst.components.fueled:SetDepletedFn(onfinished)

inst:AddComponent("fueled")

inst.components.fueled.fueltype = "MAGIC"

inst.components.fueled:InitializeFuelLevel(TUNING.PURPLEAMULET_FUEL) inst.components.fueled:SetDepletedFn(onfinished)

ÐÞ¸ÄΪÒÔÏÂÄÚÈÝ£¨¼´ÔÚÿ¾äÇ°Ãæ¼Ó--£©£º

--inst.components.fueled:DoDelta(-(inst.components.fueled.maxfuel * 0.03))

--inst.components.fueled:StartConsuming()

--inst.components.fueled:StopConsuming()

--inst.components.fueled:StartConsuming()

--inst.components.fueled:StopConsuming()

--inst:AddComponent("fueled")

--inst.components.fueled.fueltype = "MAGIC" --inst.components.fueled:InitializeFuelLevel(TUNING.BLUEAM

ULET_FUEL)

--inst.components.fueled:SetDepletedFn(onfinished)

--inst:AddComponent("fueled")

--inst.components.fueled.fueltype = "MAGIC"

--inst.components.fueled:InitializeFuelLevel(TUNING.PURPLEAMULET_FUEL) --inst.components.fueled:SetDepletedFn(onfinished)

¼´¿ÉÈÃħÕÈ¡¢»¤Éí·ûÎÞÏÞʹÓÃ

ÈýÊ®Æß.³ÈÉ«»¤Éí·ûÎüÈ¡ÎïÆ·¼ÓËÙ¡¢·¶Î§¼Ó´ó£¬²»ÎüÏÝÚå

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\amulet.luaÎļþ£¬

1.ÎüÈ¡ÎïÆ·¼ÓËÙ£º½«inst.task = inst:DoPeriodicTask(TUNING.ORANGEAMULET_ICD, function() pickup(inst, owner) end)Ìæ»»ÎªÒÔÏÂÄÚÈÝ£º

inst.task = inst:DoPeriodicTask(TUNING.ORANGEAMULET_ICD*.1, function() pickup(inst, owner) end)

¼´¿É¼Ó¿ìÎüÈ¡ÎïÆ·ËÙ¶È10±¶

2.ÎüÈ¡ÎïÆ··¶Î§¼Ó´ó£º½«

local ents = TheSim:FindEntities(pt.x, pt.y, pt.z, TUNING.ORANGEAMULET_RANGE*5)

¼´¿ÉÈÃÎüÈ¡·¶Î§¼Ó´ó5±¶

3.²»ÎüÏÝÚ壺½«v.components.inventoryitem:IsHeld() thenÌæ»»ÎªÒÔÏÂÄÚÈÝ£º

v.components.inventoryitem:IsHeld() and not v:HasTag("trap") then

¼´¿ÉÈóÈÉ«»¤Éí·û²»ÎüÏÝÚ壬°üÀ¨ÑÀ³ÝÏÝÚå¡¢²¶ÄñÏÝÚå¡¢ÍÃÏÝÚå

ÈýÊ®°Ë.ÑÀ³ÝÏÝÚå×Ô¶¯ÖØÖã¨1ÃëºóÖØÖã©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\trap_teeth.luainst.components.finiteuses:Use(1)µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º end

if inst.components.mine then

inst:DoTaskInTime(1, function() inst.components.mine:Reset() end )

¼´¿ÉÈÃÑÀ³ÝÏÝÚåÔÚ´¥·¢ºó1ÃëÖÓ×Ô¶¯ÖØÖá£ÐÞ¸ÄÆäÖеÄ1ΪÈÎÒâÊý×Ö£¬¼´¿ÉÉèÖü¸ÃëÖÓ×Ô¶¯ÖØÖá£Õâ²»ÊÇÎÒÑо¿µÄ£¬ÊDZðÈËMODµÄ³É¹û£¬Ö»ÊÇÒòΪ¸üÐÂÓÎÏ·ºóÔ­MOD²»ÄÜÓ㬲ŰÑÐ޸ķ½·¨¹«²¼³öÀ´£¬ÒÔ·½±ã´ó¼Ò

ÈýÊ®¾Å.«έ´µ³ö´ßÃßÇú£¨ÔÚЯ´øµÄ«έÉϰ´Êó±êÓÒ¼ü£¬¿É´ßÃß¶¯Î

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cutreeds.luainst:AddComponent("inventoryitem")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddTag("flute")

local function HearPanFlute(inst, musician, instrument) if inst.components.sleeper then

Îļþ£¬ÔÚÎļþ£¬ÔÚ

local ents = TheSim:FindEntities(pt.x, pt.y, pt.z,

TUNING.ORANGEAMULET_RANGE)Ìæ»»ÎªÒÔÏÂÄÚÈÝ£º

inst.components.sleeper:AddSleepiness(10, TUNING.PANFLUTE_SLEEPTIME*1) end end

inst:AddComponent("tool") inst.components.tool:SetAction(ACTIONS.PLAY)

inst:AddComponent("instrument")

inst.components.instrument.range = TUNING.PANFLUTE_SLEEPRANGE*2 inst.components.instrument:SetOnHeardFn(HearPanFlute)

¼´¿ÉÓÃ«έ´µ³ö´ßÃßÇú¡£ÆäÖÐ*1Ϊ´ßÃßʱ¼ä20Ã룬Ïë´ßÃß60Ãë¾Í*3¼´¿É¡£ÆäÖÐ*2Ϊ´ßÃß·¶Î§30¸ñ£¬ÏëÀ©´óÖÁ60¸ñ¾Í*4¼´¿É

ËÄÊ®.×°±¸ÖíÆ¤°üÄܲ¹ÄÔ

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\piggyback.luainst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚ

ÈÝ£º

inst:AddComponent("dapperness")

inst.components.dapperness.dapperness = TUNING.DAPPERNESS_HUGE

¼´¿ÉʹÖíÆ¤°ü¾ß±¸²¹ÄÔ¹¦ÄÜ

ËÄʮһ.È«ÈËÎï¿ÉÖÆÔì´ò»ð»ú£¨Ô­À´Ö»ÓÐÞ±ÂåרÓã©

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\recipes.luaÎļþ£¬ÔÚRecipe("torch", {Ingredient("cutgrass",

2),Ingredient("twigs",

2)},

RECIPETABS.LIGHT,

TECH.NONE)µÄÏÂÒ»ÐвåÈëRecipe("lighter", {Ingredient("goldnugget", 1),Ingredient("nitre", 1)}, RECIPETABS.LIGHT, TECH.NONE)

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\lighter.luaÎļþ£¬½«inst:DoTaskInTime(0, function() if not GetPlayer() or GetPlayer().prefab ~= "willow" then inst:Remove() end end)ÐÞ¸ÄΪ--inst:DoTaskInTime(0, function() if not GetPlayer() or GetPlayer().prefab ~= "willow" then

Îļþ£¬ÔÚ

inst:Remove() end end)

¼´¿ÉÓÃ1¸ö½ð¿é¡¢1¸öÏõʯÔÚÕÕÃ÷Ñ¡ÏîÀïÖÆÔì´ò»ð»ú

ËÄÊ®¶þ.È«ÈËÎï¿ÉÖÆÔìÎéµÏµÄ¸«×Ó£¨8Ï¿³µ¹1¿ÃÊ÷£¬ÆÕͨ¸«×Ó15Ï£©

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\recipes.luaÎļþ£¬ÔÚRecipe("razor", {Ingredient("twigs",

2),

Ingredient("flint",

2)},

RECIPETABS.TOOLS,

TECH.SCIENCE_ONE)µÄÏÂÒ»ÐвåÈëRecipe("Lucy", {Ingredient("twigs", 4), Ingredient("goldnugget", 4)}, RECIPETABS.TOOLS, TECH.SCIENCE_ONE)

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\lucy.luaÎļþ£¬½«ÏÂÁÐÄÚÈÝ£º

inst:AddComponent("sentientaxe")

inst:DoTaskInTime(0, function() if not GetPlayer() or GetPlayer().prefab ~= "woodie" then inst:Remove() end end) ÐÞ¸ÄΪ£º

--inst:AddComponent("sentientaxe")

--inst:DoTaskInTime(0, function() if not GetPlayer() or GetPlayer().prefab ~= "woodie" then inst:Remove() end end)

¼´¿ÉÓÃ4¸öÊ÷辡¢4¸ö½ð¿éÔÚ¹¤¾ßÑ¡ÏîÀïÖÆÔìÎéµÏµÄ¸«×Ó

ËÄÊ®Èý.È«ÈËÎï¿ÉÖÆÔìħ·¨Êé

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\recipes.luaÎļþ£¬ÔÚRecipe("batbat", {Ingredient("batwing", ÏÂÄÚÈÝ£º

Recipe("book_birds", Recipe("book_gardening", Ingredient("seeds", TECH.MAGIC_TWO)

Recipe("book_sleep", Recipe("book_brimstone",

{Ingredient("papyrus", {Ingredient("papyrus",

2), 2),

Ingredient("nightmarefuel", 2)}, RECIPETABS.MAGIC, TECH.MAGIC_TWO)

1),

{Ingredient("papyrus", {Ingredient("papyrus",

Ingredient("poop",

1)},

2), 2),

Ingredient("bird_egg", 2)}, RECIPETABS.MAGIC, TECH.MAGIC_TWO)

RECIPETABS.MAGIC,

5),

Ingredient("livinglog",

2),

Ingredient("purplegem", 1)}, RECIPETABS.MAGIC, TECH.MAGIC_THREE)µÄÏÂÒ»ÐвåÈëÒÔ

Ingredient("redgem", 1)}, RECIPETABS.MAGIC, TECH.MAGIC_TWO) Recipe("book_tentacles",

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\player_common.luainst:AddComponent("temperature")inst:AddComponent("reader")

¼´¿ÉÔÚħ·¨Ñ¡ÏîÀïÖÆÔìħ·¨Êé

ËÄÊ®ËÄ.ÑÓ³¤±ùÏä±£ÏÊʱ¼ä

ÓüÇʱ¾

´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«PERISH_FRIDGE_MULT = .5ÐÞ¸ÄΪPERISH_FRIDGE_MULT = .01¼´¿É

ËÄÊ®Îå.±³°ü¿ÉÀä²ØÊ³Æ·

1.ÆÕͨ±³°ü¿ÉÀä²ØÊ³Æ·£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\backpack.luaÎļþ£¬ÔÚlocal inst = CreateEntity()µÄÏÂÒ»ÐвåÈëinst:AddTag("fridge")

2.СÖí°ü¿ÉÀä²ØÊ³Æ·£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\piggyback.luaÎļþ£¬ÔÚlocal inst = CreateEntity()µÄÏÂÒ»ÐвåÈëinst:AddTag("fridge")

3.¿²ÆÕ˹±³°ü¿ÉÀä²ØÊ³Æ·£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\krampus_sack.luaÎļþ£¬ÔÚlocal inst = CreateEntity()µÄÏÂÒ»ÐвåÈëinst:AddTag("fridge")

¼´¿ÉÈñ³°ü¾ß±¸À䲨¹¦ÄÜ

ËÄÊ®Áù.ÖÖ×Ó¸¯ÀñäÂý

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«PERISH_SUPERSLOW =

µÄ

ÏÂ

Ò»

ÐÐ

Îļþ£¬ÔÚ²å

Èë

{Ingredient("papyrus",

2),

Ingredient("tentaclespots", 1)}, RECIPETABS.MAGIC, TECH.MAGIC_TWO)

40*total_day_time*perish_warp,ÐÞ¸ÄΪPERISH_SUPERSLOW = 200*total_day_time*perish_warp,¼´¿É

ËÄÊ®Æß.´©Ç½Êõ£¨¶¼È¦ÆðÀ´°É£¬²»ÐèÒªÁôÃÅÁË£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\walls.luaÎļþ£¬

1.ÔÚÏÂÁÐÄÚÈÝ£º

local function onremoveentity(inst) --print("walls - onremoveentity") clearobstacle(inst) end

µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function turnon(inst)

inst.components.machine.ison = true clearobstacle(inst) end

local function turnoff(inst)

inst.components.machine.ison = false makeobstacle(inst) end

2.ÔÚinst.components.workable:SetOnWorkCallback(onhit)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("machine") inst.components.machine.turnonfn = turnon inst.components.machine.turnofffn = turnoff

¶Ôǽ°´Êó±êÓÒ¼ü¼´¿Éͨ¹ý£¬ÔÙ°´Êó±êÓÒ¼üÔò»Ö¸´Ç½µÄ×èµ²

ËÄÊ®°Ë.Ôö¼ÓǽµÄÄ;ÃÁ¦

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º HAYWALL_HEALTH = 100,

WOODWALL_HEALTH = 200, STONEWALL_HEALTH = 400, ÐÞ¸ÄΪ£º

HAYWALL_HEALTH = 1000, WOODWALL_HEALTH = 2000, STONEWALL_HEALTH = 4000,

¼´¿ÉÔö¼ÓǽµÄÄ;ÃÁ¦10±¶

ËÄÊ®¾Å.ǽ±ÚÓÀ¹Ì£¨×Ô¼º¿ÉÔÒ£¬¹ÖÎïÎÞ·¨ÆÆ»µ£© ÓÃ

inst.components.health:SetInvincible(true)

¼´¿ÉÈÃǽ±ÚÓÀ¹Ì

ÎåÊ®.ÈÃÓÎÏ·ÖеÄÒ»Ìì¸üÂþ³¤£¨1Ìì´ÓÕæÊµÊÀ½çµÄ8·ÖÖÓÐÞ¸ÄΪ16·ÖÖÓ£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«local seg_time = 30ÐÞ¸ÄΪlocal seg_time = 60¼´¿É

Îåʮһ.Ð޸İ×Ìì¡¢°øÍí¡¢ºÚÒ¹Õ¼Ò»ÌìµÄ±ÈÀý

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬²éÕÒÒÔÏÂÄÚÈÝ£º

local day_segs = 10 °×ÌìСʱÊý local dusk_segs = 4 °øÍíСʱÊý local night_segs = 2 ºÚҹСʱÊý

ÐÞ¸ÄÿÐÐ×îºóµÄÊý×Ö£¬¼´¿É

¼Ç

ÊÂ

±¾

´ò

¿ª

ÓÎ

Ï·

Ä¿

¼

\\data\\scripts\\prefabs\\walls.lua

ÎÄ

¼þ

£¬

ÔÚ

inst:AddTag("noauradamage")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

Ð޸İ×Ìì¡¢°øÍí¡¢ºÚÒ¹Õ¼Ò»ÌìµÄ±ÈÀý£¬×ÜÊý²»Òª³¬¹ý16

ÎåÊ®¶þ.µØÍ¼È«¿ª£¨ÓÎÏ·Öа´Ctrl +1£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\main.luaÎļþ£¬ÔÚKnownModIndex:Load(function() end)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

TheInput:AddKeyUpHandler(KEY_1, function() if TheInput:IsKeyDown(KEY_CTRL) then

local MainCharacter = TheSim:FindFirstEntityWithTag("player") local map = TheSim:FindFirstEntityWithTag("minimap") if MainCharacter and map then

local x, y, z = MainCharacter.Transform:GetWorldPosition() map.MiniMap:ShowArea(x, y, z, 10000) end end end );

¼´¿ÉÔÚÓÎÏ·Öа´Ctrl + 1ʹµØÍ¼È«¿ª¡£Õâ²»ÊÇÎÒµÄÑо¿£¬ÊÇ×ªÔØÀ´µÄ£¬ÒÔ·½±ã´ó¼Ò

ÎåÊ®Èý.Ëõ¶Ì²Ý¡¢Ê÷辡¢Â«Î­¡¢¶´Ñ¨»¨³¤³öʱ¼ä

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º GRASS_REGROW_TIME = total_day_time*3, SAPLING_REGROW_TIME = total_day_time*4, REEDS_REGROW_TIME = total_day_time*3, FLOWER_CAVE_REGROW_TIME = total_day_time*3, ÐÞ¸ÄΪ£º

GRASS_REGROW_TIME = total_day_time*1, SAPLING_REGROW_TIME = total_day_time*1, REEDS_REGROW_TIME = total_day_time*1, FLOWER_CAVE_REGROW_TIME = total_day_time*1,

¼´¿ÉÈÃÕ⼸ÖÖÖ²Îï1Ì쳤1´Î

ÎåÊ®ËÄ.Öֲݲ»ÓÃÊ©·Ê

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\grass.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

inst.components.pickable:MakeBarren()

inst.components.pickable.makebarrenfn = makebarrenfn inst.components.pickable.makefullfn = makefullfn inst.components.pickable.max_cycles = 20 inst.components.pickable.cycles_left = 20 ÐÞ¸ÄΪ£º

inst.components.pickable:MakeEmpty()

--inst.components.pickable.makebarrenfn = makebarrenfn --inst.components.pickable.makefullfn = makefullfn --inst.components.pickable.max_cycles = 20 --inst.components.pickable.cycles_left = 20

¼´¿ÉÖֲݲ»ÓÃÊ©·Ê

ÎåÊ®Îå.ÓëέÖÖֲ«έ£¨·ÖÖêÖÖÖ²£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\cutreeds.luaÎļþ£¬inst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

local function OnDeploy (inst, pt)

local reeds = SpawnPrefab("reeds") if reeds then

reeds:PushEvent("growfromcutreeds") reeds.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end end

inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy

¼´¿ÉÓëέÖÖֲ«έ£¨·ÖÖêÖÖÖ²£©£¬Èç¹ûÏëÒÆÖ²£¬Ô­À´µÄ«έ¸ù²»ÏëÁô£¬Óûð¾æÉÕµô¼´¿É

ÔÚ

ÎåÊ®Áù.ÓÃľͷ¡¢Ä¾Ì¿¡¢»ÒÖÖֲʯ¿ó£¨¿É³ÖÐø·¢Õ¹£©

1.ÓÃľͷÖÖµÚÒ»ÖÖʯ¿ó£¨Ö»ÓÐʯͷ£©£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\log.luaÎļþ£¬ÔÚinst:AddComponent("stackable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function OnDeploy (ins

t, pt)

local rock_flintless = SpawnPrefab("rock_flintless") if rock_flintless then

rock_flintless:PushEvent("growfromlog") rock_flintless.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end end

inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy

2.ÓÃľ̿ÖÖµÚ¶þÖÖʯ¿ó£¨´øÏõʯµÄ£©£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\charcoal.luaÎļþ£¬ÔÚinst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function OnDeploy (inst, pt)

local rock1 = SpawnPrefab("rock1") if rock1 then

rock1:PushEvent("growfromcharcoal") rock1.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end end

inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy

3.ÓûÒÖÖµÚÈýÖÖʯ¿ó£¨´ø»Æ½ðµÄ£©£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\ash.luaÎļþ£¬ÔÚinst.AnimState:PlayAnimation("idle")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function OnDeploy (inst, pt)

local rock2 = SpawnPrefab("rock2") if rock2 then

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

Îļþ£¬ÔÚ

local tile = ground.Map:GetTileAtPoint(pos.x, pos.y, pos.z)

return tile ~= GROUND.IMPASSIBLE and tile < GROUND.UNDERGROUND end return false end

local function createlight(staff, target, pos) local light = SpawnPrefab("perd") light.Transform:SetPosition(pos.x, pos.y, pos.z) local caster = staff.components.inventoryitem.owner end

inst:AddComponent("spellcaster") inst.components.spellcaster:SetSpellFn(createlight) inst.components.spellcaster:SetSpellTestFn(cancreatelight)

inst.components.spellcaster.canuseonpoint = true inst.components.spellcaster.canusefrominventory = false

¼´¿É×°±¸»ØÐýïÚºó£¬ÔÚ¿ÕµØÉϵãÊó±êÓÒ¼üÕÙ»½»ð¼¦¡£ÆäÖÐperd£¨»ð¼¦£©¿ÉÒÔÌæ»»ÎªÆäËûÎïÆ·

ÁùÊ®Èý.È®ÑÀ·ÉïÚ£¨×°±¸È®ÑÀ£¬Ò»ÕÐÖÆµÐ£©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\houndstooth.luaÎļþ£¬

1.ÔÚÏÂÁÐÄÚÈÝ£º

local assets= {

Asset("ANIM", "anim/hounds_tooth.zip"), }

µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function onequip(inst, owner)

owner.AnimState:OverrideSymbol("swap_object", "swap_houndstooth")

owner.AnimState:Show("ARM_carry") owner.AnimState:Hide("ARM_normal") end

"swap_houndstooth",

local function onunequip(inst, owner)

owner.AnimState:ClearOverrideSymbol("swap_object") owner.AnimState:Hide("ARM_carry") owner.AnimState:Show("ARM_normal") end

local function onhit(inst, attacker, target)

local impactfx = SpawnPrefab("impact") if impactfx then

local follower = impactfx.entity:AddFollower()

follower:FollowSymbol(target.GUID, target.components.combat.hiteffectsymbol, 0, 0, 0 ) impactfx:FacePoint(Vector3(attacker.Transform:GetWorldPosition())) end

inst:Remove() end

local function onthrown(inst, data)

inst.AnimState:SetOrientation( ANIM_ORIENTATION.OnGround ) end

2.ÔÚinst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("weapon") inst.components.weapon:SetDamage(3000) inst.components.weapon:SetRange(15, 18)

inst:AddComponent("equippable") inst.components.equippable:SetOnEquip(onequip) inst.components.equippable:SetOnUnequip(onunequip) inst.components.equippable.equipstack = true

inst:AddComponent("projectile") inst.components.projectile:SetSpeed(60) inst.components.projectile:SetOnHitFn(onhit) inst:ListenForEvent("onthrown", onthrown)

¼´¿ÉʹȮÑÀ³ÉΪװ±¸µÄÎäÆ÷£¬Ë¦³öÈ¥¿ÉÒ»ÕÐÖÆµÐ¡£ÓÃÈ®ÑÀÖÆÔìÎïÆ·Ê±£¬·ÅÔÚ·Ç×°±¸¸ñ£¨ÆÕͨ¿â´æ¸ñ»ò±³°ü¸ñ£©¼´¿É

ÁùÊ®ËÄ.ÖÖ¸¯ÀÃʳÎïµÃ¸ß

Äñ£¬¸ßÄñÎÞ¹¥»÷ÐÐΪ¡¢Ï¸ßÄñµ°£¬¸ßÄñµ°¿É¶Ñµþ

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\spoiledfood.luaÎļþ£¬ÔÚ

inst.components.edible.hungervalue = TUNING.SPOILED_HUNGERµÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

local function OnDeploy (inst, pt)

local tallbird = SpawnPrefab("tallbird") if tallbird then

tallbird:PushEvent("growfromspoiledfood") tallbird.Transform:SetPosition(pt.x, pt.y, pt.z) inst.components.stackable:Get():Remove() end end

inst:AddComponent("deployable") inst.components.deployable.ondeploy = OnDeploy

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\tallbird.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

inst.components.combat:SetRange(TUNING.TALLBIRD_ATTACK_RANGE) ÐÞ¸ÄΪ£º

inst.components.combat:SetRange(TUNING.TALLBIRD_ATTACK_RANGE*0)

ÔÚinst:AddComponent("inspectable")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("periodicspawner")

inst.components.periodicspawner:SetPrefab("tallbirdegg") inst.components.periodicspawner:SetRandomTimes(80, 110) inst.components.periodicspawner:SetDensityInRange(20, 2) inst.components.periodicspawner:SetMinimumSpacing(8) inst.components.periodicspawner:Start()

3.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\tallbirdegg.luainst:AddComponent("edible")µÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

inst:AddComponent("stackable")

inst.components.stackable.maxsize = TUNING.STACK_SIZE_SMALLITEM

Îļþ£¬ÔÚ

ÁùÊ®Îå.ÇàÄê¸ßÄñ²»³¤´ó£¬²¢Ôö¼ÓѪÁ¿¼°¹¥»÷Á¦£¬Î¹Ê³¿ÉÖØÐÂÈÏÈË

1.ÇàÄê¸ßÄñ18000Ìì²»³¤´ó£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\smallbird.luaÎļþ£¬½«return TUNING.TEENBIRD_GROW_TIMEÌæ»»Îªreturn TUNING.TEENBIRD_GROW_TIME*1000¼´¿É

2.Ìá¸ßÇàÄê¸ßÄñѪÁ¿µ½30000µã£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\smallbird.luaÎļþ£¬½«

3.Ìá¸ßÇàÄê¸ßÄñ¹¥»÷Á¦µ½180µã£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\smallbird.luaÎļþ£¬½«

4.ͨ¹ýιʳÈøßÄñÖØÐÂÈÏÈË£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\smallbird.luaÎļþ£¬ÔÚ--print("smallbird - OnGetItemFromPlayer")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local player = GetPlayer()

if player and player.components.leader then player.components.leader:AddFollower(inst) end

ÁùÊ®Áù.ι×ÔÑø¸ßÄñ²ú±ã±ã

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\smallbird.luaÎļþ£¬ÔÚlocal function OnEat(inst, food)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

if food.components.edible then

local poo = SpawnPrefab("poop") poo.Transform:

SetPosition(inst.Transform:GetWorldPosition()) end

¼´¿Éι×ÔÑø¸ßÄñ²ú±ã±ã

inst.components.combat:SetDefaultDamage(TUNING.TEENBIRD_DAMAGE)

Ìæ

»»

Ϊ

inst.components.combat:SetDefaultDamage(TUNING.TEENBIRD_DAMAGE*5)

inst.components.health:SetMaxHealth(TUNING.TEENBIRD_HEALTH)

Ìæ

»»

Ϊ

inst.components.health:SetMaxHealth(TUNING.TEENBIRD_HEALTH*100)¼´¿É

ÁùÊ®Æß.×ÔÑø¸ßÄñ²»ÓÃιʳ£¨²»ÒªÓëι×ÔÑø¸ßÄñ²ú±ã±ãͬʱÐ޸ģ©

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\smallbird.luaÎļþ£¬½«ÏÂÁÐÄÚÈÝ£º

inst:AddComponent("hunger")

inst.components.hunger:SetMax(TUNING.SMALLBIRD_HUNGER)

inst.components.hunger:SetRate(TUNING.SMALLBIRD_HUNGER/TUNING.SMALLBIRD_STARVE_TIME) inst.components.hunger:SetKillRate(TUNING.SMALLBIRD_HEALTH/TUNING.SMALLBIRD_STARVE_KILL_TIME)

inst.components.hunger:SetMax(TUNING.TEENBIRD_HUNGER)

inst.components.hunger:SetRate(TUNING.TEENBIRD_HUNGER/TUNING.TEENBIRD_STARVE_TIME) inst.components.hunger:SetKillRate(TUNING.TEENBIRD_HEALTH/TUNING.TEENBIRD_STARVE_KILL_TIME)

ÐÞ¸ÄΪ£º

--inst:AddComponent("hunger")

--inst.components.hunger:SetMax(TUNING.SMALLBIRD_HUNGER)

--inst.components.hunger:SetRate(TUNING.SMALLBIRD_HUNGER/TUNING.SMALLBIRD_STARVE_TIME)

--inst.components.hunger:SetKillRate(TUNING.SMALLBIRD_HEALTH/TUNING.SMALLBIRD_STARVE_KILL_TIME)

--inst.components.hunger:SetMax(TUNING.TEENBIRD_HUNGER)

--inst.components.hunger:SetRate(TUNING.TEENBIRD_HUNGER/TUNING.TEENBIRD_STARVE_TIME) --inst.components.hunger:SetKillRate(TUNING.TEENBIRD_HEALTH/TUNING.TEENBIRD_STARVE_KILL_TIME)

¼´¿ÉÈÃ×ÔÑø¸ßÄñ²»ÓÃιʳ

ÁùÊ®°Ë.ÑÀ³ÝÏÝÚå²»É˺¦×ÔÑø¸ßÄñ

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\trap_teeth.luaÎļþ£¬½«if target thenÌæ»»Îªif target and not target:HasTag("smallbird") then¼´¿É

ÁùÊ®¾Å.Ö÷½Ç´øÈâ²»±»ÍÃÈ˹¥»÷

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\bunnyman.lua

Îļþ£¬½«

if

guy:HasTag("player")Ìæ»»Îªif guy:HasTag("monster")¼´¿É£¬×¢ÒâÌæ»»µÄÖ»ÊÇ

Ò»¾äÖеÄÒ»²¿·Ö£¬Óï¾äÆäËû²¿·Ö²»Òª¶¯

ÆßÊ®.ÖíÈËÓÀ¾Ã¸úËæ

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\pigman.luaÎļþ£¬ 1.

--inst.components.follower:AddLoyaltyTime(item.components.edible:GetHunger() TUNING.PIG_LOYALTY_PER_HUNGER)

2.½«inst.components.follower.maxfollowtime = TUNING.PIG_LOYALTY_MAXTIMEÌæ»»ÎªÒÔÏÂÄÚÈÝ£º

--inst.components.follower.maxfollowtime = TUNING.PIG_LOYALTY_MAXTIME

¼´¿ÉÈÃÖíÈËÓÀ¾Ã¸úËæ£¬¶öÁËÒ²²»»áÀ뿪¡£µ«ÍíÉÏÒ»ÑùÐèÒª¸øËüµã»ð£¬Ëü»á´ôÔÚ»ðÅÔ£¬µ½°×Ìì¼ÌÐø¸úËæ

Æßʮһ.ιÄñ·èÈâµÃ±¦Ê¯

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\birdcage.luaÎļþ£¬

1.½«if item.prefab == "egg" or item.prefab == "bird_egg" or item.prefab == "rottenegg" or item.prefab == "monstermeat" thenÌæ»»ÎªÒÔÏÂÄÚÈÝ£º

if item.prefab == "egg" or item.prefab == "bird_egg" or item.prefab == "rottenegg" then

2.ÔÚinst:DoTaskInTime(60*FRAMES, function()µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

if item.prefab == "monstermeat" then

inst.components.lootdropper:SpawnLootPrefab("redgem") inst.components.lootdropper:SpawnLootPrefab("bluegem")

*

½«

inst.components.follower:AddLoyaltyTime(item.components.edible:GetHunger()

*

TUNING.PIG_LOYALTY_PER_HUNGER)Ìæ»»ÎªÒÔÏÂÄÚÈÝ£º

inst.components.lootdropper:SpawnLootPrefab("orangegem") inst.components.lootdropper:SpawnLootPrefab("yellowgem") inst.components.lootdropper:SpawnLootPrefab("greengem") inst.components.lootdropper:SpawnLootPrefab("purplegem") end

¼´¿É¸øÄñÁýÖеÄÄñι·èÈâµÃ±¦Ê¯¡£ÐÞ¸ÄÆäÖÐredgem¡¢bluegem¡¢orangegem¡¢yellowgem¡¢greengem¡¢purplegem±¦Ê¯Ãû³ÆÎªÆäËûÎïÆ·Ãû³Æ£¬¼´¿ÉιÄñ³Ô·èÈâµÃÆäËûÎïÆ·

ÆßÊ®¶þ.Å©ÌïÊÕ»ñ¸ü¶à²úÆ·

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\components\\crop.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

harvester.components.inventory:GiveItem(product) Ìæ»»Îª£º

harvester.components.inventory:GiveItem(SpawnPrefab(self.product_prefab)) harvester.components.inventory:GiveItem(SpawnPrefab(self.product_prefab)) harvester.components.inventory:GiveItem(SpawnPrefab(self.product_prefab))

¼´¿ÉÒ»´ÎÊÕ»ñ

ÆßÊ®Èý.Å©×÷Îï1Ã볤³öÀ´

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\seeds.luainst.components.plantable.growtime

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\veggies.luainst.components.plantable.growtime

¼´¿ÉÈÃËùÓÐÅ©×÷Îï1Ã볤³ö

ÆßÊ®ËÄ.ÁÀÈâÎÞÐèµÈ´ý£¨½«Èâ·ÅÔÚÁÀÈâ¼ÜÉϼ´¸É£©

=

TUNING.SEEDS_GROW_TIME

inst.components.plantable.growtime = TUNING.SEEDS_GROW_TIME*0

Îļþ£¬½«ÐÞ

¸Ä

Ϊ

=

TUNING.SEEDS_GROW_TIME

inst.components.plantable.growtime = TUNING.SEEDS_GROW_TIME*0

Îļþ£¬½«ÐÞ

¸Ä

Ϊ

3

¸ö²úÆ·£¬ÏëÊÕ»ñ¶àÉÙ£¬¾Í¸´ÖƶàÉÙÐÐ

harvester.components.inventory:GiveItem(SpawnPrefab(self.product_prefab))¼´¿É

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\meats.luainst.components.dryable:SetDryTime(TUNING.DRY_FAST)inst.components.dryable:SetDryTime(TUNING.DRY_FAST*0) ½«

2.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\fish.luainst.components.dryable:SetDryTime(TUNING.DRY_FAST)inst.components.dryable:SetDryTime(TUNING.DRY_FAST*0)

3.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\froglegs.luainst.components.dryable:SetDryTime(TUNING.DRY_FAST)inst.components.dryable:SetDryTime(TUNING.DRY_FAST*0)

¼´¿ÉÁÀÈâÎÞÐèµÈ´ý£¬°üÀ¨ÈâÀà¡¢Óã¡¢ÍÜÍÈ

ÆßÊ®Îå.ÖóÒ»¹øÊÕ¶à¸öÁÏÀí

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\components\\stewer.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

if loot and loot.components.perishable then

loot.components.perishable:SetPercent( self.product_spoilage) end harvester.

components.inventory:GiveItem(loot, Vector3(TheSim:GetScreenPos(self.inst.Transform:GetWorldPosition()))) Ìæ»»Îª£º

local pt = Vector3(TheSim:GetScreenPos(self.inst.Transform:GetWorldPosition())) harvester.components.inventory:GiveItem(SpawnPrefab(self.product), nil, pt) harvester.components.inventory:GiveItem(SpawnPrefab(self.product), nil, pt) harvester.components.inventory:GiveItem(SpawnPrefab(self.product), nil, pt)

¼´¿ÉÖóÒ»¹øÊÕ

3

¸öÁÏÀí£¬ÏëÊÕ¶àÉÙ£¬¾Í¸´ÖƶàÉÙÐÐ

harvester.components.inventory:GiveItem(SpawnPrefab(self.product), nil, pt)¼´¿É

nil,

ÐÞ

Îļþ£¬½«¸Ä

Ϊ

ÐÞ

Îļþ£¬½«¸Ä

Ϊ

¹²

¶þ

¾ä

inst.components.dryable:SetDryTime(TUNING.DRY_MED)

ÐÞ

¸Ä

Ϊ

inst.components.dryable:SetDryTime(TUNING.DRY_MED*0)

ÐÞ

Îļþ£¬½«¹²Èý¾ä

¸Ä

Ϊ

ÆßÊ®Áù.Ëõ¶ÌÖóÁÏÀíʱ¼ä

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«BASE_COOK_TIME = night_time*.3333,ÐÞ¸ÄΪBASE_COOK_TIME = seg_time*.01,¼´¿É

ÆßÊ®Æß.Ëõ¶ÌµöÓãʱ¼ä

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º

FISHING_MINWAIT = 2, FISHING_MAXWAIT = 20, ÐÞ¸ÄΪ£º

FISHING_MINWAIT = 1, FISHING_MAXWAIT = 5,

¼´¿ÉËõ¶ÌµöÓãʱ¼ä

ÆßÊ®°Ë.ÊÕ»ñ·äÏä²»±»ÕÝ

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\beebox.luainst.components.childspawner:ReleaseAllChildren(picker)Ìæ»»ÎªÒÔÏÂÄÚÈÝ£º

--inst.components.childspawner:ReleaseAllChildren(picker)

¼´¿ÉÔÚÊÕ»ñ·äÏäʱ²»·É³öÃÛ·ä

ÆßÊ®¾Å.¿ÕÊÖ×¥Ã۷䡢ɱÈË·ä¡¢ºûµû¡¢Ó©»ð³æ£¨ÓóÈÉ«»¤Éí·û¿ÉÒÔ¿ìËÙÎüÈ¡£©

1.¿ÕÊÖ×¥Ã۷䡢ɱÈ˷䣺ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\bee.luaÎļþ£¬½«inst.components.inventoryitem.canbepickedup inst.components.inventoryitem.canbepickedup = true

2.¿ÕÊÖ×¥ºûµû£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\butterfly.luaÎļþ£¬½«

=

false

Ìæ

»»

Ϊ

Îļþ£¬½«

inst.components.inventoryitem.canbepickedup inst.components.inventoryitem.canbepickedup = true

= falseÌæ»»Îª

3.¿ÕÊÖ×¥Ó©»ð³æ£ºÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\fireflies.luaÎļþ£¬½«inst.components.inventoryitem.canbepickedup inst.components.inventoryitem.canbepickedup = true

¼´¿É¿ÕÊÖ×¥Ã۷䡢ɱÈË·ä¡¢ºûµû¡¢Ó©»ð³æ£¨ÓÃÐ¡ÍøÒ²Ì«ÄïÁ˰ɣ©

°ËÊ®.×°±¸²¶ÄñÆ÷¿ÉÎüÄñ£¨Ëü¾ø²»º±ÓУ¬Íù½ÖÀïÈÆ¹ýÒ»ÖÜ£¬Ëü±ã»¯ÎÚÓУ©

1.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\birdtrap.luaÎļþ£¬ÔÚ--this should be redone as a periodic test, probably, so that we can control the expected return explicitlyµÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

local function SpawnEffect(inst) local pt = inst:GetPosition()

local fx = SpawnPrefab("small_puff") fx.Transform:SetPosition(pt.x, pt.y, pt.z) fx.Transform:SetScale(0.5,0.5,0.5) end

local function getitem(player, amulet, item) SpawnEffect(item)

if item.components.stackable then item = item.components.stackable:Get() end

player.components.invento

ry:GiveItem(item) end

local function pickup(inst, owner) local pt = owner:GetPosition()

local ents = TheSim:FindEntities(pt.x, pt.y, pt.z, TUNING.ORANGEAMULET_RANGE*5)

for k,v in pairs(ents) do if

v.components.inventoryitem

and

v.components.inventoryitem.canbepickedup

and

v.components.inventoryitem.cangoincontainer and v:HasTag("bird") and not v.components.inventoryitem:IsHeld() then

=

false

Ìæ

»»

Ϊ

if not owner.components.inventory:IsFull() then getitem(owner, inst, v) return

elseif v.components.stackable then

local stack = owner.components.inventory:FindItem(function(item) return (item.prefab == v.prefab and not item.components.stackable:IsFull()

and item ~= owner.components.inventory.activeitem) end) if stack then

getitem(owner, inst, v) return end end end end end

local function onequip(inst, owner)

owner.AnimState:OverrideSymbol("swap_body", "swap_birdtrap")

inst.task = inst:DoPeriodicTask(TUNING.ORANGEAMULET_ICD*.1, function() pickup(inst, owner) end) end

local function onunequip(inst, owner)

owner.AnimState:ClearOverrideSymbol("swap_body") if inst.task then inst.task:Cancel() inst.task = nil end end

2.ÔÚinst:AddComponent("inventoryitem")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("equippable") inst.components.equippable:SetOnEquip( onequip ) inst.components.equippable:SetOnUnequip( onunequip ) inst.components.equippable.equipslot = EQUIPSLOTS.BODY

3.ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\birds.luainst.components.inventoryitem.canbepickedup inst.components.inventoryitem.canbepickedup = true

4.ÔÚinst:AddComponent("occupier")µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

=

false

Ìæ

Îļþ£¬½«

»»

Ϊ

"swap_birdtrap",

inst:AddComponent("stackable")

inst.components.stackable.maxsize = TUNING.STACK_SIZE_SMALLITEM

¼´¿É×°±¸²¶ÄñÆ÷¿ÉÎüÄñ

°Ëʮһ.°×ÌìÒ²ÄÜ˯ÕÊÅñ£¬Ë¯ÕÊÅñ²»¼õ¼¢¶ö

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\tent.luaÎļþ£¬

1.ɾ³ýÏÂÁÐÄÚÈÝ£º

if GetClock():IsDay() then if sleeper.components.talker then

sleeper.components.talker:Say(GetString(inst.prefab, "ANNOUNCE_NODAYSLEEP")) return end end

2.ɾ³ýÏÂÁÐÄÚÈÝ£º

if GetClock():IsDay() then

if sleeper.components.talker then

sleeper.components.talker:Say(GetString(inst.prefab, "ANNOUNCE_NODAYSLEEP")) sleeper.components.health:SetInvincible(false) sleeper.components.playercontroller:Enable(true) return end end 3.½«

¼´¿É°×ÌìÒ²ÄÜ˯ÕÊÅñ£¬Ë¯ÕÊÅñ²»¼õ¼¢¶ö

sleeper.components.hunger:DoDelta(-TUNING.CALORIES_HUGE,

false,

true)Ìæ»»Îª

--sleeper.components.hunger:DoDelta(-TUNING.CALORIES_HUGE, false, true)

°ËÊ®¶þ.Óø¯ÀÃʳÎïÖÖ³ö³ØÌÁ

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\prefabs\\spoiledfood.lua

local function OnDeploy (inst, pt)

local pond = SpawnPrefab("pond") if pond then

pond:PushEvent("growfromspoiledfood") pond.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\\pond.luaÎļþ£¬

1.ÔÚÏÂÁÐÄÚÈݵÄÏÂÒ»ÐУº

local prefabs = {

"marsh_plant", "fish", "frog", "mosquito", }

²åÈëÒÔÏÂÄÚÈÝ£º

local function dig_up(inst, chopper) inst:Remove() end

Îļþ£¬ÔÚ

inst.components.edible.hungervalue = TUNING.SPOILED_HUNGERµÄÏÂÒ»ÐвåÈëÏÂÁÐÄÚÈÝ£º

2.ÔÚinst.components.fishable:SetRespawnTime(TUNING.FISH_RESPAWN_TIME)µÄÏÂÒ»ÐвåÈëÒÔÏÂÄÚÈÝ£º

inst:AddComponent("workable")

inst.components.workable:SetWorkAction(ACTIONS.DIG) inst.components.workable:SetOnFinishCallback(dig_up) inst.components.workable:SetWorkLeft(1)

¼´¿É½«³ØÌÁÓòù×ÓÍÚµô

°ËÊ®ËÄ.³ýµôÈ«²¿Æó¶ì¼°Æó¶ì±ù£¨ÊÀ½ç´Ó´ËÇå¾²ÁË£© ÓÃ

¼Ç

ÊÂ

±¾

´ò

¿ª

ÓÎ

Ï·

Ä¿

¼

\\data\\scripts\\prefabs\\forest.lua

Ìæ

ÎÄ»»

¼þ

£¬

½«Îª

inst:AddComponent("penguinspawner")¶ì²»»áÔÙÉú

°ËÊ®Îå.ÑÓ³¤È¼ÁÏȼÉÕʱ¼ä

ÓüÇʱ¾´ò¿ªÓÎϷĿ¼\\data\\scripts\\tuning.luaÎļþ£¬½«ÒÔÏÂÄÚÈÝ£º TINY_FUEL = seg_time*.25, SMALL_FUEL = seg_time * .5, MED_FUEL = seg_time * 1.5, MED_LARGE_FUEL = seg_time * 3, LARGE_FUEL = seg_time * 6, ÐÞ¸ÄΪ£º

TINY_FUEL = seg_time*1.25, SMALL_FUEL = seg_time * 2.5, MED_FUEL = seg_time * 7.5, MED_LARGE_FUEL = seg_time * 12, LARGE_FUEL = total_day_time*1,

ÓÎÏ·ÖÐseg_time£¨Ð¡Ê±£©Êý²»Òª³¬¹ý16£¬»áÌø³ö¡£Èç¹ûÏë¸Ä³¬¹ýÒ»Ìì¾ÍÓÃtotal_day_time*1,ÕâÑùµÄ¸ñʽ

--inst:AddComponent("penguinspawner")¼´¿É£¬´æµµÖÐÒѾ­Éϰ¶µÄÆó¶ìÇëÊÖ¶¯ÏûÃð£¬Æó