引用:
原帖由 雪姬公主 於 2012-4-8 09:07 發表
就可以讓npc走來走去? 是這樣嗎?模組版是弄那一個
可以用lua做...
首先在data/lua/下建立資料夾walk
建立新文件名稱walk.lua
內容填上
-----------------------------------------------------------
function walkctrl_Init( _MeIndex )
Char.SetData(_MeIndex, %對像_形象%, 100805); --設置NPC造型的
Char.SetData(_MeIndex, %對像_原形%, 100805); --設置NPC造型的
Char.SetData(_MeIndex, %對像_地圖%, 1000); --設置NPC所在地圖的
Char.SetData(_MeIndex, %對像_X%, 83); --設置NPC初期X坐標
Char.SetData(_MeIndex, %對像_Y%, 89); --設置NPC初期Y坐標
Char.SetData(_MeIndex, %對像_方向%, %右下%); --設置初期NPC方向
Char.SetData(_MeIndex, %對像_原名%, "吳夫人 Lv:140");--設置NPC名字的,千萬別過長了,不然會無法顯示
local iX = {0};
local iY = {0};
local Timer = (0);
local iX_MeIndex = 0;
local iY_MeIndex = 0;
local Timer = 1;
if (Char.SetLoopEvent(nil, "walking_walk", _MeIndex,1000) < 0) then
print("walking_walk註冊事件失敗。");
return false;
end
NLG.UpChar(_MeIndex);
return true;
end
function walking_walk( _MeIndex)
--設置動作為走路
local walk = 1;
NLG.SetAction(_MeIndex,walk);
--隨機
local TM_DIR = math.floor(math.random(0, 7));
--走路設置
if(NLG.WalkMove(_MeIndex,TM_DIR) ~= 0) then
NLG.WalkMove(_MeIndex,math.floor(math.random(0, 7)));
end
return ;
end
------------------------------------------------------------
建立文件walkctrl_Init
填上內容
-------------------------------------------------------------
function hlctrl_Reload()
if (hlctrl_index == nil) then --這句檢查NPC是否已經創建,防止重複創建
--創建NPC第一個參數是SiegeCtrl_index函數所在的文件第二個參數是NPC初始化時候會調用的函數
hlctrl_index = NL.CreateNpc("./data/npc/lua/hl/hl.lua", "hlctrl_Init");
--向NPC周圍的玩家發送NPC數據更新封包
NLG.UpChar(hlctrl_index);
else
NL.DelNpc(hlctrl_index);
NLG.UpChar(hlctrl_index);
hlctrl_index = nil;
end
end
hlctrl_Reload();
----------------------------------------------------------------------------
功能它就只是隨機薩村亂晃的NPC不會罷工.
我沒用過這論壇服務端不確定可以跑嗎.不妨試試.