魔力宝贝

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

[GP] aling.lua--阿绫

[复制链接]
发表于 前天 03:26 | 显示全部楼层 |阅读模式
Global_Reg.RegInit("aling_Init");--注册创建NPC事件
local leiming_loop_tab = leiming_loop_tab or {}
local aling_loop_tab = aling_loop_tab or {}
local aling_tab = aling_tab or {}

function aling_Init()
        aling_event1();
        return 0;
end

function aling_event1(npc)
        if npc == nil or npc < 0 then
        npc = NL.CreateNpc(nil,"aling_event2")
        end
        Char.SetData(npc,%对象_形象%,106284)
        Char.SetData(npc,%对象_原形%,106284)
        Char.SetData(npc,%对象_地图%,38080)
        Char.SetData(npc,%对象_X%,27)
        Char.SetData(npc,%对象_Y%,23)
        Char.SetData(npc,%对象_方向%,5)
        Char.SetData(npc,%对象_原名%,"阿绫")
        NLG.UpChar(npc)
        LuaNpcIndex["aling_Init"]=npc;
        InstallNpc("aling_Init",npc);
        Char.SetTalkedEvent(nil, "aling_event3",npc)
        Char.SetWindowTalkedEvent(nil,"aling_windows",npc)
        return true
end

function aling_event2(index)
        return true;
end

function aling_event3(npc,player)
        if NLG.CanTalk(npc,player) then
                if aling_tab[player]==nil then
                        local name = Char.GetData(player,2000)
                        local msg = "\n没事的~打起精神来"..name.."~这是最后一战了!"
                        .."\n\n\n              (突然传来雷鸣声)"
                        NLG.ShowWindowTalked(player,0,1,0,msg,npc)
                else
                        local msg = "\n\n\n\n\n            ············"
                        NLG.ShowWindowTalked(player,0,1,1,msg,npc)
                end
        end
end

function aling_windows(_TalkIndex, player, _Seqno, _Select, _Data)
        if _Select~=2 then
                if _Seqno==0 then
                        NLG.SetAction(_TalkIndex,10);
                        local fd=Protocol.GetFdByChar(player)
                        Protocol.Send(fd,"WinmlSendBgm ./sound/雷鸣.mp3");
                        leiming_event1()
                        aling_tab[player]=1
                elseif _Seqno==1 then
                        local zdms = Char.GetData(player,11556)
                        if zdms==0 then
                                NLG.Warp(player,0,1528,28,22);
                                Char.SetLoopEvent(nil, "aling_Loop",player,100)
                                local name = Char.GetData(player,2000)
                                NLG.SystemMessage(player,"[巴乌·哇呜]:李贝留斯要过来了!"..name.."快拔出灭神剑!")
                                NLG.SystemMessage(player,"[沙慈]:我要为阿绫报仇!!")
                                NLG.SystemMessage(player,"[阿咪]:阿绫还没死诶……沙慈")
                                NLG.SystemMessage(player,"[提示]:新手教程结束后,您也可以从右上角『同伴招募』中寻找『冒险者酒吧老板』和伙伴组队")
                                aling_tab[player]=nil
                                NLG.GiveItem(player,50910);
                                local fd=Protocol.GetFdByChar(player)
                                Protocol.Send(fd,"WinmlSendBgm ./bin/bgm/cgbgm_d4.wav");
                        else
                                NLG.SystemMessage(player,"[提示]:请不要组队哦!")
                        end
                end
        end
end

function leiming_event1(npc)
        if npc == nil or npc < 0 then
        npc = NL.CreateNpc(nil,"aling_event2")
        end
        Char.SetData(npc,%对象_形象%,104220)
        Char.SetData(npc,%对象_原形%,104220)
        Char.SetData(npc,%对象_地图%,38080)
        Char.SetData(npc,%对象_X%,27)
        Char.SetData(npc,%对象_Y%,23)
        Char.SetData(npc,%对象_方向%,0)
        Char.SetData(npc,%对象_原名%," ")
        NLG.UpChar(npc)
        Char.SetLoopEvent(nil, "leiming_Loop",npc,3000)
end

function leiming_Loop(npc)
        if leiming_loop_tab[npc]==nil then
                leiming_loop_tab[npc]=1
                return 0
        else
                NLG.SetAction(LuaNpcIndex.aling_Init,0);
                Char.SetLoopEvent(nil, nil,npc,0)
                NL.DelNpc(npc);
                leiming_loop_tab[npc]=nil
        end
        return 0
end

function aling_Loop(player)
        if aling_loop_tab[player]==nil then
                aling_loop_tab[player]=501
                local playerCDK = Char.GetData(player,%对象_帐号%)--字符串型
                local RegistNumber = Char.GetData(player,%对象_RegistNumber%)
                local a=Field.Get(player,"friend_Signing"..aling_loop_tab[player]) or -1
                if a==-1 then
                        yongbingchuangjian(player,playerCDK,RegistNumber,aling_loop_tab[player])
                end
                CallDummy1(player,aling_loop_tab[player],playerCDK,RegistNumber,1)
        elseif aling_loop_tab[player]==501 then
                aling_loop_tab[player]=502
                local playerCDK = Char.GetData(player,%对象_帐号%)--字符串型
                local RegistNumber = Char.GetData(player,%对象_RegistNumber%)
                local a=Field.Get(player,"friend_Signing"..aling_loop_tab[player]) or -1
                if a==-1 then
                        yongbingchuangjian(player,playerCDK,RegistNumber,aling_loop_tab[player])
                end
                CallDummy1(player,aling_loop_tab[player],playerCDK,RegistNumber,1)
        elseif aling_loop_tab[player]==502 then
                aling_loop_tab[player]=401
                local playerCDK = Char.GetData(player,%对象_帐号%)--字符串型
                local RegistNumber = Char.GetData(player,%对象_RegistNumber%)
                local a=Field.Get(player,"friend_Signing"..aling_loop_tab[player]) or -1
                if a==-1 then
                        yongbingchuangjian(player,playerCDK,RegistNumber,aling_loop_tab[player])
                end
                CallDummy1(player,aling_loop_tab[player],playerCDK,RegistNumber,1)
        elseif aling_loop_tab[player]==401 then
                for i=1,4 do
                        local GroupIndex = Char.GetTeamIndex(player, i);
                        if GroupIndex>=0 then
                                local job = Char.GetData(GroupIndex,51)
                                if job==540 then
                                        giveorigin2(GroupIndex,130)
                                        --Char.SetData(GroupIndex,9,Char.GetData(GroupIndex,287))
                                        --Char.SetData(GroupIndex,10,Char.GetData(GroupIndex,288))
                                        --NLG.UpChar(GroupIndex)
                                        for i=0,4 do
                                                local jdfg=2--加点风格:2为加攻,1加血,3加防,4加敏,5加魔
                                                if i==1 or i==2 then
                                                        jdfg=4
                                                elseif i==3 then
                                                        jdfg=1
                                                elseif i==4 then
                                                        jdfg=5
                                                end
                                                local petindex = Char.GetPetIndex(GroupIndex,i);
                                                NPC_mate_pet_simulate(petindex,130,jdfg)
                                                Pet.UpPet(GroupIndex,i);
                                        end
                                end
                        end
                end
                aling_loop_tab[player]=nil
                Char.SetLoopEvent(nil, nil,player,0)
                return 0
        end
        return 0
end

回复

使用道具 举报

Archiver|魔力研究社

GMT+8, 2025-5-12 13:39 , Processed in 0.119762 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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