·首 页 ·精选文章 ·无忧学院 ·两性教育 ·商业站点 ·无忧传奇 ·私服宣传 ·无忧音乐 ·骗子举报 ·软件发布 ·无忧论坛
您现在的位置: 无忧网络网游技术网 >> 技术文章 >> 天堂II技术 >> 天堂II私服技术 >> 正文

  没有公告

| 技术文章 | 传奇技术 | 传世技术 | 魔兽技术 | 奇迹技术 | 千年技术 | 仙境技术 | 其他技术 | 传奇菜鸟 | 传世菜鸟 | 奇迹菜鸟 |
| 网游下载 | 网游版本 | 私服工具 | 游戏下载 | SF客户端 | 网站原码 | 经典工具 | 破解工具 | 绿色软件 | 教程下载 | 动画专区 |
| 操作系统 | 故障维修 | 主机架设 | 腾讯QQ区 | 流量排名 | 黑客教程 | 主机评测 | WAP 专区 | 网络游戏 | 游戏攻略 | 网吧黄页 |
| 私服必备 | 常用工具 | 网吧联盟 | 传奇站点 | 网页加密 | 网页转换 | 颜色采集 | 网页源码 | MD 5破解 | 站长工具 | 在线算命 |
| 实用查询 | I P 查询 | 邮编查询 | 区号查询 | 周公解梦 | 成语大全 | 手机查询 | 号码凶吉 | 星座查询 |身份证查询| 5UQQ查询 |
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
没有相关文章
传送AI详解         ★★★
传送AI详解
传送AI详解
作者:佚名  文章来源:网络搜集  点击数:  更新时间:2007-10-2 1:35:30
    

npcdate部分 teleporter    7059    [trishya]  ...... npc_ai={[trishya];{[fnHi] = [trishya001.htm]};{[fnYouAreChaotic] = [trishya003.htm]}}

HTML部分

trishya001.htm:

<html><head><body>守门人特黎西亚:<br>为了要到别的村庄,偶尔休息,慢慢地走过去,也有好处的。但是如果没有那么多的时间,我们守门人也可

以打开时空之门来帮你。好,你想到哪里去?<br><a action="bypass -h teleport_request">前往别的村庄。 </a><br><a action="bypass -h talk_select">任务</a></body></html>

  
trishya003.htm

<html><head><body>守门人特黎西亚:<br>你这种人没有资格利用守门人管理的时空之门。用你自己的双脚走到其他村庄吧。</body></html>

从上面的HTM我们可以看出来fnhi定义的HTM完成初始传送页面.里面bypass -h teleport_request调用了传送菜单. m~<<ok_  
fnYouAreChaotic应该是条件判断不成功时候调用的页面

AI部分

下面我们来看看它的AI部分

首先我们找到trishya部分AI很简单.

class trishya : teleporter G{!adBna  www.5 uwl.net
property_define_begin     telposlist_begin Position

        {"城镇「说话之岛」"; -84141; 244623; -3729; 20000; 0 }

        {"城镇「精灵村庄」"; 46890; 51531; -2976; 11000; 0 } 

        {"城镇「暗精灵村」"; 9716; 5502; -4500; 9000; 0 } 

        {"城镇「矮人村庄」"; 115120; -178112; -916; 11000; 0 } 

        {"城镇「半兽人村」"; -45186; -112459; -236; 10000; 0 } 

        {"城镇「古鲁丁村庄」"; -80749; 149834; -3043; 10000; 0 } 

        {"城镇「古鲁丁城镇」"; -12787; 122779; -3114; 6000; 1 } 

        {"城镇「狄恩城镇」"; 5744; 142928; -2704; 10000; 2 }

        {"城镇「奇岩城镇」"; 82700; 148000; -3464; 1000; 3 }

        {"城镇「猎人村庄」"; 117088; 76931; -2670; 13000; 0 } 

        {"城镇「欧瑞城镇」"; 83011; 53207; -1470; 18000; 4 } 

        {"城镇「亚丁城镇」"; 146783; 25808; -2000; 18000; 5 } 

        {"练级区域55-60「龙谷中部」"; 112263; 122920; -3671; 35000; 2 } 

        {"练级区域65-70「龙穴入口」"; 131144; 114488; -3724; 45000; 0 }

        {"练级区域65-70「遗望神殿」"; -52931; 191053; -3546; 5000; 0 } 
    telposlist_end
property_define_end
class_end

上面AI部分只定义了telposlist的坐标,它的具体ai调用了父类teleporter F
按照上面的npcai我们很方便的定义自己的传送人 比如  class XXXX : teleporter ( XXXX就是自己定义传送AI名称)
然后花点时间到SE里面采点,作个自己的个性telposlist就可以.
相应的HTM里面用bypass -h teleport_request完成页面调用显示. 
  
AI部分进阶

