首页 » 技术分享 » 流星蝴蝶剑AI 函数

流星蝴蝶剑AI 函数

 
事件OnInit(int this)        初始一个对象、场景等时执行该事件,对象ID号在此事件时生成
  OnUpdate()        对象或场景参数变化更新时时执行该事件
  OnStart()        每次开始时执行该事件(战场下一局、NPC死后再生)
  基本函数int GetChar(string name)  取得指定名字的对象ID号
  // name="player", "vip", "enemyvip", "flag", "xxx"|依次:游戏者、队长、敌方队长、标志、指定对象

  int GetAnyChar(string name) 取得该名称的对象ID号
  int GetSelf(int self)    取得该对象自身ID号
  int GetHP(int id)  获取HP值
  int GetMaxHP(int id)      获取MAX HP值
  int GetTeam(int id)    取得指定ID号对象的队伍
  int GetEnemy(int id)  取得指定ID的敌方ID
  int GetLeader(int id)   取得指定ID的头领ID
  int GetGameTime()取得游戏时间秒数
  int EnableWaypoints(int a, int b, ...)激活路径点
  int DisableWaypoints(int a, int b, ...)去活路径点
  int ChangeBehavior(int id, string behavior, ...)改变对象ID的行动状态
  // behavior="wait", "idle", "run", "follow", "patrol", "attacktarget", "kill"
  |依次:等待、闲、跑动、跟随、路径跑(x,y,z)、攻击物体、攻击NPC或玩家(第三参数指定)

  int Perform(int id, string pose, ...) 对象ID执行指定动作
  // pose="faceto", "say", "pause", "aggress", "jump", "attack", "guard", "crouch", "use"
  |依次:面对、说、暂停、同意、跳跃、攻击、守卫、卧倒、使用
  int PlayerPerform(int id, string pose, ...) 玩家执行操作
  // pose="say", "pause", "use", "block" 说、停、用、锁定
  int StopPerform(int id)停止操作
  int IsPerforming(int id) 是否正在操作中
  int SetTarget(int idx, string type, ...)
  // type="char", "waypoint", "flag", "safe" §角色、点、镖、护
  int Distance(int idx1, int idx2) ID间的距离,用来做精确跳跃、攻击、闪躲好
  int Rand(int n)随机
  int AddNPC(string npc)加入NPC
  int RemoveNPC(int id) 删除指定ID的NPC
  int UpdateAIAttrib(id) 更新NPC的AI属性
  int Call(int id, string functionName, param1, param2, ...)呼叫指定ID对象执行函数
  int Say(id, a, b, c, ...)指定ID说话,里面加参数和固定字符串
  int Print(a, b, c, ...)输出提示
  GameOver(int state)游戏结束 (胜、平、负)
  未用函数
  AttackGoal FastLook GetItem AvoidObstacle Dodge Kill Combat RandomRun Follow Patrol GotoGoal Wait Init




// Rule 1=盟主2=截镖3=守城4=暗杀5=死斗int Rule = 5; 
  int RoundTime = 20;这个是游戏的时间 单位为:分钟   
  int PlayerSpawn = 10;这个是主角游戏开始时出现的地方  
  int PlayerSpawnDir = 90; 这个是主角出现时面对的方向 根据旋转角度计算(最大值为360)
  int PlayerWeapon = 5; 这个是主角出场是携带的正武器 5=匕首 6=剑 7=枪 8=刀 9=锤子(其他详见相关资料)切忌不能为0!!!
  int PlayerWeapon2 = 0; 主角负武器 可以不填
  int PlayerHP = 1000;这个是主角是血量 按除以10计算 例如你设置为1000进入任务时就为100血
if (GetHP(c)<GetMaxHP(c)) 
NPC受创后执行的,哪怕受伤1滴血也会执行。
if (GetHP(c)<GetMaxHP(c)-1000) 
NPC受伤100血执行,数值自己按剧情设置。
if (GetHP(c)<1000) 
NPC还剩余100血执行。
if (GetHP(c)<0) 
NPC死亡执行
if (c>=0)
无任何条件执行
if (c>=0 && GetEnemy(c)==player)
NPC遇见主角时执行
if (c>=0 && GetHP(c)<GetMaxHP(c)/2)
NPC气血减半时执行 那个2就是一半 3就是三分之一 4就是四分之一 同理.....
if (GetHP(c)<=0 && GetHP(c2)<=0 && GetHP(c3)<=0 && GetHP(c4)<=0 && GetHP(c5)<=0 && GetHP(c6)<=0)
以上群体NPC全体气血死亡时执行
if (GetHP(player)<1000)
主角的气血减少100时执行,那数字可以设定,但气血的数值都是以自身除以10来计算的,所以说你那里设置的是1000,那么除以10的话就成100了。要是想减少500的话那就要设成5000,同理....
if(GetHP(c1)<GetMaxHP(c1)-1000 || GetHP(c2)<GetMaxHP(c2)-1000)
{
c和c2两个NPC其中任何1个受伤100血后就会执行。
if(GetHP(c1)<0 || GetHP(c2)<0)
{
c和c2两个NPC任一死亡后执行。
SetTarget(1,"waypoint",路点); 
ChangeBehavior(c,"attacktarget",1);
NPC跑路点,路点照剧情设置。
SetTarget(0, "char", c);
SetTarget(1, "waypoint", 路点);
if (Distance(0, 1) < 100)
{
NPC到达路点执行 . 100 是距离 就是离指定路点的距离判断。
PlayerPerform("say", "小鬼是个制作单机任务的");
 主角说话代码 那文字为说话内容 可修改。
PlayerPerform("pause", 1);
 主角站立代码 那1为站立秒数 可修改。这个代码是为了防止对话的时候语序错乱的
PlayerPerform("block", 1);
 主角锁定代码(让主角站立不动)
PlayerPerform("use", 19);
 主角设置状态代码 19为爆红状态 4是小红 8是满气(不是无限气) 20为气血+500 其他数值请详见相关资料。
除加血代码之外 其他状态重复添加时效果不会重叠增加。。
ChangeBehavior(c, "follow", player);
  NPC跟随主角代码
ChangeBehavior(c, "kill", player);
  NPC攻击主角代码
ChangeBehavior(c, "idle", 9999);
  NPC为永远呆立状态
ChangeBehavior(c, "wait");
  NPC为永远原地张望状态 直至敌人出现在视线范围之内时会攻击
Perform(c, "guard", 5);
  NPC为防御状态 5是秒数 可自行修改
ChangeBehavior(c, "run");
  NPC为无目的乱跑状态 但看到非己方的人会进行攻击
Perform(c, "faceto", player);
  NPC为锁定主角状态 不过要是距离太远的话可能会无效
Perform(c, "say", "小鬼是个制作单机任务的");
 NPC说话代码 
Perform(c2, "pause", 5);
 NPC站立秒数 数字5可自行修改
Perform(c, "use", 19);
 NPC设置状态代码 同上的主角状态代码相同。
Perform(c, "use", 35);
 NPC立即死亡代码

转载自原文链接, 如需删除请联系管理员。

原文链接:流星蝴蝶剑AI 函数,转载请注明来源!

0