论坛全面改版,账号注册需要认证,请珍惜账号

补充 装备 和武器 的代码 和装备增加技能的代码

主要是游戏中一些经典任务、游戏资料的科普.
回复
头像
天堂之手
Mr.GL
Mr.GL
帖子: 244
注册时间: 2018-02-24 21:37

补充 装备 和武器 的代码 和装备增加技能的代码

帖子 天堂之手 » 2018-03-24 20:42

新手需要注意下 add 开头和 mul 开头增加的属性是不一样的
add=加减计算方式 在你输入多少数值游戏内实际增加的属性就是你输入多少的数值
mul=乘除计算方式 在你写入的数值来定百分比计算 例如某属性需要提升30% 那么后台属性值输入1.3=增加了30% 当然有些属性输入数值例如 输入0.5 为什么会增加50%呢,关于这个悟性只是时间问题 接触时间多了你自然就懂了
关于order后面的0X10 还有0X30 0X40等等 介绍下大致是什么意思
0X30 是百分比
0X08是设置数值
0X10 是值
0X40是整数
08用在 <set order="0x08" stat="pAtk" val="8" /> 这类写法
10用在 <add order="0x10" stat="accCombat" val="4.75" /> 这类写法
30用在 <mul order="0x10" stat="magicSuccRes" val="1.75" />
这些是数值控制的精度..一般都不考虑这方面问题反正我对这个数值要求直接无视他的纯在.
<add val='18000' order='0x40' stat='maxHp'/> 最大HP值增加18000
<add val='18000' order='0x40' stat='maxMp'/> 最大MP值增加18000
<add val='18000' order='0x40' stat='maxCp'/> 最大CP值增加18000
<mul val='1.80' order='0x40' stat='pDef'/> 物理防御力增加80%
<mul val='1.80' order='0x40' stat='mDef'/> 魔法防御力增加80%
<mul val='1.80' order='0x40' stat='pAtk'/> 物理攻击力增加80%
<mul val='1.80' order='0x40' stat='mAtk'/> 魔法攻击力增加80%
<mul val='1.80' order='0x40' stat='pAtkSpd'/> 物理攻击速度增加80%
<mul val='1.80' order='0x40' stat='mAtkSpd'/> 魔法攻击速度增加80%
<mul val='1.80' order='0x40' stat='accCombat'/> 命中增加80%
<mul val='1.80' order='0x08' stat='rCrit'/> 致命机率增加80%
<mul val='1.80' order='0x40' stat='cAtk'/> 致命威力增加85%
<mul val='0.80' order='0x40' stat='atkReuse'/> 恢复耗时降至80%
<mul val='0.75' order='0x08' stat='MpConsume'/> MP消耗降至75%
<add val='50' order='0x10' stat='INT'/> INT增加50点
<add val='50' order='0x10' stat='WIT'/> WIT增加50点
<add val='50' order='0x10' stat='MEN'/> MEN增加50点
<add val='50' order='0x10' stat='DEX'/> DEX增加50点
<add val='50' order='0x10' stat='CON'/> CON增加50点
<add val='50' order='0x10' stat='STR'/> STR增加50点
<add val='1.50' order='0x40' stat='regHp'/> HP恢复速度+50%的效果
<add val='1.50' order='0x40' stat='regMp'/> MP恢复速度+50%的效果
<add val='1.50' order='0x40' stat='regCp'/> CP恢复速度+50%的效果
<add val='100' order='0x40' stat='runSpd'/> 移动速度+10点
<add val='50' order='0x10' stat='rEvas'/> 回避+10点
<add val="20" order="0x40" stat="reflectDam"/> 将近距离一般物理攻击的20%的伤害的反还对方
<add val='20' order='0x01' stat='absorbDam'/> 可恢复近距离一般物理攻击给敌人伤害的20%的HP
<mul val='50' order='0x10' stat='maxLoad'/> 负重限制提高50倍
<add val='5' order='0x50' stat='breath'/> 肺活量增加
<mul val='1.50' order='0x40' stat='sDef'/ > 盾牌防御力加50%
<mul val='1.50' order='0x40' stat='rShld'/> 盾牌格挡率加50%
<mul val='1.50' order='0x40' stat='mCritRate'/> 魔法致命攻击概率增加50%
<add val='50' order='0x10' stat='pAtkAngle'/> 加50攻击范围(枪的幅度)
<add val='100' order='0x10' stat='pAtkRange'/> 加100攻击距离(弓或者枪的远程距离)
<add val='80' order='0x40' stat='muteRes'/> 沉默抗性增加80%
<add val='80' order='0x40' stat='confusionRes'/> 混乱抗性增加80%
<add val='80' order='0x40' stat='sleepRes'/> 催眠抗性增加80%
<add val='80' order='0x40' stat='stunRes'/> 冲击抗性增加80%
<add val='80' order='0x40' stat='rootRes'/> 固定抗性增加80%
<add val='80' order='0x40' stat='paralyzeRes'/> 麻痹抗性增加80%
<add val='80' order='0x40' stat='movementRes'/> 迟缓抗性增加80%
<add val='80' order='0x40' stat='bleedRes'/> 出血抗性增加80%
<add val='80' order='0x40' stat='poisonRes'/> 中毒抗性增加80%
<add val='80' order='0x40' stat='darkRes'/> 黑暗属性增加80%
<add val='80' order='0x40' stat='holyRes'/> 神圣属性增加80%
<add val='80' order='0x40' stat='fireRes'/> 火属性增加80%
<add val='80' order='0x40' stat='windRes'/> 风属性增加80%
<add val='80' order='0x40' stat='waterRes'/> 水属性增加80%
<add val='80' order='0x40' stat='earthRes'/> 土属性增加80%
<sub val='80' order='0x30' stat='cancel'/> 魔法中断几率减少80%
<add val='80' order='0x40' stat='swordWpnRes'/> 抗剑器属性增加80%
<add val='80' order='0x40' stat='bluntWpnRes'/> 抗钝器属性增加80%
<add val='80' order='0x40' stat='daggerWpnRes'/> 抗匕首属性增加80%
<add val='80' order='0x40' stat='fistWpnRes'/> 抗拳套属性增加80%
<add val='80' order='0x40' stat='bowWpnRes'/> 抗弓箭属性增加80%
<add val='80' order='0x40' stat='poleWpnRes'/> 抗枪戟属性增加80%
<add val='80' order='0x40' stat='dualWpnRes'/> 抗双刀属性增加80%
<mul stat="cancelVuln" val="0.5" order="0x30"/> 提高50%抵抗被消除辅助状态的耐性
<mul order="0x30" stat="debuffVuln" val="0.5"/> 提高50%抵抗负面状态的耐性


