用户:
Nysidla查看:0 回复:1 评论:0 创建时间:2023-06-02T13:31:31
async function give(m, num, name, highestStack) {
if (!highestStack || highestStack == 1) {
if (m.bar.includes('空')) m.bar[m.bar.indexOf('空')] = name + '*' + num
else m.bag.push(name + '*' + num)
} else {
let next = true
for (let f = 0; f < num; f++) {
for (let e of m.bar) {
if (e.startsWith(name) && Number(e.slice(e.indexOf('*') + 1)) < highestStack) {
m.bar[m.bar.indexOf(e)] = `${name}*${Number(e.slice(e.indexOf('*') + 1)) + 1}`
next = false
break
} else if (e == '空') {
m.bar[m.bar.indexOf('空')] = name + '*1'
next = false
break
}
} if (next) {
if (m.bag.length == 0) {
m.bag.push(name + '*1')
} else {
for (let i = 0; i < m.bag.length; i++) {
let ii = m.bag[i]
if (ii.startsWith(name) && Number(ii.slice(ii.indexOf('*') + 1)) < highestStack) {
m.bag[i] = `${name}*${Number(ii.slice(ii.indexOf('*') + 1)) + 1}`
break
} else if (m.bag.filter(e => e == name + '*' + highestStack).length == m.bag.filter(e => e.startsWith(name)).length) {
m.bag.push(name + '*1')
break
}
}
}
}
}
}
这玩意是非常滴繁琐啊,来看看新版:
async function give(m, num, name, highestStack) {
if (!highestStack || highestStack == 1) {
if (m.bar.includes('空')) m.bar[m.bar.indexOf('空')] = name + '*' + num
else m.bag.push(name + '*' + num)
} else {
for (let f = 0; f < num; f++) {
let getbar = m.bar.find(e=>e.startsWith(name) && Number(e.slice(e.indexOf('*') + 1)) < highestStack)
let getbag = m.bag.find(e=>e.startsWith(name) && Number(e.slice(e.indexOf('*') + 1)) < highestStack)
if(getbar) {
m.bar[m.bar.indexOf(getbar)] = `${name}*${Number(getbar.slice(getbar.indexOf('*') + 1)) + 1}`
} else if(m.bar.includes('空')){
m.bar[m.bar.indexOf('空')] = name + '*1'
} else if(getbag){
m.bag[m.bag.indexOf(getbag)] = `${name}*${Number(getbag.slice(getbag.indexOf('*') + 1)) + 1}`
} else {
m.bag.push(name + '*1')
}
}
}
}
只用4个判断就可以做到前者的功能,具体教程:
async function give(m/*give的人(entity)*/, num/*数量*/, name/*名字*/, highestStack/*堆叠上限*/) {
if (!highestStack || highestStack == 1) {
if (m.bar.includes('空')) m.bar[m.bar.indexOf('空')] = name + '*' + num
else m.bag.push(name + '*' + num)
/*和旧版一样,无法堆叠的直接更改/push*/
} else {
for (let f = 0; f < num; f++) {
let getbar = m.bar.find(e=>e.startsWith(name) && Number(e.slice(e.indexOf('*') + 1)) < highestStack)
/*bar里是否有物品*/
let getbag = m.bag.find(e=>e.startsWith(name) && Number(e.slice(e.indexOf('*') + 1)) < highestStack)
/*bag是否有物品*/
if(getbar) {
m.bar[m.bar.indexOf(getbar)] = `${name}*${Number(getbar.slice(getbar.indexOf('*') + 1)) + 1}`
/*判断,满足就更改*/
} else if(m.bar.includes('空')){
m.bar[m.bar.indexOf('空')] = name + '*1'
/*判断,满足就更改*/
} else if(getbag){
m.bag[m.bag.indexOf(getbag)] = `${name}*${Number(getbag.slice(getbag.indexOf('*') + 1)) + 1}`
/*判断,满足就push*/
} else {
m.bag.push(name + '*1')
/*判断,满足就push*/
}
}
}
}
/*
entity——bar快捷栏bag背包(物品栏):
entity.bar = ['空','空','空','空','空','空','空','空','空']
entity.bag = []
*/