楼主: qsgd

[巫妖王之怒] LUA(五) UI 传送界面

[复制链接]

1483

时沙

1

精华

24

主题

声望: 11859   虚弱: 0

Lv.7(复仇者)

Ctrl+C选手

灵蛇献瑞(尚美制作)祥龙贺岁(尚美制作)金兔迎春(尚美制作)炉石时沙之瓶假死猎人今天也只能打恢复的增强萨

发表于 2024-7-22 10:33:27 | 显示全部楼层
流弊,各种乱入,圆桌骑士,柯南
Ctrl+C选手
回复

使用道具 举报

发表于 2024-7-22 11:21:24 | 显示全部楼层
大佬,不说下使用方法吗
回复

使用道具 举报

1862

时沙

2

精华

30

主题

声望: 2966   虚弱: 0

Lv.6(觉醒者)

灵蛇献瑞(尚美制作)福虎贺岁(尚美制作)炉石时沙之瓶银色北伐军祖国万岁!!信仰战假死猎人今天也只能打恢复的增强萨吟游牧师金鼠(ytfirefox制作) 犇向牛年(尚美制作)

发表于 2024-7-22 11:52:12 | 显示全部楼层
用什么触发的,是全局事件就算了,这个不懂,我只懂用物品,用npc,用界面图标
回复

使用道具 举报

608

时沙

0

精华

12

主题

声望: 1343   虚弱: 0

Lv.4(锻造者)

瓦格里的标记

 楼主| 发表于 2024-7-22 12:16:42 发表自手机触屏版 | 显示全部楼层
ssdsl 发表于 2024-7-22 11:52
用什么触发的,是全局事件就算了,这个不懂,我只懂用物品,用npc,用界面图标 ...

这只是个函数,你想怎么调用都可以,比如你想服务器的登入调用,那就这个登入事件,在调用,比如你想想点个npc调用就写个npc时间,物品调用就这个物品事件,调用函数就行
回复

使用道具 举报

608

时沙

0

精华

12

主题

声望: 1343   虚弱: 0

Lv.4(锻造者)

瓦格里的标记

 楼主| 发表于 2024-7-22 12:20:07 发表自手机触屏版 | 显示全部楼层
ssdsl 发表于 2024-7-22 11:52
用什么触发的,是全局事件就算了,这个不懂,我只懂用物品,用npc,用界面图标 ...

调用方法就是 newmianmenuModel().showform()
回复

使用道具 举报

608

时沙

0

精华

12

主题

声望: 1343   虚弱: 0

Lv.4(锻造者)

瓦格里的标记

 楼主| 发表于 2024-7-22 12:44:33 | 显示全部楼层
qsgd 发表于 2024-7-22 12:20
调用方法就是 newmianmenuModel().showform()

一共2个方法,一个纯客户端的,一个带服务器的,可以传送需要的数据,第一个方法不怎么用的,除非,不和服务器要数据
方法1.客户端调用:参考这个
- -- -- function Gossip_click(self, event, ...)   这个是客户端调用,现在修改城服务端调用
-- -- --         if event == "GOSSIP_SHOW" and NpcName==UnitName("mouseover") then
-- -- --             print(1)
-- -- --             from()
-- -- --             CloseGossip()
-- -- --         elseif event == "QUEST_GREETING" then
-- -- --             print("Quest greeting window opened")
-- -- --         elseif event == "QUEST_DETAIL" then
-- -- --             print("Quest detail window opened")
-- -- --         elseif event == "QUEST_PROGRESS" then
-- -- --             print("Quest progress window opened")
-- -- --         elseif event == "QUEST_COMPLETE" then
-- -- --             print("Quest complete window opened")
-- -- --         end
-- -- --     end

-- -- -- -- 监听玩家点击NPC事件
-- -- -- local eventFrame = CreateFrame("Frame")
-- -- -- eventFrame:RegisterEvent("GOSSIP_SHOW")
-- -- -- eventFrame:SetScript("OnMouseDown",Gossip_click)

