楼主: 双刀探花

[通用] 绝壁刺激的一命模式玩法!

[复制链接]

801

时沙

0

精华

0

主题

声望: 1115   虚弱: 0

Lv.4(锻造者)

灵蛇献瑞(尚美制作)炉石

发表于 2024-6-9 21:53:30 | 显示全部楼层
感谢大佬分享
[发帖际遇]: gtr1258被玛拉顿公主劫持强迫入赘,被队友艰难救出,失去6 声望. 幸运榜 / 衰神榜
回复

使用道具 举报

1198

时沙

0

精华

0

主题

声望: 834   虚弱: 0

Lv.4(锻造者)

金兔迎春(尚美制作)瓦格里的标记假死猎人

发表于 2024-6-10 00:59:34 | 显示全部楼层
这不是只能玩猎人么。。
回复

使用道具 举报

1986

时沙

0

精华

3

主题

声望: 19972   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)祥龙贺岁(尚美制作)金兔迎春(尚美制作)炉石时沙之瓶瓦格里的标记信仰战假死猎人今天也只能打恢复的增强萨潜行者卖糖术神金鼠(ytfirefox制作) 犇向牛年(尚美制作)福虎贺岁(尚美制作)

发表于 2024-6-10 09:12:06 | 显示全部楼层
感谢大佬分享,谢谢了
回复

使用道具 举报

发表于 2024-6-10 09:34:08 | 显示全部楼层
这个好变态
我好喜欢
[发帖际遇]: 不得了杀死上千万小软,得到小软的内裤,获得3 声望. 幸运榜 / 衰神榜
回复

使用道具 举报

982

时沙

0

精华

16

主题

声望: 13206   虚弱: 0

Lv.7(复仇者)

异教徒的惩罚

灵蛇献瑞(尚美制作)祥龙贺岁(尚美制作)炉石信仰战今天也只能打恢复的增强萨吟游牧师潜行者炉石天马卖糖术神雷施

发表于 2024-6-10 09:56:07 | 显示全部楼层
双刀探花 发表于 2024-6-8 21:48
普通版的,论坛搜一下就可以。
我这个只是扩展了这两个功能而已。

这个微调可以70 80
微调哪里能说一下吗?
有努力,有回报。
回复

使用道具 举报

343

时沙

0

精华

5

主题

声望: 635   虚弱: 0

Lv.4(锻造者)

今天也只能打恢复的增强萨

 楼主| 发表于 2024-6-10 13:16:34 | 显示全部楼层
古恩达安 发表于 2024-6-10 09:56
这个微调可以70 80
微调哪里能说一下吗?

--60解除一命

        if player:GetLevel() == 60 then
找到这个字段,改一下就可以了。
[发帖际遇]: 双刀探花为牛头人酋长贝恩捉虱,获得小费27 金币. 幸运榜 / 衰神榜
回复

使用道具 举报

1149

时沙

0

精华

15

主题

声望: 1645   虚弱: 0

Lv.5(无冕者)

泸二

炉石时沙之瓶假死猎人今天也只能打恢复的增强萨金鼠(ytfirefox制作)

发表于 2024-6-10 22:51:51 | 显示全部楼层
还是很感谢你的分享,不过这些都很过时了,现在我的LUA带,隔队长多远没有经验,5维加属性,5维掉钱,2分钟时时彩,多种玩法,当下流行的不变官方属性的情况下,开发新功能接驳官方,让他成一条线,而不是原汁原味的官方整活
[发帖际遇]: fsdsbbs得到一根金属香蕉,与泰奶奶达成某种不可告人的交易,获得61 金币. 幸运榜 / 衰神榜
回复

使用道具 举报

1005

时沙

0

精华

9

主题

声望: 18895   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)祥龙贺岁(尚美制作)金兔迎春(尚美制作)炉石时沙之瓶信仰战今天也只能打恢复的增强萨吟游牧师潜行者卖糖术神福虎贺岁(尚美制作)假死猎人雷施

