Board logo

標題: 從源碼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