This commit is contained in:
2023-08-19 19:21:17 +08:00
parent 36dfa79e0d
commit 76b7abf06b
111 changed files with 12062 additions and 867 deletions

Binary file not shown.

View File

@@ -0,0 +1,3 @@
<Atlas><Texture filename="DropEverything.tex" />
<Elements><Element name="DropEverything.tex" u1="0" u2="1" v1="0" v2="1" />
</Elements></Atlas>

View File

@@ -0,0 +1,94 @@
name = " Don't Drop Everything"
author = "Shang"
old_ver = "170403.21:59"
version = "11:15 2020-08-10"
description = "Current version"..version.."\nThe previous version"..old_ver..
"\n·Install this mod, Player deaths will not drop all items."..
"\n\n!!!我为什么是英文? ↓ ↓ ↓\n请自行搜索并订阅安装 Chinese Plus 模组。"
forumthread = ""
dont_starve_compatible = false
reign_of_giants_compatible = false
shipwrecked_compatible = false
api_version = 10
dst_compatible = true
client_only_mod = false
all_clients_require_mod = false
icon_atlas = "DropEverything.xml"
icon = "DropEverything.tex"
configuration_options =
{
{name="kong",label="Type\n\n",options={{description ="Number",data = 0,}},default=0,},
{
name = "rendiao",
label = "Body biggest drop",
hover = "The maximum number of drop character of body.",
options =
{
{description = "None", data = 0, hover = ""},
{description = "1", data = 1, hover = ""},
{description = "2", data = 2, hover = ""},
{description = "3", data = 3, hover = ""},
{description = "4", data = 4, hover = ""},
{description = "5", data = 5, hover = ""},
{description = "6", data = 6, hover = ""},
{description = "7", data = 7, hover = ""},
{description = "8", data = 8, hover = ""},
{description = "9", data = 9, hover = ""}
},
default = 2,
},
{
name = "baodiao",
label = "Backpack biggest drop",
hover = "The maximum number of drop character of backpack.",
options =
{
{description = "None", data = 0, hover = ""},
{description = "1", data = 1, hover = ""},
{description = "2", data = 2, hover = ""},
{description = "3", data = 3, hover = ""},
{description = "4", data = 4, hover = ""},
{description = "5", data = 5, hover = ""},
{description = "6", data = 6, hover = ""},
{description = "7", data = 7, hover = ""},
{description = "8", data = 8, hover = ""},
{description = "9", data = 9, hover = ""}
},
default = 1,
},
{
name = "zbdiao",
label = "Equipment drops",
hover = "Death is inevitable drop equipment. \n Prevent soul state equipment durability.",
options =
{
{description = "On", data = true, hover = ""},
{description = "Off", data = false, hover = ""}
},
default = true,
},
{
name = "amudiao",
label = "Life Amulet of filter",
hover = "Death is inevitable drop a Life Amulet.",
options =
{
{description = "On", data = true, hover = ""},
{description = "Off", data = false, hover = ""}
},
default = true,
},
{
name = "nillots",
label = "Leave a item lots empty",
hover = "Death is Leave a item lots empty",
options =
{
{description = "On", data = 0, hover = ""},
{description = "Off", data = 1, hover = ""}
},
default = 0,
}
}

View File

