修正[MP攻击]技能错误 - 神奇石器发布网
石器时代发布网 - 神奇石器旗下石器私服技术交流网 - 业务联系QQ:420004208

修正[MP攻击]技能错误

  • 内容
  • 相关

转自WELOVESA小鐵

原文:

前言:

隨著此次重拾經營伺服器的時間越來越長,PK的人數越來越多

在寵物技能上面琢磨的樣本數也是爆炸性的成長

得出了其中一個結論:「MP攻擊傷害有問題」

這可是華義時期原廠的技能,從青龍就了(聲望兩千、青龍你牽....)
雖說不是很相信,但還是來測試了一下

首先看源碼
在pet_skill.c裡面的int PETSKILL_MpDamage 此function內

def = (float)(atoi( buf1)/100);

會發現說,在參數的取得後透過atoi轉成int
而int / int 還是等於 int,沒有辦法轉成浮點數(float)
導致此技能傷害只有 1 2 3 4 (倍)差別,並沒有辦法像原始說明文那樣
攻擊下降N%,傷害敵人Y%的MP

於是在這邊我做了點修正
def = (int)(atof( buf1)/100);
利用atof轉浮點數,就可以精準控制傷害的%數,不會一下過高(命中也會變超高),或者是過低

另外因為這樣會影響petskill2.txt裡面設定的參數
於是再延伸成
strdef = CHAR_getWorkInt(charaindex,CHAR_WORKFIXSTR);
strdef = strdef + (int)( strdef*atof( buf1));

這樣設定時就會比較直覺 (設定正數,就是增加、設定負數,就是減少)
能夠精準控制到小數點兩位(EX:0.20 = 20%)
在運用上更為靈活。

版权声明:若无特殊注明,本文皆为《sa60》原创,转载请保留文章出处。

本文链接:修正[MP攻击]技能错误 - https://s.sa60.com/post-368.html

本文标签:

修正[MP攻击]技能错误