传奇

作者:

文章目录
  • 搭建环境
  • 登录器的配置 及列表更新
  • DB数据库添加 怪物装备等
  • 添加装备,以及装备补丁的制作
  • 添加新怪物和新地图
  • 脚本
  • 添加NPC
  • 自定义变量设置
  • 1机2区
  • 如何更新服务端和引擎
  • 添加地图
  • 如何添人形怪物以及应用方式详细语音教程
  • 传奇服务端架构

    MapInfo.txt 所有的地图和对应的坐标点
    # MapInfo.txt 所有的地图和对应的坐标点
    [0 比奇省] IncGamePoint(60/1)  # 位置 0
    [0122 宫殿] IncGamePoint(60/1) # 位置0122

    0 346,186 -> 0122 559,553  # 0:比奇省 坐标 - 0122:宫殿 坐标

    MerChant.txt

    # 所有服务脚本性质的NPC 和 NPC对应的地图 坐标 NPC的样子
    ;脚本名称   地图名称 X坐标 Y坐标   NPC名称   标志(方向)   形象 是否属于沙 是否移动 移动间隔   变色模式:1=名字+身体,2=身体变色,3=名字变色 变色间隔(毫秒) 是否固定颜色:0=不固定,1-7=固定颜色.
    ;┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
    ;脚本名称 地图名称     X坐标 Y坐标 NPC在游戏里的名称 标志(方向) 形象 是否属于沙 是否移动 移动间隔

    传送员/封魔 4 237 207 传送使者 0 8 0 0 0
    传送员/苍月 5 138 324 传送使者 0 8 0 0 0
    传送员/比齐 0 330 270 传送使者 0 8 0 0 0
    传送员/白日 11 181 323 传送使者   0 8 0 0       0
    传送员/魔龙 6 120 154 传送使者 0 8 0 0 0
    传送员/土城 3 341 335 传送使者 0 8 0 0 0
    盟重城/盟重_老兵 3 326 326 老兵 0 1 0 0 0
    盟重城/盟重_炼金师 3 320 334 炼金师 0 3 0 0 0
    盟重城/盟重_综合服务 3 320 336 综合服务 0 31 0 0
            #### MonGen.txt  
    # 各个地图刷新什么怪物 刷新数量 刷新范围等等
    ;代码 x y 名称 范围 数量 时间

    ;比奇
    0 600 576 弓箭守卫 0 1 10

    Npcs.txt

    # 同样也是NPC文件  其实放在MerChant.txt脚本里也是可以的
    ;名称       代码       地图     x         y   范围 图标

    比奇国王           1          0122     29        32        0      8
    管理人员           2          0150     9         12        0      8
    沙城老兵           0          3        669       338       0      1
    红娘               0         m101     27        32        0      12

    AdminList.txt

    # 管理员列表 把人物名输入到里面就是管理员了  这个在M2里面同样可以设置
    *         张三
    *         李四

    UserCmd.txt

    #  游戏里的命令 比如会员命令是 @会员服务 等等。。。对应的脚本是QFunction-0.txt
    ;引擎插件配置文件
    ;命令名称 对应编号
    会员服务              1
    洗红服务              5

    MonSayMsg.txt

    # 怪物说话配制 需要在M2功能设置里开启怪物说话才可以使用

    # 状态(0为杀人,1为被攻击,2为死亡,3为刚刷出来) 刚刷出来发的文字为广播文字全服务器都可以看 # 到。
    # 机率(数字越大,说话机率越小)
    # 颜色(0为红色,1为绿色,2为蓝色,3为白色) 白色文字,显示在怪物头顶上所有旁边的人都可以看到,# # 其它颜色则显示在人物聊到框中只有对应的人物可以看到。 这个些的很详细 大家自己研究一下就能看懂

    状态   机率 颜色     怪物名称               文字内容
    1       30      3     弓箭守卫       我只能打你,你不能打我
    1       30      3     弓箭守卫     哇!有没有搞错,%d我没K你。你居然K我!
    2       30      3     弓箭守卫               不要打我
    1       30      3     欢迎光临     欢迎光临宣之再创盛世!完美变态网络!
    1       15      3     欢迎光临     强烈强烈要求您下载补丁 不然你不会了解什么是完美。。。

    MapQuest_defQManage.txt

    # 登陆脚本 每个人物登陆游戏都会经过此脚本 起着决定性作用 以后学习脚本命令后 这个文件就可以学习# 到了

    [@Login]
    #IF
    CHECKLEVELEX > 0
    #ACT
    SET [297] 0
    VAR Integer HUMAN RWSR
    LOADVAR HUMAN RWSR ..QuestDiary脚本触发自定义游戏数据.txt
    goto @main
    goto @main11
    goto @main1
    goto @main2
    goto @wudijn
    Break

    [@wudijn]
    #IF
    CHECK [298] 1
    #act
    DELAYGOTO 30 @60xkd

    [@60xkd]
    #act
    SET [298] 0
    sendmsg 6 提示:无敌守护冷却完毕 随时可以进行释放...


    [@main]
    #IF
    ISNEWHUMAN
    #ACT
    inc G0
    SENDMSG 0 热烈欢迎!! 第【<$STR(G0)>】名玩家【%s】闪亮登场!!!
    #CALL [脚本触发自定义新人技能.txt] @新人技能
    map B110
    break

    [@main11]
    #IF
    CHECKIPLIST ..QuestDiary游戏登陆禁止登陆IP.txt
    #act
    kick
    messagebox 提示:对不起!你三次登陆错误!IP已经被全面封杀!!!!!
    break


    [@main1]
    #CALL [脚本触发封号系统封号系统.txt] @封号分类

    [@main2]
    #CALL [脚本触发自定义验证脚本.txt] @登陆激活


    [@KSDT]
    #act
    GAMEPOINT + 100
    CALCVAR HUMAN RWSR + 1
    SAVEVAR HUMAN RWSR ..QuestDiary脚本触发自定义游戏数据.txt
    SendMsg 5 您的谋杀罪名成立............
    SendMsg 5 提示:您在狂杀暗殿杀了人!!奖励100点能量!能量值现有<$GAMEPOINT>点......

    [@PTSW]
    #act
    GAMEPOINT + 50
    CALCVAR HUMAN RWSR + 1
    SAVEVAR HUMAN RWSR ..QuestDiary脚本触发自定义游戏数据.txt
    SendMsg 5 您的谋杀罪名成立............
    SendMsg 5 提示:您已经杀了人!!奖励50点能量!能量值现有<$GAMEPOINT>点......

    [@NLBG]
    #act
    CALCVAR HUMAN RWSR + 1
    SAVEVAR HUMAN RWSR ..QuestDiary脚本触发自定义游戏数据.txt
    SendMsg 5 您的谋杀罪名成立............
    SendMsg 5 提示:您杀的对手能量不够!!无法获得能量!能量值现有<$GAMEPOINT>点......

    Market_DefQFunction-0.txt

    功能脚本 比如游戏里的卷轴使用后的效果就是通过此脚本完成

    MapQuest.txt

    # 怪物触发脚本 在某地图杀死某个怪将会执行某个功能 比如有些怪物是做任务的时候需要杀死的

    0     [100]     0     稻草人         *               Q001
    0     [100]     0     多钩猫         *               Q002
    0     [100]     0     钉耙猫         *               Q002
    0     [100]     0     半兽人         *               Q003
    0     [100]     0     毒蜘蛛         *               Q003
    ↑   ↑       ↑    ↑           ↑            ↑
    地图 变量值   是否触发 怪物名        检测          触发脚本名

    MonItems

    # 此文件夹内就是暴率脚本 里面的怪物名对应的是怪物的暴出物品的暴率

     

    搭建环境

    1. DBC2000 # 注意配置DB 的path。
    2. 版本一套
    3. 登录器一个

    登录器的配置 及列表更新

    # 配置登录器
    # 远程游戏列表地址 **
    # 游戏登录验证码 要一致
    mirserverLoginSrv
    选项-基本设置-专用登录器模式

     

     

    DB数据库添加 怪物装备等

    # 装备
    分类号 衣服,武器外观

    # 怪物
    攻击类型 攻击样子 攻击效果

    添加装备,以及装备补丁的制作

    1. 装备素材
    2. WIL文件管理器

    Hum.wil  # 衣服外观
    Hum.wix
    Weapon.wil # 武器外观
    Weapon.wix
    HumEffect.wil # 翅膀外观    
    stateitem.wil # 装备在装备栏的样子
    Items.wil     # 装备在背包的样子
    DnItems.wil   # 装备掉在地上的样子

    # 导入
    # 每一个武器,衣服(男,女)有1200张图片(坐标)
    # 添加的物品需要推荐到数据库中
    # 添加完后 把*.wil *.wix 文件打包做成补丁

    添加新怪物和新地图

    # 怪物添加重点:怪物样子代码计算公式:mon后面的数字减1  再乘以10  得出来的数字就是当前打开怪               物文件的第一个怪物的样子代码,第二个怪物就是得出来的数字加1,第三个怪物用得出来               的数字加2......依此类推


    # 地图添加的重点:1.地图和怪物与装备的添加有所不同,分为.wil文件和.map文件,这两个文件制作出 来的时候就是相互对应的,在添加的时候,需要把WIL添加到盛大的客户端或者是把 图片导入盛大的客户端,同时也需要把.map文件加到服务端的map文件夹和客户端的 map文件夹下面,并且设置服务端 D:MirServerMir200EnvirMapInfo.txt 这个文件,你所新加的地图才会正常的启动

    脚本

    if    # 如果
    act   # 则执行
    say   # 对
    elseact   # 如果不符合条件,则执行
    elsesay   # 如果不符合条件,则对话
    break    # 返回
    close   # 关闭

    check [条件数]  # 检测条件数
    set [条件数]    # 给予条件数

    G0-G99 全局变量(数字型) 可保存
    A0-A99 全局变量(字符型) 可保存
    M0-M99 私人变量(数字型) 不可保存
    I0-I99 全局变量(数字型) 不可保存
    D0-D9 私人变量(数字型) 不可保存
    N0-N99 私人变量(数字型) 不可保存
    S0-S99 私人变量(字符型) 不可保存
    P0-P9 私人变量(数字型) 不可保存

    check (变量) (数值) 检测变量是否等于某数值
    set   (变量) (数值) 给予指定变量一个数值
    inc   (变量) (数值) 加指定数值到变量
    small (变量) (数值) 检测变量是不是小于指定数值
    large (变量) (数值) 检测变量是不是大于指定数值
    equal (变量) (数值) 检测变量是不是等于指定数值

    <$STR(x)> 显示当前变量的数值 X等于变量的数值


    个人变量
    公有和私有变量
    自定义变量
    1、首先要声明变量
    2、读取变量
    3 对变量进行编辑 可以 加 减 等等等....
    4、保存变量

    公有   GLOBAL
    私有   HUMAN

    Integer   数字型
    String   字符型

    1.声明变量
    VAR Integer 公有/私有 变量名称 数字型
    VAR String 公有/私有 变量名称 字符型

    2.读取变量
    LOADVAR 公有/私有 变量名称 ..QuestDiary某某目录某某.txt

    3.修改变量
    CALCVAR 公有/私有 变量名称 + - * / =     脚本命令CALCVAR支持对变量进行+ - * / =五种操作

    4、保存变量
    SAVEVAR 公有/私有 变量名称 ..QuestDiary某某目录某某.txt

    5.检测变量
    CHECKVAR 公有/私有 变量名称 > < =     脚本命令CHECKVAR支持对变量进行 > < = 三种操作
    查看变量
    <$公有/私有(变量名称)>

    添加NPC

    >> Mir200/Envir/MerChant.txt 
    测试合成   3  333 333 测试合成npc 0   8   0   0   0   0

    >> Mir200/Envir/Market_def   # 添加npc脚本文件 测试合成-3.txt
    [@main]
    #CALL [\测试合成测试.txt] @合成

    >> Mir200/Envir/QuestDiary
    # 创建文件夹 测试合成-测试.txt

    自定义变量设置

    >> EnvirMapQuset_def/QManage.txt
    [@sharen]
    #atc
    VAR Integer HUMAN 测试杀人
    LOADVAR HUMAN 测试杀人 ..QestDiary测试杀人测试杀人.txt
    [@StdModeFuncX]  # X 你需要添加的数值 在db里添加相应的武器装备
    #if
    #act
    give 麻痹戒指 1
    give 麻痹戒指 1
    give 麻痹戒指 1
    添加音乐 Legend of mirwav

     

    1机2区

    1.控制面板下BDE 创建新的HeroDB

    2.配置 控制器通讯端口:不能一样 游戏服务器名称 网关端口

    如何更新服务端和引擎

    1.查看自己的版本和引擎

    2.在官方网站下载相应的文件

    3.如何更新引擎和版本

    4.更新引擎和版本的目的

    添加地图

    >> Mir200EnvirMapInfo.txt   # [0  比奇省]
    >> Mir200Map                 # 存放地图的一些文件 0.map

    # [0 比奇省]
    # [gm1212|0 比奇省二层]

    #===================================================================================
    [@main]
    想去比奇省二层?\
    <跟我来/@go> <怕怕/@exit>

    [@go]
    #act
    mapmove gm1212
    give 回城卷 1
    close
    #==================================================================================

     

    如何添人形怪物以及应用方式详细语音教程

    >> Mir200EnvirMonUseItems   # 人形怪所在位置

    #===================== 人形怪完整的配置 ============================================
    [BaseInfo]
    ;职业 # 0:战士 1:法师 2:道士
    job=0
    ;性别 # 0:男 1:女
    Gender=1
    ;头发  
    Hair=5
    ;使用魔法
    ;注意:人形怪必须有相关技能才可以正常使用技能。
    Magic=基本剑术,攻击剑术,刺杀剑术,烈火剑法,野蛮冲撞,半月弯刀,开天斩
    ;是否掉落身上物品 0=不掉 1=掉落
    DropItem=0
    ;活动范围,0是不限制活动范围,超过活动范围自动返回出生点.
    Territory=0
    ;是否允许挖取身上装备 1=是,0=否
    ButchUseItem=1
    ;是否允许挖取身上装备:1为百分百,数字越大机率越小
    ;注意:设置0并不代表可以100% 挖到身上物品。
    ButchRate=80

    [UseItems]
    ;衣服
    DRESSNAME=圣战宝甲
    ;武器
    WEAPONNAME=怒斩
    ;照明物
    RIGHTHANDNAME=
    ;项链
    NECKLACENAME=圣战项链
    ;头盔
    HELMETNAME=圣战头盔
    ;左手镯
    ARMRINGLNAME=圣战手镯
    ;右手镯
    ARMRINGRNAME=圣战手镯
    ;左戒指
    RINGLANEME=圣战戒指
    ;右戒指
    RINGRNAME=圣战戒指
    ;物品
    BUJUKNAM=
    ;腰带
    BELTNAME=圣剑腰带
    ;鞋子
    BOOTSNAME=圣战鞋子
    ;宝石
    CHARMNAME=魔血石(大)
    ;死亡掉装备机率 数字越小掉装备机率越高
    DieDropUserItemRate=500
    #===================================================================================

    怪物数据库-添加数据

    # 设置怪物爆率
    >> Mir200/Envir/MonItems
    # ============================ 新怪.txt ============================================
    1/1 屠龙 #杀死一个怪 爆6把屠龙
    1/1 屠龙
    1/1 屠龙
    1/1 屠龙
    1/1 屠龙
    1/1 屠龙
    # ==================================================================================

    # 命令制造 怪物

    如何添抽奖脚本以及应用方式详细语音教程

    # 2种方式
    >> Mir200EnvirMarket_Def
    # 1.===============================================================================
    [@MAIN]
    亲爱的玩家:<$USERNAME>  
    ¤╭⌒╮╭⌒╮         欢迎光临       
    ╱◥██◣ ╭⌒╮           
    ︱田︱田田|╰-------------  
    ╬╬╬╬╬╬╬╬╬╬╬╬╬       
    ------------------------------------------------------------  
    在我这里可以抽奖
    <开抽/@chou>

    [@chou]
    #IF
    CHECKGAMEGOLD   >   499
    #ACT
    MOVR d9  3         # 3 以下的随机数 [0,1,2] 多少个物品写多少
    GOTO   @go
    #ELSESAY
    你的元宝不够!!

    [@go]
    #IF
    CHECKGAMEGOLD   >   499
    EQUAL   d9  0       # 检测指定变量是否等于几 如果等于=0
    #ACT
    MOV   d9  0 # d9=0
    GAMEGOLD  -   500
    give 麻痹戒指 1
    SENDMSG 7 【%S】恭喜你获得麻痹戒指
    SENDMSG 0   恭喜【%S】在土城抽奖获得麻痹戒指一枚!
    BREAK


    #IF
    CHECKGAMEGOLD   >   499
    EQUAL   d9  1 # 检测指定变量是否等于几 如果等于=1
    #ACT
    MOV   d9  0
    GAMEGOLD  -   500
    give 护身戒指 1
    SENDMSG 7 【%S】恭喜你获得护身戒指
    SENDMSG 0   恭喜【%S】在土城抽奖获得护身戒指一枚!
    BREAK


    #IF
    CHECKGAMEGOLD   >   499
    EQUAL   d9  2 # 检测指定变量是否等于几 如果等于=2
    #ACT
    MOV   d9  0
    GAMEGOLD  -   500
    give 复活戒指 1
    SENDMSG 7 【%S】恭喜你获得复活戒指
    SENDMSG 0   恭喜【%S】在土城抽奖获得复活戒指一枚!
    BREAK
    # =================================================================================


    # 2.===============================================================================
    [@main]  
    <〖开始抽奖〗/@go>     每次100元宝

    [@go]
    #IF
    CHECKGAMEGOLD > 99
    #ACT
    GAMEGOLD - 100
    goto @chou
    #elseact
    goto @likai

    [@chou]
    #IF
    RANDOM 3   # 有三分之一几率执行这段脚本   100:百分之一
    #ACT
    SENDMSG 0 [%s]进行了元宝抽奖,获得的奖励是:[麻痹戒指]
    give 麻痹戒指 1
    break

    #IF
    RANDOM 3
    #ACT
    SENDMSG 0 [%s]进行了元宝抽奖,获得的奖励是:[护身戒指]
    give 护身戒指 1
    break

    #IF
    RANDOM 3
    #ACT
    SENDMSG 0 [%s]进行了元宝抽奖,获得的奖励是:[复活戒指]
    give 复活戒指 1
    break

    [@likai]
    #ACT
    MESSAGEBOX 抽奖失败,您没有100个元宝!
    # ==================================================================================

     

    评论

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    站内搜索