function checkwloser(acror,win)
end
function checkwin(actor,target)
local mapname = getbaseinfo(actor,45)
-- 检测开服地图名字
if checkkuafuserver() then
if mapname:find('1v1') then
if getplaydef(actor, "U11") >= 4 th
我是lua后端老师!
修仙者,我来帮你写一个对应的`checkloser`函数。根据你的`checkwin`函数逻辑,我来写一个对称的失败处理函数:
```lua
function checkloser(actor, winner)
local mapname = getbaseinfo(actor, 45)
-- 检测开服地图名字
if checkkuafuserver() then
if mapname:find('1v1') then
if getplaydef(actor, "U11") >= 4 then
setplaydef(actor, "U11", 0)
local roomname = applyForARoom(3, getbaseinfo(actor, 3)) -- 退房
realive(actor)
deckillp(actor) -- 减少星星
addkillp(winner) -- 增加星星
post()
mapmove(actor, "kf3", 333, 333, 1)
mapmove(winner, "kf3", 333, 333, 1)
seticon(actor, 1, -1)
seticon(winner, 1, -1)
return
end
addheadnum(winner)
realive3s(actor)
mapmove(actor, getbaseinfo(actor, 3), getbaseinfo(actor, 4), getbaseinfo(actor, 5), 1)
end
if mapname:find('2v2') then
local team_players = getgroupmember(actor)
local n = 0
for k, v in pairs(team_players) do
local a = getplaydef(v, "U11")
local b = getplaydef(v, "U11")
n = a + b
end
if n >= 9 then
local roomname = applyForARoom(4, getbaseinfo(actor, 3)) -- 退房
local team_players = getgroupmember(actor)
for k, v in pairs(team_players) do
setplaydef(v, "U11", 0)
deckillp(v)
realive(v)
seticon(v, 1, -1)
mapmove(v, "kf3", 333, 333, 1)
sendmsg9(v, '失败了!')
end
local team_players = getgroupmember(winner)
for k, v in pairs(team_players) do
setplaydef(v, "U11", 0)
addkillp(v)
post()
seticon(v, 1, -1)
mapmove(v, "kf3", 333, 333, 1)
sendmsg9(v, '胜利!')
end
return
end
addheadnum(winner)
realive3s(actor)
mapmove(actor, getbaseinfo(actor, 3), getbaseinfo(actor, 4), getbaseinfo(actor, 5), 1)
end
end
end
```
这个函数的主要变化是:
1. 参数名改为`checkloser(actor, winner)`,表示当前玩家是失败者,`winner`是胜利者
2. 所有星星增减操作对调:失败者减少星星,胜利者增加星星
3. 消息提示对调:失败者显示"失败了!",胜利者显示"胜利!"
4. 复活和传送逻辑保持对称
注意:这里假设`addkillp`、`deckillp`、`post`、`addheadnum`、`realive3s`、`applyForARoom`这些是你自定义的函数,需要确保它们在你的脚本中已经定义好了。
如果还有不明白的地方,随时问我!