GameLib
91M2说明书 > 引擎脚本功能 > 游戏对象 >

GameLib
名称 功能
属性
property ServerName: String 服务器名称
property ServerID: String 服务器ID
property StartTime: TDateTime M2启动时间
property Path: String M2路径
property EnvirPath: String M2 Envir文件夹路径
property G[index: Integer ]: Integer 服务器整型变量(index:1-500) 保存
property A[index: Integer ]: String 服务器字符串变量(index:1-500) 保存
property I[index: Integer ]: Integer 服务器整型变量(index:1-500)
property U[index: Integer ]: String 服务器字符串变量(index:1-500)
property PlayCount: Integer 在线玩家总数
property Player[Index: Integer ]: TPlayObject 取一个在线玩家
property DBEngine: TDBEngine 数据库管理对象
property Toptenz: TToptenz 排行榜
property ClientSpeed: Integer 客户端速度
property ReloadScriptEngine 重载脚本引擎
名称 功能
属性
procedure Lock; 引擎互斥处理
procedure UnLock;
function TryGetResource(const AName: String ): TStrings ; 尝试获取一个版本中的资源数据,如果不存在则返回nil,返回的资源不可释放
function Varstring(const AVarName: String ): TVarValue;
定义或读取服务器变量,该变量从Envir\Vars\Server.ini中存取
function Varinteger(const AVarName: String ): TVarValue;
function VarDateTime(const AVarName: String ): TVarValue;
function VarFloat(const AVarName: String ): TVarValue;
function VarBoolean(const AVarName: String ): TVarValue;
function FindPlayer(const AName: String ): TPlayObject; 查找一个玩家对象
function FindPlayerEx(const AAccount, AName: String ): TPlayObject; 根据账号和角色名查找一个玩家对象
function CreateGuild(const AName, AChief: String ): TGuild; 创建一个行会(Name为行会名,Chief为创建人)
function FindGuild(const sGuildName: string): TGuild; 查找一个行会
function DeleteGuild(const sGuildName: string): Boolean; 删除一个行会
function AddGuildWar(const SourceGuild, DestGuild: String ): Boolean; 添加一个行会战
function FindCastle(const Name: String ): TUserCastle; 查找城堡,比如Gamelib.FindCastle('沙巴克')
Procedure Kick(const APlayName: String ); 将一个玩家踢下线
Procedure KickAll; 将全部玩家踢下线
procedure ClearMapMon(const AMapName: String ; ANoDrop: Boolean=True; const AMonName: String =''); 清除地图怪物,NoDrop指定是否不爆出物品
procedure Broadcast(const Msg: String ); 广播消息
procedure BroadcastSay(const Msg: String ; FontColor: Byte; Backgound: Byte);
procedure BroadcastTopMessage(const Message: String );
procedure BroadcastCenterMessage(const Message: String ; DuraTick:Integer = 2000);
procedure BroadcastCountDownMessage(const Message: String );
procedure StartQuest(const AQManagerMethod: String ); 开始提问(即在线玩家执行相同的函数,比如弹窗让玩家选择是否传送到某地)
function FindStdItem(ItemIndex: Integer ): TStdItem; 查找物品定义
function FindItemIndex(const Name: String ): Integer ; 查找物品序号
function FindMap(const AMap: String ): TEnvirnoment; 查找一个地图
function AddMapRoute(const Flag, Source: String ; SourceX, SourceY: Integer ; const Dest: string; DestX, DestY: Integer ; UsefulLife: Integer =0; Looks: Integer =-1; ShowName: Boolean=False): Boolean; 增加一个地图入口。Flag为入口唯一标记,Source为入口,Dest为出口。UsefulLife为入口存在时长(秒),Looks为在地图上显示的效果,-1不显示,该效果可从UI特效中加载。ShowName指定是否在客户端显示入口名称(Flag)
function DeleteMapRoute(const Name: String ): Boolean; 删除一个通过AddMapRoute增加的地图入口
function CreateDuplicateMap(const Name: String ; UsefulLife: Integer ): TEnvirnoment; 创建一个副本地图,Name为副本地图名称,UsefulLife为副本时长(秒)
function CloseDuplicateMap(const MapName: String ): Boolean; 关闭(删除)一个指定名称的副本地图
function AddNpc(const Name: String ; const Map: String ; MapX, MapY, Appr: Integer ; const AUnitName: String =''): TNormNpc; 增加一个NPC。UnitName为NPC要调用的入口函数所在的单元
function RemoveNpc(const Name: String ; const Map: String ; MapX, MapY: Integer ): Boolean; 移除一个指定位置的NPC
procedure ShowEffect(const Map: String ; const MapX, MapY, Effect, IntervalTime: Integer ); 在地图上显示一个特效(可从UI特效中加载)
procedure RecallMap(const ASourceMap, ADestMap: String ); 将地图上的玩家全部移到另外一个地图
function MonGen(const Amap, AMonName: String; AMonCount, AMapX, AMapY, ARange: Integer; ACamp: Byte=0; ANation: Byte=0; ATag: Integer = 0; ARevivalEvent: Boolean = 0; ADieEvent: Boolean = 0; AKillerEvent: Boolean = 0; ADamageEvent: Boolean = 0):TActorList 在指定的地图上刷怪。AMap    所在地图ID;AMonName 怪物名称;AMonCount, 刷怪数量;AMapX, AMapY, ARange  刷怪的坐标X ,坐标Y, 刷怪范围;ACamp   阵营ID;ANation 国家ID ;ATag  怪物标记;ARevivalEvent  是否 刷新触发;ADieEvent       是否 死亡触发;AKillerEvent     是否 杀人触发;ADamageEvent 是否 受到伤害触发;
function MonGenEX(const  AEnvir :TEnvirnoment;const AMonName: String; AMonCount, AMapX, AMapY, ARange: Integer; ACamp: Byte=0; ANation: Byte=0; ATag: Integer = 0; ARevivalEvent: Boolean = 0; ADieEvent: Boolean = 0; AKillerEvent: Boolean = 0; ADamageEvent: Boolean = 0):TActorList 在指定的地图上刷怪。AEnvir 所在地图对象:TEnvirnoment;AMonName 怪物名称;AMonCount, 刷怪数量;AMapX, AMapY, ARange  刷怪的坐标X ,坐标Y, 刷怪范围;ACamp   阵营ID;ANation 国家ID ;ATag  怪物标记;ARevivalEvent  是否 刷新触发;ADieEvent       是否 死亡触发;AKillerEvent     是否 杀人触发;ADamageEvent 是否 受到伤害触发;
function MobPlace(const AMissionMap: String; AMissionX, AMissionY: Integer; const AMonName: String; AX, AY: Integer; ACount: Integer=1; ARange: Integer=0; ACamp: Byte = 0; ANation: Byte = 0; ATag: Integer = 0; ARevivalEvent: Boolean = 0; ADieEvent: Boolean = 0; AKillerEvent: Boolean = 0; ADamageEvent: Boolean = 0):TList 在指定的地图上刷怪,并且向AMissionX、AMissionY坐标集中,AMissionX  刷新后自动前往集中坐标X;AMissionY  刷新后自动前往集中坐标Y;AX, AY 刷新坐标X,Y;其他参数与Mongen一样
function MobPlaceEX(const AEnvir : TEnvirnoment; AMissionX, AMissionY: Integer; const AMonName: String; AX, AY: Integer; ACount: Integer=1; ARange: Integer= 0; ACamp: Byte= 0; ANation: Byte = 0; ATag: Integer = 0; ARevivalEvent: Boolean = 0; ADieEvent: Boolean = 0; AKillerEvent: Boolean = 0; ADamageEvent: Boolean = 0):TList 在指定的地图上刷怪,AEnvir  所在地图对象:TEnvirnoment;并且向AMissionX、AMissionY坐标集中,AMissionX  刷新后自动前往集中坐标X;AMissionY  刷新后自动前往集中坐标Y;AX, AY 刷新坐标X,Y;其他参数与Mongen一样
function FindNpc(const NpcName: String ): TNormNpc; 查找NPC
function FindMerchant(const MapName, MerchantName: String ): TNormNpc; 查找一个商人
function FindMerchantByTag(ATag: Integer ): TNormNpc; 根据唯一ID查找一个商人
procedure SavePlayerToFile(Source: TPlayObject; const AFileName: String ); 将玩家信息保存到文件
function AddClonePlayer(Source: TPlayObject; const AName: String ; Envir: TEnvirnoment; MapX, MapY: Integer ): TActor; 克隆一个玩家
function AddClonePlayerFromFile(const AFileName, AName: String ; Envir: TEnvirnoment; MapX, MapY: Integer ): TActor; 从玩家文件信息中克隆一个玩家
function DelayGoto(ID, AIntervalTime: Integer ; Once: Boolean=False): Boolean; 给服务器增加一个时钟事件,触发TimeManageNpc中的GlobalEventExecute函数
procedure ClearDelayGoto(ID: Integer ); 清除一个服务器的时钟
function ThrowItem(const MapName, ItemName: String ; MapX, MapY, Range, Count: Integer ; Owner: TActor): Boolean; 在地图上爆出指定数量的物品。Owner表示可以拾取物品的角色,默认为nil,即都可拾取 查看范例
function ThrowItemEx(Map: TEnvirnoment;const ItemName: String ; MapX, MapY, Range, Count: Integer ; Owner: TActor): Boolean;
function RandomUpgrade(UserItem: TUserItem): Boolean ; 随机升级物品属性
function RandomUpgradePoint(UserItem: TUserItem): Boolean ; 随机升级物品附加属性
procedure RandomUpgradeLevel(UserItem: TUserItem); 随机升级强化等级属性
procedure SendMail(const AFrom, ATo, ASubject, AContent: String ); 发送一封邮件
procedure AddRobot(ExecTime: TDateTime; const AMethod: String ); 添加一个指定时间执行的机器人,执行一次后删除
procedure WriteLog(const LogKind: Byte; const Log: String ); 写入Log(LogKind为自己能识别的值)
procedure ReNamePlayer(PlayObject: TPlayObject; const NewName: String ); 修改人物名称
function GetLastThrowItemList:TList 用于获取 GameLib.ThrowItem 和 GameLib.ThrowItemEx 丢出在地上的物品对象
function SaveItemToStore(Item: TUserItem; const ChrName: String;EventType:Integer;Param:String=''); 将物品保存本地物品库,并返回保存后的物品存储序号,EventType 表示物品存储进去的途径 可自定义
function GetStoreItems(const ChrName: String): TStoreItemList; 根据角色名获取其存储的所有物品
function GetStoreItemsWithType(const ChrName: String;EventType:Integer): TStoreItemList; 根据角色名和 存储的途径类型 获取角色对应途径的所有物品
function GetStoreItemsOnlyType(EventType:Integer): TStoreItemList; 根据存储途径类型 获取所有人存储的物品
function CopyUserItem(Item: TUserItem): TUserItem; 拷贝物品(当从公共物品库取出物品 要添加到背包 或者需要放置到其他位置 需要拷贝一份。否则会内存错乱)
function GetItemEventType(const Index: String): Integer; 根据保存编号 得到其存储数据类型
function DeleteStoreItems(IndexList: TStringList): Integer; 批量删除存储的物品 。返回删除的数量
function GetGuildCount; Integer; 获取服务器上总共的行会数量量
function GetGuildByIndex(Index: Integer): Guild; 获取具体的行会对象
function QueryPerformanceFrequency:int64; 获取CPU每秒震荡次数
function QueryPerformanceCounter:int64; 获取获取当前震荡总数 (两次震荡总数 相减 就是两次间隔的CPU震荡次数)
用于获取超高精度的时间计算。可用于精确到纳秒的计时器 可以用于脚本中做性能测试分析。
procedure AsyncHttpPostJson(Ident:String;URL:String;Json:String;TimeOut:Cardinal = 5000); 用于支持http提交json功能。
参数说明:
ident:请求标志 自定义数据 这个当httpost 完成或者错误的时候 此数据会原封不动传递到下文的OnAsyncHttpPostResult 中
URL:远程服务器URL
Json : 要提交的json字符串内容。
TimeOut: 超时时间 单位毫秒。
function AddMonNpc(MonName:String; NpcName:String; MapName:String; MapX:Integer; MapY:Integer;AUnitName:String;Camp:Byte;Nation:Byte; AttackDiffCamp:Boolean=True; AttackDiffNation:Boolean=True; AttackRed:Boolean=False;AttackMonAttackRed:Boolean=False;MissionX:Integer;MissionY:Integer;); 增加怪物Npc(MonName: 怪物名称,NpcName: NPC名称,MapName: 目标地图名称,MapX, MapY: 刷新位置,AUnitName: 和怪物NPC关联的脚本单元名,Camp: 阵营,Nation: 国别,AttackDiffCamp: 是否攻击不同阵营对象,AttackDiffNation: 是否攻击不同国别对象,AttackRed: 是否攻击红名,AttackMon: 是否攻击怪物)
function RemoveMonNpc(const NpcName:String; MapName:String; MapX:Integer; MapY:Integer;): Boolean; 删除一个怪物NPC(NpcName: NPC名称,MapName: 目标地图名称,MapX, MapY: 位置)
function AddMonNpcEx(MonName:String; NpcName:String; Map:TEnvirnoment; MapX:Integer; MapY:Integer;AUnitName:String;Camp:Byte;Nation:Byte; AttackDiffCamp:Boolean=True; AttackDiffNation:Boolean=True; AttackRed:Boolean=False;AttackMonAttackRed:Boolean=False;MissionX:Integer;MissionY:Integer;); 增加怪物Npc(MonName: 怪物名称,NpcName: NPC名称,Map: 目标地图名称,MapX, MapY: 刷新位置,AUnitName: 和怪物NPC关联的脚本单元名,Camp: 阵营,Nation: 国别,AttackDiffCamp: 是否攻击不同阵营对象,AttackDiffNation: 是否攻击不同国别对象,AttackRed: 是否攻击红名,AttackMon: 是否攻击怪物)
function RemoveMonNpcEx(const NpcName:String; Map:TEnvirnoment; MapX:Integer; MapY:Integer;): Boolean; 删除一个怪物NPC(NpcName: NPC名称,Map: 目标地图名称,MapX, MapY: 位置)
function GetIPLocal(const IP:String):String; 查询IP地址信息
procedure AsyncHttpGet(Ident:String;URL:String;TimeOut:Cardinal = 5000) 支持httpget功能
参数说明:1.ident:请求标志,自定义数据,当httpost 完成或者错误的时候 此数据会原封不动传递到下文的OnAsyncHttpGetResult中 2.URL:远程服务器URL 3.TimeOut: 超时时间 单位秒
function RandomRange(const Min,Max:Int64):Int64; 获取一个指定范围内的随机数(Min:最小数,Max:最大数)
例: A := GameLib.RandomRange(100,200); 随机从100- 200中间取一个数, 包含100,200
function GameLib.SaveUserItemToString(UserItem:TUserItem):String 将一个物品对象转化为字符串
function GameLib.LoadUserItemFromString(Str:String):TUserItem; 将一个字符串转化为物品对象

引擎官网:www.91M2.com   交流群:5555999   此引擎仅供测试,切勿用于商业用途。如有侵权请立即联系我们,我们将在第一时间删除。