魔力宝贝

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz

[GA] PetRebirth.lua--宠物洗档

[复制链接]
发表于 前天 02:21 | 显示全部楼层 |阅读模式
Delegate.RegInit("PetRebirth_Init");
NL.RegItemString(nil, "PetRebirth", "LUA_usePetRebirth");
local PetRebirthID = 65015;                                        --洗档物品ID
function PetRebirth_Creat()
        if (PetRebirth_index == nil) then
                PetRebirth_index = NL.CreateNpc(nil, "PetRebirth_initialize");
                Char.SetData(PetRebirth_index, %对象_形象%, 107103);    --%对象_形象%
                Char.SetData(PetRebirth_index, %对象_原形%, 107103);    --%对象_原形%
                Char.SetData(PetRebirth_index, %对象_MAP%, 0);     --%对象_地图类型%
                Char.SetData(PetRebirth_index, %对象_地图%, 777);      --%对象_地图%
                Char.SetData(PetRebirth_index, %对象_X%, 47);          --%对象_X%
                Char.SetData(PetRebirth_index, %对象_Y%, 50);           --%对象_Y%
                Char.SetData(PetRebirth_index, %对象_方向%, %右下%);    --%对象_方向%, %右下%
                Char.SetData(PetRebirth_index, %对象_原名%, "宠物再生大师");    --%对象_原名%
                NLG.UpChar(PetRebirth_index);
                if (Char.SetTalkedEvent(nil, "PetRebirth_Talked", PetRebirth_index) < 0) then
                        print("PetRebirth_Talked 注册事件失败。");
                        return false;
                end
                if (Char.SetWindowTalkedEvent(nil, "PetRebirth_WindowTalked", PetRebirth_index) < 0) then
                        print("PetRebirth_WindowTalked 注册事件失败。");
                        return false;
                end
               
        end
        return true;
end

function PetRebirth_initialize()
        return true;
end

function PetRebirth(player,toplayer,itemSlot)
        PetRebirth_Talked( PetRebirth_index,player)
        return true;
end

function PetRebirth_Talked( _MePtr,_TalkPtr)
        NLG.ShowWindowTalked(_TalkPtr,_MePtr,0,12,0,
        "\n  你好!["..Char.GetData(_TalkPtr,%对象_原名%).."],一个神奇的卷轴,可以让你的宠物保留所学技能、修正和等级重新洗分布档数,你确定要使用么?"..
        "\n\n我可以让你的宠物脱胎换骨!");
return;
end

function PetRebirth_WindowTalked(_MePtr,_TalkPtr,_Seqno,_Select,_Data)
        if (_Select==8) then
                NLG.ShowWindowTalked(_TalkPtr,_MePtr,0,1,11,"是么,你想好了再来。找我只要双击卷轴就行了。");
                return;
        end
        local tab={};
        if (_Seqno==0) then
                local buf="";
                for t = 1,5 do
                       
                        PetIndex =Char.GetPet(_TalkPtr,t-1);
                        if (PetIndex>0) then
                                buf=Char.GetData( PetIndex, %对象_原名%);
                        else
                                buf="无宠物";
                               
                               
                        end
                        tab[t]=buf;
                       
                end       
                NLG.ShowWindowTalked(_TalkPtr,_MePtr,2,2,1,
                "2\n请选择:"..
                "\n\n       ["..tab[1].."]"..
                "\n       ["..tab[2].."]"..
                "\n       ["..tab[3].."]"..
                "\n       ["..tab[4].."]"..
                "\n       ["..tab[5].."]");
               
               
               
        end
        if (_Seqno==1) then
                local PetIndex1=Char.GetPet(_TalkPtr,tonumber(_Data)-1);
                if(PetIndex1 < 0)then
                        NLG.SystemMessage(_TalkPtr,"您选择的位置异常。");
                        return;
               
                end

               
                if(Char.GetData(PetIndex1,%对象_脸%) ~= 1) then
                        NLG.SystemMessage(_TalkPtr,"无法为野生宠物提供洗档服务。");
                        return;
                end
       
                local itemindex = Char.HaveItem(_TalkPtr,PetRebirthID);
                if (itemindex < 0) then
                        LG.TalkToCli(_TalkPtr,_MePtr,"抱歉你没有洗档券。",4,0);
                               
                else       
                        Char.DelItem(_TalkPtr,PetRebirthID,1)
                        Pet.SetArtRank(PetIndex1,%宠档_体成%,Pet.FullArtRank(PetIndex1,%宠档_体成%) - NLG.Rand(0,4));
                        Pet.SetArtRank(PetIndex1,%宠档_力成%,Pet.FullArtRank(PetIndex1,%宠档_力成%) - NLG.Rand(0,4));
                        Pet.SetArtRank(PetIndex1,%宠档_强成%,Pet.FullArtRank(PetIndex1,%宠档_强成%) - NLG.Rand(0,4));
                        Pet.SetArtRank(PetIndex1,%宠档_敏成%,Pet.FullArtRank(PetIndex1,%宠档_敏成%) - NLG.Rand(0,4));
                        Pet.SetArtRank(PetIndex1,%宠档_魔成%,Pet.FullArtRank(PetIndex1,%宠档_魔成%) - NLG.Rand(0,4));
                        local jingyan = Char.GetData(PetIndex1,%对象_经验%);
                        Pet.ReBirth(_TalkPtr,PetIndex1);
                        Char.SetData(PetIndex1,%对象_经验%,jingyan);
                        Pet.UpPet(_TalkPtr, PetIndex1);
                       
                end

               
        end
end

function PetRebirth_Init()
        PetRebirth_Creat()
       
end


回复

使用道具 举报

Archiver|魔力研究社

GMT+8, 2025-5-12 19:04 , Processed in 0.130139 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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