admin管理员组文章数量:1532187
2024年3月30日发(作者:)
light:SetColour(colours[_idx][1],colours[_idx][2],colours[
_idx][3])
inst:AddTag("character")
即可让全部主角吹进化版气球,空气球在生存选项(画着绳套)下,用1个草制造。官
方原本的气球只有wes有,且功能很烂,所以我改造了一下
一六一.瑞士手杖(砍树、凿石、锤墙、挖草、取暖、补脑、瞬移、10倍攻击力、2倍速度、
照明,18版及以后游戏使用)
用记事本打开游戏目录文件,
1.在local function onequip(inst, owner)的下一行插入:Enable(true)
2.在local function onunequip(inst, owner)的下一行插入:Enable(false)
3.在anim:PlayAnimation("idle")的下一行插入以下内容:
inst:AddComponent("tool")
:SetAction(, 15)
:SetAction(, 15)
:SetAction(,15)
:SetAction()
inst:AddComponent("heater")
edheat = 100
inst:AddComponent("dapperness")
ness = NESS_HUGE
inst:AddComponent("blinkstaff")
local light = :AddLight()
light:SetFalloff(0.4)
light:SetIntensity(.7)
light:SetRadius(2.5)
light:SetColour(180/255, 195/255, 150/255)
light:Enable(true)
4.将:SetDamage(_DAMAGE)替换为
:SetDamage(_DAMAGE*10)
5.将eedmult = _SPEED_MULT替换为
eedmult = _SPEED_MULT*2
即可让手杖拥有瑞士军刀般的多功能。装备手杖时,在空地上点鼠标右键可瞬移,借此
可跳过较窄沟壑,少走冤枉路
一六二.神之矛(矛攻击时召唤闪电雷击敌人)
用记事本打开游戏目录文件,将
inst:AddComponent("weapon")替换为以下内容:
local function onattack(inst, attacker, target)
inst:StartThread(function()
for k = 1, 5 do
local pos = target:GetPosition()
GetSeasonManager():DoLightningStrike(pos)
:DoDelta(-100)
Sleep(0.3)
end
end)
end
inst:AddComponent("weapon")
:SetRange(20, 25)
:SetOnAttack(onattack)
:SetProjectile("bishop_charge")
即可让矛在攻击时召唤5道闪电,连续雷击敌人,会烧着附近的敌人。因为神之矛太过
凶猛,请远离自己的基地使用,也千万不要在带同伴时使用
一六三.钓金龟(用鱼竿将敌人变成黄金雕像,19版及以后游戏使用)
用记事本打开游戏目录文件,将下列内容:
inst:AddComponent("weapon")
:SetDamage(GROD_DAMAGE)
wear = 4
替换为:
local function onattack(inst, attacker, target)
SpawnPrefab("ruins_statue_mage").Transform:SetPosition(orm:GetWorld
Position())
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPos
ition())
target:Remove()
end
inst:AddComponent("weapon")
:SetDamage(0)
:SetRange(12, 15)
:SetOnAttack(onattack)
:SetProjectile("bishop_charge")
即可用鱼竿远距离攻击敌人时,把敌人变成黄金雕像,用锤子砸碎雕像可得宝石和铥矿
石。鱼竿在生存选项(画着绳套)下,用2个树杈、2个蛛丝制造
一六四.萌时代(扔蜂蜜将怪物变回童年)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onhit(inst, attacker, target)
local impactfx = SpawnPrefab("impact")
if impactfx then
local follower = :AddFollower()
follower:FollowSymbol(,
ectsymbol, 0, 0, 0 )
impactfx:FacePoint(Vector3(orm:GetWorldPosition()))
end
inst:Remove()
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPos
ition())
orm:SetScale(0.7, 0.7, 0.7)
if then
thealth = 1
lth = 1
end
if then
:SetDefaultDamage(0)
= nil
end
if tor then
ed = 1
eed = 1
end
end
local function onthrown(inst, data)
ate:SetOrientation( ANIM_nd )
end
inst:AddComponent("weapon")
:SetDamage(0)
:SetRange(20, 25)
inst:AddComponent("equippable")
tack = true
inst:AddComponent("projectile")
tile:SetSpeed(60)
tile:SetOnHitFn(onhit)
inst:ListenForEvent("onthrown", onthrown)
即可扔蜂蜜将怪物变成无害的童年怪物,怪物体型变小、生命值为1、没有攻击力、行
走缓慢。因为蜂蜜可装备,如果主角也想吃蜂蜜,请拿起蜂蜜对主角按鼠标右键
一六五.犬牙手雷(扔犬牙炸倒一大片)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onhit(inst, attacker, target)
local impactfx = SpawnPrefab("impact")
if impactfx then
local follower = :AddFollower()
follower:FollowSymbol(,
ectsymbol, 0, 0, 0 )
impactfx:FacePoint(Vector3(orm:GetWorldPosition()))
end
inst:Remove()
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
SpawnPrefab("explode_small").Transform:SetPosition(orm:GetWorldPositi
on())
local pos = Vector3(orm:GetWorldPosition())
GetClock():DoLightningLighting()
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.7,
0.02, .5, 40)
end
local function onthrown(inst, data)
ate:SetOrientation( ANIM_nd )
end
local function OnDeath(inst)
inst:DoTaskInTime(0, function()
:DoAreaAttack(inst, 8)
end)
end
inst:AddComponent("weapon")
:SetDamage(3000)
:SetRange(15, 18)
inst:AddComponent("combat")
:SetDefaultDamage(3000)
damagepercent = 0
inst:ListenForEvent("animover", OnDeath)
inst:AddComponent("equippable")
tack = true
inst:AddComponent("projectile")
tile:SetSpeed(60)
tile:SetOnHitFn(onhit)
inst:ListenForEvent("onthrown", onthrown)
即可在装备犬牙时,对一群敌人扔出(远距离对敌人按鼠标左键)炸倒一大片。犬牙手
雷不会伤到主角
一六六.高爆地雷(指南针放在地上作地雷)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容
local function OnExplodeFn(inst)
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
SpawnPrefab("explode_small").Transform:SetPosition(orm:GetWorldPositi
on())
local pos = Vector3(orm:GetWorldPosition())
GetClock():DoLightningLighting()
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.7,
0.02, .5, 40)
inst:Remove()
end
local function OnExplode(inst, target)
if target and not target:HasTag("smallbird") and not target:HasTag("chester")
then
OnExplodeFn(inst)
:DoDelta(-G_SUPERHUGE*30)
FightStat_TrapSprung(inst,nil,0)
end
end
local function OnDropped(inst)
:Deactivate()
end
local function ondeploy(inst, pt, deployer)
:Reset()
s:Teleport(pt:Get())
end
inst:AddComponent("mine")
:SetRadius(_TEETH_RADIUS*2)
:SetAlignment("player")
:SetOnExplodeFn(OnExplode)
:StartTesting()
inst:AddComponent("deployable")
oy = ondeploy
_spacing = .75
inst:AddComponent("stackable")
e = _SIZE_SMALLITEM
oryitem:SetOnDroppedFn(OnDropped)
即可拿起指南针用鼠标右键部署在空地上,敌人踩上后会爆炸,主角、自养高鸟、狗箱
不会触发。指南针在生存选项(画着绳套)下,用1个黄金、1张纸制造
一六七.死神之光(拿提灯时右键点空地,满屏敌人通杀)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function cancreatelight(staff, caster, target, pos)
local fuelpercent = :GetPercent()
if fuelpercent > 0.5 then
return true
else
return false
end
end
local function createlight(staff, target, pos)
local SHAKE_DIST = 40
local player = GetClosestInstWithTag("player", inst, SHAKE_DIST)
if player then
controller:ShakeCamera(inst, "VERTICAL", 1, 0.03, 2,
SHAKE_DIST)
end
inst:DoTaskInTime(0, function()
:DoAreaAttack(inst, 30)
end)
GetClock():DoLightningLighting()
tfuel = 50
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(createlight)
aster:SetSpellTestFn(cancreatelight)
onpoint = true
frominventory = false
inst:AddComponent("combat")
:SetDefaultDamage(3000)
damagepercent = 0
即可拿提灯时右键点空地,满屏敌人通杀。注意提灯燃料超过50%时,才能释放死神之
光,释放后提灯燃料接近耗尽,想再释放需要向提灯中填充荧光果(拿荧光果对装备格中的
提灯按右键),大约3颗即可
一六八.魔之双臂(狼牙棒左键抓来敌人并致死、右键抓地移动主角)
用记事本打开游戏目录文件,将下列内容:
inst:AddComponent("weapon")
:SetDamage(_DAMAGE)
-------
inst:AddComponent("finiteuses")
uses:SetMaxUses(_USES)
uses:SetUses(_USES)
uses:SetOnFinished( onfinished )
替换为:
local function onattack(inst, owner, target)
local pt = owner:GetPosition()
if then
orm:SetPosition(pt.x+1, pt.y, pt.z)
end
inst:DoTaskInTime(0.1, function()
:DoDelta(-3000)
end)
end
inst:AddComponent("weapon")
:SetDamage(0)
:SetRange(20, 25)
:SetOnAttack(onattack)
:SetProjectile("bishop_charge")
inst:AddComponent("blinkstaff")
即可在装备狼牙棒时,对敌人点左键将其抓过来并致死;对空地点右键,抓地移动主角,
使狼牙棒既可杀伤敌人,又可有效闪避。用来抓鸟、兔、火鸡、大象等会逃跑的动物也很实
用哦。狼牙棒靠打沼泽里的触手获得
一六九.致命的毒箭(中吹箭的敌人不知不觉流血至死)
用记事本打开游戏目录文件,在
:SetDamage(_DART_DAMAGE)的下一行插入以下内容:
local function pipeonhit(inst, attacker, target)
:StartRegen(-100, 1)
= nil
ate:SetMultColour(255/255,0/255,0/255,1)
local impactfx = SpawnPrefab("impact")
if impactfx then
local follower = :AddFollower()
follower:FollowSymbol(,
ectsymbol, 0, 0, 0 )
impactfx:FacePoint(Vector3(orm:GetWorldPosition()))
end
ory:Equip(inst)
end
:SetRange(20, 25)
tile:SetOnHitFn(pipeonhit)
即可让中吹箭的敌人变成红色,每秒减100点血直至死亡,被射中的敌人不会反击主角。
吹箭为无限使用,吹出后自动回到手中
一七0.电击枪(用橙色魔杖远程电晕敌人,使其任你宰割)
用记事本打开游戏目录文件,将
kfn = onblink替换为以下内容:
local function onattack_orange(inst, owner, target)
if then
:Stop()
end
if then
:SetTarget(nil)
end
if tor then
tor:Stop()
end
ate:SetMultColour(125/255,125/255,125/255,1)
SpawnPrefab("lightning_rod_fx").Transform:SetPosition(orm:GetWorldP
osition())
end
inst:AddComponent("weapon")
:SetDamage(10)
:SetRange(20, 25)
:SetOnAttack(onattack_orange)
:SetProjectile("bishop_charge")
即可在装备橙色魔杖时,对敌人按鼠标左键将其电晕,其会失去行动能力,任你处置。
对猴子、青蛙等比较讨厌的敌人很适用。橙色魔杖在远古选项(画着远古祭坛)下,用2个
噩梦燃料、1个步行手杖、2个橙色宝石制造,制造时需要靠近远古祭坛
一七一.速射步枪(黄色魔杖左键点射、右键连射蜂刺子弹)
用记事本打开游戏目录文件,将下列内容:
local function yellow()
local inst = commonfn("yellow")
ur = {223/255, 208/255, 69/255}
und = "dontstarve/common/staffteleport"
inst:AddComponent("spellcaster")
aster:SetSpellFn(createlight)
aster:SetSpellTestFn(cancreatelight)
onpoint = true
frominventory = false
inst:AddComponent("reticule")
fn = function()
return Vector3(GetPlayer().entity:LocalToWorldSpace(5,0,0))
end
= true
uses:SetMaxUses(STAFF_USES)
uses:SetUses(STAFF_USES)
inst:AddTag("nopunch")
return inst
end
替换为:
local function yellow()
local inst = commonfn("yellow")
ur = {223/255, 208/255, 69/255}
und = "dontstarve/common/staffteleport"
local function canattack(inst, target)
if GetPlayer().ory:Has("stinger", 1) and
TheInput:IsMouseDown(MOUSEBUTTON_RIGHT) then
:LaunchProjectile(inst, target)
end
if GetPlayer().ory:Has("stinger", 1) then
return true
end
end
local function onattack_yellow(inst, owner, target)
mitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
SpawnPrefab("die_fx").Transform:SetPosition(orm:GetWorldPosition())
TheCamera:Shake("FULL", 0.2, 0.02, .5, 40)
ory:ConsumeByName("stinger", 1)
end
inst:AddComponent("weapon")
:SetDamage(100)
:SetRange(25, 30)
:SetOnAttack(onattack_yellow)
:SetCanAttack(canattack)
:SetProjectile("fire_projectile")
uses:SetMaxUses(STAFF_USES*1000)
uses:SetUses(STAFF_USES*1000)
return inst
end
即可在装备黄色魔杖时,对敌人按鼠标左键点射,按鼠标右键连射,身上没有蜂刺时无
法射击(不要光顾着按住右键扫射,时不时关注一下还有多少子弹)。黄色魔杖在远古选项(画
着远古祭坛)下,用4个噩梦燃料、2个活木头、2个黄色宝石制造,制造时需要靠近远古祭
坛。黄色魔杖原有种小星星功能取消
一七二.反物质制造机(绿魔杖左键点敌人,生成敌人反物质分身自相残杀)
用记事本打开游戏目录文件,在local inst =
commonfn("green")的下一行插入以下内容:
local function onattack_green(inst, owner, target)
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 0.1)
for k,v in pairs(ents) do
if and not :IsDead() and not
v:HasTag("player") and not v:HasTag("smallbird") and not v:HasTag("chester") then
local copy = SpawnPrefab()
orm:SetPosition(orm:GetWorldPosition())
ate:SetMultColour(0/255,0/255,0/255,0.5)
if copy:HasTag("monster") then copy:RemoveTag("monster") end
= inst:DoPeriodicTask(.3, function()
= v end)
v:ListenForEvent("death", function()
if not :IsDead() then
copy:Remove()
if then :Cancel() = nil end
end
end)
inst:DoTaskInTime(60, function()
if not :IsDead() then
copy:Remove()
if then :Cancel() = nil end
end
end)
end
end
end
inst:AddComponent("weapon")
:SetDamage(0)
:SetRange(30, 35)
:SetOnAttack(onattack_green)
:SetProjectile("bishop_charge")
即可装备绿魔杖时,按鼠标左键点敌人,生成敌人的反物质分身,与敌人自相残杀。敌
人有多强大,其反物质分身就有多强大,主角只须观战即可,反物质分身不会攻击敌人以外
的目标。反物质分身最多存在60秒,当敌人死去时,反物质分身也将消失。中立的小动物即
使制造了反物质分身,也不会互相攻击
一七三.收妖镜(装备铥矿奖章对敌人按右键,将其收入镜中)
用记事本打开游戏目录datascriptsprefabsnightmare_文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onequip(inst, owner)
ory:SetOverflow(inst)
ner:Open(owner)
end
local function onunequip(inst, owner)
ory:SetOverflow(nil)
ner:Close(owner)
end
local function itemtest(inst, item, slot)
if item:HasTag("catched") then
return true
end
return false
end
local slotpos = {}
for y = 0, 9 do
(slotpos, Vector3(-162, -y*75 + 170 ,0))
end
local function cancatchmonster(inst, caster, target)
if target then
return tor and and not
:IsDead() and not target:HasTag("smallbird") and not
target:HasTag("chester")
end
return true
end
local function catchmonster(staff, target, pos)
if not ner:IsFull() then
if ble then target:RemoveComponent("stackable") end
if oryitem then
target:RemoveComponent("inventoryitem") end
target:AddComponent("inventoryitem")
ce = true
ickedup = true
oryitem:ChangeImageName("beard_monster")
der = true
target:AddTag("catched")
oryitem:SetOnDroppedFn(function(target)
target:RemoveComponent("inventoryitem")
target:RemoveTag("catched")
if then :Start() end
if then :Start() end
end )
oryitem:SetOnPutInInventoryFn(function(target)
if then :GoToState("idle") end
if mitter then mitter:KillAllSounds() end
end )
ner:GiveItem(target)
end
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(catchmonster)
aster:SetSpellTestFn(cancatchmonster)
ontargets = true
frominventory = false
inst:AddComponent("equippable")
lot =
able:SetOnEquip( onequip )
able:SetOnUnequip( onunequip )
inst:AddComponent("container")
ner:SetNumSlots(#slotpos)
slotpos = slotpos
pos = Vector3(18,50,0)
_widget = true
stfn = itemtest
sstacks = false
即可在装备铥矿奖章时,对敌人按鼠标右键,将敌人收入镜中(画面右边的格子中,显
示为烧焦的兔子),如果想杀死它,就对格子中的敌人按鼠标右键,会获得战利品;如果想释
放它,就拿出敌人放在地上。“收妖镜”的格子全满后,无法再收新的敌人,可以将敌人放在
物品栏或其他背包后再收妖。在存档退出前,请处置(杀掉或释放)全部收来的敌人,否则
读档后,敌人将全部被放出。铥矿奖章在远古选项(画着远古祭坛)下,用2个铥矿石、2
个噩梦燃料制造,制造时需要靠近远古祭坛
一七四.巨人帽(带猪皮帽变巨人,锁血)
用记事本打开游戏目录文件,将下列内容:
local function football()
local inst = simple()
inst:AddComponent("armor")
:InitCondition(_FOOTBALLHAT,
_FOOTBALLHAT_ABSORPTION)
return inst
end
替换为:
local function football_equip(inst, owner)
onequip(inst, owner)
orm:SetScale(3, 3, 3)
:SetInvincible(true)
end
local function football_unequip(inst, owner)
onunequip(inst, owner)
orm:SetScale(1, 1, 1)
:SetInvincible(false)
end
local function football()
local inst = simple()
inst:AddComponent("armor")
:InitCondition(_FOOTBALLHAT,
_FOOTBALLHAT_ABSORPTION)
able:SetOnEquip( football_equip )
able:SetOnUnequip( football_unequip )
return inst
end
即可戴猪皮帽变巨人并锁血,猪皮帽在战斗选项(画着两把剑)下,用1个绳子、1个
猪皮制造,需要2号机器
一七五.防弹背包(装备背包吸收99%伤害值)
1.普通背包作盔甲:用记事本打开游戏目录文件,
在inst:AddComponent("inspectable")的下一行插入以下内容:
inst:AddComponent("armor")
:InitCondition(ARBLE, 0.99)
2.小猪包作盔甲:用记事本打开游戏目录文件,
在inst:AddComponent("inspectable")的下一行插入以下内容:
inst:AddComponent("armor")
:InitCondition(ARBLE, 0.99)
3.坎普斯背包作盔甲:用记事本打开游戏目录
datascriptsprefabskrampus_文件,在inst:AddComponent("inspectable")
的下一行插入以下内容:
inst:AddComponent("armor")
:InitCondition(ARBLE, 0.99)
4.盔甲永固:用记事本打开游戏目录文件,将下
列内容:
function Armor:SetCondition(amount)
ion = amount
替换为:
function Armor:SetCondition(amount)
ion = dition
即可装备背包就拥有盔甲防护作用,且99%吸收伤害值,还无限使用哦
一七六.芦苇吹出催眠曲(在携带的芦苇上按鼠标右键,可催眠怪物)
用记事本打开游戏目录文件,在
inst:AddComponent("inventoryitem")的下一行插入以下内容:
inst:AddTag("flute")
local function HearPanFlute(inst, musician, instrument)
if r then
r:AddSleepiness(10, TE_SLEEPTIME*1)
end
end
inst:AddComponent("tool")
:SetAction()
inst:AddComponent("instrument")
= TE_SLEEPRANGE*2
ment:SetOnHeardFn(HearPanFlute)
即可在携带的芦苇上按鼠标右键,可催眠一片怪物。其中*1为催眠时间20秒,想催眠
60秒就*3即可。其中*2为催眠范围30格,想扩大至60格就*4即可
一七七.隐身背心(穿小巧背心可隐身)
用记事本打开游戏目录文件,将下列内容:
local function onequip(inst, owner)
ate:OverrideSymbol("swap_body", "armor_sweatervest", "swap_body")
:StartConsuming()
end
local function onunequip(inst, owner)
ate:ClearOverrideSymbol("swap_body")
:StopConsuming()
end
替换为:
local function onequip(inst, owner)
ate:OverrideSymbol("swap_body", "armor_sweatervest", "swap_body")
eedmult = _SPEED_MULT*2
owner:Hide()
end
local function onunequip(inst, owner)
ate:ClearOverrideSymbol("swap_body")
owner:Show()
end
即可穿上小巧背心就隐身(地上可见影子),你可以攻击敌人,敌人找不到你,连鸟、兔
子都可以直接攻击哦。小巧背心在穿戴选项(画着礼帽)下,用8个犬牙、6个蛛丝制造
一七八.泡泡糖(吃黄油吹个保护泡泡,21版及以后游戏使用)
用记事本打开游戏目录文件,在
value = ES_MED的下一行插入以下内容:
local function proc(inst, eater)
:SetInvincible(true)
inst:AddTag("forcefield")
local fx = SpawnPrefab("forcefieldfx")
:SetParent()
orm:SetPosition(0, 0.2, 0)
local fx_hitanim = function()
ate:PlayAnimation("hit")
ate:PushAnimation("idle_loop")
end
fx:ListenForEvent("blocked", fx_hitanim, eater)
= true
eater:DoTaskInTime(60, function()
fx:RemoveEventCallback("blocked", fx_hitanim, eater)
_fx(fx)
if inst:IsValid() then
:SetInvincible(false)
inst:RemoveTag("forcefield")
eater:DoTaskInTime(5, function() = false end)
end
end)
end
local function oneaten(inst, eater)
proc(inst, eater)
end
:SetOnEatenFn(oneaten)
即可吃黄油后60秒内身边环绕一个保护泡,敌人无法伤到主角。黄油可以靠杀蝴蝶掉落,
也可以用本修改技巧的“栽种尖刺灌木产黄油”得到
一七九.迷魂花阵(戴花环周围出现食人花眼睛保护主角)
1.用记事本打开游戏目录文件,将下列内容:
inst:AddComponent("perishable")
able:SetPerishTime(_FAST)
able:StartPerishing()
able:SetOnPerishFn(generic_perish)
able:SetOnEquip( opentop_onequip )
替换为:
local function flower_equip(inst, owner)
opentop_onequip(inst, owner)
inst:AddComponent("minionspawner")
type = "eyeplant"
ions = 27
spawntime = {min = 0.01, max = 0.01}
ions = 10
spawn = true
spawner:StartNextSpawn()
end
local function flower_unequip(inst, owner)
onunequip(inst, owner)
spawn = false
spawner:KillAllMinions()
inst:RemoveComponent("minionspawner")
end
able:SetOnEquip( flower_equip )
able:SetOnUnequip( flower_unequip )
2.用记事本打开游戏目录文件,将下列内容:
return (guy:HasTag("character") or guy:HasTag("monster") or
guy:HasTag("animal") or guy:HasTag("prey") or guy:HasTag("eyeplant") or
guy:HasTag("lureplant")) and not checkmaster(guy, inst)
替换为:
return (guy:HasTag("character") or guy:HasTag("monster") or
guy:HasTag("animal") or guy:HasTag("prey") or guy:HasTag("eyeplant") or
guy:HasTag("lureplant")) and not guy:HasTag("player") and not checkmaster(guy,
inst)
即可戴花环周围出现食人花眼睛保护主角,食人花眼睛被敌人打死一个又会再生一个。
摘下花环,食人花眼睛立即消失
一八0.家园防御系统(暗夜照明灯自动向靠近的敌人发射炮弹)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onattack(inst)
local range = 30
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if and not :IsDead() and not
v:HasTag("player") and not v:HasTag("smallbird") and not v:HasTag("chester") and not
v:HasTag("wall") and not v:HasTag("smallcreature") then
:LaunchProjectile(inst, v)
:DoDelta(-5000)
mitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosition
())
SpawnPrefab("explode_small").Transform:SetPosition(orm:GetWorldPosition(
))
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.7,
0.02, .5, 40)
:InitializeFuelLevel(1000)
end
end
return true
end
local function turnon(inst)
= true
= inst:DoPeriodicTask(.5, function() onattack(inst) end)
le:IsBurning()
:InitializeFuelLevel(1000)
end
local function turnoff(inst)
= false
if then :Cancel() = nil end
le:Extinguish()
:InitializeFuelLevel(0)
end
inst:AddComponent("machine")
fn = turnon
ffn = turnoff
inst:AddComponent("weapon")
:SetDamage(0)
:SetProjectile("eye_charge")
即可对暗夜照明灯按鼠标右键开启家园防御系统,自动向靠近的敌人发射炮弹,再按鼠
标右键关闭。建在基地附近,无惧任何敌人。暗影照明灯在魔法选项(画着红骷髅)下,用
8个黄金、2个噩梦燃料、1个红宝石建造
一八一.音浪太强(戴兔耳罩周围形成音浪,敌人被弹开)
用记事本打开游戏目录文件,将下列内容:
local function earmuffs()
local inst = simple()
inst:AddComponent("insulator")
tion = TION_SMALL
able:SetOnEquip( opentop_onequip )
inst:AddComponent("fueled")
pe = "USAGE"
:InitializeFuelLevel(F_PERISHTIME)
:SetDepletedFn(generic_perish)
ate:SetRayTestOnBB(true)
return inst
end
替换为:
local colours=
{
{198/255,43/255,43/255},
{79/255,153/255,68/255},
{35/255,105/255,235/255},
{233/255,208/255,69/255},
{109/255,50/255,163/255},
{222/255,126/255,39/255},
}
local function pickup(inst, owner)
_idx = (#colours)
local light = :AddLight()
light:SetIntensity(.8)
light:SetRadius(3)
light:SetFalloff(1)
light:Enable(true)
light:SetColour(colours[_idx][1],colours[_idx][2],colours[
_idx][3])
local pt = Vector3(orm:GetWorldPosition())
local result_offset = FindValidPositionByFan(()*2*PI, 10, 75,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
local ents2 = TheSim:FindEntities(pt.x,pt.y,pt.z, 8)
for k,v in pairs(ents2) do
if and not :IsDead() and not
v:HasTag("player") and not v:HasTag("smallbird") and not v:HasTag("chester") and not
v:HasTag("wall") and not v:HasTag("structure") then
orm:SetPosition((pt + result_offset):Get())
end
end
end
local function earmuffs_onequip(inst, owner)
= inst:DoPeriodicTask(.033, function() pickup(inst, owner) end)
GetPlayer().SoundEmitter:PlaySound("dontstarve/music/music_hoedown",
"beavermusic")
opentop_onequip(inst, owner)
end
local function earmuffs_onunequip(inst, owner)
if then :Cancel() = nil end
GetPlayer().SoundEmitter:KillSound("beavermusic")
onunequip(inst, owner)
:Enable(false)
end
local function earmuffs()
local inst = simple()
inst:AddComponent("insulator")
tion = TION_SMALL
able:SetOnEquip( earmuffs_onequip )
able:SetOnUnequip( earmuffs_onunequip )
ate:SetRayTestOnBB(true)
return inst
end
即可在戴兔耳罩时,周围形成音浪,敌人靠近会被弹开,拆杀人蜂窝、偷高鸟蛋毫发无
伤。兔耳罩在穿戴选项(画着礼帽)下,用2个兔子、1个树枝制造
一八二.智能围墙(按F11键造一圈大理石围墙,点围墙可开门,5秒自动关门,夜晚启动照
明)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function GetStatus(inst, viewer)
local pt = inst:GetPosition()
inst:Remove()
inst:DoTaskInTime(5, function()
SpawnPrefab("marblepillar").Transform:SetPosition(pt.x, pt.y, pt.z)
mitter:PlaySound("dontstarve/characters/wx78/levelup")
end)
end
local function LightsOn(inst)
:Enable(true)
end
local function LightsOff(inst)
:Enable(false)
end
local light = :AddLight()
light:SetFalloff(1)
light:SetIntensity(.8)
light:SetRadius(10)
light:Enable(false)
light:SetColour(180/255, 195/255, 50/255)
tus = GetStatus
inst:ListenForEvent( "daytime", function() LightsOff(inst) end, GetWorld())
inst:ListenForEvent( "dusktime", function() LightsOn(inst) end, GetWorld())
2.用记事本打开游戏目录datascriptsprefabsplayer_文件,在
inst:AddComponent("playercontroller")的下一行插入以下内容:
TheInput:AddKeyUpHandler(KEY_F11, function()
local player = GetPlayer()
local pt = Vector3(orm:GetWorldPosition())
for k = 1, 75 do
local theta = 1 * 2 * PI
local radius = 18
local result_offset = FindValidPositionByFan(theta, radius, 75,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local tentacle = SpawnPrefab("marblepillar")
orm:SetPosition((pt + result_offset):Get())
GetPlayer().controller:ShakeCamera(inst, "FULL",
0.2, 0.02, .25, 40)
end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
end
end)
TheInput:AddKeyUpHandler(KEY_F12, function()
local player = GetPlayer()
local range = 30
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if == "marblepillar" then
v:Remove()
end
end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
end)
即可在开阔的空地上按键盘F11键,建造一圈大理石围墙,按F12键可消去。对围墙按
鼠标左键可开门,5秒后自动关门,夜晚自动启动照明系统,用作自宅围墙或圈养动物都适
宜。注意不要拿着镐点围墙,除非你想获得大理石
一八三.高压电避难所(按加号键筑一圈带高压电的玄武岩墙,按减号键消失)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnExplode(inst, target)
if target and not target:HasTag("smallbird") and not target:HasTag("chester")
then
SpawnPrefab("lightning_rod_fx").Transform:SetPosition(orm:GetWorldPos
ition())
SpawnPrefab("lightning_rod_fx").Transform:SetPosition(orm:GetWorldP
osition())
mitter:PlaySound("dontstarve/common/lightningrod")
:DoDelta(-3000)
end
inst:DoTaskInTime(.1, function() :Reset() end )
end
inst:AddComponent("mine")
:SetRadius(4)
:SetAlignment("player")
:SetOnExplodeFn(OnExplode)
:Reset()
2.用记事本打开游戏目录datascriptsprefabsplayer_文件,在
inst:AddComponent("catcher")的下一行插入以下内容:
TheInput:AddKeyUpHandler(KEY_KP_PLUS, function()
local player = GetPlayer()
local pt = Vector3(orm:GetWorldPosition())
for k = 1, 50 do
local theta = 1 * 2 * PI
local radius = 8
local result_offset = FindValidPositionByFan(theta, radius, 50,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local tentacle = SpawnPrefab("basalt_pillar")
orm:SetPosition((pt + result_offset):Get())
GetPlayer().controller:ShakeCamera(inst, "FULL",
0.2, 0.02, .25, 40)
local fx = SpawnPrefab("lightning_rod_fx")
local pos = pt + result_offset
orm:SetPosition(pos.x, pos.y, pos.z)
end
mitter:PlaySound("dontstarve/common/lightningrod")
end
end)
TheInput:AddKeyUpHandler(KEY_KP_MINUS, function()
local player = GetPlayer()
local range = 15
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if == "basalt_pillar" then
SpawnPrefab("lightning_rod_fx").Transform:SetPosition(orm:GetWorldPositi
on())
v:Remove()
end
end
mitter:PlaySound("dontstarve/common/lightningrod")
end)
即可按小键盘加号键,在主角周围筑起一圈带高压电的玄武岩墙,怪物靠近会被电死,
按小键盘减号键自动消失。注意不要离怪物太近时按加号键,会把怪物也圈进来或使墙有缺
口。如果使用橙色魔杖或“瑞士手杖”(见本修改技巧),就可以自由出入各个避难所,把家
具、农田放在里面,再也不怕狗和巨鹿了
一八四.近卫军(主角受攻击自动出现机械护卫,不要与“菩萨低眉”一同修改,20版及以
后游戏使用)
用记事本打开游戏目录datascriptsprefabsplayer_文件,在
orm:SetFourFaced()的下一行插入以下内容:
local function OnAttacked(inst, data)
local spawn = ""
if ()<.1 then
spawn = "rook_nightmare"
elseif ()<.5 then
spawn = "bishop_nightmare"
else
spawn = "knight_nightmare"
end
SpawnAt("maxwell_smoke",inst)
local it = SpawnAt(spawn,inst)
if er then
er:SetLeader(GetPlayer())
end
end
inst:ListenForEvent("attacked", OnAttacked)
即可在主角受到攻击时,自动产生机械兵(共三种)保护主角。如果主角强制攻击(按
Ctrl + 鼠标左键)其中一个机械兵,则其他机械兵会帮主角清理门户
一八五.火炬召唤亡灵(阿比盖尔)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function cancreatelight(staff, caster, target, pos)
local ground = GetWorld()
if ground and pos then
local tile = :GetTileAtPoint(pos.x, pos.y, pos.z)
return tile ~= IBLE and tile < ROUND
end
return false
end
local function createlight(staff, target, pos)
local light = SpawnPrefab("abigail")
orm:SetPosition(pos.x, pos.y, pos.z)
local caster =
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(createlight)
aster:SetSpellTestFn(cancreatelight)
onpoint = true
frominventory = false
即可在装备火炬时,在空地上按鼠标右键召唤亡灵,亡灵会保护你。想取消亡灵,召唤
两个以上(一个追不上它),对其中一个按ctrl + 鼠标左键,即可取消全部亡灵
一八六.毒龙兵团(装备暗影剑召唤坎普斯士兵)
1.用记事本打开游戏目录文件,将下列内容:
inst:AddComponent("dapperness")
ness = ESS_MED,
替换为:
local function cancreatelight(staff, caster, target, pos)
local ground = GetWorld()
if ground and pos then
local tile = :GetTileAtPoint(pos.x, pos.y, pos.z)
return tile ~= IBLE and tile < ROUND
end
return false
end
local function createlight(staff, target, pos)
local light = SpawnPrefab("krampus")
orm:SetPosition(pos.x, pos.y, pos.z)
local caster =
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(createlight)
aster:SetSpellTestFn(cancreatelight)
onpoint = true
frominventory = false
2.用记事本打开游戏目录文件,将下列内容:
local function OnAttacked(inst, data)
:SetTarget(er)
--:ShareTarget(er, SEE_DIST, function(dude)
return dude:HasTag("hound") and not :IsDead() end, 5)
end
替换为:
local function Retarget(inst)
local newtarget = FindEntity(inst, 20, function(guy)
return and
:CanTarget(guy) and
( == GetPlayer() or
GetPlayer(). == guy)
end)
return newtarget
end
local function OnAttacked(inst, data)
local attacker = er
if attacker and attacker:HasTag("player") then
:SetVal(0)
else
:SetTarget(attacker)
end
end
3.将local brain = require "brains/krampusbrain"替换为local brain = require
"brains/abigailbrain"
4.将下列内容:
inst:AddComponent("sleeper")
inst:AddComponent("health")
:SetMaxHealth(S_HEALTH)
inst:AddComponent("combat")
ectsymbol = "krampus_torso"
:SetDefaultDamage(S_DAMAGE)
:SetAttackPeriod(S_ATTACK_PERIOD)
替换为:
inst:AddComponent("health")
:SetMaxHealth(S_HEALTH*10)
inst:AddComponent("follower")
inst:AddComponent("combat")
ectsymbol = "krampus_torso"
:SetDefaultDamage(S_DAMAGE*10)
:SetAttackPeriod(S_ATTACK_PERIOD*.1)
:SetRetargetFunction(3, Retarget)
ate:Hide("SACK")
ate:Show("ARM")
即可装备暗影剑时,在空地上按鼠标右键召唤坎普斯士兵。坎普斯经过了深度改造,不
会偷东西,只会为主角浴血奋战。不想要坎普斯跟随时,杀死它即可,它虽然强悍,但主角
对它一击毙命
一八七.我的小伙伴(用火炬召唤其他主角一起工作战斗,89685版及以后游戏使用)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function cancreatelight(staff, caster, target, pos)
local ground = GetWorld()
if ground and pos then
local tile = :GetTileAtPoint(pos.x, pos.y, pos.z)
return tile ~= IBLE and tile < ROUND
end
return false
end
local function createlight(staff, target, pos)
local light = SpawnPrefab("shadowwaxwell")
orm:SetPosition(pos.x, pos.y, pos.z)
local caster =
er:SetLeader(caster)
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(createlight)
aster:SetSpellTestFn(cancreatelight)
onpoint = true
frominventory = false
2.用记事本打开游戏目录文件,将下列内
容:
anim:SetBuild("waxwell_shadow_mod")
anim:PlayAnimation("idle")
anim:Hide("ARM_carry")
anim:Hide("hat")
anim:Hide("hat_hair")
inst:AddTag("scarytoprey")
inst:AddTag("NOCLICK")
inst:AddComponent("colourtweener")
tweener:StartTween({0,0,0,.5}, 0)
inst:AddComponent("locomotor")
tor:SetSlowMultiplier( 0.6 )
ps = { ignorecreep = true }
ed = WAXWELL_SPEED
inst:AddComponent("combat")
ectsymbol = "torso"
-- :SetRetargetFunction(1, Retarget)
:SetKeepTargetFunction(KeepTarget)
:SetAttackPeriod(WAXWELL_ATTACK_PERIOD)
:SetRange(2, 3)
:SetDefaultDamage(WAXWELL_DAMAGE)
inst:AddComponent("health")
:SetMaxHealth(WAXWELL_LIFE)
out = true
inst:ListenForEvent("death", ondeath)
inst:AddComponent("inventory")
death = false
inst:AddComponent("sanityaura")
y = WAXWELL_SANITY_PENALTY
替换为:
local names =
{"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}
me = names[(#names)]
anim:SetBuild(me)
anim:PlayAnimation("idle")
anim:Hide("ARM_carry")
anim:Hide("hat")
anim:Hide("hat_hair")
inst:AddComponent("locomotor")
ps = { ignorecreep = true }
ed = WAXWELL_SPEED*2
inst:AddComponent("combat")
ectsymbol = "torso"
:SetKeepTargetFunction(KeepTarget)
:SetAttackPeriod(WAXWELL_ATTACK_PERIOD*.1)
:SetRange(2, 3)
:SetDefaultDamage(WAXWELL_DAMAGE*10)
inst:AddComponent("health")
:SetMaxHealth(WAXWELL_LIFE*10)
out = true
inst:AddComponent("inventory")
death = false
即可装备火炬在空地上点鼠标右键,随机召唤其他主角,一起砍树、开矿、战斗。不想
要伙伴时,对其按Ctrl + 鼠标左键杀掉即可,不杀掉几天后其也会自然死去,想要就再召
唤吧。不要与“火炬召唤亡灵”一同修改,使用麦斯威尔作主角时不要修改本条
一八八.宠物双子星(用齿轮种宠物狗,用海象牙种宠物海狸)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local dog = SpawnPrefab("teenbird")
orm:SetPosition(pt.x, pt.y, pt.z)
ate:SetBank("hound")
ate:SetBuild("hound_ice")
dog:SetStateGraph("SGhound")
er:SetLeader(GetPlayer())
orm:SetScale(0.6, 0.6, 0.6)
dog:AddTag("dogs")
:SetMaxHealth(10000)
ed = 20
dog:RemoveComponent("growable")
ble:Get():Remove()
end
inst:AddComponent("deployable")
oy = OnDeploy
2.用记事本打开游戏目录datascriptsprefabswalrus_文件,
inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local beaver = SpawnPrefab("teenbird")
orm:SetPosition(pt.x, pt.y, pt.z)
ate:SetBank("werebeaver")
ate:SetBuild("werebeaver_build")
beaver:SetStateGraph("SGwerebeaver")
er:SetLeader(GetPlayer())
orm:SetScale(0.6, 0.6, 0.6)
beaver:AddTag("beavers")
:SetVegetarian()
:SetMaxHealth(10000)
ed = 20
beaver:RemoveComponent("growable")
在
ble:Get():Remove()
end
inst:AddComponent("deployable")
oy = OnDeploy
3.用记事本打开游戏目录文件,在
--Asset("SOUND", "sound/"),的下一行插入以下内容:
Asset("ANIM", "anim/werebeaver_"),
Asset("ANIM", "anim/werebeaver_"),
4.在inst:AddTag("teenbird")的下一行插入以下内容:
local function onsave(inst, data)
if inst:HasTag("dogs") then
= true
end
if inst:HasTag("beavers") then
s = true
end
end
local function onload(inst, data)
if then
ate:SetBank("hound")
ate:SetBuild("hound_ice")
inst:SetStateGraph("SGhound")
er:SetLeader(GetPlayer())
orm:SetScale(0.6, 0.6, 0.6)
:SetMaxHealth(10000)
ed = 20
inst:RemoveComponent("growable")
inst:AddTag("dogs")
end
if s then
ate:SetBank("werebeaver")
ate:SetBuild("werebeaver_build")
inst:SetStateGraph("SGwerebeaver")
er:SetLeader(GetPlayer())
orm:SetScale(0.6, 0.6, 0.6)
:SetMaxHealth(10000)
:SetVegetarian()
ed = 20
inst:RemoveComponent("growable")
inst:AddTag("beavers")
end
end
= onsave
= onload
即可用齿轮种宠物狗,用海象牙种宠物海狸,它们可以陪伴你,帮你打怪,是活力十足
的小淘气。宠物需要喂食,不然会咬你(轻轻的),宠物狗喜欢吃肉,宠物海狸喜欢吃蔬菜,
通过喂食可以为它们补血。最好在家的角落里扔一些食物,让它们随饿随吃
一八九.人工女友(骨眼召唤女友,可背东西、做饭、换衣帽,89685版及以后游戏使用)
用记事本打开游戏目录文件
1.将下列内容:
ate:SetBank("chester")
ate:SetBuild("chester")
替换为:
ate:SetBank("wilson")
ate:SetBuild("wendy")
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
2.将下列内容:
--print(" sleeper")
inst:AddComponent("sleeper")
r:SetResistance(3)
riod = GetRandomWithVariance(6, 2)
r:SetSleepTest(ShouldSleep)
r:SetWakeTest(ShouldWakeUp)
--print(" sg")
inst:SetStateGraph("SGchester")
:GoToState("idle")
替换为:
inst:SetStateGraph("SGshadowwaxwell")
:GoToState("idle")
inst:AddTag("fridge")
inst:DoPeriodicTask(400, function()
local names = {"waffles","turkeydinner","baconeggs"}
local name = names[(#names)]
local foods = SpawnPrefab(name)
ner:GiveItem(foods)
mitter:PlaySound("dontstarve/HUD/research_available")
end)
local function turnon(inst)
local hats =
{"hat_flower","hat_earmuffs","hat_feather","hat_slurper","hat_spider","hat_straw
","hat_top","hat_walrus","hat_winter","hat_beefalo"}
= hats[(#hats)]
local armors =
{"armor_sweatervest","armor_trunkvest_summer","armor_trunkvest_winter","armor_sa
nity","armor_slurper"}
= armors[(#armors)]
= true
:GoToState("hit")
ate:OverrideSymbol("swap_hat", , "swap_hat")
ate:OverrideSymbol("swap_body", , "swap_body")
ate:Show("HAT")
ate:Show("HAT_HAIR")
ate:Hide("HAIR_NOHAT")
ate:Hide("HAIR")
end
local function turnoff(inst)
= false
:GoToState("stunned")
ate:Hide("HAT")
ate:Hide("HAT_HAIR")
ate:Show("HAIR_NOHAT")
ate:Show("HAIR")
ate:ClearOverrideSymbol("swap_body")
mitter:PlaySound("dontstarve/characters/wendy/hurt")
end
inst:AddComponent("machine")
fn = turnon
ffn = turnoff
inst:AddComponent("sanityaura")
= AURA_HUGE
inst:AddComponent("heater")
= 180
即可在地图上找到骨眼后,获得人工女友(温蒂),除了帮你拿东西外(可以冷藏),每
天还将为你做一份料理(鼠标左键点她,在格子里拿取)。用鼠标右键点女友,可以为她换衣
服、帽子,再次点右键脱下衣帽。与她紧紧依偎可以获得温暖(不会冻伤),并补充脑值(不
再孤独了)。携带骨眼则女友跟随,放下骨眼则女友原地等待,一旦女友牺牲了,将骨眼扔在
地上,几天后会再相聚。如果将其中ate:SetBuild("wendy")替换为
ate:SetBuild("willow"),则将女友设定为薇洛。原有切斯特狗箱取消
一九0.养育孩子(主角逝去则孩子接班,一代一代生存下去,89685版及以后游戏使用)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function getson (inst)
TheFrontEnd:Fade(false,1)
GetPlayer():DoTaskInTime(1.5, function()
TheFrontEnd:Fade(true,1)
local pt = GetPlayer():GetPosition()
local son = SpawnPrefab("resurrectionstatue")
orm:SetPosition(pt.x, pt.y, pt.z)
ate:SetBank("wilson")
if GetPlayer().prefab == "wilson" then ate:SetBuild("wilson") end
if GetPlayer().prefab == "wendy" then ate:SetBuild("wendy") end
if GetPlayer().prefab == "wes" then ate:SetBuild("wes") end
if GetPlayer().prefab == "wickerbottom" then
ate:SetBuild("wickerbottom") end
if GetPlayer().prefab == "willow" then ate:SetBuild("willow") end
if GetPlayer().prefab == "wolfgang" then
ate:SetBuild("wolfgang_skinny") end
if GetPlayer().prefab == "wx78" then ate:SetBuild("wx78") end
if GetPlayer().prefab == "woodie" then ate:SetBuild("woodie") end
if GetPlayer().prefab == "waxwell" then ate:SetBuild("waxwell") end
local hats =
{"hat_beefalo","hat_feather","hat_flower","hat_top","hat_walrus","hat_winter"}
local hat = hats[(#hats)]
ate:OverrideSymbol("swap_hat", hat, "swap_hat")
local armors =
{"armor_sanity","armor_slurper","armor_sweatervest","armor_trunkvest_summer","ar
mor_trunkvest_winter"}
local armor = armors[(#armors)]
ate:OverrideSymbol("swap_body", armor, "swap_body")
ate:Show("HAT")
ate:Show("HAT_HAIR")
ate:Hide("HAIR_NOHAT")
ate:Hide("HAIR")
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
ate:PlayAnimation("idle")
ate:Hide("snow")
orm:SetFourFaced()
orm:SetScale(0.8,0.8,0.8)
son:AddComponent("combat")
ectsymbol = "torso"
:SetRetargetFunction(3, function(son)
if not :IsDead() then
return FindEntity(son, 20, function(guy)
if and not :IsDead()
then
return == GetPlayer() or
GetPlayer(). == guy
end
end)
end
end )
:SetKeepTargetFunction(function(son, target) return
target and target:IsValid() end )
:SetAttackPeriod(1)
:SetRange(2, 3)
:SetDefaultDamage(10)
son:AddComponent("health")
:SetMaxHealth(1000)
out = true
son:AddComponent("inventory")
death = false
son:AddComponent("locomotor")
ps = { ignorecreep = true }
ed = 12
local brain = require"brains/shadowwaxwellbrain"
son:SetBrain(brain)
son:SetStateGraph("SGshadowwaxwell")
son:RemoveComponent("lootdropper")
son:RemoveComponent("workable")
MakeCharacterPhysics(son, 75, .5)
son:RemoveTag("structure")
son:AddComponent("follower")
= GetPlayer()
son:AddComponent("trader")
:SetAcceptTest(function(son, item)
if GetPlayer().ory:Has("goldnugget", 5) then
if == "goldnugget" and and not
:IsDead() then
return :GetPercent() < .99
end
end
return false
end )
pt = function(son, giver, item)
GetPlayer().ory:ConsumeByName("goldnugget", 4)
:DoDelta(1000)
end
son:AddComponent("machine")
fn = function() tor:Stop()
:Stop() end
ffn = function() :Start() end
son:ListenForEvent("death", function()
GetPlayer().:DoDelta(-100)
SpawnPrefab("trinket_1").Transform:SetPosition(orm:GetWorldPosition())
end )
son:AddTag("companion")
son:AddTag("sons")
inst:Remove()
end )
end
local function OnDeploy (inst, pt)
if GetPlayer().ory:Has("goldnugget", 100) then
GetPlayer().ory:ConsumeByName("goldnugget", 100)
local egg1 = SpawnPrefab("minotaurhorn")
ate:SetBuild("tallbird_egg")
ate:SetBank("egg")
ate:PlayAnimation("egg")
orm:SetPosition(pt.x+2+3, pt.y, pt.z+2-3)
ate:SetMultColour(0/255,255/255,0/255,1)
orm:SetScale(1.5,1.5,1.5)
egg1:AddComponent("health")
:SetMaxHealth(1)
egg1:AddComponent("combat")
egg1:RemoveComponent("edible")
ickedup = false
local egg2 = SpawnPrefab("minotaurhorn")
ate:SetBuild("tallbird_egg")
ate:SetBank("egg")
ate:PlayAnimation("egg")
orm:SetPosition(pt.x+2-3, pt.y, pt.z+2+3)
ate:SetMultColour(0/255,255/255,0/255,1)
orm:SetScale(1.5,1.5,1.5)
egg2:AddComponent("health")
:SetMaxHealth(1)
egg2:AddComponent("combat")
egg2:RemoveComponent("edible")
ickedup = false
egg1:ListenForEvent("death", function() ate:PlayAnimation("crack")
egg2:Remove()
if ()<.5 then
local pt = GetPlayer():GetPosition()
GetSeasonManager():DoLightningStrike(pt)
inst:DoTaskInTime(1, function() getson(inst) end )
else
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo
")
end
end )
egg2:ListenForEvent("death", function() ate:PlayAnimation("crack")
egg1:Remove()
if ()<.5 then
local pt = GetPlayer():GetPosition()
GetSeasonManager():DoLightningStrike(pt)
inst:DoTaskInTime(2, function() getson(inst) end )
else
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo
")
end
end )
end
end
inst:AddComponent("deployable")
oy = OnDeploy
2.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local items = { AXE = "swap_axe", PICK = "swap_pickaxe", SWORD = "swap_spear" }
local function EquipItem(inst, item)
if item then
ate:OverrideSymbol("swap_object", item, item)
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
end
= items
n = EquipItem
EquipItem(inst)
local function onsave(inst, data)
if inst:HasTag("sons") then
= true
end
end
local function onload(inst, data)
if data and then
ate:SetBank("wilson")
if GetPlayer().prefab == "wilson" then ate:SetBuild("wilson") end
if GetPlayer().prefab == "wendy" then ate:SetBuild("wendy") end
if GetPlayer().prefab == "wes" then ate:SetBuild("wes") end
if GetPlayer().prefab == "wickerbottom" then
ate:SetBuild("wickerbottom") end
if GetPlayer().prefab == "willow" then ate:SetBuild("willow") end
if GetPlayer().prefab == "wolfgang" then
ate:SetBuild("wolfgang_skinny") end
if GetPlayer().prefab == "wx78" then ate:SetBuild("wx78") end
if GetPlayer().prefab == "woodie" then ate:SetBuild("woodie") end
if GetPlayer().prefab == "waxwell" then ate:SetBuild("waxwell") end
local hats =
{"hat_beefalo","hat_feather","hat_flower","hat_top","hat_walrus","hat_winter"}
local hat = hats[(#hats)]
ate:OverrideSymbol("swap_hat", hat, "swap_hat")
local armors =
{"armor_sanity","armor_slurper","armor_sweatervest","armor_trunkvest_summer","ar
mor_trunkvest_winter"}
local armor = armors[(#armors)]
ate:OverrideSymbol("swap_body", armor, "swap_body")
ate:Show("HAT")
ate:Show("HAT_HAIR")
ate:Hide("HAIR_NOHAT")
ate:Hide("HAIR")
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
ate:PlayAnimation("idle")
ate:Hide("snow")
orm:SetFourFaced()
orm:SetScale(0.8,0.8,0.8)
inst:AddComponent("combat")
ectsymbol = "torso"
:SetRetargetFunction(3, function(inst)
if not :IsDead() then
return FindEntity(inst, 20, function(guy)
if and not :IsDead()
then
return == GetPlayer() or
GetPlayer(). == guy
end
end)
end
end )
:SetKeepTargetFunction(function(inst, target) return
target and target:IsValid() end )
:SetAttackPeriod(1)
:SetRange(2, 3)
:SetDefaultDamage(10)
inst:AddComponent("health")
:SetMaxHealth(1000)
out = true
inst:AddComponent("inventory")
death = false
inst:AddComponent("locomotor")
ps = { ignorecreep = true }
ed = 12
local brain = require"brains/shadowwaxwellbrain"
inst:SetBrain(brain)
inst:SetStateGraph("SGshadowwaxwell")
inst:RemoveComponent("lootdropper")
inst:RemoveComponent("workable")
MakeCharacterPhysics(inst, 75, .5)
inst:RemoveTag("structure")
inst:AddComponent("follower")
= GetPlayer()
inst:AddComponent("trader")
:SetAcceptTest(function(inst, item)
if GetPlayer().ory:Has("goldnugget", 5) then
if == "goldnugget" and and not
:IsDead() then
return :GetPercent() < .99
end
end
return false
end )
pt = function(inst, giver, item)
GetPlayer().ory:ConsumeByName("goldnugget", 4)
:DoDelta(1000)
end
inst:AddComponent("machine")
fn = function() tor:Stop()
:Stop() end
ffn = function() :Start() end
inst:ListenForEvent("death", function()
GetPlayer().:DoDelta(-100)
SpawnPrefab("trinket_1").Transform:SetPosition(orm:GetWorldPosition()
)
end )
inst:AddTag("companion")
inst:AddTag("sons")
end
end
= onsave
= onload
即可在你攒够100个黄金时,将远古守护者角种在地上,向上天求子,会赐予你2个蛋
(身上黄金数不足时,只收走远古守护者角,不给蛋),选一个打破,如果中了(屏幕黑一下),
就会获得孩子,如果没中(生一团烟),就只能下次再试了。使用不同主角,将获得不同的孩
子,可以带着他打仗、砍树、开矿。如果你死了,他将长大成人,继承你的事业,一代一代
在饥荒世界里生存下去。如果他不幸夭折了,对你而言无疑是晴天霹雳(减100点脑),他将
为你留下一件小小的遗物,让你永远不要忘记他。当遇到危险时,可以对他点鼠标右键,让
他停留在原地,等危险排除了,再对他按右键,即可继续跟随。可以通过给零花钱为他补血
(拿着黄金对他点鼠标左键),一次5个黄金,身上黄金数不足或孩子满血时拒收。注意未成
年人是不会跟着你下地洞的,把他安顿好后再去刷怪吧
一九一.斗牛场(对大理石树按鼠标右键出10头牛攻击主角)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local marbletree = SpawnPrefab("marbletree")
if marbletree then
marbletree:PushEvent("growfromgoldnugget")
orm:SetPosition(pt.x, pt.y, pt.z)
ble:Get():Remove()
end
end
inst:AddComponent("deployable")
oy = OnDeploy
inst:AddComponent("stackable")
e = _SIZE_SMALLITEM
2.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function Spawnchild(inst)
inst:AddComponent("childspawner")
pawner:SetMaxChildren(10)
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
local player = GetPlayer()
inst:DoTaskInTime(5, function()
pawner:ReleaseAllChildren(player, "beefalo")
end)
end
local function turnon(inst)
= true
Spawnchild(inst)
end
local function turnoff(inst)
= false
Spawnchild(inst)
end
inst:AddComponent("machine")
fn = turnon
ffn = turnoff
即可种牛角得大理石树,用鼠标右键点击大理石树,5秒后冲出10头牛攻击主角。将其
中的beefalo(牛)替换为其他怪物,会更恐怖哦,充分满足喜欢自虐的同学们
一九二.鱼人入侵(每个傍晚都可能遭到众多鱼人的伏击)
用记事本打开游戏目录文件,在
inst:AddComponent("frograin")的下一行插入以下内容:
local function OnNight(inst)
local player = GetPlayer()
local pt = Vector3(orm:GetWorldPosition())
local nummerms = (15)
local ground = GetWorld()
if ()< .2 then
for k = 1, nummerms do
local theta = 1 * 2 * PI
local radius = 12
local result_offset = FindValidPositionByFan(theta, radius, nummerms,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset and :GetTileAtPoint((pt +
result_offset):Get()) ~= ABLE then
local merm = SpawnPrefab("merm")
orm:SetPosition((pt + result_offset):Get())
= player
GetPlayer().controller:ShakeCamera(inst, "FULL",
0.2, 0.02, .25, 40)
local fx = SpawnPrefab("collapse_small")
local pos = pt + result_offset
orm:SetPosition(pos.x, pos.y, pos.z)
end
end
end
end
inst:ListenForEvent( "dusktime", function() OnNight( inst ) end, GetWorld())
即可让主角在地面时,每天傍晚都有一定概率遭到众多鱼人(数字随机)的伏击。建议
鱼人人数少时就和它们拼了,人数多时就跑,它们会暂时占据这个地区,等到白天它们睡着
时再各个击破
一九三.宝物猎人(地面每天出宝贝,限时寻宝赢奖金)
用记事本打开游戏目录文件,在
inst:AddComponent("hunter")的下一行插入以下内容:
local function OnDay(inst)
local names =
{"trinket_1","trinket_2","trinket_3","trinket_4","trinket_5","trinket_6","trinke
t_7","trinket_8","trinket_9","trinket_10","trinket_11","trinket_12"}
= names[(#names)]
local player = GetPlayer()
local pt = Vector3(orm:GetWorldPosition())
local gold = SpawnPrefab()
orm:SetPosition(pt.x+((500)-(500)), 0,
pt.z+((500)-(500)))
gold:RemoveComponent("tradable")
gold:RemoveComponent("stackable")
local minimap = :AddMiniMapEntity()
minimap:SetIcon( "abigail_" )
inst:DoTaskInTime(60+(5), function()
if not oryitem:IsHeld() then
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPos
ition())
mitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
else
for k = 1, 10+(10) do
SpawnPrefab("goldnugget").Transform:SetPosition(orm:GetWorldPositio
n())
mitter:PlaySound("dontstarve/HUD/get_gold")
end
end
gold:Remove()
end)
end
inst:ListenForEvent( "daytime", function() OnDay(inst) end, GetWorld())
即可在每天天亮时,地面随机出现宝物(12种收藏品之一),小地图上将显示红花的图
标,在1分钟内捡到就可获得奖金,错过时间宝物将消失(生起一团烟就说明寻宝失败)。当
寻宝计时结束,你也已经捡到宝物的话,将获得10-20个黄金的奖励(出现在脚下)。注意,
宝物很有可能出现在海上,如果没有修改过“地图全开”、“主角可渡海”,就只能望洋兴叹了
一九四.无尽的任务(点路牌接任务,讨伐怪物赚赏金)
用记事本打开游戏目录文件,将
inst:AddComponent("inspectable")替换为以下内容:
ate:SetMultColour(35/255,105/255,235/255,1)
local function GetStatus(inst)
local names =
{"spiderqueen","deerclops","leif_sparse","minotaur","knight","bishop","rook","fi
rehound"}
= names[(#names)]
local player = GetPlayer()
local bonuspoints = (6)
local pt = Vector3(orm:GetWorldPosition())
local wanted = SpawnPrefab()
orm:SetPosition(pt.x+((300)-(300)), 0,
pt.z+((300)-(300)))
:SetMaxHealth(1000 * bonuspoints)
:DoDelta(1000 * bonuspoints)
ate:SetMultColour(255/255,0/255,0/255,1)
orm:SetScale(1.5, 1.5, 1.5)
ate:SetMultColour(255/255,0/255,0/255,1)
local minimap = :AddMiniMapEntity()
minimap:SetIcon( "lucy_" )
inst:DoTaskInTime(180, function()
if not :IsDead() then
SpawnPrefab("die_fx").Transform:SetPosition(orm:GetWorldPosition())
SpawnPrefab("die_fx").Transform:SetPosition(orm:GetWorldPosition())
mitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo")
wanted:Remove()
else
for k = 1, 20*bonuspoints do
SpawnPrefab("goldnugget").Transform:SetPosition(pt.x+2, pt.y, pt.z+2)
mitter:PlaySound("dontstarve/HUD/get_gold")
end
end
ate:SetMultColour(35/255,105/255,235/255,1)
end)
end
inst:AddComponent("inspectable")
tus = GetStatus
即可点路牌接任务,地图随机位置将出现一个被通缉的怪物,全身红色,小地图上显示
为红色斧子图标,血量随机在1000-6000点,不由怪物品种决定(1只狗可能拥有6000的血
量)。在3分钟内(游戏中6个小时)找到并杀死它,即讨伐成功,错过时间则任务失败(升
起黑烟),被通缉的怪物将人间蒸发。任务时间结束后,如果讨伐成功,将在路牌处发放20-120
个黄金的赏金,杀死的怪物血量越高,赏金越高。怪物有可能出现在海上,如果没有修改过
“地图全开”、“主角可渡海”,就只能望洋兴叹了。这是一个无尽的任务系统,如果同时修改
了“巨型超市”,则可以用赏金购买造装备的材料及补血料理,从此开始赏金猎人的生涯吧
一九五.无限进化(给远古祭坛500个黄金,升级主角血量、饥饿、脑最大值各100点)
1.用记事本打开游戏目录datascriptsprefabsplayer_文件,将下列内
容:
inst:AddComponent("health")
:SetMaxHealth(_HEALTH)
out = true
-------
inst:AddComponent("hunger")
:SetMax(_HUNGER)
:SetRate(_HUNGER_RATE)
:SetKillRate(_HEALTH/_KILL_TIME)
inst:AddComponent("sanity")
:SetMax(_SANITY)
= OnSane
ne = OnInsane
替换为:
local function newupgrades(inst)
lth = _HEALTH + _num*100
= _HUNGER + _num*100
= _SANITY + _num*100
end
_num = 0
inst:AddComponent("health")
:SetMaxHealth(_HEALTH +
_num*100)
out = true
inst:AddComponent("hunger")
:SetMax(_HUNGER + _num*100)
:SetRate(_HUNGER_RATE)
:SetKillRate(_HEALTH/_KILL_TIME)
inst:AddComponent("sanity")
:SetMax(_SANITY + _num*100)
= OnSane
ne = OnInsane
newupgrades(inst)
local function onsave(inst, data)
_num = _num
end
local function onload(inst, data)
_num = _num or 0
lth = _HEALTH + _num*100
= _HUNGER + _num*100
= _SANITY + _num*100
if and then
thealth = end
if and then t =
end
if and t then t =
t end
end
= onsave
= onload
2.用记事本打开游戏目录datascriptsprefabsaltar_文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
local player = GetPlayer()
if ory:Has("goldnugget", 500) then
if == "goldnugget" then
return true
end
end
return false
end
local function OnGetItemFromPlayer(inst, giver, item)
if == "goldnugget" then
ory:ConsumeByName("goldnugget", 499)
_num = _num + 1
mitter:PlaySound("dontstarve/characters/wx78/levelup")
:PulseGreen()
h:PulseGreen()
:PulseGreen()
:ScaleTo(1.3,1,.7)
:ScaleTo(1.3,1,.7)
h:ScaleTo(1.3,1,.7)
lth = _HEALTH +
_num*100
= _HUNGER + _num*100
= _SANITY + _num*100
:DoDelta(lth)
:DoDelta()
:DoDelta()
end
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可给远古祭坛500个黄金(拿着黄金对远古祭坛按鼠标左键),升级主角血量、饥饿、
脑最大值各100点,升级无上限,身上黄金不足500时不会升级。如果缺少黄金,可以修改
“菜市场”、“肉食店”、“流动商贩”、“杂货收购行”、“收藏品黑市”、“收藏品期货市场”等
交易系统赚取黄金(见本修改技巧)。用机器人(wx78)、大力士(沃尔夫冈)作主角时,不
要修改此项
一九六.许愿池(给池塘黄金消顽皮值,天上有机会下黄金雨,接到就是你的)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
if == "goldnugget" then
return true
end
return false
end
local function OnGetItemFromPlayer(inst, giver, item)
if GetPlayer().d and
GetPlayer().old > 0 then
GetPlayer().old =
GetPlayer().old -1
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/krampus/beenbad_lvl3")
end
if ()<.1 then
GetPlayer().SoundEmitter:PlaySound("dontstarve/music/music_hoedown",
"beavermusic")
inst:StartThread(function()
for k = 1, 50 do
local pt = Vector3(orm:GetWorldPosition())
local gold = SpawnPrefab("goldnugget")
orm:SetPosition(pt.x+((5)-(5)),
20, pt.z+((5)-(5)))
ickedup = false
inst:DoTaskInTime(1.8, function()
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 2)
for k,v in pairs(ents) do
if v:HasTag("player") then
ory:GiveItem(gold)
end
end
end)
inst:DoTaskInTime(2, function()
local pt2 = gold:GetPosition()
if not oryitem:IsHeld() then
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/stone_drop")
SpawnPrefab("ground_chunks_breaking").Transform:SetPosition(pt2.x, 0, pt2.z)
gold:Remove()
else
ickedup = true
end
end)
Sleep(1)
end
GetPlayer().SoundEmitter:KillSound("beavermusic")
end)
end
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可拿着黄金对池塘点左键,每次消减一点顽皮值(杀小动物的惩罚点数),并发出喘息
声,如果没有喘息声,表示你的顽皮值已经为零,罪已经赎清了。许愿的过程中,天上有一
定概率下起黄金雨(50个黄金),黄金落地弹起的刹那,如果你接到就归你了(跑到黄金掉
落位置),否则会摔碎,试试你的反应能力吧
一九七.人工降水(开关雨量计夏天下雨、冬天下雪,可以灭火)
用记事本打开游戏目录文件,将
inst:AddComponent("inspectable")替换为以下内容:
function firefn(inst)
local range = 3000
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
local pt = v:GetPosition()
if le and le:IsBurning() then
if == "grass" then
v:Remove()
SpawnPrefab("grass").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if == "sapling" then
v:Remove()
SpawnPrefab("sapling").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if == "reeds" then
v:Remove()
SpawnPrefab("reeds").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if == "berrybush" then
v:Remove()
SpawnPrefab("berrybush").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if == "marsh_bush" then
v:Remove()
SpawnPrefab("marsh_bush").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if == "flower_cave_triple" then
v:Remove()
SpawnPrefab("flower_cave_triple").Transform:SetPosition(pt.x, pt.y,
pt.z)
end
if == "lichen" then
v:Remove()
SpawnPrefab("lichen").Transform:SetPosition(pt.x, pt.y, pt.z)
end
end
end
end
local function GetStatus(inst, viewer)
if GetWorld(). then
GetWorld().manager:StopPrecip()
if then :Cancel() = nil end
else
GetWorld().manager:ForcePrecip()
= inst:DoPeriodicTask(8, function() firefn(inst) end)
end
end
inst:AddComponent("inspectable")
tus = GetStatus
即可在雨量计上按鼠标左键开始降水,再按一次鼠标左键停止降水,夏天下雨、冬天下
雪。可以浇灭大部分植物着的火,包括草、树枝、芦苇、果树丛、尖刺灌木、三朵洞穴花、
苔藓
一九八.人工换季(开关寒冬温度计切换冬夏)
用记事本打开游戏目录文件,将
inst:AddComponent("inspectable")替换为以下内容:
local function GetStatus(inst, viewer)
if GetWorld().manager:IsSummer() then
GetWorld().manager:StartWinter()
GetWorld().manager:Advance()
GetWorld().manager:Advance()
GetWorld().manager:ForcePrecip()
else
GetWorld().manager:StartSummer()
GetWorld().manager:Advance()
GetWorld().manager:Advance()
GetWorld().manager:ForcePrecip()
end
end
inst:AddComponent("inspectable")
tus = GetStatus
即可在寒冬温度计上按鼠标左键切换为夏天,再按一次鼠标左键切换为冬天
一九九.留下买路财(扔下黄金铲子直接回地面)
用记事本打开游戏目录文件,在
ate:SetBank("goldenshovel")的下一行插入以下内容:
local function OnActivate(inst)
local function onsaved()
StartNextInstance({reset_action=RESET__SLOT, save_slot =
SaveGameIndex:GetCurrentSaveSlot()}, true)
end
SaveGameIndex:SaveCurrent(function() SaveGameIndex:LeaveCave(onsaved)
end)
end
inst:ListenForEvent("ondropped", OnActivate)
即可无论在地下一层还是远古层,将身上的黄金铲子扔在地上,就直接回到地面洞口。
扔下黄金铲子后屏幕会停止一会儿,是系统在读地面文件。注意不要在带着宠物时使用
二00.光阴似箭(对指南针按右键跳到下个时段)
用记事本打开游戏目录文件,在local function
GetStatus(inst, viewer)的下一行插入GetClock():NextPhase()
即可对指南针按右键跳到下个时段,即白天变傍晚、傍晚变黑夜、黑夜变白天,采蘑菇、
捉萤火虫等有时段要求的事情,无须再等待了
二0一.大时代里的微光(头戴萤火虫照亮四周)
用记事本打开游戏目录文件,
1.将light:SetRadius(1)替换为light:SetRadius(5)
2.在inst:AddComponent("playerprox")的下一行插入以下内容:
local function onequip(inst, owner)
= SpawnPrefab( "torchfire" )
local follower = :AddFollower()
follower:FollowSymbol( , "swap_object", 0, -360, 0 )
:Enable(true)
end
local function onunequip(inst, owner)
:Remove()
= nil
:Enable(false)
end
inst:AddComponent("equippable")
able:SetOnEquip( onequip )
able:SetOnUnequip( onunequip )
lot =
即可将捉来的萤火虫戴在头上照亮四周。每一个人都是大时代里的微光,当我们在一起,
像数以万计的萤火,也可将黑夜点亮
二0二.五彩木箱(找东西直接看木箱颜色,木箱可搬动)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local colours=
{
{198/255,43/255,43/255},
{79/255,153/255,68/255},
{35/255,105/255,235/255},
{233/255,208/255,69/255},
{109/255,50/255,163/255},
{222/255,126/255,39/255},
}
local function onequip(inst, owner)
ate:OverrideSymbol("swap_body", "swap_backpack", "swap_body")
end
local function onunequip(inst, owner)
ate:ClearOverrideSymbol("swap_body")
end
local function turnon(inst)
= true
inst:AddComponent("inventoryitem")
end
local function turnoff(inst)
= false
inst:RemoveComponent("inventoryitem")
end
local function onsave(inst, data)
= n_num
_idx = _idx
end
local function onload(inst, data)
if data then
if then
n_num =
ate:OverrideSymbol("swap_balloon", "balloon_shapes",
"balloon_" .. tostring(n_num))
end
if _idx then
_idx = (#colours, _idx)
ate:SetMultColour(colours[_idx][1],colours[_idx
][2],colours[_idx][3],1)
end
end
end
inst:AddComponent("machine")
fn = turnon
ffn = turnoff
inst:AddComponent("equippable")
able:SetOnEquip( onequip )
able:SetOnUnequip( onunequip )
_idx = (#colours)
ate:SetMultColour(colours[_idx][1],colours[_idx
][2],colours[_idx][3],1)
= onsave
= onload
即可使木箱具备不同颜色,找东西直接看颜色,再也不用翻箱倒柜了。木箱可搬动,对
地上的木箱按鼠标右键,可拿起木箱。将木箱放在地上后,对其按鼠标右键,可以锁定在地
上
二0三.随笔涂鸦(用蓝魔杖为物品涂上色彩)
用记事本打开游戏目录文件,在local inst =
commonfn("blue")的下一行插入以下内容:
local function cancreatecolour(staff, caster, target, pos)
return true
end
local function createcolour(staff, target, pos)
local caster =
if then
:DoDelta(5)
end
local colours= { {198/255,43/255,43/255}, {79/255,153/255,68/255},
{35/255,105/255,235/255}, {233/255,208/255,69/255}, {109/255,50/255,163/255},
{222/255,126/255,39/255}, }
_idx = (#colours)
ate:SetMultColour(colours[_idx][1],colours[_i
dx][2],colours[_idx][3],1)
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(createcolour)
aster:SetSpellTestFn(cancreatecolour)
ontargets = true
frominventory = false
即可用蓝魔杖右键点任何物品,为其涂上随机色彩,存档退出后消失。每涂鸦一次补脑
5点。将你涂好的缤纷世界截下图片,给朋友秀秀吧
二0四.移动垃圾桶(狗箱增加删除物品按钮作垃圾桶)
用记事本打开游戏目录文件,在
inst:AddComponent("container")的下一行插入以下内容:
local widgetbuttoninfo = {
text = "Delete",
position = Vector3(0, -195, 0),
fn = function(inst)
ner:DestroyContents()
mitter:PlaySound("dontstarve/common/destroy_stone")
end }
buttoninfo = widgetbuttoninfo
即可在切斯特狗箱的格子下方增加一个Delete按钮,将不想要的物品放入狗箱,按下
Delete按钮即可清除掉,让游戏不会因垃圾太多而越来越卡。不按钮的话,照常可以储存物
品。千万不要把骨眼放入狗箱清除掉哦
二0五.生物传送机(探矿杖左键点生物,右键传送到任意地点)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onattack(inst, owner, target)
SpawnPrefab("lightning_rod_fx").Transform:SetPosition(orm:GetWorldP
osition())
target:AddTag("send")
end
local function canteleport(inst)
return true
end
local function teleport(inst)
local player = GetPlayer()
local range = 3000
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if v:HasTag("send") then
orm:SetPosition(TheInput:GetWorldPosition():Get())
v:RemoveTag("send")
end
end
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(teleport)
aster:SetSpellTestFn(canteleport)
frominventory = false
onpoint = true
inst:AddComponent("weapon")
:SetDamage(0)
:SetRange(30, 35)
:SetOnAttack(onattack)
:SetProjectile("bishop_charge")
即可在装备探矿杖时,用鼠标左键点生物(几个都可以),无论走到地图何处,装备探矿
杖用鼠标右键点地面,都可将选中的生物传送过来。生物传送机可让群体性动物落单,让不
会相遇的动物碰面,调离守护某处的敌人等。探矿杖在科学选项(画着原子)下,用1个树
枝、4个噩梦燃料、1个齿轮制造
二0六.极速快递(拿着背包对地面点右键,将它传送回家)
用记事本打开游戏目录文件,将
ncontainer = false替换为以下内容:
ncontainer = true
local function OnDeploy (inst, pt)
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
local range = 3000
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if == "firepit" then
orm:SetPosition(orm:GetWorldPosition())
end
end
end
inst:AddComponent("deployable")
oy = OnDeploy
inst:AddTag("fridge")
即可将拿不下的东西放在普通背包里,拿着背包对地面点鼠标右键,会自动传送到石头
营火旁,再多的战利品都可以快递回家。背包同时具备冷藏功能,里面的食物可以长久保鲜。
快递只在同一地层服务(不能从地下传送到地面),为保证快递投送准确,请在同一地层只保
留一处石头营火(多处的话将随机投送)。如果之前修改过“同时携带多个背包”,就查找不
到ncontainer = false这句,将
ncontainer = true替换为下面的内容即可
二0七.帽子戏法(高礼帽放在地上随机变出几十种宝物)
用记事本打开游戏目录文件,在
ness = NESS_MED的下一行插入以下内
容:
local function ondropped(inst)
local names =
{"bedroll_furry","gunpowder","panflute","onemanband","armor_sanity","nightsword"
,"batbat","armorslurper","amulet","blueamulet","purpleamulet","firestaff","icest
aff","telestaff","blowdart_sleep","blowdart_fire","blowdart_pipe","featherhat","
cane","trunkvest_summer","trunkvest_winter","nightmare_timepiece","orangeamulet"
,"yellowamulet","greenamulet","orangestaff","yellowstaff","greenstaff","ruinshat
","armorruins","ruins_bat","eyeturret_item","trunk_summer","trunk_winter","deerc
lops_eyeball","gears","nightmarefuel","livinglog","marble","minotaurhorn","kramp
us_sack","butter","tallbirdegg","honeyham","dragonpie","taffy","mandrakesoup","p
erogies","waffles","turkeydinner","honeynuggets","wormlight","beefalo","perd","k
oalefant_summer","koalefant_winter","lureplantbulb","slurtlehat","armorsnurtlesh
ell","bonestew","butterflymuffin","frogglebunwich","pumpkincookie","baconeggs","
fruitmedley","fishtacos","fishsticks","stuffedeggplant","meatballs","jammypreser
ves","bandage","healingsalve","spider_warrior","tentacle","monkey","killerbee","
worm"}
= names[(#names)]
SpawnPrefab().Transform:SetPosition(orm:GetWorldPosition())
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
end
inst:ListenForEvent("ondropped", ondropped)
即可将高礼帽放在地上,随机变出几十种宝物,也有一定几率变出怪物哦,试试你的手
气吧。高礼帽在穿戴选项(画着帽子)下,用6个蛛丝制造
二0八.变身传奇(主角吃疯肉变身其他主角)
用记事本打开游戏目录文件,在
value = -_MED的下一句插入以下内容:
local function item_oneaten(inst, eater)
local names =
{"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}
me = names[(#names)]
if eater:HasTag("player") then
ate:SetBuild(me)
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
end
end
:SetOnEatenFn(item_oneaten)
即可无须开新档,靠吃疯肉就让主角随机变成其他主角的形象,变身后小地图显示不变,
原主角技能也不变,该长胡子的还是会长胡子哦。想恢复原主角形象,存档退出后再读档即
可。变身不会变成麦斯威尔和伍迪
二0九.我是巨鹿(按键盘HOME键主角变身巨鹿,按END键还原)
用记事本打开游戏目录datascriptsprefabsplayer_文件,在
inst:AddComponent("playercontroller")的下一行插入以下内容:
TheInput:AddKeyUpHandler(KEY_HOME, function()
if ory:Has("goldnugget", 30) then
ory:ConsumeByName("goldnugget", 30)
tor:Stop()
controller:Enable(false)
ate:PlayAnimation("idle_shiver_pre")
ate:PushAnimation("idle_shiver_loop")
ate:PushAnimation("idle_shiver_pst", false)
inst:DoTaskInTime(1, function()
ate:SetBank("deerclops")
ate:SetBuild("deerclops_build")
inst:SetStateGraph("SGdeerclops")
ate:PlayAnimation("idle_loop", true)
orm:SetScale(1.5,1.5,1.5)
shadow:SetSize( 6, 3.5 )
local pos = GetPlayer():GetPosition()
GetSeasonManager():DoLightningStrike(pos)
:SetInvincible(true)
:Pause()
:SetDefaultDamage(500)
ectsymbol = "deerclops_body"
therfn = function()
mitter:PlaySound("dontstarve/creatures/deerclops/attack")
controller:ShakeCamera(inst, "FULL", 0.5, 0.05,
2, 40)
end
damagepercent = 0
:SetAreaDamage(10, 1)
inst:AddComponent("heater")
= 180
controller:Enable(true)
end )
end
end )
TheInput:AddKeyUpHandler(KEY_END, function()
tor:Stop()
controller:Enable(false)
ate:PlayAnimation("taunt")
inst:DoTaskInTime(1, function()
ate:SetBank("wilson")
ate:SetBuild(name)
inst:SetStateGraph("SGwilson")
ate:PlayAnimation("idle")
orm:SetScale(1,1,1)
shadow:SetSize( 1.3, .6 )
local pos = GetPlayer():GetPosition()
GetSeasonManager():DoLightningStrike(pos)
:SetInvincible(false)
:Resume()
:SetDefaultDamage(D_DAMAGE)
ectsymbol = "torso"
therfn = nil
:SetAreaDamage(0, 0)
inst:RemoveComponent("heater")
controller:Enable(true)
end )
end )
即可在你深陷绝境之时,对电脑屏幕大喊“我是巨鹿”,并同时按下键盘HOME键,主角
将变身无敌巨鹿(锁血、锁饥饿、不怕冷),对敌人展开恐怖的报复吧(按Ctrl + 鼠标左键
攻击)。每次变身将消耗30个黄金,身上黄金数不足时不会变身。想要变化回主角时,按键
盘END键即可。注意,由于巨鹿变身时会招来闪电,并且本身具备大面积杀伤的能力,所以
请远离基地变身,且尽量不要带同伴。修改过“神奇跳跃”的话,不要在变身巨鹿时跳跃
二一0.节日礼花(点燃荧光果放礼花)
用记事本打开游戏目录文件,在
inst:AddComponent("inventoryitem")的下一行插入以下内容:
local function OnIgniteFn(inst)
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/blackpowder_explo")
inst:DoTaskInTime(1.5, function() s:SetMotorVelOverride(0,42,0)
end)
end
local function OnExplodeFn(inst)
GetPlayer().:DoDelta(5)
inst:StartThread(function()
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo
")
SpawnPrefab("multifirework_fx").Transform:SetPosition(GetPlayer().Transform:GetW
orldPosition())
TheCamera:Shake("FULL", 0.3, 0.02, .5, 40)
Sleep(.1)
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo
")
SpawnPrefab("multifirework_fx").Transform:SetPosition(GetPlayer().Transform:GetW
orldPosition())
TheCamera:Shake("FULL", 0.3, 0.02, .5, 40)
Sleep(.1)
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo
")
SpawnPrefab("multifirework_fx").Transform:SetPosition(GetPlayer().Transform:GetW
orldPosition())
TheCamera:Shake("FULL", 0.3, 0.02, .5, 40)
Sleep(.1)
end)
end
inst:AddComponent("explosive")
ive:SetOnExplodeFn(OnExplodeFn)
ive:SetOnIgniteFn(OnIgniteFn)
即可用火炬点燃放在地上的荧光果,荧光果会飞上天空爆炸,每放一颗补5点脑,为你
的节日增加一点气氛吧。在地洞里放礼花可以引起地震。如果想连续燃放,就将荧光果摆成
一排(距离要近一些),点燃一个,其他就会陆续被点燃
二一一.璀璨流星雨(给远古盔甲10个黄金或荧光果,为你下场流星雨)
用记事本打开游戏目录datascriptsprefabsarmor_文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
if GetPlayer().ory:Has("goldnugget", 10) then
if == "goldnugget" then
return true
end
end
if GetPlayer().ory:Has("lightbulb", 10) then
if == "lightbulb" then
return true
end
end
return false
end
local function OnGetItemFromPlayer(inst, giver, item)
if == "goldnugget" then
ory:ConsumeByName("goldnugget", 9)
elseif == "lightbulb" then
ory:ConsumeByName("lightbulb", 9)
end
local bullet = SpawnPrefab("trinket_5")
orm:SetPosition(orm:GetWorldPosition())
ickedup = false
s:SetMotorVelOverride(0,20,0)
:DoDelta(10)
GetPlayer().SoundEmitter:PlaySound("dontstarve/creatures/eyeballturret/shotexplo
")
inst:DoTaskInTime(1, function() bullet:Remove() end )
inst:DoTaskInTime(1.5, function()
inst:StartThread(function()
for k = 1, 200 do
local pt = Vector3(GetPlayer().Transform:GetWorldPosition())
local rain = SpawnPrefab("lightbulb")
rain:RemoveComponent("edible")
ickedup = false
if == "goldnugget" then
ate:SetMultColour((255)/255,(255)/255,
om(255)/255,1)
end
orm:SetPosition(pt.x+((30)-(30)),
20, pt.z+((30)-(30)))
inst:DoTaskInTime(5, function()
local pt2 = rain:GetPosition()
SpawnPrefab("explode_small").Transform:SetPosition(pt2.x, 0,
pt2.z)
rain:Remove()
end)
Sleep(0.2)
end
end)
end)
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可拿着黄金或荧光果,对放在地上的远古盔甲点鼠标左键,将向空中发射火箭,打下
漫天的流星雨。每次发射消耗10个黄金或荧光果,身上数量不足时无法发射。如果给远古盔
甲的是黄金,则下彩色流星雨,如果给的是荧光果则下白色流星雨。可以连续发射,但不要
连续次数太多,除非你的计算机硬件足够坚强。每场流星雨可补脑10点。另外穿着远古盔甲,
拿黄金或荧光果对装备格点鼠标右键,同样可以发射。远古盔甲在远古选项(画着远古祭坛)
下,用6个铥矿石、4个噩梦燃料制造,制造时需要靠近远古祭坛
二一二.完好如初(红色魔杖可修复物品、回复新鲜度、补充燃料及治愈同伴)
用记事本打开游戏目录文件,在local inst =
commonfn("red")的下一行插入以下内容:
local function canbeback(staff, caster, target, pos)
if ory:Has("goldnugget", 1) then
return true
end
return false
end
local function beback(staff, target, pos)
local player = GetPlayer()
SpawnPrefab("book_fx").Transform:SetPosition(orm:GetWorldPosition()
)
if then
tfuel = l
ory:ConsumeByName("goldnugget", 1)
end
if uses then
t =
ory:ConsumeByName("goldnugget", 1)
end
if then
ion = dition
ory:ConsumeByName("goldnugget", 1)
end
if able then
remainingtime =
time
ory:ConsumeByName("goldnugget", 1)
end
if then
thealth =
lth
ory:ConsumeByName("goldnugget", 1)
end
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(beback)
aster:SetSpellTestFn(canbeback)
ontargets = true
frominventory = false
即可将想要修复的物品放在地上,装备红色魔杖右键点地上的物品,可修复武器装备使
用百分比,回复食物新鲜度,为照明物品补充燃料,也可用于治疗同伴。每次使用须支付1
个黄金,身上没有黄金时无法使用。可堆叠的物品尽量堆在一起修复,这样只要花费1个黄
金即可
二一三.我的小屋(用巨鹿眼球种小屋,左键点击可睡觉,右键点击打开库房)
1.用记事本打开游戏目录datascriptsprefabsdeerclops_文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local house = SpawnPrefab("tent")
orm:SetPosition(pt.x, pt.y, pt.z)
ate:SetBank("walrus_house")
ate:SetBuild("walrus_house")
ate:PlayAnimation("lit", true)
orm:SetScale(1.5, 1.5, 1.5)
house:AddTag("houses")
local minimap = :AddMiniMapEntity()
minimap:SetIcon( "" )
uses:SetMaxUses(10000)
uses:SetUses(10000)
if then house:RemoveComponent("trader") end
local light = :AddLight()
light:Enable(true)
house:AddComponent("machine")
fn = function()
ner:Open(GetPlayer()) end
ffn = function()
ner:Open(GetPlayer()) end
p = function(inst, sleeper)
:SetInvincible(true)
controller:Enable(false)
GetPlayer().HUD:Hide()
TheFrontEnd:Fade(false,1)
inst:DoTaskInTime(1.2, function()
GetPlayer().HUD:Show()
TheFrontEnd:Fade(true,1)
:DoDelta(_HUGE)
:DoDelta(ES_HUGE, false, true)
:DoDelta(G_HUGE, false, "tent",
true)
ature:SetTemperature(
temp)
GetClock():MakeNextDay()
:SetInvincible(false)
controller:Enable(true)
end)
end
inst:Remove()
end
inst:AddComponent("deployable")
oy = OnDeploy
2.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onsave(inst, data)
if inst:HasTag("houses") then
= true
end
end
local function onload(inst, data)
if data and then
ate:SetBank("walrus_house")
ate:SetBuild("walrus_house")
ate:PlayAnimation("lit", true)
orm:SetScale(1.5, 1.5, 1.5)
inst:AddTag("houses")
local minimap = :AddMiniMapEntity()
minimap:SetIcon( "" )
uses:SetMaxUses(10000)
uses:SetUses(10000)
if then inst:RemoveComponent("trader") end
local light = :AddLight()
light:Enable(true)
inst:AddComponent("machine")
fn = function()
ner:Open(GetPlayer()) end
ffn = function()
ner:Open(GetPlayer()) end
p = function(inst, sleeper)
:SetInvincible(true)
controller:Enable(false)
GetPlayer().HUD:Hide()
TheFrontEnd:Fade(false,1)
inst:DoTaskInTime(1.2, function()
GetPlayer().HUD:Show()
TheFrontEnd:Fade(true,1)
:DoDelta(_HUGE)
:DoDelta(ES_HUGE, false, true)
:DoDelta(G_HUGE, false, "tent",
true)
ature:SetTemperature(
temp)
GetClock():MakeNextDay()
:SetInvincible(false)
controller:Enable(true)
end)
end
end
end
= onsave
= onload
local light = :AddLight()
light:SetFalloff(1)
light:SetIntensity(.8)
light:SetRadius(10)
light:Enable(false)
light:SetColour(180/255, 195/255, 50/255)
local slotpos = {}
for y = 2, 0, -1 do
for x = 0, 8 do
(slotpos, Vector3(75*x-75*2+75, 75*y-75*2+75,0))
(slotpos, Vector3(75*x-75*2+75, 75*y-75*2-175,0))
(slotpos, Vector3(75*x-75*2+75, 75*y-75*2-425,0))
end
end
inst:AddComponent("container")
ner:SetNumSlots(#slotpos)
slotpos = slotpos
pos = Vector3(-150,300,0)
_align_tip = 160
pened = false
inst:AddTag("fridge")
即可用巨鹿眼球种小屋,用鼠标左键点击小屋可睡觉(白天也可以睡),睡醒后会补脑、
饥饿、生命值。鼠标右键点击小屋,会打开库房(远离小屋自动关闭),共81格存储空间,
并有冷藏功能。小屋日夜灯火通明,会照亮周边。不想要小屋时,用锤子砸毁即可,记住先
把库房里的东西取出来哦
二一四.新移民(白天石头营火附近出现新移民,自动打怪,可与他们做买卖,89685版及以
后游戏使用)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function createnpc(inst)
for k = 1,(10,25) do
local pt = inst:GetPosition()
local npc = SpawnPrefab("frog")
orm:SetPosition(pt.x+((50)-(50)), 0,
pt.z+((50)-(50)))
ate:SetBank("wilson")
local names =
{"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}
local buildname = names[(#names)]
ate:SetBuild(buildname)
local hats =
{"hat_bee","hat_beefalo","hat_bush","hat_earmuffs","hat_feather","hat_flower","h
at_football","hat_miner","hat_ruins","hat_slurper","hat_slurtle","hat_spider","h
at_straw","hat_top","hat_walrus","hat_winter"}
local hat = hats[(#hats)]
ate:OverrideSymbol("swap_hat", hat, "swap_hat")
local armors =
{"armor_grass","armor_marble","armor_onemanband","armor_ruins","armor_sanity","a
rmor_slurper","armor_slurtleshell","armor_sweatervest","armor_trunkvest_summer",
"armor_trunkvest_winter","armor_wood"}
local armor = armors[(#armors)]
ate:OverrideSymbol("swap_body", armor, "swap_body")
ate:Show("HAT")
ate:Show("HAT_HAIR")
ate:Hide("HAIR_NOHAT")
ate:Hide("HAIR")
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
ate:PlayAnimation("idle")
npc:SetStateGraph("SGshadowwaxwell")
:SetMaxHealth(1000)
:SetDefaultDamage(10)
:SetAttackPeriod(1)
:SetRetargetFunction(3, function(npc)
if not :IsDead() then
return FindEntity(npc, 20, function(guy)
if and not :IsDead()
then return guy:HasTag("monster") end end)
end
end )
therfn = nil
npc:RemoveComponent("sleeper")
npc:RemoveComponent("thief")
npc:RemoveComponent("lootdropper")
npc:AddComponent("trader")
:SetAcceptTest(function(npc, item)
if GetPlayer().ory:Has("goldnugget", 10) then
if able then
return false
end
if pe == "VEGGIE" then
return true
end
if pe == "MEAT" then
return true
end
if == "purplegem" or == "bluegem" or
== "redgem" or == "orangegem" or == "yellowgem" or
== "greengem" then
return true
end
end
return false
end )
pt = function(npc, giver, item)
local goldnugget = SpawnPrefab("goldnugget")
for k = 1, 2 do
GetPlayer().ory:GiveItem(goldnugget)
end
end
local minimap = :AddMiniMapEntity()
minimap:SetIcon( "" )
npc:AddTag("npcs")
end
end
local function delnpc(inst)
local range = 3000
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if v:HasTag("npcs") then
v:Remove()
end
end
end
inst:ListenForEvent( "daytime", function() createnpc(inst) end , GetWorld())
inst:ListenForEvent( "nighttime", function() delnpc(inst) end , GetWorld())
2.用记事本打开游戏目录文件,将下列内容:
:ShareTarget(er, 30, function(dude) return
dude:HasTag("frog") and not :IsDead() end, 5)
替换为:
:ShareTarget(er, 30, function(dude) return
dude:HasTag("npcs") and not :IsDead() end, 5)
3.在inst:AddComponent("inspectable")的下一行插入以下内容:
local items = { SWORD = "swap_nightmaresword" }
local function EquipItem(inst, item)
if item then
ate:OverrideSymbol("swap_object", item, item)
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
end
= items
n = EquipItem
EquipItem(inst)
local function onsave(inst, data)
if inst:HasTag("npcs") then
= true
end
end
local function onload(inst, data)
if data and then
ate:SetBank("wilson")
local names =
{"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}
local buildname = names[(#names)]
ate:SetBuild(buildname)
local hats =
{"hat_bee","hat_beefalo","hat_bush","hat_earmuffs","hat_feather","hat_flower","h
at_football","hat_miner","hat_ruins","hat_slurper","hat_slurtle","hat_spider","h
at_straw","hat_top","hat_walrus","hat_winter"}
local hat = hats[(#hats)]
ate:OverrideSymbol("swap_hat", hat, "swap_hat")
local armors =
{"armor_grass","armor_marble","armor_onemanband","armor_ruins","armor_sanity","a
rmor_slurper","armor_slurtleshell","armor_sweatervest","armor_trunkvest_summer",
"armor_trunkvest_winter","armor_wood"}
local armor = armors[(#armors)]
ate:OverrideSymbol("swap_body", armor, "swap_body")
ate:Show("HAT")
ate:Show("HAT_HAIR")
ate:Hide("HAIR_NOHAT")
ate:Hide("HAIR")
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
ate:PlayAnimation("idle")
inst:SetStateGraph("SGshadowwaxwell")
:SetMaxHealth(1000)
:SetDefaultDamage(10)
:SetAttackPeriod(1)
:SetRetargetFunction(3, function(inst)
if not :IsDead() then
return FindEntity(inst, 20, function(guy)
if and not :IsDead()
then return guy:HasTag("monster") end end)
end
end )
therfn = nil
inst:RemoveComponent("sleeper")
inst:RemoveComponent("thief")
inst:RemoveComponent("lootdropper")
inst:AddComponent("trader")
:SetAcceptTest(function(inst, item)
if GetPlayer().ory:Has("goldnugget", 10) then
if able then
return false
end
if pe == "VEGGIE" then
return true
end
if pe == "MEAT" then
return true
end
if == "purplegem" or == "bluegem" or
== "redgem" or == "orangegem" or == "yellowgem" or
== "greengem" then
return true
end
end
return false
end )
pt = function(inst, giver, item)
local goldnugget = SpawnPrefab("goldnugget")
for k = 1, 2 do
GetPlayer().ory:GiveItem(goldnugget)
end
end
local minimap = :AddMiniMapEntity()
minimap:SetIcon( "" )
inst:AddTag("npcs")
end
end
= onsave
= onload
即可在白天时,石头营火附近有新移民走动,黑夜离去,会主动攻击怪物,保护一方平
安。他们愿意购买你的肉类、蔬菜和宝石(拿着物品对新移民点鼠标左键),每个物品可以卖
2个黄金,但他们不会与穷光蛋做买卖,如果你身上没有10个黄金,则无法达成交易。如果
你攻击新移民,附近的其他人将围殴你。在地图各处建造石头营火及其他建筑,就会形成许
多小镇,饥荒世界从此不再冷清。新移民在小地图上显示为打火机图标(代表着希望),通过
查看小地图,可以了解各个小镇的人口情况
二一五.神奇跳跃(按R键主角可向前跳跃)
用记事本打开游戏目录datascriptsprefabsplayer_文件,在
inst:AddComponent("resurrectable")的下一行插入以下内容:
TheInput:AddKeyUpHandler(KEY_R, function()
s:SetCollides(false)
inst:DoTaskInTime(0, function()
ate:PlayAnimation("give")
controller:Enable(false)
tor:Stop()
s:SetMotorVelOverride(50,45,0) end )
inst:DoTaskInTime(0.2, function()
s:ClearMotorVelOverride()
s:SetMotorVelOverride(50,0,0) end )
inst:DoTaskInTime(0.3, function()
s:ClearMotorVelOverride()
s:SetMotorVelOverride(50,-25,0) end )
inst:DoTaskInTime(0.5, function()
s:ClearMotorVelOverride()
tor:Stop()
local pt = inst:GetPosition()
orm:SetPosition(pt.x, 0, pt.z)
controller:Enable(true)
s:SetCollides(true)
ate:PlayAnimation("idle")
mitter:PlaySound("dontstarve/movement/bodyfall_dirt",
"bodyfall") end )
end )
即可按键盘R键,让主角向前跳跃,用以方便地越过沟壑、墙等障碍,也可以跳到海面
上,渡海而行。当身边有障碍物时,会影响跳跃高度。将其中KEY_R替换为其他键,比如KEY_C,
就可以按键盘C键跳跃
二一六.观赏蜘蛛(用蛛丝种关在笼中的蜘蛛,喂腐烂食物产种子)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
2.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function OnDeploy (inst, pt)
local cage = SpawnPrefab("birdcage")
orm:SetPosition(pt.x, pt.y, pt.z)
ate:SetMultColour(0/255,255/255,0/255,1)
cage:AddTag("cages")
cage:RemoveComponent("occupiable")
cage:RemoveComponent("trader")
cage:AddComponent("trader")
:SetAcceptTest(function(cage, item)
if == "spoiled_food" then return true end
return false
end )
pt = function(cage, giver, item)
for k = 1, (5) do
local names =
{"carrot_seeds","corn_seeds","pumpkin_seeds","eggplant_seeds","durian_seeds","po
megranate_seeds","dragonfruit_seeds"}
local name = names[(#names)]
opper:SpawnLootPrefab(name)
end
end
local animal = SpawnPrefab("silk")
ate:SetBank("spider_queen")
ate:SetBuild("spider_queen_build")
ate:PlayAnimation("idle", true)
orm:SetScale(0.35, 0.35, 0.35)
ickedup = false
local follower = :AddFollower()
follower:FollowSymbol( , "swap_object", -10, -220, -0.1 )
cage:RemoveComponent("workable")
cage:AddComponent("workable")
le:SetWorkAction()
le:SetWorkLeft(1)
le:SetOnFinishCallback(function(cage, worker)
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
mitter:PlaySound("dontstarve/common/destroy_wood")
cage:Remove()
animal:Remove()
end )
ble:Get():Remove()
end
inst:AddComponent("deployable")
oy = OnDeploy
3.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onsave(inst, data)
if inst:HasTag("cages") then
= true
end
end
local function onload(inst, data)
if data and then
ate:SetMultColour(0/255,255/255,0/255,1)
inst:AddTag("cages")
inst:RemoveComponent("occupiable")
inst:RemoveComponent("trader")
inst:AddComponent("trader")
:SetAcceptTest(function(inst, item)
if == "spoiled_food" then return true end
return false
end )
pt = function(inst, giver, item)
for k = 1, (5) do
local names =
{"carrot_seeds","corn_seeds","pumpkin_seeds","eggplant_seeds","durian_seeds","po
megranate_seeds","dragonfruit_seeds"}
local name = names[(#names)]
opper:SpawnLootPrefab(name)
end
end
local animal = SpawnPrefab("silk")
ate:SetBank("spider_queen")
ate:SetBuild("spider_queen_build")
ate:PlayAnimation("idle", true)
orm:SetScale(0.35, 0.35, 0.35)
ickedup = false
local follower = :AddFollower()
follower:FollowSymbol( , "swap_object", -10, -220, -0.1 )
inst:RemoveComponent("workable")
inst:AddComponent("workable")
le:SetWorkAction()
le:SetWorkLeft(1)
le:SetOnFinishCallback(function(inst, worker)
SpawnPrefab("collapse_small").Transform:SetPosition(orm:GetWorldPosit
ion())
mitter:PlaySound("dontstarve/common/destroy_wood")
inst:Remove()
animal:Remove()
end )
end
end
= onsave
= onload
即可用蛛丝种关在笼中的蜘蛛,喂它腐烂食物,会掉落随机品种的植物种子。观赏蜘蛛
会不定期脱落蛛丝,不想要观赏蜘蛛了,用锤子砸掉即可
二一七.传送石(右键点装备的保温石,将主角传送到另一块保温石处)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")下一行插入以下内容:
local function canteleport(inst, caster)
return true
end
local function teleport(inst)
local caster =
local range = 3000
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if == "heatrock" and not oryitem:IsHeld() then
orm:SetPosition(orm:GetWorldPosition())
end
end
return true
end
inst:AddComponent("spellcaster")
aster:SetSpellFn(teleport)
aster:SetSpellTestFn(canteleport)
frominventory = false
onpoint = true
inst:AddComponent("equippable")
lot =
即可制造2块保温石,1块扔在要传到的地点(比如家、洞穴出口处等),另1块带在身
上,无论走到地图何处,只要装备保温石对空地按鼠标右键,马上传送回扔在地上的保温石
处。如果制造3块保温石,将2块扔在不同地点,这2点间将形成虫洞效果,装备保温石对
空地按鼠标右键,会在这2点间来回传送
二一八.御风飞翔(装备羽毛飞翔10秒)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function onequip(inst, owner)
= SpawnPrefab( "feather_"..name )
local follower = :AddFollower()
follower:FollowSymbol( , "swap_object", 0, 60, 0 )
local pt = owner:GetPosition()
orm:SetPosition(pt.x, pt.y+30, pt.z)
inst:DoTaskInTime(10, function()
local pt = owner:GetPosition()
orm:SetPosition(pt.x, pt.y-30, pt.z)
inst:Remove()
end)
end
local function onunequip(inst, owner)
local pt = owner:GetPosition()
orm:SetPosition(pt.x, pt.y-30, pt.z)
:Remove()
= nil
end
inst:AddComponent("equippable")
able:SetOnEquip( onequip )
able:SetOnUnequip( onunequip )
lot =
eedmult = _SPEED_MULT*5
即可装备羽毛飞翔10秒,体会饥荒世界从未有过的美妙感觉,洞穴也可飞行。10秒后
羽毛被耗尽,想飞就要多捕鸟哦。注意飞行时不要佩戴橙色护身符和带宠物
二一九.风力滑板车(饥荒世界陆上交通工具)
用记事本打开游戏目录文件,
1.将下列内容:
local function onequip(inst, owner)
ate:OverrideSymbol("swap_object", "swap_umbrella",
"swap_umbrella")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
UpdateSound(inst)
end
local function onunequip(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
UpdateSound(inst)
end
替换为:
local function onequip(inst, owner)
ate:OverrideSymbol("swap_object", "swap_umbrella",
"swap_umbrella")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
UpdateSound(inst)
= inst:DoPeriodicTask(.01, function()
s:SetMotorVelOverride(20,0,0) end)
= SpawnPrefab( "telebase" )
local follower = :AddFollower()
follower:FollowSymbol( , "swap_object", -90, 130, 0 )
end
local function onunequip(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
UpdateSound(inst)
if then :Cancel() = nil end
:Remove()
= nil
end
2.将下列内容:
inst:AddComponent("finiteuses")
uses:SetMaxUses(LA_USES)
uses:SetUses(LA_USES)
uses:SetOnFinished( onfinished)
--uses:SetConsumption(ORM, .125)
替换为:
inst:AddComponent("blinkstaff")
inst:AddComponent("heater")
edheat = 100
即可在装备雨伞时,脚下踩着滑板自动行驶,伞就是你的风帆,卸载雨伞后停下。鼠标
左键点地可以控制方向(也可以用键盘W、S、A、D键控制方向),鼠标右键点地可以瞬移(用
以跳过障碍),有空儿去兜兜风吧。雨伞在生存选项(画着绳套)下,用6个树枝、1个猪皮、
2个蛛丝制造
二二0.动力飞行帽(戴羽毛帽在天空自由飞翔)
用记事本打开游戏目录文件,将下列内容:
local function feather_equip(inst, owner)
onequip(inst, owner)
local ground = GetWorld()
if ground and awner then
awner:SetSpawnTimes(_SPAWN_DELAY_FEATHERHAT)
awner:SetMaxBirds(_SPAWN_MAX_FEATHERHAT)
end
end
local function feather_unequip(inst, owner)
onunequip(inst, owner)
local ground = GetWorld()
if ground and awner then
awner:SetSpawnTimes(_SPAWN_DELAY)
awner:SetMaxBirds(_SPAWN_MAX)
end
end
local function feather()
local inst = simple()
inst:AddComponent("dapperness")
ness = NESS_SMALL
able:SetOnEquip( feather_equip )
able:SetOnUnequip( feather_unequip )
inst:AddComponent("fueled")
pe = "USAGE"
:InitializeFuelLevel(RHAT_PERISHTIME)
:SetDepletedFn(generic_perish)
替换为:
local function feather_equip(inst, owner)
onequip(inst, owner)
= inst:DoPeriodicTask(.01, function()
s:SetMotorVelOverride(20,10,0) end)
inst:DoTaskInTime(3, function()
if then :Cancel() = nil end
= inst:DoPeriodicTask(.01, function()
s:SetMotorVelOverride(20,1,0) end)
end)
end
local function feather_unequip(inst, owner)
if then :Cancel() = nil end
= inst:DoPeriodicTask(.01, function()
s:SetMotorVelOverride(20,-10,0) end)
inst:DoTaskInTime(3, function()
if then :Cancel() = nil end
onunequip(inst, owner)
end)
end
local function feather()
local inst = simple()
inst:AddComponent("dapperness")
ness = NESS_SMALL
able:SetOnEquip( feather_equip )
able:SetOnUnequip( feather_unequip )
即可在戴羽毛帽时开始起飞,爬升3秒后平飞,用键盘W、S、A、D键控制方向。想降落
时卸载羽毛帽即可开始着陆,落地后会滑行一段(按W、S、A、D键可以减少滑行距离)。注
意不要在爬升阶段卸载羽毛帽(平飞时再卸载即可),否则在惯性作用下将滑出很长一段距离。
不要与“鱼人入侵”一同修改
二二一.虫洞地铁(虫洞可以搬到任意地点,搭建地铁网络)
用记事本打开游戏目录文件,
1.将:DoDelta(-_MED)替换为
:DoDelta(_MED)
2.在inst:AddComponent("inspectable")的下一行插入以下内容:
local function turnon(inst)
= true
ickedup = true
end
local function turnoff(inst)
= false
ickedup = false
end
inst:AddComponent("equippable")
inst:AddComponent("inventoryitem")
oryitem:ChangeImageName("abigail_flower")
ickedup = false
inst:AddComponent("machine")
fn = turnon
ffn = turnoff
即可对虫洞按鼠标右键解除锁在地上,再点左键就可以将它捡起(在物品栏里显示为一
朵花的图片),到要放置的地点后,将虫洞拿出放在地上,对其点鼠标右键即可再次锁在地上。
在家门口摆一排虫洞,将对应的虫洞放在想去的地方,组成自己的虫洞地铁网络吧。另外跳
虫洞不但不会降脑,反而会补脑,让你出行的心情更加愉快
二二二.全自动播种机(给避雷针草、树枝、芦苇,周围自动种下一百多个)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
2.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
3.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
4.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
local player = GetPlayer()
if ory:Has("goldnugget", 50) then
if == "cutgrass" then
return true
end
end
if ory:Has("goldnugget", 50) then
if == "twigs" then
return true
end
end
if ory:Has("goldnugget", 50) then
if == "cutreeds" then
return true
end
end
return false
end
local function OnGetItemFromPlayer(inst, giver, item)
ory:ConsumeByName("goldnugget", 50)
if == "cutgrass" then
= "grass"
end
if == "twigs" then
= "sapling"
end
if == "cutreeds" then
= "reeds"
end
local pt = Vector3(orm:GetWorldPosition())
inst:StartThread(function()
for k = 1, 25 do
local theta = 1 * 2 * PI
local radius = 4
local result_offset = FindValidPositionByFan(theta, radius, 25,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local tentacle = SpawnPrefab()
orm:SetPosition((pt + result_offset):Get())
GetPlayer().controller:ShakeCamera(inst, "FULL",
0.2, 0.02, .25, 40)
local fx = SpawnPrefab("splash_ocean")
local pos = pt + result_offset
orm:SetPosition(pos.x, pos.y, pos.z)
end
Sleep(.33)
end
for k = 1, 37 do
local theta = 1 * 2 * PI
local radius = 6
local result_offset = FindValidPositionByFan(theta, radius, 37,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local tentacle = SpawnPrefab()
orm:SetPosition((pt + result_offset):Get())
GetPlayer().controller:ShakeCamera(inst, "FULL",
0.2, 0.02, .25, 40)
local fx = SpawnPrefab("splash_ocean")
local pos = pt + result_offset
orm:SetPosition(pos.x, pos.y, pos.z)
end
Sleep(.23)
end
for k = 1, 50 do
local theta = 1 * 2 * PI
local radius = 8
local result_offset = FindValidPositionByFan(theta, radius, 50,
function(offset)
local x,y,z = (pt + offset):Get()
local ents = TheSim:FindEntities(x,y,z , 1)
return not next(ents)
end)
if result_offset then
local tentacle = SpawnPrefab()
orm:SetPosition((pt + result_offset):Get())
GetPlayer().controller:ShakeCamera(inst, "FULL",
0.2, 0.02, .25, 40)
local fx = SpawnPrefab("splash_ocean")
local pos = pt + result_offset
orm:SetPosition(pos.x, pos.y, pos.z)
end
Sleep(.13)
end
end)
return true
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可在空旷的地上建一个避雷针,给避雷针一个草(拿草对避雷针点鼠标左键),周围将
自动种下一百多个草,如果给避雷针树枝或芦苇,就自动种一百多个树枝或芦苇。同时将收
取主角50个黄金(物品栏黄金不足时将不自动播种)。避雷针周围已经自动播种好后,就不
要再给避雷针草、树枝、芦苇了,否则只扣钱不干活。将其中grass(草)改成别的物品,
比如mandrake(曼德拉草),就可以给避雷针草,播下一百多个曼德拉草
二二三.智能播种机器人(将独奏乐器扔在地上自动种100棵香蕉树)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ondropped(inst)
local player = GetPlayer()
if ory:Has("goldnugget", 50) then
ory:ConsumeByName("goldnugget", 50)
RemovePhysicsColliders(inst)
= "cave_banana_tree"
ickedup = false
inst:DoTaskInTime(1, function()
= inst:DoPeriodicTask(.5, function()
s:SetMotorVelOverride(2,0,2)
s:ClearMotorVelOverride()
mitter:PlaySound("dontstarve/characters/wx78/levelup")
SpawnPrefab().Transform:SetPosition(orm:GetWorldPosition())
end)
end)
inst:DoTaskInTime(11, function()
if then :Cancel() = nil end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
s:SetMotorVelOverride(-3,0,3)
s:ClearMotorVelOverride()
end)
inst:DoTaskInTime(12, function()
= inst:DoPeriodicTask(.5, function()
s:SetMotorVelOverride(-2,0,-2)
s:ClearMotorVelOverride()
mitter:PlaySound("dontstarve/characters/wx78/levelup")
SpawnPrefab().Transform:SetPosition(orm:GetWorldPosition())
end)
end)
inst:DoTaskInTime(22, function()
if then :Cancel() = nil end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
s:SetMotorVelOverride(-3,0,3)
s:ClearMotorVelOverride()
end)
inst:DoTaskInTime(23, function()
= inst:DoPeriodicTask(.5, function()
s:SetMotorVelOverride(2,0,2)
s:ClearMotorVelOverride()
mitter:PlaySound("dontstarve/characters/wx78/levelup")
SpawnPrefab().Transform:SetPosition(orm:GetWorldPosition())
end)
end)
inst:DoTaskInTime(33, function()
if then :Cancel() = nil end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
s:SetMotorVelOverride(-3,0,3)
s:ClearMotorVelOverride()
end)
inst:DoTaskInTime(34, function()
= inst:DoPeriodicTask(.5, function()
s:SetMotorVelOverride(-2,0,-2)
s:ClearMotorVelOverride()
mitter:PlaySound("dontstarve/characters/wx78/levelup")
SpawnPrefab().Transform:SetPosition(orm:GetWorldPosition())
end)
end)
inst:DoTaskInTime(44, function()
if then :Cancel() = nil end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
s:SetMotorVelOverride(-3,0,3)
s:ClearMotorVelOverride()
end)
inst:DoTaskInTime(45, function()
= inst:DoPeriodicTask(.5, function()
s:SetMotorVelOverride(2,0,2)
s:ClearMotorVelOverride()
mitter:PlaySound("dontstarve/characters/wx78/levelup")
SpawnPrefab().Transform:SetPosition(orm:GetWorldPosition())
end)
end)
inst:DoTaskInTime(55, function()
if then :Cancel() = nil end
mitter:PlaySound("dontstarve/characters/wx78/levelup")
s:SetMotorVelOverride(-3,0,3)
s:ClearMotorVelOverride()
ickedup = true
end)
end
end
inst:ListenForEvent("ondropped", ondropped)
即可将独奏乐器扔在开阔的空地上,它会自动行驶种下100棵香蕉树(5行,每行20棵),
同时收取主角50个黄金,身上黄金不足时不会干活。将其中的cave_banana_tree(洞穴香
蕉树)改为其他植物,如flower_cave_triple(三朵洞穴花)等,就可以种其他植物了(见
本修改技巧“常用物品中英文名称”)。独奏乐器在魔法选项(画着红骷髅)下,用2个金块、
4个噩梦燃料、2个猪皮制造
二二四.磁悬浮建筑机器人(将针线包扔在地上自动建50块农田)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function pickup(inst)
= "fast_farmplot"
local space = 2.1
local row = 10
local num = 0 local num2 = 0 local num3 = 0 local num4 = 0 local num5 = 0
local pt = GetPlayer():GetPosition()
inst:StartThread(function()
for k = 1,row do
num = num + space
orm:SetPosition(pt.x+num, 5, pt.z+num)
SpawnPrefab().Transform:SetPosition(pt.x+num, 0, pt.z+num)
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.2,
0.02, .25, 40)
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
Sleep(.5)
end
for k = 1,row do
num2 = num2 + space
orm:SetPosition(pt.x-2.6+num2, 5, pt.z+2.6+num2)
SpawnPrefab().Transform:SetPosition(pt.x-2.6+num2, 0,
pt.z+2.6+num2)
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.2,
0.02, .25, 40)
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
Sleep(.5)
end
for k = 1,row do
num3 = num3 + space
orm:SetPosition(pt.x-5.2+num3, 5, pt.z+5.2+num3)
SpawnPrefab().Transform:SetPosition(pt.x-5.2+num3, 0,
pt.z+5.2+num3)
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.2,
0.02, .25, 40)
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
Sleep(.5)
end
for k = 1,row do
num4 = num4 + space
orm:SetPosition(pt.x-7.8+num4, 5, pt.z+7.8+num4)
SpawnPrefab().Transform:SetPosition(pt.x-7.8+num4, 0,
pt.z+7.8+num4)
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.2,
0.02, .25, 40)
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
Sleep(.5)
end
for k = 1,row do
num5 = num5 + space
orm:SetPosition(pt.x-10.4+num5, 5, pt.z+10.4+num5)
SpawnPrefab().Transform:SetPosition(pt.x-10.4+num5, 0,
pt.z+10.4+num5)
GetPlayer().controller:ShakeCamera(inst, "FULL", 0.2,
0.02, .25, 40)
GetPlayer().SoundEmitter:PlaySound("dontstarve/wilson/rock_break")
Sleep(.5)
end
end)
end
local function ondropped(inst)
local player = GetPlayer()
if ory:Has("goldnugget", 100) then
mitter:PlaySound("dontstarve/characters/wx78/levelup")
s:SetMotorVelOverride(0,2,0)
ory:ConsumeByName("goldnugget", 100)
inst:DoTaskInTime(3, function() pickup(inst) end)
inst:DoTaskInTime(28, function()
s:ClearMotorVelOverride()
GetPlayer().ory:GiveItem(inst)
end)
end
end
inst:ListenForEvent("ondropped", ondropped)
即可将针线包扔在开阔的空地上,它会悬浮在空中自动建50块农田,同时收取主角100
个黄金,身上黄金不足时不会干活。将其中的fast_farmplot(高级农田)改为其他建筑,
如cookpot(煮锅)、birdcage(鸟笼)等,就可以建其他建筑了(见本修改技巧“常用物品
中英文名称”)。针线包在穿戴选项(画着礼帽)下,用1个木头、8个蛛丝、2个犬牙制造
二二五.电动斧子(拿黄金斧子自动放倒身边的树)
用记事本打开游戏目录文件,
1.将下列内容:
local function onequipgold(inst, owner)
ate:OverrideSymbol("swap_object", "swap_goldenaxe",
"swap_goldenaxe")
mitter:PlaySound("dontstarve/wilson/equip_item_gold")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
替换为:
local function pickup(inst, owner)
local range = 3
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if v:HasTag("tree") and le and not v:HasTag("stump")
then
SpawnPrefab("pine_needles").Transform:SetPosition(orm:GetWorldPositi
on())
v:Remove()
opper:DropLoot()
end
if v:HasTag("burnt") then
SpawnPrefab("pine_needles").Transform:SetPosition(orm:GetWorldPositi
on())
v:Remove()
opper:SpawnLootPrefab("charcoal")
opper:DropLoot()
end
end
mitter:PlaySound("dontstarve/forest/treeCrumble")
return true
end
local function onequipgold(inst, owner)
if ory:Has("lightbulb", 1) then
= inst:DoPeriodicTask(.033, function() pickup(inst, owner) end)
ory:ConsumeByName("lightbulb", 1)
end
ate:OverrideSymbol("swap_object", "swap_goldenaxe",
"swap_goldenaxe")
mitter:PlaySound("dontstarve/wilson/equip_item_gold")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
local function onunequipgold(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
if then :Cancel() = nil end
end
2.在able:SetOnEquip( onequipgold )的下一行插入
able:SetOnUnequip( onunequipgold )
即可拿黄金斧子自动放倒身边的树(类似电锯),效率极高,且不留树根,方便种新树。
电动斧子需要能源,每次装备时自动开启,会消耗1个荧光果,如果身上没有荧光果,则不
会开启电动功能,只能手动砍树了
二二六.电动镐(拿黄金镐自动凿开身边的石头)
1.用记事本打开游戏目录文件,将下列内容:
local function onequipgold(inst, owner)
ate:OverrideSymbol("swap_object", "swap_goldenpickaxe",
"swap_goldenpickaxe")
mitter:PlaySound("dontstarve/wilson/equip_item_gold")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
替换为:
local function pickup(inst, owner)
local range = 3
local pos = Vector3(orm:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
if le and ==
then
v:Remove()
opper:DropLoot()
end
end
mitter:PlaySound("dontstarve/wilson/rock_break")
return true
end
local function onequipgold(inst, owner)
if ory:Has("lightbulb", 1) then
= inst:DoPeriodicTask(.033, function() pickup(inst, owner) end)
ory:ConsumeByName("lightbulb", 1)
end
ate:OverrideSymbol("swap_object", "swap_goldenpickaxe",
"swap_goldenpickaxe")
mitter:PlaySound("dontstarve/wilson/equip_item_gold")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
local function onunequipgold(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
if then :Cancel() = nil end
end
2.在able:SetOnEquip( onequipgold )的下一行插入
able:SetOnUnequip( onunequipgold )
即可拿黄金镐自动凿开身边的石头,效率极高,连大理石树、蜘蛛洞、远古雕像都可轻
松凿平。电动镐需要能源,每次装备时自动开启,会消耗1个荧光果,如果身上没有荧光果,
则不会开启电动功能,只能手动开矿了
二二七.电动草叉(拿草叉自动铲起脚下的地皮)
用记事本打开游戏目录文件,将下列内容:
local function onequip(inst, owner)
ate:OverrideSymbol("swap_object", "swap_pitchfork",
"swap_pitchfork")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
local function onunequip(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
end
替换为:
local function pickup(inst, owner)
local pt = owner:GetPosition()
ormer:Terraform(pt)
mitter:PlaySound("dontstarve/wilson/dig")
end
local function onequip(inst, owner)
if ory:Has("lightbulb", 1) then
= inst:DoPeriodicTask(.033, function() pickup(inst, owner) end)
ory:ConsumeByName("lightbulb", 1)
end
ate:OverrideSymbol("swap_object", "swap_pitchfork",
"swap_pitchfork")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
local function onunequip(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
if then :Cancel() = nil end
end
即可拿草叉自动铲起脚下的地皮,效率极高,铲地的速度只取决于你走多快。电动草叉
需要能源,每次装备时自动开启,会消耗1个荧光果,如果身上没有荧光果,则不会开启电
动功能,只能手动铲地了
二二八.电动铺路铲(拿黄金铲自动将脚下的空地皮铺成路)
用记事本打开游戏目录文件,
1.将下列内容:
local function onequipgold(inst, owner)
ate:OverrideSymbol("swap_object", "swap_goldenshovel",
"swap_goldenshovel")
mitter:PlaySound("dontstarve/wilson/equip_item_gold")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
替换为:
local function pickup(inst, owner)
=
local pt = owner:GetPosition()
local ground = GetWorld()
local tile = :GetTileAtPoint(pt.x, pt.y, pt.z)
if ground and tile == then
local original_tile_type = :GetTileAtPoint(pt.x, pt.y, pt.z)
local x, y = :GetTileCoordsAtPoint(pt.x, pt.y, pt.z)
if x and y then
:SetTile(x,y, )
:RebuildLayer( original_tile_type, x, y )
:RebuildLayer( , x, y )
end
local minimap = TheSim:FindFirstEntityWithTag("minimap")
if minimap then
p:RebuildLayer( original_tile_type, x, y )
p:RebuildLayer( , x, y )
end
end
mitter:PlaySound("dontstarve/wilson/dig")
end
local function onequipgold(inst, owner)
if ory:Has("lightbulb", 1) then
= inst:DoPeriodicTask(.033, function() pickup(inst, owner) end)
ory:ConsumeByName("lightbulb", 1)
end
ate:OverrideSymbol("swap_object", "swap_goldenshovel",
"swap_goldenshovel")
mitter:PlaySound("dontstarve/wilson/equip_item_gold")
ate:Show("ARM_carry")
ate:Hide("ARM_normal")
end
local function onunequipgold(inst, owner)
ate:Hide("ARM_carry")
ate:Show("ARM_normal")
if then :Cancel() = nil end
end
2.在able:SetOnEquip( onequipgold )的下一行插入
able:SetOnUnequip( onunequipgold )
即可拿黄金铲自动将脚下的空地皮铺成路,效率极高,铺路的速度只取决于你走多快。
电动铺路铲需要能源,每次装备时自动开启,会消耗1个荧光果,如果身上没有荧光果,则
不会开启电动功能。将其中(卵石路)替换为其他地皮名称,如
(岩石地皮)、(污垢地皮)、A(热带草原地皮)、
(长草地皮)、(森林地皮)、(沼泽地皮)、OOR
(木质地板)、(地毯地板)、R(棋盘地板)、(鸟
粪地皮)、(菌类地皮)、RED(红菌类地皮)、GREEN
(绿菌类地皮)、LE(粘滑地皮)、OCK(洞穴石地地皮)、
(泥泞地皮),就可以自动铺其他地皮
二二九.菜市场(在兔房买卖农产品)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
if item:HasTag("hat") then
return false
end
if pe == "MEAT" then
return false
end
if pe == "SEEDS" then
return false
end
return true
end
local function OnGetItemFromPlayer(inst, giver, item)
local names =
{"cave_banana","carrot","corn","pumpkin","eggplant","durian","pomegranate","drag
onfruit","berries"}
= names[(#names)]
local veggie = SpawnPrefab()
local goldnugget = SpawnPrefab("goldnugget")
if pe == "VEGGIE" then
ory:GiveItem(goldnugget)
end
if == "goldnugget" then
ory:GiveItem(veggie)
end
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可将种出来的农产品卖给兔房(拿着农产品左键点兔房),获得1个黄金,黄金会自动
打入账户(主角物品条)。也可以给兔房黄金,买入随机品种的农产品(香蕉、胡萝卜、茄子、
南瓜、玉米、榴莲、石榴、火龙果、浆果)。本店同时收购叶子、荧光果、花瓣、噩梦花瓣、
远古虫子果,通通1个黄金哦
二三0.肉食店(在猪房买卖肉类)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
if item:HasTag("hat") then
return false
end
if pe == "VEGGIE" then
return false
end
if pe == "SEEDS" then
return false
end
return true
end
local function OnGetItemFromPlayer(inst, giver, item)
local names =
{"meat","smallmeat","fish","eel","drumstick","bird_egg","froglegs"}
= names[(#names)]
local meat = SpawnPrefab()
local goldnugget = SpawnPrefab("goldnugget")
if pe == "MEAT" then
ory:GiveItem(goldnugget)
end
if == "goldnugget" then
ory:GiveItem(meat)
end
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可将各种肉类(包括疯肉)卖给猪房(拿着肉类左键点猪房),获得1个黄金,黄金会
自动打入账户(主角物品条)。也可以给猪房黄金,买入随机品种的肉类(大肉、小肉、鱼、
鳗鱼、鸡腿、鸟蛋、蛙腿)
二三一.流动商贩(在猪村、兔村摆地摊)
1.用记事本打开游戏目录文件,在local function
OnEat(inst, food)的下一行插入以下内容:
if and pe == "MEAT" then
for k = 1, 2 do
local gold = SpawnPrefab("goldnugget")
orm:SetPosition(orm:GetWorldPosition())
end
end
2.用记事本打开游戏目录文件,在
inst:AddComponent("eater")的下一行插入以下内容:
local function OnEat(inst, food)
if and pe == "VEGGIE" then
for k = 1, 2 do
local gold = SpawnPrefab("goldnugget")
orm:SetPosition(orm:GetWorldPosition())
end
end
end
:SetOnEatFn(OnEat)
即可在猪村将肉类(包括鱼、鸡蛋、蛙腿等)放在地上,在兔村将蔬菜(包括农产品、
香蕉、浆果等)放在地上,它们会自动来买,每个肉类或蔬菜付2个黄金(扔在地上)。如果
地图上没有猪村(地上)、兔村(地下一层),可以自己建造猪房、兔房形成
二三二.杂货收购行(将料理、帽子、绳子、木板、石砖卖给帐篷换黄金)
1.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
2.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
3.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入inst:AddComponent("tradable")
4.用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
local player = GetPlayer()
if ory:Has("goldnugget", 10) then
if item:HasTag("hat") then
return true
end
end
if ory:Has("goldnugget", 10) then
if item:HasTag("preparedfood") and ~= "wetgoop" then
return true
end
end
if ory:Has("goldnugget", 10) then
if == "rope" then
return true
end
end
if ory:Has("goldnugget", 10) then
if == "boards" then
return true
end
end
if ory:Has("goldnugget", 10) then
if == "cutstone" then
return true
end
end
return false
end
local function OnGetItemFromPlayer(inst, giver, item)
local goldnugget = SpawnPrefab("goldnugget")
if item:HasTag("hat") then
for k = 1, 3 do
ory:GiveItem(goldnugget)
end
end
if item:HasTag("preparedfood") and ~= "wetgoop" then
for k = 1, 5 do
ory:GiveItem(goldnugget)
end
end
if == "rope" then
ory:GiveItem(goldnugget)
end
if == "boards" then
ory:GiveItem(goldnugget)
end
if == "cutstone" then
ory:GiveItem(goldnugget)
end
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
:SetAcceptTest(ShouldAcceptItem)
即可将料理、帽子、绳子、木板、石砖卖给帐篷换黄金(拿着物品对帐篷点鼠标左键),
其中料理收购价5个黄金,帽子3个黄金,绳子、木板、石砖都是1个黄金。注意,杂货行
不愿意与没有实力的客户做买卖,如果你身上的黄金数不足10个,则无法在杂货行卖出产品
(身上至少有10个黄金)
二三三.收藏品黑市(在鱼人房买收藏品卖给猪王赚差价)
用记事本打开游戏目录文件,在
inst:AddComponent("inspectable")的下一行插入以下内容:
local function ShouldAcceptItem(inst, item)
local player = GetPlayer()
if ory:Has("goldnugget", 4) then
if == "goldnugget" then
return true
end
end
return false
end
local function OnGetItemFromPlayer(inst, giver, item)
local names =
{"trinket_1","trinket_2","trinket_3","trinket_4","trinket_5","trinket_6","trinke
t_7","trinket_8","trinket_9","trinket_10","trinket_11","trinket_12"}
= names[(#names)]
local trinket = SpawnPrefab()
if == "goldnugget" then
ory:ConsumeByName("goldnugget", 3)
ory:GiveItem(trinket)
end
end
inst:AddComponent("trader")
pt = OnGetItemFromPlayer
版权声明:本文标题:饥荒游戏源代码修改 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1711775250a326851.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论