Exemplo n.º 1
0
int LuaAura_GetVar(lua_State * L, Aura * aura)
{
	TEST_AURA_RET_NULL();
	const char* var = luaL_checkstring(L,1);
	int subindex = luaL_optint(L,2,0);
	if (!var || subindex < 0) 
		RET_NIL(true);

	SpellEntry * proto = aura->m_spellProto;
	if(proto == NULL)
		RET_NIL(true);

	LuaSpellEntry l = GetLuaSpellEntryByName(var);
	if (!l.name)
		RET_NIL(true);

	switch (l.typeId) //0: int, 1: char*, 2: bool, 3: float
	{
	case 0:
		lua_pushinteger(L, GET_SPELLVAR_INT(proto,l.offset,subindex));
		break;
	case 1:
		lua_pushstring(L, GET_SPELLVAR_CHAR(proto,l.offset,subindex));
		break;
	case 2:
		lua_pushboolean(L, (GET_SPELLVAR_BOOL(proto,l.offset,subindex)) ? 1 : 0);
		break;
	case 3:
		lua_pushnumber(L, GET_SPELLVAR_FLOAT(proto,l.offset,subindex));
		break;
	}
	return 1;
}
Exemplo n.º 2
0
int LuaGlobalFunctions_GetDBCSpellVar(lua_State * L)
{
	uint32 entry = luaL_checkinteger(L,1);
	const char* var = luaL_checkstring(L,2);
	int subindex = luaL_optint(L,3,0);
	SpellEntry * proto = dbcSpell.LookupEntryForced(entry);
	if (!entry || !var || subindex < 0 || !proto)
		RET_NIL(true);

	LuaSpellEntry l = GetLuaSpellEntryByName(var);
	if (!l.name)
		RET_NIL(true);

	switch (l.typeId) //0: int, 1: char*, 2: bool, 3: float
	{
	case 0:
		lua_pushinteger(L, GET_SPELLVAR_INT(proto,l.offset,subindex));
		break;
	case 1:
		lua_pushstring(L, GET_SPELLVAR_CHAR(proto,l.offset,subindex));
		break;
	case 2:
		lua_pushboolean(L, (GET_SPELLVAR_BOOL(proto,l.offset,subindex)) ? 1 : 0);
		break;
	case 3:
		lua_pushnumber(L, GET_SPELLVAR_FLOAT(proto,l.offset,subindex));
		break;
	}
	return 1;
}
Exemplo n.º 3
0
int LuaSpell_ResetVar(lua_State * L, Spell * sp)
{
    if (sp == NULL)
        RET_BOOL(false);

    const char* var = luaL_checkstring(L,1);
    if (var == NULL)
        RET_BOOL(false);

    int subindex = luaL_optint(L,2,0);
    if (subindex < 0)
        RET_BOOL(false);

    SpellEntry * proto = sp->GetSpellProto();
    if (proto == NULL)
        RET_NIL(false);

    LuaSpellEntry l = GetLuaSpellEntryByName(var);
    if (!l.name)
        RET_BOOL(false);

    switch (l.typeId) //0: int, 1: char*, 2: bool, 3: float
    {
    case 0:
        GET_SPELLVAR_INT(proto, l.offset,subindex) = GET_SPELLVAR_INT(sp->m_spellInfo,l.offset,subindex);
        lua_pushboolean(L, 1);
        break;
    case 1:
        GET_SPELLVAR_CHAR(proto, l.offset,subindex) = GET_SPELLVAR_CHAR(sp->m_spellInfo,l.offset,subindex);
        lua_pushboolean(L, 1);
        break;
    case 2:
        GET_SPELLVAR_BOOL(proto, l.offset,subindex) = GET_SPELLVAR_BOOL(sp->m_spellInfo,l.offset,subindex);
        lua_pushboolean(L, 1);
        break;
    case 3:
        GET_SPELLVAR_FLOAT(proto, l.offset,subindex) = GET_SPELLVAR_FLOAT(sp->m_spellInfo,l.offset,subindex);
        lua_pushboolean(L, 1);
        break;
    default:
        RET_BOOL(false);
        break;
    }
    return 1;
}
Exemplo n.º 4
0
int LuaSpell_SetVar(lua_State * L, Spell * sp)
{
    if(sp == NULL)
        RET_BOOL(false);

    const char* var = luaL_checkstring(L,1);
    if (var == NULL)
        RET_BOOL(false);

    int subindex = 0;
    if (lua_gettop(L) == 3)
    {
        subindex = luaL_optint(L,2,0);
    }
    if (subindex < 0)
        RET_BOOL(false);

    int valindex = 2;
    if (subindex)
        valindex++;

//    sp->InitProtoOverride();
    SpellEntry * proto = sp->GetSpellProto();
    if(proto == NULL)
        RET_BOOL(false);

    LuaSpellEntry l = GetLuaSpellEntryByName(var);
    if (!l.name)
        RET_BOOL(false);

    switch (l.typeId) //0: int, 1: char*, 2: bool, 3: float
    {
    case 0:
        GET_SPELLVAR_INT(proto,l.offset,subindex) = luaL_checkinteger(L, valindex);
        lua_pushboolean(L, 1);
        break;
    case 1:
        strcpy(GET_SPELLVAR_CHAR(proto,l.offset,subindex), luaL_checkstring(L, valindex));
        lua_pushboolean(L, 1);
        break;
    case 2:
        GET_SPELLVAR_BOOL(proto,l.offset,subindex) = CHECK_BOOL(L, valindex);
        lua_pushboolean(L, 1);
        break;
    case 3:
        GET_SPELLVAR_FLOAT(proto,l.offset,subindex) = (float)luaL_checknumber(L, valindex);
        lua_pushboolean(L, 1);
        break;
    default:
        RET_BOOL(false);
        break;
    }
    return 1;
}
Exemplo n.º 5
0
int LuaAura_SetVar(lua_State * L, Aura * aura)
{
	TEST_AURA_RET();
	const char* var = luaL_checkstring(L,1);
	int subindex = 0;
	if (lua_gettop(L) == 3)
		subindex = luaL_optint(L,2,0);

	if (!var || subindex < 0)
		RET_BOOL(false);

	int valindex = 2;
	if(subindex)
		valindex++;

	SpellEntry * proto = aura->m_spellProto;
	if(proto == NULL)
		RET_NIL(true);

	LuaSpellEntry l = GetLuaSpellEntryByName(var);
	if (!l.name)
		RET_BOOL(false);

	switch (l.typeId) //0: int, 1: char*, 2: bool, 3: float
	{
	case 0:
		GET_SPELLVAR_INT(proto,l.offset,subindex) = luaL_checkinteger(L, valindex);
		lua_pushboolean(L, 1);
		break;
	case 1:
		strcpy(GET_SPELLVAR_CHAR(proto,l.offset,subindex), luaL_checkstring(L, valindex));
		lua_pushboolean(L, 1);
		break;
	case 2:
		GET_SPELLVAR_BOOL(proto,l.offset,subindex) = CHECK_BOOL(L, valindex);
		lua_pushboolean(L, 1);
		break;
	case 3:
		GET_SPELLVAR_FLOAT(proto,l.offset,subindex) = (float)luaL_checknumber(L, valindex);
		lua_pushboolean(L, 1);
		break;
	}
	return 1;
}
Exemplo n.º 6
0
int LuaGlobalFunctions_SetDBCSpellVar(lua_State * L)
{
	uint32 entry = luaL_checkinteger(L,1);
	const char* var = luaL_checkstring(L,2);
	int subindex = 0;
	if (lua_gettop(L) == 4)
		subindex = luaL_optint(L,3,0);

	int valindex = 3;
	if (subindex)
		valindex++;

	SpellEntry * proto = dbcSpell.LookupEntryForced(entry);
	if (!entry || !var || subindex < 0 || !proto)
		RET_BOOL(false);

	LuaSpellEntry l = GetLuaSpellEntryByName(var);
	if (!l.name)
		RET_BOOL(false);

	switch (l.typeId) //0: int, 1: char*, 2: bool, 3: float
	{
	case 0:
		GET_SPELLVAR_INT(proto,l.offset,subindex) = luaL_checkinteger(L, valindex);
		lua_pushboolean(L, 1);
		break;
	case 1:
		strcpy(GET_SPELLVAR_CHAR(proto,l.offset,subindex), luaL_checkstring(L, valindex));
		lua_pushboolean(L, 1);
		break;
	case 2:
		GET_SPELLVAR_BOOL(proto,l.offset,subindex) = CHECK_BOOL(L, valindex);
		lua_pushboolean(L, 1);
		break;
	case 3:
		GET_SPELLVAR_FLOAT(proto,l.offset,subindex) = (float)luaL_checknumber(L, valindex);
		lua_pushboolean(L, 1);
		break;
	}
	return 1;
}