標題:
從源碼C底層中,增加一個可使用的LUA API接口
[打印本頁]
作者:
寇丁gm
時間:
2026-5-23 11:14
標題:
從源碼C底層中,增加一個可使用的LUA API接口
原本的源碼中,很多資料都是過去保留下來的
對於未來拓展性非常低,很多人都希望能夠有更多的欄位保存更多資訊
以下就針對增加變數來做一個範例,希望可以幫助到喜歡石器的朋友
1. 宣告變數 (char_base.h) -> 搜尋 "CHAR_DATAINTNUM,"
在這塊加入
typedef enum{
...中間略
ADD_INT_1,
//增加你想要的變數 (可以自行定義變數名稱)
...中間略
CHAR_DATAINTNUM,
}CHAR_DATAINT;
2. 保存變數資料到人物的資料中 (char_base.c) ->搜尋 "CHAR_setintdata[CHAR_DATAINTNUM]"
在這塊加入
static char* CHAR_setintdata[CHAR_DATAINTNUM]={
...中間略
"addint1",
//(可以自行定義變數名稱,但要能夠好識別)
...中間略
};
3. 將這個變數,新增到LUA API 呼叫欄位中 (const.c) -> 搜尋 "對像_咒等" 或 其他 走 LUA_DATALINE0 的變數
增加以下
{"對像_增加數值1%", sizeof("對像_增加數值1%"), LUA_DATALINE0 + ADD_INT_1},
注意: LUA_DATALINE0 是 CHAR_getInt 所以這裡不能錯,後面 + ADD_INT_1 要與原先宣告的值對齊
以上的動作都完成後,重新make,就可以用LUA獲得這個數值
使用 Char.GetData(_Playindex, 對像_增加數值1%) 來操作
對於需要紀錄的資料相當方便
歡迎光臨 We Love SA 石器時代研討中心 (http://lab.welovesa.com/)
Powered by Discuz! 6.0.0