@@ -0,0 +1,93 @@
old_ver = "170403.21:59"
version = "11:15 2020-08-10"
description = "当前版本:"..version.." 上一版本:"..old_ver..
"\n\n·新增1、支持天体之门换人物品将全部掉落。\n2、死亡将掉落身上一个救赎之心其中也包括背包一个。\n3、新增配置留一个空格子用来检测身上有没有空格子没有掉落第一个格子的物品。"..
"\n·死亡后变成灵魂将不掉落全部物品,复活后基本不用特意去捡尸体了。"..
"\n·为PvP玩家考虑如果玩家有穿戴背包里面物品也将会随机掉落可配置"..
"\n\n!!!注意:救赎之心复活人身上至少要空闲一格,其中也包括背包空闲位置!"
h_a = "玩家死亡将"
h_b = ""
h_c = "掉落"
h_d = "不超过 "
h_e = " 格的随机格数的物品"
h_f = "任何物品"
h_g = "随机掉落,我觉得没这个必要!"
ho_a = h_a..h_b..h_c..h_f
ho_b = h_a..h_c..h_d
configuration_options =
{
{name="kong",label="项目\n\n",options={{description ="格数",data = 0,}},default=0,},
{
name = "rendiao",
label = "人身最大掉落",
hover = "下面一排格子最大掉落的物品格数",
options =
{
{description = "None", data = 0, hover = ho_a},
{description = "1", data = 1, hover = ho_b.."1"..h_e},
{description = "2", data = 2, hover = ho_b.."2"..h_e},
{description = "3", data = 3, hover = ho_b.."3"..h_e},
{description = "4", data = 4, hover = ho_b.."4"..h_e},
{description = "5", data = 5, hover = ho_b.."5"..h_e},
{description = "6", data = 6, hover = ho_b.."6"..h_e},
{description = "7", data = 7, hover = ho_b.."7"..h_e},
{description = "8", data = 8, hover = ho_b.."8"..h_e},
{description = "9", data = 9, hover = ho_b.."9"..h_e}
},
default = 2,
},
{
name = "baodiao",
label = "背包最大掉落",
hover = "背包的最大掉落的物品格数",
options =
{
{description = "None", data = 0, hover = ho_a},
{description = "1", data = 1, hover = ho_b.."1"..h_e},
{description = "2", data = 2, hover = ho_b.."2"..h_e},
{description = "3", data = 3, hover = ho_b.."3"..h_e},
{description = "4", data = 4, hover = ho_b.."4"..h_e},
{description = "5", data = 5, hover = ho_b.."5"..h_e},
{description = "6", data = 6, hover = ho_b.."6"..h_e},
{description = "7", data = 7, hover = ho_b.."7"..h_e},
{description = "8", data = 8, hover = ho_b.."8"..h_e},
{description = "9", data = 9, hover = ho_b.."9"..h_e}
},
default = 1,
},
{
name = "zbdiao",
label = "装备掉落",
hover = "死亡是否必然掉落装备\n没有肉身要如何装备?\n防止灵魂状态装备掉耐久",
options =
{
{description = "", data = true, hover = "没有肉身也能装备这不科学,我选择必然掉落"},
{description = "", data = false, hover = h_g}
},
default = true,
},
{
name = "amudiao",
label = "重生护符过滤器",
hover = "死亡是否必然掉落一只重生护身符\n避免有携带重生护符但死亡没掉出来的悲剧\n默认开!",
options =
{
{description = "", data = true, hover = "必然掉落,我遇到过这种情况,我选择掉落它!"},
{description = "", data = false, hover = h_g}
},
default = true,
},
{
name = "nillots",
label = "留一个空格子",
hover = "死亡时候检测是否有空格子,没有则掉落身体第一个格子的物品,从而可以让队友复活",
options =
{
{description = "", data = 0, hover = "激活死亡空格子检测功能"},
{description = "", data = 1, hover = "禁用死亡空格子检测功能"},
},
default = 0,
}
}

View File

@@ -0,0 +1,91 @@
description =
"\n\n·新增1、支持天體之門換人物品將全部掉落。\n2、死亡將掉落身上一個救贖之心其中也包括背包一個。\n3、新增配置留一個空格子用來檢測身上有冇有空格子冇有掉落第一個格子的物品。"..
"\n·死亡後變成靈魂將不掉落全部物品,復活後基本不用特意去撿屍體了。"..
"\n·為PvP玩家考慮如果玩家有穿戴背包裏面物品也將會隨機掉落可配置"..
"\n\n!!!註意:救贖之心復活人身上至少要空閑壹格,其中也包括背包空閑位置!"
h_a = "玩家死亡將"
h_b = ""
h_c = "掉落"
h_d = "不超過 "
h_e = " 格的隨機格數的物品"
h_f = "任何物品"
h_g = "隨機掉落,我覺得沒這個必要!"
ho_a = h_a..h_b..h_c..h_f
ho_b = h_a..h_c..h_d
configuration_options =
{
{name="kong",label="項目\n\n",options={{description ="格數",data = 0,}},default=0,},
{
name = "rendiao",
label = "人身最大掉落",
hover = "下面壹排格子最大掉落的物品格數",
options =
{
{description = "None", data = 0, hover = ho_a},
{description = "1", data = 1, hover = ho_b.."1"..h_e},
{description = "2", data = 2, hover = ho_b.."2"..h_e},
{description = "3", data = 3, hover = ho_b.."3"..h_e},
{description = "4", data = 4, hover = ho_b.."4"..h_e},
{description = "5", data = 5, hover = ho_b.."5"..h_e},
{description = "6", data = 6, hover = ho_b.."6"..h_e},
{description = "7", data = 7, hover = ho_b.."7"..h_e},
{description = "8", data = 8, hover = ho_b.."8"..h_e},
{description = "9", data = 9, hover = ho_b.."9"..h_e}
},
default = 2,
},
{
name = "baodiao",
label = "背包最大掉落",
hover = "背包的最大掉落的物品格數",
options =
{
{description = "None", data = 0, hover = ho_a},
{description = "1", data = 1, hover = ho_b.."1"..h_e},
{description = "2", data = 2, hover = ho_b.."2"..h_e},
{description = "3", data = 3, hover = ho_b.."3"..h_e},
{description = "4", data = 4, hover = ho_b.."4"..h_e},
{description = "5", data = 5, hover = ho_b.."5"..h_e},
{description = "6", data = 6, hover = ho_b.."6"..h_e},
{description = "7", data = 7, hover = ho_b.."7"..h_e},
{description = "8", data = 8, hover = ho_b.."8"..h_e},
{description = "9", data = 9, hover = ho_b.."9"..h_e}
},
default = 1,
},
{
name = "zbdiao",
label = "裝備掉落",
hover = "死亡是否必然掉落裝備\n沒有肉身要如何裝備?\n防止靈魂狀態裝備掉耐久",
options =
{
{description = "", data = true, hover = "沒有肉身也能裝備這不科學,我選擇必然掉落"},
{description = "", data = false, hover = h_g}
},
default = true,
},
{
name = "amudiao",
label = "重生護符過濾器",
hover = "死亡是否必然掉落壹只重生護身符\n避免有攜帶重生護符但死亡沒掉出來的悲劇\n默認開!",
options =
{
{description = "", data = true, hover = "必然掉落,我遇到過這種情況,我選擇掉落它!"},
{description = "", data = false, hover = h_g}
},
default = true,
},
{
name = "nillots",
label = "留一個空格子",
hover = "死亡時候檢測是否有空格子,冇有則掉落身體第一個格子的物品,從而可以讓隊友複活",
options =
{
{description = "", data = 0, hover = "激活死亡空格子檢測功能"},
{description = "", data = 1, hover = "禁用死亡空格子检测功能"},
},
default = 0,
}
}

