示例: -- 响应客户端鼠标框选对象列表 function responseSelectList() local msg =
server.GETSOCKETMSG(); local t = {};
string.gsub(msg,'[^'..'|'..']+', function(w) table.insert(t,w) end);
-- split for
i = 1,#t do local
monster=server.getObjectByRecog(t[i]); if
monster ~= nil then monster.gotoxy(330, 330); --
向指定位置靠拢 end; end; end;
(3)通过人物名称获取人物对象: server.getPlayer(人物名称); playerName:
角色名称; 返回人物对象; 示例: local player =
server.getPlayer("某某某"); -- 查找人物是否在线 if player
~= nil then if player.mp > 100 then ...
end;
end;
(4)获取当前人物对象: server.getMyself(); 返回人物对象; 示例:
local myself = server.getMyself();
(5) 获取玩家对象列表: server.getPlayerList([范围编号]); 范围编号: 0或空 -- 全服; 1 -- 行会; 2 --
组队; 3 -- 国家; 4 -- 好友; 5 -- 同地图; 5 --
同阵营; 返回玩家对象数组;
示例: local playerList = server.getPlayerList(5);
-- 返回当前玩家所在地图上的所有玩家列表 for i = 1,#playerList do local player =
playerList[i]; if player ~= nil then server.print(player.name); end;
end;
(6) 获取怪物列表:
GETMONLIST(地图名,x,y,范围);
(7) 获取怪物对象: server.getMon(怪物id); 示例如下: local myself =
server.getMyself(); local monlist=server.getMonList(3, myself.x, myself.y, 10); for i =
1,#monlist do local
monster=monlist[i]; if monster ~= nil
then monster.gotoxy(myself.x, myself.y); --
向玩家靠拢 end; end;
(8) 获取 NPC 对象: server.getNpc(地图名,x,y); 示例如下: local npc =
server.getNpc();
(9) 获取 地图对象: server.getMap(地图名); 示例如下: local map =
server.getMap(player.mapName);
(10) 获取地图单元格对象数组: server.getMapObjects(地图名, x, y[,
range]); 示例如下: local gameObjects = server.getMapObjects(3,
360, 200); if
#gameObjects == 0 then
server.print("没有获取到地图对象."); else for i=1,#gameObjects do server.print(gameObjects[i].name);
end; end;
(11) 创建怪物: server.createMonsters(分组名, 怪物名,
数量, 地图名, x, y[, 范围]); 分组名:
用于区分创建的怪物所属组别;不同组别的怪物会相互攻击;
示例: local myself = server.getMyself(); local monlist=server.createMonsters("RED", "鸡", 10, 3, 330, 333,
10); for i = 1,#monlist do local monster=monlist[i]; if monster ~= nil then
monster.gotoxy(myself.selfx, myself.selfy); --
向玩家靠拢 end; end;
(12) 创建 Lua 怪物:
server.createLuaMon(分组名, 怪物名, 类别, 数量, 地图名, x, y); 以指定的怪物名创建新的180怪物; 分组名:
用于区分创建的怪物所属组别;不同组别的怪物会相互攻击; 类别: 1--近战怪;大于1为远程怪,
2--飞箭特效,3--火球特效, 4--冰咆哮特效, 5--寒冰掌特效, 6--灭天火特效;
200~499为自定义特效;
示例: local myself = server.getMyself(); local monsterList=server.createLuaMon("RED", "鸡", 3, 5, 3, 330,
333); for i = 1,#t do local monster= monsterList[i]; if monster ~= nil then
monster.gotoxy(myself.x - 2, myself.y - 2); --
向玩家靠拢 monster.setRunEvent("lua\\run.lua", "monRunHandler"); -- 绑定lua怪run事件 end; end;
lua\run.lua
脚本文件: function monRunHandler(monid) local monster = server.getMon(monid); if monster ~= nil then
monster.AttackTarget( );
if not monster.haveTarget then monster.Wondering( ); end;
end; end; ;
(13) 创建物品相关: (a) 创建物品:
server.makeNewItem(物品名称); 物品名称:
物品DB中的名称;返回新的物品对象;
示例: local newUserItem =
server.makeNewItem("木剑"); if newUserItem ~= nil
then
server.Print("新创建了物品:"..newUserItem.Name); end;
示例: local userItemList = server.getMakeItemList(); for i:=1, #userItemList do
userItem = userItemList[i]; if userItem ~= nil then
server.Print("物品名称:"..newUserItem.Name);
end; end;