116 lines
2.6 KiB
C
116 lines
2.6 KiB
C
#include <string.h>
|
|
#include "common.h"
|
|
#include "version.h"
|
|
#include "pet_skill.h"
|
|
#include "mylua/base.h"
|
|
#include "char.h"
|
|
#include "item.h"
|
|
#include "lua.h"
|
|
#include "lauxlib.h"
|
|
#include "lualib.h"
|
|
#include "lssproto_serv.h"
|
|
|
|
#ifdef _ALLBLUES_LUA_1_8
|
|
#include "mylua/mylua.h"
|
|
extern MY_Lua MYLua;
|
|
static CharBase PetSkillBaseInt[] = {
|
|
{{"序号"}, PETSKILL_ID}
|
|
,{{"字段"}, PETSKILL_FIELD}
|
|
,{{"目标"}, PETSKILL_TARGET}
|
|
#ifdef _PETSKILL2_TXT
|
|
,{{"类型"}, PETSKILL_USETYPE}
|
|
#endif
|
|
,{{"价值"}, PETSKILL_COST}
|
|
,{{"非法"}, PETSKILL_ILLEGAL}
|
|
};
|
|
|
|
static CharBase PetSkillBaseChar[] = {
|
|
{{"名称"}, PETSKILL_NAME}
|
|
,{{"注释"}, PETSKILL_COMMENT}
|
|
,{{"函数"}, PETSKILL_FUNCNAME}
|
|
,{{"选项"}, PETSKILL_OPTION}
|
|
#ifdef _CFREE_petskill
|
|
,{{"自由"}, PETSKILL_FREE}
|
|
,{{"种类"}, PETSKILL_KINDCODE}
|
|
#endif
|
|
};
|
|
|
|
static int getInt(lua_State *L)
|
|
{
|
|
const int index = luaL_checkint(L, 1);
|
|
const int element = getCharBaseValue(L, 2, PetSkillBaseInt, arraysizeof(PetSkillBaseInt));
|
|
|
|
lua_pushinteger(L, PETSKILL_getInt(index, element));
|
|
return 1;
|
|
}
|
|
|
|
static int setInt(lua_State *L)
|
|
{
|
|
const int index = luaL_checkint(L, 1);
|
|
const int element = getCharBaseValue(L, 2, PetSkillBaseInt, arraysizeof(PetSkillBaseInt));
|
|
const int data = luaL_checkint(L, 3);
|
|
|
|
if(PETSKILL_setInt(index, element, data) == -1){
|
|
return 0;
|
|
}else{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
static int getChar(lua_State *L)
|
|
{
|
|
const int index = luaL_checkint(L, 1);
|
|
const int element = getCharBaseValue(L, 2, PetSkillBaseChar, arraysizeof(PetSkillBaseChar));
|
|
|
|
lua_pushstring(L, PETSKILL_getChar(index, element));
|
|
return 1;
|
|
}
|
|
|
|
static int setChar(lua_State *L)
|
|
{
|
|
size_t l;
|
|
const int index = luaL_checkint(L, 1);
|
|
const int element = getCharBaseValue(L, 2, PetSkillBaseChar, arraysizeof(PetSkillBaseChar));
|
|
char *data = luaL_checklstring(L, 3, &l);
|
|
|
|
if(PETSKILL_setChar(index, element, data) == -1){
|
|
return 0;
|
|
}else{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
static int check(lua_State *L)
|
|
{
|
|
const int index = luaL_checkint(L, 1);
|
|
|
|
lua_pushinteger(L, PETSKILL_CHECKINDEX(index));
|
|
return 1;
|
|
}
|
|
|
|
static int getPetskillArray(lua_State *L)
|
|
{
|
|
const int index = luaL_checkint(L, 1);
|
|
|
|
lua_pushinteger(L, PETSKILL_getPetskillArray(index));
|
|
return 1;
|
|
}
|
|
|
|
static const luaL_Reg petskilllib[] = {
|
|
{"getInt", getInt},
|
|
{"setInt", setInt},
|
|
{"getChar", getChar},
|
|
{"setChar", setChar},
|
|
{"check", check},
|
|
{"getPetskillArray", getPetskillArray},
|
|
{NULL, NULL}
|
|
};
|
|
|
|
LUALIB_API int luaopen_PetSkill (lua_State *L) {
|
|
luaL_register(L, "petskill", petskilllib);
|
|
return 1;
|
|
}
|
|
|
|
#endif
|
|
|