比如修改提高型阿沛拉重甲的属性:
先在\l2jangel-gameserver\data\stats\armor文件夹中找到阿沛拉,ID为9831。那就找到9800-9899.xml这个文件用记事本打开,找到第9831项。
<item id="9831" name="Improved Apella Plate Armor">
<for>
<add val="293" order="0x10" stat="pDef"/>
<enchant val="0" order="0x0C" stat="pDef"/>
</for>
</item>这是没修改过的属性。
现在,我们可以随便加了,只要注意写法不错误就可以。如下:
<item id="9831" name="Improved Apella Plate Armor">
<for>
<add val="293" order="0x10" stat="pDef"/>
<enchant val="0" order="0x0C" stat="pDef"/>
<add val="1000" order="0x10" stat="pDef"/> 加1000防御(add为增加的意思)
<add val="1000" order="0x10" stat="mDef"/> 加1000魔法防御
<mul val="1.35" order="0x40" stat="pAtk"/> 增加35%的攻击里(mul为增加%的意思,就是在你原来的基础上增加%,如1.35就是增加35%)
<mul val="1.35" order="0x40" stat="mAtk"/> 增加5%的魔法攻击
<mul val="1.35" order="0x40" stat="maxHp"/> 增加35%的HP
<mul val="1.35" order="0x40" stat="maxMp"/> 增加35%的 MP
<mul val="1.35" order="0x40" stat="maxCp"/> 增加35%的CP
<mul val="1.35" order="0x40" stat="pDef"/> 增加35%防御
<mul val="1.35" order="0x10" stat="mDef"/> 增加35%魔法防御
<mul val="1.35" order="0x40" stat="pAtkSpd"/> 增加35%攻击速度
<mul val="1.35" order="0x40" stat="mAtkSpd"/> 增加35%施法速度
<add val="70" order="0x40" stat="runSpd"/> 增加70的移动速度
<add val="60" order="0x10" stat="STR"/> 增加60的力量(STR=力量)
<add val="60" order="0x10" stat="DEX"/> 增加60的敏捷(DEX=敏捷)
<add val="60" order="0x10" stat="CON"/> 增加60的体力(CON=体力)
<add val="60" order="0x10" stat="INT"/> 增加60的智力(INT=智力)
<add val="60" order="0x10" stat="WIT"/> 增加60的智慧(WIT=智慧)
<add val="60" order="0x10" stat="MEN"/> 增加60的精神(MEN=精神)
<add val="1000" order="0x10" stat="accCombat"/> 增加1000的命中
<sub order="0x40" stat="rEvas" val="-500"/> 增加500的回避
</for>
</item> 结尾必须这样写
(注意语句尾的 / 用法,有和没之差是会出错的)
写完后保存,好了,这样一件BT的阿沛拉重甲就诞生了。记得重起数据库哦~~
现在我们来说如何给衣服增加技能,这就要用到数据库了。要用到一个软件Navicat8.0。这个软件论坛里有下,自己找找就行。
先启动mysql数据库,就是玩单机最先要开的那个。然后启动Navicat8.0。连接名用localhost,密码用root就可以了。
双击打开连接,点Angel-CT1这一项,会出现很多表格,找到armor这一表格。

