Ir para conteúdo

[Ajuda]Docreaturecastspell


ABCDEFGHIJK

Posts Recomendados

Ola galera, eu fiz uma função na minha source chamada "doCreatureCastSpell(uid, spell)" so que ta dando um erro:

 

 In static member function `static int32_t LuaScriptInterface::luaDoCreatureCastSpell(lua_State*)': 

expected primary-expression before ',' token 

 

E esta dando erro nesse parte:

ret = g_spells->getInstantSpellByName(spell)->castSpell(Creature, spell);

 

Esse é o Codigo da função:

 

int32_t LuaScriptInterface::luaDoCreatureCastSpell(lua_State* L)
{
//doCreatureCastSpell(uid, spell)
std::string spell = popString(L);

ScriptEnviroment* env = getEnv();
Creature* creature = env->getCreatureByUID(popNumber(L));
if(!creature)
{
	errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

ReturnValue ret = RET_NOERROR;
ret = g_spells->getInstantSpellByName(spell)->castSpell(Creature, spell);
if(ret == RET_NOERROR || (ret == RET_NEEDEXCHANGE && !g_config.getBool(ConfigManager::BUFFER_SPELL_FAILURE)))
    return true;

lua_pushboolean(L, true);
return 1;
}

 

 

Alguem ai poderia me dizer como arrumar esse erro?

 

Aguardando resposta

Editado por yahooABC
Link para o comentário
Compartilhar em outros sites

Esta aparecendo esse erro:

cannot convert `bool' to `ReturnValue' in assignment 

 

O erro ocorre na linha 2852, que é esta linha:

ret = g_spells->getInstantSpellByName(spell)->castSpell(creature);

 

Esta é a parte que a linha esta:

ReturnValue ret = RET_NOERROR;
ret = g_spells->getInstantSpellByName(spell)->castSpell(creature);
if(ret == RET_NOERROR || (ret == RET_NEEDEXCHANGE && !g_config.getBool(ConfigManager::BUFFER_SPELL_FAILURE)))
    return true;

Editado por yahooABC
Link para o comentário
Compartilhar em outros sites

Vc ta tentando converter os valores.

Acho que g_spells->getInstantSpellByName(spell)->castSpell(creature); é um valor bool.

 

Se for isso mesmo tenta assim:

        if(g_spells->getInstantSpellByName(spell)->castSpell(creature))
       {
           lua_pushboolean(L, true);
           return 1;
       }

       lua_pushboolean(L, false);
       return 1;
}

Editado por kydrai
Link para o comentário
Compartilhar em outros sites

Eu pensei ter conseguido, fiz assim agora:

int32_t LuaScriptInterface::luaDoCreatureCastSpell(lua_State* L)
{
//doCreatureCastSpell(uid, spell)
std::string spell = popString(L);

ScriptEnviroment* env = getEnv();
Creature* creature = env->getCreatureByUID(popNumber(L));
if(!creature)
{
	errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));
	lua_pushboolean(L, false);
	return 1;
}

       if(g_spells->getInstantSpellByName(spell)->castSpell(creature))
       {
           lua_pushboolean(L, true);
           return 1;
       }

       lua_pushboolean(L, false);
       return 1;
}

 

Mais ai quando uso a função da Crash no servidor e ele é fechado.

Editado por yahooABC
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...