服务器调用2.:  先写个服务器事件来检测用户点击了NPC,然后给客户端发送指令
local objectEntry=192178
function OnobjectGossipHello(event, player, object)
    local SendData={
        playerName=player:GetName(),
        objectEntry=object:GetEntry()
    }
    player:SendAddonMessage("mianmenus", SendData.playerName .. "," .. SendData.objectEntry , 0x00, player)
    return false
end

然后在写个客户端接受服务器的指令
local function OnEvent(self, event, ...)
    if event == "PLAYER_ENTERING_WORLD" then
        -- 请求服务器获取玩家数据
       SendChatMessage(".mydata", "SAY")
    elseif event == "CUSTOM_PACKET_RECEIVED" then
        --处理登入触发的事件
        SeceiverSevertInfo(...)
    elseif event=="CHAT_MSG_ADDON" then
        SeceiverSevertInfo(...) --指令有很多 单独写了个函数来判断哪些指令
    end
end
function SeceiverSevertInfo(...)
local prefix, msg, channel, sender = ...  --获取指令,和服务器传送过来的数据
    local data = {strsplit(",", msg)}
if prefix=="mianmenus" then  --判断指令,要打开菜单
mianmen=newmianmenuModel()  --获取我们的菜单文件的接口
mianmen.showform() --调用模板
--mianmen.mianmenuinfo={{}} 修改参数,我写的是死的,你们自己修改就行,具体数据 msg传送过来
end
end

frame:RegisterEvent("CHAT_MSG_ADDON") --CHAT_MSG_TEXT_EMOTE
frame:RegisterEvent("CHAT_MSG_TEXT_EMOTE")
回复

使用道具 举报

608

时沙

0

精华

12

主题

声望: 1343   虚弱: 0

Lv.4(锻造者)

瓦格里的标记

 楼主| 发表于 2024-7-22 12:52:17 | 显示全部楼层
qsgd 发表于 2024-7-22 12:44
一共2个方法,一个纯客户端的,一个带服务器的,可以传送需要的数据,第一个方法不怎么用的,除非,不和 ...

RegisterGameObjectGossipEvent(objectEntry,1,OnobjectGossipHello) 服务器少些了触发器。这个就是服务器监听玩家打开菜单的触发器。
回复

使用道具 举报

1862

时沙

2

精华

30

主题

声望: 2966   虚弱: 0

Lv.6(觉醒者)

灵蛇献瑞(尚美制作)福虎贺岁(尚美制作)炉石时沙之瓶银色北伐军祖国万岁!!信仰战假死猎人今天也只能打恢复的增强萨吟游牧师金鼠(ytfirefox制作) 犇向牛年(尚美制作)

发表于 2024-7-22 12:53:51 | 显示全部楼层
qsgd 发表于 2024-7-22 12:44
一共2个方法,一个纯客户端的,一个带服务器的,可以传送需要的数据,第一个方法不怎么用的,除非,不和 ...

看不懂,我是新手,你发的只适合懂lua的人,别人发的lua,只需要改个物品或者npc的ID就可以了。
回复

使用道具 举报

608

时沙

0

精华

12

主题

声望: 1343   虚弱: 0

Lv.4(锻造者)

瓦格里的标记

 楼主| 发表于 2024-7-22 13:13:16 发表自手机触屏版 | 显示全部楼层
ssdsl 发表于 2024-7-22 12:53
看不懂,我是新手,你发的只适合懂lua的人,别人发的lua,只需要改个物品或者npc的ID就可以了。 ...

嗯。我也是刚学lua,这个都是简单的。把lua3看懂了,就能用4和5了
回复

使用道具 举报

52

时沙

0

精华

0

主题

声望: 663   虚弱: 0

Lv.3(忠诚者)

炉石

发表于 2024-7-22 13:15:54 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

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