admin
发表于 2021-7-22 22:01:31
创建怪物
函数原型:
map.CreateNpc(...) #map表示地图对象
参数:
( int x,int y, int range, string monname,int count=1 )
( int x,int y, int range, int monindex,int count=1 )
x: x坐标
y: y坐标
range: 范围
monname: 怪物的名字
monindex: 怪物的ID
count: 怪物的数量
功能:
在指定的坐标刷怪物,支持静态地图和副本地图
示例:
map.CreateMon(25,23,10,'半兽勇士',10) #副本地图刷新的怪物 (刷怪坐标X,Y,范围,怪物名字或者ID,怪物数量)
admin
发表于 2021-7-22 22:01:52
清除怪物
函数原型:
map.ClearAllMonsters() #map表示地图对象
功能:
清除地图的怪物,支持副本地图
示例:
map.ClearAllMonsters() #清除副本地图怪物
admin
发表于 2021-7-22 22:02:09
清理玩家
函数原型:
map.ClearAllPlayers() #map表示地图对象
功能:
清除地图的玩家,支持副本地图
示例:
map.ClearAllPlayers() #清除副本地图玩家
admin
发表于 2021-7-22 22:02:30
清除所有道具
函数原型:
map.ClearAllItems() #map表示地图对象
功能:
清除地图的道具,支持副本地图
示例:
map.ClearAllItems() #清除副本地图道具
admin
发表于 2021-7-22 22:02:47
函数 GiveItem
函数解释给予道具
函数GiveItemsByStat
附加值name bound count expire
函数解释 给道具 可以设置 道具名 是否绑定 数量 使用时间
范例:{'name':'双倍经验卷',
'bound':0, (0不绑定1绑定 或者写False和 True也可以)
'count':2,
'Expire':86400,},
admin
发表于 2021-7-22 22:03:32
Sender.InSafeZone 判断是否在安全区
Sender.CurrentMap.Info.Index in 判断所在地图 比奇Index是1道馆Index是5潘夜村落Index是6
current_map = SEnvir.GetMap(Sender.Character.CurrentMap) 获取当前角色所在的地图
admin
发表于 2021-7-22 22:03:46
脚本信息函数说明
MessageType.Normal //普通聊天
MessageType.Shout //区域聊天
MessageType.Global //世界喊话
MessageType.WhisperIn //私聊
MessageType.WhisperOut //收到私聊
MessageType.Group //组队聊天
MessageType.ObserverChat //观察者聊天
MessageType.Guild //行会聊天
MessageType.GMWhisperIn //GM私聊
MessageType.Hint //提示信息
MessageType.System //系统信息
MessageType.Announcement //公告信息
MessageType.Combat //战斗信息提示
MessageType.Notice //告示中央显示
MessageType.RollNotice //中央滚动告示
MessageType.ItemTips //极品物品提示
MessageType.BossTips //boss提示
admin
发表于 2021-7-22 22:04:01
增加自定义双击使用功能道具
道具数据库新建一个物品
Index表示物品id号,需检查不能重复
ItemName表示物品名字,可根据需要换名;
Shape值从27起,表示可以双击使用的道具类型;
Image表示道具的图标显示id,可根据需要换图(道具资源参考客户端资源说明--道具图标);
其余字段参数可都可根据需要自行配置;
在Script目录下Player目录里的PlayerProcess.py文件中增加道具的相关脚本执行:
下面是范例:
def OnUseItem(args): #消耗品 从27开始扩展道具数据库Shape 设置对应值
Sender=args
Item = args
if(Item.Info.ItemType == ItemType.Consumable):#背包格子判断
if(Item.Info.Shape == 27):#道具数据库Shape值从27起
goods1={ '六绝星环':2,
'指环':1,
'牛角戒指':1,}
if(Sender.GiveItems(goods1)): #给多种物品 返回值为FALSE 表示给物品失败 True 成功 goods 必须是如上的dictionary结构
return True
else:
Sender.Connection.ReceiveChat("你的背包空间不足。",MessageType.System)
return False
elif(Item.Info.Shape == 28): #道具数据库Shape值
goods2={ '火球术':1,
'指环':1,
'牛角戒指':1,}
if(Sender.GiveItems(goods2)):#给多种物品 返回值为FALSE 表示给物品失败 True 成功 goods 必须是如上的dictionary结构
return True
else:
Sender.Connection.ReceiveChat("你的背包空间不足。",MessageType.System)
return False
else:
return False
admin
发表于 2021-7-22 22:04:29
创建副本
函数原型:
def OnCreate(args): #创建副本
map = args
sender=args
参数:
map = args #地图
sender=args #玩家
功能:
创建副本
示例:
def OnCreate(args): #创建副本
map = args
sender=args
Server.Envir.SEnvir.DelayCall("Map.Battle.CloseFuben",3600,(map,)) #地图总时间 秒为单位
MapSetTempV(map,_V_NUM,0) #设定值
Server.Envir.SEnvir.DelayCall("Map.Battle.ManualCloseFuben",5,(map,0)) #5秒判断一次地图是否有人如果没有则关闭掉这个副本节约资源
admin
发表于 2021-7-22 22:04:51
进入副本
函数原型:
def OnEnter(args): #进入副本
map = args
sender=args
参数:
map = args #地图
sender=args #玩家
功能:
进入副本
示例:
def OnEnter(args): #进入副本
map = args
sender = args
sender.Connection.ReceiveChat(map.Info.Description,MessageType.System)#进入副本提示