通用内置修改器的一点小修改
首先感谢blackgodx的无私奉献,修改器参见原帖:[首发]《饥荒》全版本通用内置修改器。纯脚本。(更新若干新功能2/19)
http://bbs.3dmgame.com/forum.php?mod=viewthread&tid=3530975&fromuid=3455207
拿过来后发现用着不是很顺手,只支持10个物品创建,而且修改后必须保存游戏再读档重进,于是简单修改了下:
(添加到main.lua的末尾)
----from here
temp_copy_entity = nil;
-- copy inst
TheInput:AddKeyUpHandler(KEY_C, function()
if TheInput:IsKeyDown(KEY_CTRL) then
local target = nil
local ent = TheInput:GetWorldEntityUnderMouse()
if ent and not ent:HasTag("player") then
target = ent
end
temp_copy_entity = target
end
end
);
-- paste inst
TheInput:AddKeyUpHandler(KEY_V, function()
if TheInput:IsKeyDown(KEY_CTRL) and temp_copy_entity ~= nil then
if temp_copy_entity.prefab ~= "" then
local inst = Spawn(temp_copy_entity.prefab)
inst.Transform:SetPosition(TheInput:GetMouseWorldPos():Get())
end
end
end
);
-- del inst
TheInput:AddKeyUpHandler(KEY_D, function()
if TheInput:IsKeyDown(KEY_CTRL) and temp_copy_entity ~= nil then
temp_copy_entity:Remove()
temp_copy_entity = nil
end
end
);
-- move inst
TheInput:AddKeyUpHandler(KEY_X, function()
if TheInput:IsKeyDown(KEY_CTRL) and temp_copy_entity ~= nil and temp_copy_entity.Transform then
temp_copy_entity.Transform:SetPosition(TheInput:GetMouseWorldPos():Get())
end
end
);
--to here
大意是Ctrl+C 复制鼠标指向的对象,Ctrl+V 复制一份到鼠标位置,Ctrl+D是删除(不要乱用!), Ctrl+X自然是把刚复制的对象移动到鼠标制定位置。
最近简单读了下游戏的源码和结构,发现还是很好懂的,简单改了几个像蜂巢存储蜂蜜上限和背包特异功能等,觉得这游戏就是用来改的嘛~
最后还是得郑重提醒: 修改游戏会导致游戏失去初始的乐趣,不喜勿入!
CTRL + V 會錯誤當機
其他功能正常...
我要 ctrl + v >< lz的这个办法好 top10001 发表于 2013-5-3 00:08 static/image/common/back.gif
CTRL + V 會錯誤當機
其他功能正常...
能不能贴个错误图片或错误提示给我,我这试过能用的;
发个修改好的文件吧。 quishuang 发表于 2013-5-3 20:10 static/image/common/back.gif
发个修改好的文件吧。
不是我不发啊:
1 这个是有版权的啊,先发的大大们会不开心的;P
2 这里包含我自己的一些习惯修改,如果你不想用,还是手动添加那段吧~
跑速加速我改成了2, 鼠标传送我改成了按键Z,不需要Ctrl,去掉了原来末尾的那段调试,还有前面数组里的创造物件也全动过了。
将就着用吧,希望大大们看了别见怪。
我 ctrl + v 出現的錯誤,其他都正常><
top10001 发表于 2013-5-5 20:49 static/image/common/back.gif
我 ctrl + v 出現的錯誤,其他都正常><
你有没有用我贴中提到的原版修改器啊?
这个是在那个基础上添加的功能,需要那个修改器里的一个函数支持;
如果你没用的话,那就把这段添到main.lua前面:
local Spawn = function(aa)
TheSim:LoadPrefabs({aa})
return SpawnPrefab(aa)
end
额,该死的表情转义:local Spawn = function(aa)
TheSim:LoadPrefabs({aa})
return SpawnPrefab(aa)
end
页:
[1]