双击打开。比如我要给礼服添加技能,就找到6408这一行。(礼服的ID为6408)
然后往又边拉,找到“skills_item" 这一项就是增加技能的。如我要增加一个10级的被动狂热,就找到技能ID:3250 10(10代表等级){道具技能:狂热术 装备技能(装备技能就是被动技能,主动技能是使用技能,不要搞错了):装备时提升伤害攻击魔法的致命攻击概率。}
增加时就要写“3250-10”记得中间必须要用“-”阁开。如果想多加一个技能,比如狙击。那就要在前面技能的后面加一个“;”号如:“3250-10;313-8”。
蓝色被选中的一行为礼服 修改好后必须点一下这个勾勾,不然你就等于没有修改。这点一定要注意,很多人都会忘了这最后也是最重要的一步。
下面是一些数据库各项的解释:
item_id 武器ID
name 武器名
bodypart 武器手持型态[rhand:右手][lrhand:双手]
crystallizable 可否精炼
weight 重量
soulshots 灵魂弹数量
spiritshots 魔魂弹数量
material 材质
crystal_type 武器级别类型(none;D;C;B;A;S)
p_dam 物理攻击
rnd_dam 武器的攻击落差
weaponType 武器类型
critical 武器的爆击率
hit_modify
avoid_modify 回避
shield_def 盾牌格挡
shield.def_rate盾牌格挡机率
atk_speed 攻击速度
mp_consume MP消耗
m_dam 魔法攻击力
durability 持久
price 价格
crystal_count 结晶数量
sellable 是否可出售
item_id 物品ID
name 物品名
bodypart 装备位置(chest:上身.CHEST:上下连衣)
crystallizable 可否精炼
armor_type 装备类型(light轻,heavy重,magic法)
weight 重量
material 材质
crystal_type 结晶类型 把这一项改为A,那么这件衣服为A级衣服,改为S,就是S级的。
avoid_modify 回避
durability 持久
p_def 防御
m_def 魔御
mp_bonus MP增量
price 价格
crystal_count 结晶量
sellable 可否出售