 现在我们来看看它的父类,看看是如何完成具体的AI功能的调用的 
  
class teleporter : default_npc      //所有NPC的父类我们不做讨论 
  
parameter_define_begin M8,W|eTM 
    string ShopName ""
    string fnHi "thi.htm"
    string fnYouAreChaotic "tcm.htm"  
parameter_define_end                    //这部分定义了几个全局变量teleporter级别,影响所有它的子类                                         //telposlist对应ShopName                                         //thi.htm 通配名 对应不同的NPC的HTM 其中定义字段可以在相关npcdat里面查找 
                                        //tcm.htm 通配名 对应不同的NPC的HTM
                                        //其中定义字段可以在相关npcdat里面查找,比如 fnHi ; fnYouAreChaotic DAG2p
property_define_begin
    telposlist_begin Position 
        {"说话之岛村庄"; -84169; 244693; -3729; 100000; 0 } 
    telposlist_end
property_define_end 
                                        //默认值定义为说话之岛村庄
  
//NPC的行为动作都是靠调用各种handle来实现的,下面我我们来分析下具体handler定义  
handler 1                              // 攻击句柄开始 
    variable_begin

          "attacker"  

          "damage"

          "myself"   

          "_choiceN"

          "_code" 

          "_from_choice" 

    variable_end

                                        //定义攻击事件 (handler 1) 6个变量和SE对应不能更改.  
    shift_sp 1                        //攻击事件开始 
    push_event                   
    push_const 36                      //玩家选择行为 

    add                           

    fetch_i                            //压栈取值 
    push_const 0                    

    push_const 2000                    //设置时间范围0~2000 
    func_call 2      // func[AddAttackDesire] //一段时间增加攻击欲望状态 
    shift_sp -3                        //出栈,对应前面的3个push_const语句     shift_sp -1                        //攻击句柄结束
handler_end  
                                        //这里定义的状态就是NPC被攻击之后,会摆出姿势的AI ~F)


----------------------------------分割线--------------------------------------------   


handler 3                             //谈话句柄开始 
    variable_begin 

        "talker"   
        "myself" 

        "_choiceN" 
        "_code" 

        "_from_choice" 
    variable_end gZ 6Hj62D  
                                        //定义谈话事件 (handler 3) 5个变量和SE对应不能更改. 
    push_event  

    push_const 32           //玩家选择行为 
   add 
    fetch_i              //  压入堆栈
    push_const 412                  //判断否为红名
    add ?6>rQ6tBv  
    fetch_i                        //压栈取值 
    push_const 0            //取常量0 

    greater                          //大于 
    branch_false L768                //大于就继续执行,否则就执行L767
L767 _0
    shift_sp 1                      //判断为红名谈话事件开始
    push_event     
    push_const 32                    //玩家选择行为 
    add D8I)3cXa'  
    fetch_i                          //压栈取值 
    push_parameter fnYouAreChaotic  //取tcm.htm定义的特定NPC的HTM     func_call 43                       // 显示页面 
    shift_sp -2                      //出栈,对应前面的2个push_const语句 
    shift_sp -1                      //红名谈话时间结束 

    jump L769                        //转 L769 

    shift_sp 1            //判断白名谈话事件开始 
    push_event   
    push_const 32  
    add            //同上 
    push_parameter fnHi              //取thi.htm定义的特定NPC的HTM
    func_call 43                       //显示页面
    shift_sp -2                      //出栈 

    shift_sp -1                      //谈话时间结束
L769 pa+^5N  
handler_end                            //谈话句柄结束


//这里很清楚可以看出NPC是如何根据玩家状态来选择不同的对话事件的.以此扩展应该可以做出自己更多的判断行为及功能

----------------------------------分割线--------------------------------------------

handler 28                               //传送句柄开始  
    variable_begin
        "talker" 
        "myself" 
        "_choiceN"
        "_code" 
        "_from_choice" 
    variable_end 
                                        //定义传送件 (handler28) 5个变量和SE对应不能更改. 
    shift_sp 1                        //事件开始 
    push_event                     
    push_const 32 
    add   
    fetch_i                          //玩家选择行为 

    push_property Position          //坐标 
    push_parameter ShopName          //子类telposlist表
S73.    ""                             
    push_string S73                  //X   
S74.    ""                      
    push_string S74                  //Y
S75.    ""
    push_string S75                  //Z 
    func_call 45                       //传送 
    shift_sp -6            //出栈 
    shift_sp -1                    //事件结束

handler_end               //传送句柄结束


// 通用的调用telposlist表传送AI部分
class_end                              //teleporter ai定义结束


//好了到此结束,希望大家可以做出自己有特色的传送师

本站声明:本站文章资源均来自网上转载或机器人自动搜索采集,如果本站文章资源有版权问题请联系管理员,我们尽快予以更正。所有文章只限用于个人测试学习使用,不得用于非法商业用途,请勿非法复制传播。特此声明!--[5uwl.net]

五年游戏制作经验; 金牌服务品质保障 游戏开区一条龙 第一品牌无忧网络[5uwl.net]

文章录入:黑鹰    责任编辑:ceo 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 站点地图 | 管理登录 | 
    版权所有:Copyright © 2002-2008 中国·无忧网络 Www.5uwl.NET All Rights Reserved.
    网络支持:本站部份带宽由群英网络唯一数据赞助 (排名不分次序本站征赞助商)
    建议使用:1024*768 分辨率 Windows2000 Internet Explorer v5.0 or Higher
    广告投放:[5uwl.net] QQ 267320050 TEL [移]013689532036
    IP备案号:粤ICP备05092442号