|
- function hlctrl_Init( _MeIndex )
- --设置NPC形象
- Char.SetData(_MeIndex, %对像_形象%, 10011);
- Char.SetData(_MeIndex, %对像_原形%, 10011);
- --设置NPC所在地图
- Char.SetData(_MeIndex, %对像_地图%, 2000);
- --设置X坐标
- Char.SetData(_MeIndex, %对像_X%, 75);
- --设置Y坐标
- Char.SetData(_MeIndex, %对像_Y%, 41);
- --设置NPCよ
- Char.SetData(_MeIndex, %对像_方向%, %左下%);
- --设置NPC名称
- Char.SetData(_MeIndex, %对像_原名%, "回炉锅");
- --设置回圈事件
- if (Char.SetTalkedEvent(nil, "hl_Talked", _MeIndex) < 0) then
- print("hl_Talked 註冊事件失敗。");
- return false;
- end
- if (Char.SetWindowTalkedEvent(nil, "hl_WindowTalked", _MeIndex) < 0) then
- print("hl_WindowTalked 註冊事件失敗。");
- return false;
- end
- return true;
- end
- function hl_Talked( _MeIndex, _PlayerIndex, _Msg, _Color, _Channel)
- if(NLG.CheckInFront(_PlayerIndex, _MeIndex, 1) == false) then
- return ;
- end
- NLG.ShowWindowTalked(_PlayerIndex, 2, 0, 1,
- "7\n ※纯净回炉系统※"..
- "\n"..
- "\n 欢迎使用纯净回炉系统,请将你的宠物放在第一个位置上!"..
- "\n 位置要以外挂上面的为准,请注意了!"..
- "\n 目前只开放[1000金币宠]的回炉!祝你好运!"..
- "\n"..
- "\n 〖确定要用金币回炉〗 需要 300 金币"..
- "\n 〖确定要用声望回炉〗 需要50000声望",
- _MeIndex);
- end
- function hl_WindowTalked( _MeIndex, _TalkIndex, _Seqno, _Select, _Data)
- local jb=Char.GetData(_TalkIndex, %对像_SVIP%);
- local sw=Char.GetData(_TalkIndex, %对像_声望%);
- local status=0;
- petid=Char.GetPetEnemyId(_TalkIndex,%宠栏_1%);
- print(petid)
- if(petid == 777)then
- id=1610;
- status=1;
- end
- if(petid == 918)then
- id=1845;
- status=1;
- end
- if(petid == 812)then
- id=1645;
- status=1;
- end
- if(petid == 814)then
- id=1647;
- status=1;
- end
- if(_Seqno == 1 and status == 1)then
- if(_Data == "1")then
- if(jb>299)then
- Char.SetData(_TalkIndex, %对像_SVIP%,Char.GetData(_TalkIndex, %对像_SVIP%)-300);
- NLG.DelPet(_TalkIndex, petid);
- NLG.GivePet(_TalkIndex, id);
- status=0;
- NLG.TalkToCli( _TalkIndex, "恭喜你!你的圣兽回炉成功!", %黄色%, 0, _MeIndex);
- NLG.TalkToCli( _TalkIndex, "系统已扣除您的金币数 300 个。", %红色%, 0);
- NLG.TalkToCli( _TalkIndex, "你目前的个人金币数为:" .. tostring(Char.GetData( _TalkIndex, %对像_SVIP%)) .. " ", %红色%, 0);
- local f = assert(io.open("./data/npc/lua/hl/hl.log", "a"));
- f:write( os.date("%c", os.time()) ," ");
- f:write( Char.GetData( _TalkIndex, %对像_帐号%)," ");
- f:write( Char.GetData( _TalkIndex, %对像_原名%)," ");
- f:write( "回炉宠物");
- f:write( id, " ");
- f:write( "帐号剩余");
- f:write( Char.GetData( _TalkIndex, %对像_SVIP%), "点\n");
- f:close();
- else
- NLG.TalkToCli( _TalkIndex, "你的金币数不足300!", %红色%, 0, _MeIndex);
- end
- end
- if(_Data == "2")then
- if(sw>4999900)then
- Char.SetData(_TalkIndex, %对像_声望%,Char.GetData(_TalkIndex, %对像_声望%)-5000000);
- petid=Char.GetPetEnemyId(_TalkIndex,%宠栏_1%);
- NLG.DelPet(_TalkIndex, petid);
- NLG.GivePet(_TalkIndex, id);
- status=0;
- NLG.TalkToCli( _TalkIndex, "回炉成功!", %黄色%, 0, _MeIndex);
- NLG.TalkToCli( _TalkIndex, "系统已扣除您的声望数 50000 点。", %红色%, 0);
- NLG.TalkToCli( _TalkIndex, "你目前的个人声望点数为:" .. Char.GetData( _TalkIndex, %对像_声望%)/100 .. " ", %黄色%, 0);
- local f = assert(io.open("./data/npc/lua/hl/hl.log", "a"));
- f:write( os.date("%c", os.time()) ," ");
- f:write( Char.GetData( _TalkIndex, %对像_帐号%)," ");
- f:write( Char.GetData( _TalkIndex, %对像_原名%)," ");
- f:write( "回炉宠物");
- f:write( id, " ");
- f:write( "声望剩余");
- f:write( Char.GetData( _TalkIndex, %对像_声望%)/100, "\n");
- f:close();
- else
- NLG.TalkToCli( _TalkIndex, "你的声望数不足50000!", %红色%, 0, _MeIndex);
- end
- end
- else
- NLG.TalkToCli( _TalkIndex, "目前只支持[1000金币宠]的回炉~", %红色%, 0, _MeIndex);
- end
- end
复制代码 |
|