Unity里怪物打玩家扣血,底层就是属性载体+碰撞/触发检测+伤害计算+血量刷新+死亡回调这套链。传奇类俯视RPG通常不用物理刚体硬碰,而是用OnTriggerEnter/OnTriggerStay配合攻击盒(Hitbox/Hurtbox)做判定,M2Server那边则是距离检测+攻击间隔+命中公式,两端思路一致,表现层不同。
一、Unity侧基础结构(可直接抄)
1.玩家挂Health组件
usingUnityEngine;
usingUnityEngine.UI;
publicclassHealth:MonoBehaviour
{
publicintmaxHp=100;
privateintcurHp;
publicSliderhpBar;
voidStart(){curHp=maxHp;UpdateBar();}
publicvoidTakeDamage(intdmg)
{
if(dmg<0)dmg=0;
curHp-=dmg;
if(curHp<=0){curHp=0;Die();}
UpdateBar();
}
voidUpdateBar(){
if(hpBar!=null)hpBar.value=(float)curHp/maxHp;
}
voidDie(){
Debug.Log(name+"死亡");
//播死亡动画、掉物、销毁
}
}
2.怪物攻击盒挂EnemyAttack
usingUnityEngine;
publicclassEnemyAttack:MonoBehaviour
{
publicintdamage=12;
publicfloatattackInterval=1.0f;
privatefloatnextAttack=0f;
voidOnTriggerStay(Colliderother)
{
if(!other.CompareTag("Player"))return;
if(Time.time<nextAttack)return;
nextAttack=Time.time+attackInterval;
varhp=other.GetComponent<Health>();
if(hp!=null)
{
hp.TakeDamage(damage);
Debug.Log("怪物攻击玩家,扣除:"+damage);
}
}
}
武器/爪子子物体挂BoxCollider勾IsTrigger,怪物本体挂Rigidbody(Kinematic也行),玩家挂Collider+TagPlayer,HP条用CanvasSlider绑hpBar。传奇类网格移动可把Rigidbody设Kinematic,纯靠坐标距离判定也行:
二、往传奇机制靠拢的伤害公式
官服不是hp-=monsterAtk,而是:
命中率=基础命中+武器准确-目标敏捷
实际伤害=攻击力下限~上限随机-防御力(物防/魔防取高)
最终伤害=max(1实际伤害)×技能系数×暴击系数
Unity里改写成:
publicstructHitData
{
publicintrawDamage;
publicintdefenderDef;
publicboolcanCrit;
}
publicvoidReceiveHit(HitDatah)
{
intdmg=h.rawDamage-h.defenderDef;
if(dmg<1)dmg=1;
if(h.canCrit&&Random.value<0.1f)dmg*=2;
TakeDamage(dmg);
}
攻击间隔、仇恨列表、技能冷却、施法前摇全部挂在怪物状态机里,传奇M2每100ms逻辑帧扫一次战斗队列,Unity侧用attackInterval+Update等效替代。
三、传奇服务端侧怪物扣血流程(M2逻辑)
1.怪物AI状态机进“攻击”态→检测目标玩家在攻击距离内
2.过攻击间隔(普通怪800~1200ms,BOSS更慢)
3.算命中:命中率=怪物准确+等级系数-玩家敏捷,随机数命中失败只飘“Miss”
4.算伤害:随机(攻下~攻上)-玩家物防/魔防(仍应项),破防保底1
5.写回玩家DB连接池、SendMsg下发受击包、刷新客户端血条
6.玩家HP≤0→死亡处理(爆装、回城、经验扣除按地图规则)
黑铁矿、首饰、幸运值只影响玩家攻防输入,不直接改怪物扣血函数。
四、热血传奇里比BOSS还受欢迎的几只“非正统BOSS”小怪
老玩家都懂,祖玛教主、赤月老母、虹魔教主那是行会战利品,散人日常发家全靠下面这些:
1.白野猪(小白)
石墓4/5层、石墓阵、猪七、封魔殿刷。血量中等、攻不算狠,但爆裁决、骨玉、龙纹、35级技能书、沃玛全套。猪七一张图挤满人,遇不到比遇到还难受。
2.极品红野猪/黑野猪
猪洞普通红野猪没人看,极品红野猪(血量异常高那只)专爆炼狱、银蛇、技能书;黑野猪掉凌霜级剑甲、加点首饰。两人组队随便清,回报超BOSS性价比。
3.邪恶毒蛇/邪恶钳虫
蜈蚣洞死亡棺材、一线天。毒蛇像蝎蛇但颜色不对的那只,爆裁决骨玉;钳虫是蜈蚣洞区域霸主,刷新稳、竞争狠,散人捡漏圣地。
4.虹魔猪卫/虹魔蝎卫
封魔谷纵横道、霸者大厅遍地走。刷新快、数量多,祖玛装备、沃玛装备、高级书全出,封魔谷开放后被叫“散人天堂”,比蹲虹魔教主实在。
5.牛魔将军/牛魔祭祀
牛魔洞五层。小怪身板,爆祖玛武器、骨玉、裁决级别东西,单人可清,当年网吧里一堆人靠这俩起家。
6.蝙蝠/多钩猫/钉耙猫/半兽勇士
蝙蝠早期回城卷唯一稳定来源;多钩猫钉耙猫叫“招财猫”,大爆金币和值钱小件;半兽勇士掉道士手镯、夏普尔、加点青铜头盔,苍月岛老散人定点蹲。
7.触龙神(大虫子)
死亡棺材固定点,早期魔法免疫机制特殊,掉高级药、装备、书,争夺不亚于小BOSS。
这些怪共同点是:刷新快、单人可打、爆率不按身板走、产出覆盖沃玛~祖玛断层带,散人靠它们滚雪球,比赌BOSS尸体稳得多。Unity复刻时把它们做成“高爆率精英模板”:刷新计时器短、掉落表挂祖玛/沃玛节点、AI用普通近战状态机即可,玩家体感直接拉回石墓阵。
一、Unity侧基础结构(可直接抄)
1.玩家挂Health组件
usingUnityEngine;
usingUnityEngine.UI;
publicclassHealth:MonoBehaviour
{
publicintmaxHp=100;
privateintcurHp;
publicSliderhpBar;
voidStart(){curHp=maxHp;UpdateBar();}
publicvoidTakeDamage(intdmg)
{
if(dmg<0)dmg=0;
curHp-=dmg;
if(curHp<=0){curHp=0;Die();}
UpdateBar();
}
voidUpdateBar(){
if(hpBar!=null)hpBar.value=(float)curHp/maxHp;
}
voidDie(){
Debug.Log(name+"死亡");
//播死亡动画、掉物、销毁
}
}
2.怪物攻击盒挂EnemyAttack
usingUnityEngine;
publicclassEnemyAttack:MonoBehaviour
{
publicintdamage=12;
publicfloatattackInterval=1.0f;
privatefloatnextAttack=0f;
voidOnTriggerStay(Colliderother)
{
if(!other.CompareTag("Player"))return;
if(Time.time<nextAttack)return;
nextAttack=Time.time+attackInterval;
varhp=other.GetComponent<Health>();
if(hp!=null)
{
hp.TakeDamage(damage);
Debug.Log("怪物攻击玩家,扣除:"+damage);
}
}
}
武器/爪子子物体挂BoxCollider勾IsTrigger,怪物本体挂Rigidbody(Kinematic也行),玩家挂Collider+TagPlayer,HP条用CanvasSlider绑hpBar。传奇类网格移动可把Rigidbody设Kinematic,纯靠坐标距离判定也行:
二、往传奇机制靠拢的伤害公式
官服不是hp-=monsterAtk,而是:
命中率=基础命中+武器准确-目标敏捷
实际伤害=攻击力下限~上限随机-防御力(物防/魔防取高)
最终伤害=max(1实际伤害)×技能系数×暴击系数
Unity里改写成:
publicstructHitData
{
publicintrawDamage;
publicintdefenderDef;
publicboolcanCrit;
}
publicvoidReceiveHit(HitDatah)
{
intdmg=h.rawDamage-h.defenderDef;
if(dmg<1)dmg=1;
if(h.canCrit&&Random.value<0.1f)dmg*=2;
TakeDamage(dmg);
}
攻击间隔、仇恨列表、技能冷却、施法前摇全部挂在怪物状态机里,传奇M2每100ms逻辑帧扫一次战斗队列,Unity侧用attackInterval+Update等效替代。
三、传奇服务端侧怪物扣血流程(M2逻辑)
1.怪物AI状态机进“攻击”态→检测目标玩家在攻击距离内
2.过攻击间隔(普通怪800~1200ms,BOSS更慢)
3.算命中:命中率=怪物准确+等级系数-玩家敏捷,随机数命中失败只飘“Miss”
4.算伤害:随机(攻下~攻上)-玩家物防/魔防(仍应项),破防保底1
5.写回玩家DB连接池、SendMsg下发受击包、刷新客户端血条
6.玩家HP≤0→死亡处理(爆装、回城、经验扣除按地图规则)
黑铁矿、首饰、幸运值只影响玩家攻防输入,不直接改怪物扣血函数。
四、热血传奇里比BOSS还受欢迎的几只“非正统BOSS”小怪
老玩家都懂,祖玛教主、赤月老母、虹魔教主那是行会战利品,散人日常发家全靠下面这些:
1.白野猪(小白)
石墓4/5层、石墓阵、猪七、封魔殿刷。血量中等、攻不算狠,但爆裁决、骨玉、龙纹、35级技能书、沃玛全套。猪七一张图挤满人,遇不到比遇到还难受。
2.极品红野猪/黑野猪
猪洞普通红野猪没人看,极品红野猪(血量异常高那只)专爆炼狱、银蛇、技能书;黑野猪掉凌霜级剑甲、加点首饰。两人组队随便清,回报超BOSS性价比。
3.邪恶毒蛇/邪恶钳虫
蜈蚣洞死亡棺材、一线天。毒蛇像蝎蛇但颜色不对的那只,爆裁决骨玉;钳虫是蜈蚣洞区域霸主,刷新稳、竞争狠,散人捡漏圣地。
4.虹魔猪卫/虹魔蝎卫
封魔谷纵横道、霸者大厅遍地走。刷新快、数量多,祖玛装备、沃玛装备、高级书全出,封魔谷开放后被叫“散人天堂”,比蹲虹魔教主实在。
5.牛魔将军/牛魔祭祀
牛魔洞五层。小怪身板,爆祖玛武器、骨玉、裁决级别东西,单人可清,当年网吧里一堆人靠这俩起家。
6.蝙蝠/多钩猫/钉耙猫/半兽勇士
蝙蝠早期回城卷唯一稳定来源;多钩猫钉耙猫叫“招财猫”,大爆金币和值钱小件;半兽勇士掉道士手镯、夏普尔、加点青铜头盔,苍月岛老散人定点蹲。
7.触龙神(大虫子)
死亡棺材固定点,早期魔法免疫机制特殊,掉高级药、装备、书,争夺不亚于小BOSS。
这些怪共同点是:刷新快、单人可打、爆率不按身板走、产出覆盖沃玛~祖玛断层带,散人靠它们滚雪球,比赌BOSS尸体稳得多。Unity复刻时把它们做成“高爆率精英模板”:刷新计时器短、掉落表挂祖玛/沃玛节点、AI用普通近战状态机即可,玩家体感直接拉回石墓阵。

