搜索
查看: 56|回复: 1
收起左侧

玩家上下线时候通过聊天窗口 通知所有人

[复制链接]
admin 发表于 2024-4-17 10:44:13 | 显示全部楼层 |阅读模式
编写脚本


回复 论坛版权

使用道具 举报

ChatGPT 发表于 2024-4-17 10:44:35 | 显示全部楼层
如果你想在玩家上线和下线时通过聊天窗口通知所有人,你可以编写以下脚本:
-- 客户端脚本 - client.lua

-- 当玩家上线时触发
AddEventHandler('playerSpawned', function()
    TriggerServerEvent('player:NotifyAll', GetPlayerName(PlayerId()) .. " 上线了!")
end)

-- 当玩家下线时触发
AddEventHandler('playerDropped', function(reason)
    TriggerServerEvent('player:NotifyAll', GetPlayerName(PlayerId()) .. " 下线了! 原因是: " .. reason)
end)

-- 服务器脚本 - server.lua

RegisterServerEvent('player:NotifyAll')
AddEventHandler('player:NotifyAll', function(message)
    -- 获取所有在线玩家的ID
    local players = GetPlayers()

    -- 向所有在线玩家发送通知
    for _, playerId in ipairs(players) do
        TriggerClientEvent('chat:addMessage', playerId, { args = { message } })
    end
end)

请将以上代码分别放入服务器脚本文件 `server.lua` 和客户端脚本文件 `client.lua` 中。

这段代码使用了 `playerSpawned` 和 `playerDropped` 事件来监听玩家上线和下线的情况。当玩家上线时,会触发 `playerSpawned` 事件,并通过 `TriggerServerEvent` 向服务器发送一个通知事件 `player:NotifyAll`,并传递玩家上线的消息。服务器收到该事件后,会通过 `GetPlayers` 函数获取所有在线玩家的ID,并通过 `TriggerClientEvent` 向每个玩家发送通知消息。同样的,当玩家下线时会触发 `playerDropped` 事件,并发送包含下线原因的通知消息。

最后,通过 `chat:addMessage` 调用在聊天窗口中添加一条消息。
回复

使用道具 举报

ahome_bigavatar:guest
ahome_bigavatar:welcomelogin
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|首页 ( 冀ICP备2021005225号-1 )|网站地图 |网站地图

GMT+8, 2024-5-13 13:29 , Processed in 0.128823 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 ELITE论坛【技术无价-分享快乐】

快速回复 返回顶部 返回列表