標題:
從源碼C底層中,增加特殊抗性裝備
[打印本頁]
作者:
寇丁gm
時間:
2026-5-26 20:57
標題:
從源碼C底層中,增加特殊抗性裝備
眾所皆知,石器的道具參數中,只有毒、麻、眠、石、醉、混 這六種抗性
如果是追獵的天羅地網、甚至是火雞系列的落馬術,都是沒有抗性的
於是,針對這些部分,就來示範如何土炮的模式來寫出抗性
1.宣告 WORK變數 (char_base.h)
在 typedef enum
{
中 增加以下
CHAR_WORK_FALLRIDE_RESIST,
}CHAR_WORKDATAINT;
2.將抗性實作到抗性判斷中 (item_event.c)
void ITEM_MagicResist 函式裡面增加
else if (strstr(itemarg, "落馬抗"))
{
p = itemarg;
int ReQuit = CHAR_getWorkInt(charaindex, CHAR_WORK_FALLRIDE_RESIST); //這邊的 WorkInt 要對應上面宣告的變數
CHAR_setWorkInt(charaindex, CHAR_WORK_FALLRIDE_RESIST, ReQuit + atoi(p + 6)); // 注意這裡是 "+" 3個中文字總共 6 bytes,+6
}
還有減少也不能忘記
else if (strstr(itemarg, "落馬"))
{
p = itemarg;
int ReQuit = CHAR_getWorkInt(charaindex, CHAR_WORK_FALLRIDE_RESIST);
CHAR_setWorkInt(charaindex, CHAR_WORK_FALLRIDE_RESIST, ReQuit - atoi(p + 6)); //這邊是減少 "-"
}
3.最後到落馬術實作裡面加入機率 (battle_event.c )
int BATTLE_S_FallGround 函式,在 if (skill_type == BATTLE_COM_S_FALLRIDE 這裡的判斷以下加入
fall_resist += CHAR_getWorkInt(defindex, CHAR_WORK_FALLRIDE_RESIST);
4.若想拓展到 LUA 使用 (const.c)
增加
{"對像_落馬抗%", sizeof("對像_落馬抗%"), LUA_DATALINE2 + CHAR_WORK_FALLRIDE_RESIST}, // 注意 CHAR_getWorkInt 要使用 LUA_DATALINE2
以上分享給大家
[
本帖最後由 寇丁gm 於 2026-5-26 20:59 編輯
]
歡迎光臨 We Love SA 石器時代研討中心 (http://lab.welovesa.com/)
Powered by Discuz! 6.0.0