View File

@@ -0,0 +1,102 @@
local _G = GLOBAL
local R_diao = GetModConfigData("rendiao")
local B_diao = GetModConfigData("baodiao")
local amu_diao = GetModConfigData("amudiao")
local zhuang_bei = GetModConfigData("zbdiao")
local modnillots = GetModConfigData("nillots") or 0
local R_d = R_diao - 3
local B_d = B_diao - 5
if R_d < 0 then R_d = 0 end if B_d < 0 then B_d = 0 end
AddComponentPostInit("container", function(Container, inst)
function Container:DropSuiji(ondeath)
local amu_x = true
local rev_x = true
for k=1, self.numslots do
local v = self.slots[k]
if amu_diao and amu_x and v and v.prefab == "amulet" then --掉落护符
amu_x = false
self:DropItem(v)
end
if amu_diao and rev_x and v and v.prefab == "reviver" then --掉落心脏
rev_x = false
self:DropItem(v)
end
end
for k=1, self.numslots do --随机掉落背包里的物品
local v = self.slots[math.random(1, self.numslots)]
if k > math.random(B_d, B_diao) then
return false
end
if v then
self:DropItem(v)
end
end
end
end)
AddComponentPostInit("inventory", function(Inventory, inst)
Inventory.oldDropEverythingFn = Inventory.DropEverything
function Inventory:DropSuiji(ondeath)
local amu_x = true
local rev_x = true
local nillots = modnillots
for k=1, self.maxslots do
local v = self.itemslots[k]
if amu_diao and amu_x and v and v.prefab == "amulet" then --掉落护符
amu_x = false
self:DropItem(v, true, true)
end
if amu_diao and rev_x and v and v.prefab == "reviver" then --掉落心脏
rev_x = false
self:DropItem(v, true, true)
end
end
for k=1, self.maxslots do --随机掉落身体上的物品
if k~=1 and k > math.random(R_d, R_diao) then
return false
end
if v then
self:DropItem(v, true, true)
end
end
for k=1, self.maxslots do --计算空格数量
if v == nil then
nillots = nillots + 1
end
end
if nillots == 0 then --掉落身体上一格的物品,为了能够使用心脏复活
local v = self.itemslots[1] --math.random(1, self.maxslots)
if v then
self:DropItem(v, true, true)
end
end
end
function Inventory:PlayerSiWang(ondeath)
for k, v in pairs(self.equipslots) do
if v:HasTag("backpack") and v.components.container then
v.components.container:DropSuiji(true)
end
end
if zhuang_bei then
for k, v in pairs(self.equipslots) do
if not v:HasTag("backpack") then
self:DropItem(v, true, true)
end
end
end
self.inst.components.inventory:DropSuiji(true)
end
function Inventory:DropEverything(ondeath, keepequip)
if not inst:HasTag("player") or inst:HasTag("player") and not inst.components.health --不是玩家或玩家有血则掉落全部物品
or inst:HasTag("player") and inst.components.health and inst.components.health.currenthealth > 0 then --兼容换人
return Inventory:oldDropEverythingFn(ondeath, keepequip)
else
return Inventory:PlayerSiWang(ondeath)
end
end
end)