好了,下面该说说如何修改技能了。
技能:data\stats\skills
<set name="mpConsume" val="250"/> 消耗250MP
<set name="power" val="350.0"/> 威力350
<set name="target" val="TARGET_SELF"/> 目标自我
<set name="target" val="TARGET_ONE"/> 目标单个
<set name="target" val="TARGET_AREA"/> 目标群体(某些BUFF的target是不同的)
<set name="skillRadius" val="605"/> 群攻的半径(群体时用)
<set name="skillTime" val="7000"/> 技能时间间隔
<set name="skillType" val="MDAM"/> 技能类型:魔法攻击
<set name="skillType" val="PDAM"/> 技能类型:物理攻击(BUFF技能有对应的skillType)
<set name="castRange" val="900"/> 发技能所须的距离
<skill id="30" levels="38" name="Backstab"> 技能ID,级数,名
<table name="#mpConsume"> 53 55 57 57</table> 把每级技能消耗的MP定义在 #mpConsume
<set name="mpConsume" val="#mpConsume"/> 调用上面定义的 #mpConsume
(<set name="power" val="#power"/> 同理,当然你也可以用这方法定义施法时间逐级减少或其它)
<for>
<using kind="Dagger" skill="0030"/> (Dagger是匕首,这是需要装备匕首才能发动此技能的意思,剑sword,盾Shield,砘器blunt如此类推)
</add>
</for>
现在我来举例说明。修改狙击随开随关:
在\l2jangel-gameserver\data\stats\skills文件夹中找到0300-0399.xml文件,用记事本打开,找到313项。
<skill id="313" levels="8" name="Snipe" enchantLevels1="30" enchantLevels2="30">
<!--
Description(s):
Temporarily increases Accuracy, P. Atk., range of attack, and critical attack rate.
Immobilizes while in effect. Usable when equipped with a bow type weapon.
Snipe 1-8 P.Atk. +124-199, Accuracy +1-6, Critical +20%, Range +300
-->
<table name="#enchantMagicLvl"> 76 76 76 77 77 77 78 78 78 79 79 79 80 80 80 81 81 81 82 82 82 82 83 83 83 84 84 85 85 85 </table>
<enchant1 name="magicLvl" val="#enchantMagicLvl"/>
<enchant2 name="magicLvl" val="#enchantMagicLvl"/>
<table name="#mpConsume"> 28 29 30 31 32 33 34 34 </table>
<table name="#pAtk"> 124 134 145 155 166 177 188 199 </table>
<!--Emu_add_start-->
<table name="#power"> 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 </table>
<!--Emu_add_end-->
<table name="#accCombat"> 1 3 4 4 5 5 6 6 </table>
<table name="#ench1pAtk"> 201 203 204 206 207 209 210 212 214 215 217 218 220 221 223 225 225 225 225 225 225 225 225 225 225 225 225 225 225 225 </table> <!-- valores estimados (C4 values)-->
<table name="#ench2MpConsume"> 33 33 32 32 32 31 31 30 30 29 29 28 28 28 27 27 26 26 25 25 25 24 24 23 23 22 22 21 20 20 </table>
<table name="#aggro"> 566 582 597 611 624 635 646 655 </table>
<set name="weaponsAllowed" val="32"/>
<set name="mpConsume" val="#mpConsume"/>
<!--Emu_add_start-->
<set name="power" val="#power"/>
<!--Emu_add_end-->
<set name="target" val="TARGET_SELF"/> -前面的都别管 我们从这里开始修改
<set name="reuseDelay" val="1"/> 这里为技能恢复时间,改为1
<set name="hitTime" val="1"/> 这里也改为1
<set name="skillType" val="CONT"/> 这里原为BUFF,把BUFF改为CONT,意思是随开随关类型
<set name="operateType" val="OP_TOGGLE"/> 这里原为ACTIVE,把ACTIVE改为TOGGLE 表示可以随开随关
<set name="castRange" val="-1"/>
<set name="effectRange" val="-1"/>
<set name="aggroPoints" val="#aggro"/>
<enchant2 name="mpConsume" val="#ench2MpConsume"/>
<for>
<cond>
<player state="stand"/>
</cond>
<effect count="1" name="ImmobileBuff" time="14400" val="0"> 此处time改为14400(2小时)
<add order="0x40" stat="pAtk" val="#pAtk">
<using kind="Bow"/>
</add>
<add order="0x40" stat="accCombat" val="#accCombat">
<using kind="Bow"/>
</add>
<basemul order="0x30" stat="rCrit" val="0.2">
<using kind="Bow"/>
</basemul>
<add order="0x40" stat="pAtkRange" val="300">
<using kind="Bow"/>
</add>
</effect>
</for>
<enchant1for>
<cond>
<player state="stand"/>
</cond>
<effect count="1" name="ImmobileBuff" time="14400" val="0"> 此处time改为14400(2小时)
<add order="0x40" stat="pAtk" val="#ench1pAtk">
<using kind="Bow"/>
</add>
<add order="0x40" stat="pAtk" val="20"> 这个是攻击,可以在val后面自己修改
<using kind="Bow"/>
</add>
<add order="0x40" stat="accCombat" val="6"> 这个是增加命中,修改同上
<using kind="Bow"/>
</add>
<basemul order="0x30" stat="rCrit" val="0.2"> 这个是致命几率的倍率
<using kind="Bow"/>
</basemul>
<add order="0x40" stat="pAtkRange" val="300"> 这个.....不清楚,修改好后自己看下就知道了
<using kind="Bow"/>
</add>
</effect>
</enchant1for>
</skill>
这样就设置好了一个随开随关,没有技能施展时间,没有技能恢复时间的狙击了。同样的,可以参考上面修改其他的技能。
武器可以按照上面改衣服的方法改。数据库就weapon那里改....

以上为转帖~~
图片

回复