DNF阿拉德游戏论坛

 找回密码
 立即注册
搜索
查看: 2119|回复: 0
打印 上一主题 下一主题

[教程] 不用插件怎么通过PVF添加HPMP百分比显示

[复制链接]

签到天数: 1 天

[LV.1]无主之魂

5

主题

5

帖子

20

积分

初入阿拉德

Rank: 1

积分
20
怒气
1
声望
7
战力
0
跳转到指定楼层
楼主
发表于 2020-10-22 16:42:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

好久之前做的了,介于拿在手上实在没用,也没有傻子掏钱买这个,就放出来让大家自己完善自己的PVF。
第一步,打开PVF
第二步,打开一个nut
第三步,复制粘贴。

  1. //绘制地下城HPMP百分比
  2. function drawCustomUI_Swordman(obj)
  3. {
  4. drawHPMPr(obj);//统一交给这个函数绘制
  5. }
  6. function drawCustomUI_Priest(obj)
  7. {
  8. drawHPMPr(obj);
  9. }
  10. function drawCustomUI_Thief(obj)
  11. {
  12. drawHPMPr(obj);
  13. }
  14. function drawCustomUI_Mage(obj)
  15. {
  16. drawHPMPr(obj);
  17. }
  18. function drawCustomUI_Gunner(obj)
  19. {
  20. drawHPMPr(obj);
  21. }
  22. function drawCustomUI_ATGunner(obj)
  23. {
  24. drawHPMPr(obj);
  25. }
  26. function drawCustomUI_DemonicSwordman(obj)
  27. {
  28. drawHPMPr(obj);
  29. }
  30. function drawCustomUI_Fighter(obj)
  31. {
  32. drawHPMPr(obj);
  33. }
  34. function drawCustomUI_ATFighter(obj)
  35. {
  36. drawHPMPr(obj);
  37. }
  38. function drawCustomUI_ATMage(obj)
  39. {
  40. drawHPMPr(obj);
  41. }


  42. function drawHPMPr(obj)//绘制函数
  43. {
  44. if (!obj) return;


  45. local UI_HPMAX = obj.getHpMax();
  46. local UI_HP = obj.getHp();
  47. local UI_HP_RP = UI_HP * 100 / UI_HPMAX;//取出最大HP、当前HP,算出百分比
  48. local UI_MPMAX = obj.getMpMax();
  49. local UI_MP = obj.getMp();
  50. local UI_MP_RP = UI_MP * 100 / UI_MPMAX;//MP同理
  51. local x = 25;
  52. local y = 547;
  53. drawHPMPr_ANI(obj,x,y,UI_HP_RP.tointeger());//交给这个函数来绘制HP
  54. drawHPMPr_ANI(obj,x + 720,y,UI_MP_RP.tointeger());//MP同理
  55. }


  56. function drawHPMPr_ANI(obj,x,y,r)//绘制数字
  57. {
  58. local num = r;//取出百分比
  59. local num1 = 1;//左起第一,即百位 默认给1
  60. if(num != 100) {num1 = 0;}//非1即0
  61. local num2 = 0;//左起第二,即十位 默认给0
  62. if(num != 100) {num2 = num / 10;}//非0即除以10
  63. local num3 = num % 10;//左起第三,即个位 取10的余数
  64. local ani_1 = getAniHPMPn(obj, num1);//百位贴图取出
  65. sq_AnimationProc(ani_1);
  66. if(num1 == 1){//如果百位为1则绘制,否则调整坐标
  67. sq_drawCurrentFrame(ani_1, x, y, false);
  68. }else{
  69. x = x - 3;
  70. }
  71. local ani_2 = getAniHPMPn(obj, num2);//十位贴图取出
  72. sq_AnimationProc(ani_2);
  73. if(num1 != 1 && num2 == 0){//如果百位不存在且十位为0(即百分比为1位数),则调整坐标,否则绘制十位
  74. x = x - 3;
  75. }else{
  76. sq_drawCurrentFrame(ani_2, x + 8, y, false);
  77. }
  78. local ani_3 = getAniHPMPn(obj, num3);//个位贴图取出
  79. sq_AnimationProc(ani_3);//个位无需判断,绘制就完事了
  80. sq_drawCurrentFrame(ani_3, x + 16, y, false);
  81. }


  82. function getAniHPMPn(obj, n)//取出贴图函数
  83. {
  84. if (!obj) return null;


  85. local sq_var = obj.getVar();
  86. local ani = null;
  87. ani = sq_var.GetAnimationMap("HPMP"+n, "common/sqr/number/" + n +".ani");
  88. return ani;
  89. }
复制代码

“对待装备要象对待情人一样!”——林纳斯
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|DNF阿拉德游戏论坛 ( 渝ICP备2024024979号 )

渝公网安备50023502000547号

GMT+8, 2024-11-21 22:28 , Processed in 0.128312 second(s), 38 queries .

快速回复 返回顶部 返回列表