发表于 2024-6-12 08:48:42 | 显示全部楼层
自己给自己找刺激
[发帖际遇]: ppgame为牛头人酋长贝恩捉虱,获得小费10 金币. 幸运榜 / 衰神榜
回复

使用道具 举报

1278

时沙

3

精华

30

主题

声望: 8343   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)金兔迎春(尚美制作)吟游牧师炉石信仰战假死猎人今天也只能打恢复的增强萨潜行者积少成多时沙之瓶比格沃斯先生雷施无冕者伊利丹·怒风莉莉安·沃斯划水武僧搓水法爷黑色宝石猎豹

发表于 2024-6-12 11:15:39 | 显示全部楼层
本帖最后由 kissinger 于 2024-6-12 11:46 编辑

    -- 新增功能:禁止非组队状态他人帮打和加血(治疗这个地方没有做细致优化)
    for i = 1, GetNumGroupMembers() do
        local groupMember = GetRaidRosterInfo(i)
        if groupMember and groupMember ~= player and IsSpellInRange(GetSpellInfo(48072), groupMember) == 1 then -- 48072是治疗法术ID
            return 0
        end
    end

关于这一段,测试了下有问题:
GetNumGroupMembers()  没有获取源对象,根本就通不过
GetRaidRosterInfo(i)  请问这个参数哪里来的?前面没有定义
这些函数服务器根本就没提供,如没有定制lua功能,是不通用的

给你一段改进方法供参考


                if player:GetGroup() then        --先处理组队情况下经验减益
                        for k, menber in pairs(player:GetGroup():GetMembers()) do
                                if player == menber then
                                --队员就是自己,啥也不干
                                elseif menber:GetLevel() > (player:GetLevel() + 5) or menber:GetLevel() == 70 then
                                        player:SendBroadcastMessage("队伍存在超过五级或满级的队员,已自动退组并损失本次经验")
                                        player:RemoveFromGroup()
                                        return 0
                                elseif player:GetPlayerIP() == menber:GetPlayerIP() then
                                        player:SendBroadcastMessage("队伍存在同IP的多个角色,获取的经验大幅度降低!")
                                        return amount/70
                                end
                        end
                else
                        -- 经验源45码内有额外玩家不得经验
                        if victim  then
                                local Plist = victim:GetPlayersInRange(45)
                                for k, v in pairs(Plist) do
                                        if v ~= player then                --有其他玩家在被杀怪45码内
                                                player:SendBroadcastMessage("经验源周边有额外玩家,不能获取经验...")
                                                return 0
                                        end
                                end

                        end
                end

点评

我找了个335的试了一下确实可以帮打,,,  发表于 2024-6-16 11:48
不是把,反正335可以帮打,方法是不组队,自己打一下,剩下的大号打.组队是考虑一命的几个号一起下副本,做任务等,所以允许5级以内组队  发表于 2024-6-13 03:01
本身默认组队就没有经验。这个地方是当你去打这只怪的时候,如果有第三方玩家对怪物造成任何伤害,都没有经验。你可以实测一下看看  发表于 2024-6-12 18:02
回复

使用道具 举报

1278

时沙

3

精华

30

主题

声望: 8343   虚弱: 0

Lv.7(复仇者)

灵蛇献瑞(尚美制作)金兔迎春(尚美制作)吟游牧师炉石信仰战假死猎人今天也只能打恢复的增强萨潜行者积少成多时沙之瓶比格沃斯先生雷施无冕者伊利丹·怒风莉莉安·沃斯划水武僧搓水法爷黑色宝石猎豹

发表于 2024-6-12 17:44:51 | 显示全部楼层
对于获取经验的判定,我改进了下方法,供大家参考

local function IsNotInGroup(rangeplay, members)
    for _, j in pairs(members) do
        if j == rangeplay then
            return false -- 如果找到了值,返回false
        end
    end
    return true -- 如果没有找到值,返回true
end

