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
|
|