local function OnAddXP(event, player, amount, victim, source)
        if player:GetLevel() > 69 then return end         --满级无效
        local guid = player:GetGUIDLow()
        if oneLifePlayers[guid] then
                if oneLifePlayers[guid] == 3 then                 --乌龟模式只处理经验,不做其他限定
                        if source == 0 then
                                --player:SendBroadcastMessage("经验来源类型:"..source..",实际经验为:"..amount/10)
                                return amount/10        --根据服务器经验设定倍率,在这里恢复默认
                        else
                                --player:SendBroadcastMessage("经验来源类型:"..source..",实际经验为:"..amount/35)
                                return amount/35        --根据服务器经验设定倍率,在这里恢复默认
                        end
                end

                if player:GetGroup() then        --先处理组队情况下经验减益
                        local PGroupMem = player:GetGroup():GetMembers()
                        if victim then        --组队情况下,如果有经验源,且队伍外经验源45码内有非GM高等级玩家,则不得经验(可能存在队伍外辅助情况)
                                local PRangeList = victim:GetPlayersInRange(45)
                                for k, v in pairs(PRangeList) do
                                        if IsNotInGroup(v, PGroupMem) and v:GetLevel() > player:GetLevel() and v:GetGMRank() == 0 then --有队伍外非GM高等级玩家在被杀怪45码内
                                                player:SendBroadcastMessage("经验源周边有队伍外的高等级玩家,不能获取经验...")
                                                return 0
                                        end
                                end
                        end
                        for k, menber in pairs(PGroupMem) do
                                if player == menber then
                                --队员就是自己,啥也不干
                                elseif menber:GetLevel() > (player:GetLevel() + 5) or menber:GetLevel() == 70 then
                                        player:SendBroadcastMessage("队伍存在超过五级或满级的队员,已自动退组并损失本次经验")
                                        player:RemoveFromGroup()
                                        return 0
                                elseif player:GetPlayerIP() == menber:GetPlayerIP() then
                                        player:SendBroadcastMessage("队伍存在同IP的多个角色,获取的经验大幅度降低!")
                                        local tmpamount = amount/70
                                        if tmpamount < 1 then tmpamount = 1 end        --避免1点经验都没有
                                        return tmpamount
                                end
                        end
                else        -- 非组队情况下,如果有经验源,且经验源45码内有非GM高等级玩家,则不得经验(可能存在非组队辅助情况)
                        if victim  then
                                local PRangeList = victim:GetPlayersInRange(45)
                                for k, v in pairs(PRangeList) do
                                        if v ~= player and v:GetLevel() > player:GetLevel() and v:GetGMRank() == 0 then                --有其他非GM高等级玩家在被杀怪45码内
                                                player:SendBroadcastMessage("经验源周边有高等级玩家,不能获取经验...")
                                                return 0
                                        end
                                end
                        end
                end

                if oneLifePlayers[guid] == 0 then
                        if source == 0 then
                                --player:SendBroadcastMessage("经验来源类型:"..source..",实际经验为:"..amount/10)
                                return amount/5        --根据服务器经验设定倍率,在这里恢复默认
                        else
                                --player:SendBroadcastMessage("经验来源类型:"..source..",实际经验为:"..amount/35)
                                return amount/17.5        --根据服务器经验设定倍率,在这里恢复默认
                        end
                elseif oneLifePlayers[guid] == 1 then
                        if source == 0 then
                                --player:SendBroadcastMessage("经验来源类型:"..source..",实际经验为:"..amount/10)
                                return amount/10        --根据服务器经验设定倍率,在这里恢复默认
                        else
                                --player:SendBroadcastMessage("经验来源类型:"..source..",实际经验为:"..amount/35)
                                return amount/35        --根据服务器经验设定倍率,在这里恢复默认
                        end               
                end
        else
                local PHaveItem = player:GetItemByEntry(DoubleRequire)
                if PHaveItem and PHaveItem:IsEquipped() then
                        return amount * 5           --非一命模式,且拥有变身法袍,则可获得5倍经验(匹配服务器变身法袍效果额外添加)
                end
        end
end
回复

使用道具 举报

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