Ir para conteúdo

Featured Replies

Postado

Galera eu consegui fazer funcionar no meu caso fazendo o seguinte.

TFS 0.3.7

Na Soucer do ot - luascript.cpp

int32_t LuaInterface::luaGetPlayerSecureMode(lua_State* L)
{
    //getPlayerSecureMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getSecureMode());
 
    return 1;
}
int32_t LuaInterface::luaGetPlayerFightMode(lua_State* L)
{
    //getPlayerFightMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getAttackFactor());
 
    return 1;
}
	//getPlayerSecureMode
	lua_register(m_luaState, "getPlayerSecureMode", LuaInterface::luaGetPlayerSecureMode);

	//getPlayerFightMode
	lua_register(m_luaState, "getPlayerFightMode", LuaInterface::luaGetPlayerFightMode);

luacript.h

		//getPlayerFightMode(cid)
        static int32_t luaGetPlayerFightMode(lua_State* L);
 
        //getPlayerSecureMode(cid)
        static int32_t luaGetPlayerSecureMode(lua_State* L);

 

Ai compilei depois..

Fui no ot e fiz o seguinte...

creaturescript.xml
 

    <event type="combat" name="SafeCombat" event="script" value="safemode.lua"/>

creaturescripts\scripts\safemode.lua

 

function onCombat(cid, target)
    if(target and isPlayer(target) and getPlayerSecureMode(cid) == 0) then
        doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
        return false
        elseif(target and isPlayer(target) and getPlayerSecureMode(cid) == 1) then
    return true
end
end

creaturescripts\scripts\login.lua

registerCreatureEvent(cid, "SafeCombat")

 

 

Então Quanto to com a mão aberta não ataca ninguém nem em área nem magia nem target..

se fecha a mão ai ataca todo tipo de magia..

Editado por robi123 (veja o histórico de edições)

  • Respostas 46
  • Visualizações 4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Eu consegui arrumar um script funcional com essa base de !pvp on e !pvp off, agora gostaria de saber se com o code dele dava pra criar esse que eu to querendo... Eu pesquisei nas sources e achei em Co

  • Vou explicar melhor... Eh sim pelo onCombat, mas no caso seria assim, vamos dar um exemplo: Estou la upando com a maozinha aberta (Sem pvp) usando magias de area e tals sem pegar pk, dai chega um cara

  • Então podemos colocar um outro método.   Fazemos um onCombat para não pegar magias em área...   e fizemos um onTarget para caso o jogador queira atacar realmente o outro jogador, o

Posted Images

Postado
16 minutos atrás, robi123 disse:

Galera eu consegui fazer funcionar no meu caso fazendo o seguinte.

TFS 0.3.7

Na Soucer do ot - luascript.cpp


int32_t LuaInterface::luaGetPlayerSecureMode(lua_State* L)
{
    //getPlayerSecureMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getSecureMode());
 
    return 1;
}

int32_t LuaInterface::luaGetPlayerFightMode(lua_State* L)
{
    //getPlayerFightMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getAttackFactor());
 
    return 1;
}

	//getPlayerSecureMode
	lua_register(m_luaState, "getPlayerSecureMode", LuaInterface::luaGetPlayerSecureMode);

	//getPlayerFightMode
	lua_register(m_luaState, "getPlayerFightMode", LuaInterface::luaGetPlayerFightMode);

luacript.h


		//getPlayerFightMode(cid)
        static int32_t luaGetPlayerFightMode(lua_State* L);
 
        //getPlayerSecureMode(cid)
        static int32_t luaGetPlayerSecureMode(lua_State* L);

 

Ai compilei depois..

Fui no ot e fiz o seguinte...

creaturescript.xml
 


    <event type="combat" name="SafeCombat" event="script" value="safemode.lua"/>

creaturescripts\scripts\safemode.lua

 


function onCombat(cid, target)
    if(target and isPlayer(target) and getPlayerSecureMode(cid) == 0) then
        doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
        return false
        elseif(target and isPlayer(target) and getPlayerSecureMode(cid) == 1) then
    return true
end
end

creaturescripts\scripts\login.lua


registerCreatureEvent(cid, "SafeCombat")

 

 

Então Quanto to com a mão aberta não ataca ninguém nem em área nem magia nem target..

se fecha a mão ai ataca todo tipo de magia..

Robi, meu problema é que eu não consigo fazer o tutorial igual no topico la do xtibia, ele da erro ao compilar, oque será que pode ser?

Postado
30 minutos atrás, robi123 disse:

Galera eu consegui fazer funcionar no meu caso fazendo o seguinte.

TFS 0.3.7

Na Soucer do ot - luascript.cpp


int32_t LuaInterface::luaGetPlayerSecureMode(lua_State* L)
{
    //getPlayerSecureMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getSecureMode());
 
    return 1;
}

int32_t LuaInterface::luaGetPlayerFightMode(lua_State* L)
{
    //getPlayerFightMode(cid)
    ScriptEnviroment* env = getEnv();
    Player* player = env->getPlayerByUID((uint32_t)popNumber(L));
    if(!player)
    {
        errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
        lua_pushboolean(L, false);
    }
    else
        lua_pushnumber(L, player->getAttackFactor());
 
    return 1;
}

	//getPlayerSecureMode
	lua_register(m_luaState, "getPlayerSecureMode", LuaInterface::luaGetPlayerSecureMode);

	//getPlayerFightMode
	lua_register(m_luaState, "getPlayerFightMode", LuaInterface::luaGetPlayerFightMode);

luacript.h


		//getPlayerFightMode(cid)
        static int32_t luaGetPlayerFightMode(lua_State* L);
 
        //getPlayerSecureMode(cid)
        static int32_t luaGetPlayerSecureMode(lua_State* L);

 

Ai compilei depois..

Fui no ot e fiz o seguinte...

creaturescript.xml
 


    <event type="combat" name="SafeCombat" event="script" value="safemode.lua"/>

creaturescripts\scripts\safemode.lua


function onCombat(cid, target)
    if(target and isPlayer(target) and getPlayerSecureMode(cid) == 0) then
        doPlayerSendCancel(cid, "Turn secure mode off if you really want to attack unmarked players.")
        return false
		end
    return true
end

 

creaturescripts\scripts\login.lua


registerCreatureEvent(cid, "SafeCombat")

 

 

Então Quanto to com a mão aberta não ataca ninguém nem em área nem magia nem target..

se fecha a mão ai ataca todo tipo de magia..

 

@fiordy

quer postar seu luascript.ccp e luascript.h para eu ver?
ou tentar postar qual o erro ?

Postado
12 minutos atrás, robi123 disse:

 

@fiordy

quer postar seu luascript.ccp e luascript.h para eu ver?
ou tentar postar qual o erro ?

Ai Robiii, a forma que tu fez funcionou pra mim, muito obrigado mano!! Eu tava compilando aqui por isso demorei a responder mas a forma que tu postou eu consegui compilar e está funcionando corretamente! Muito obrigado mesmo, reputado! :)

Editado por fiordy (veja o histórico de edições)

Postado
6 horas atrás, fiordy disse:

Ai Robiii, a forma que tu fez funcionou pra mim, muito obrigado mano!! Eu tava compilando aqui por isso demorei a responder mas a forma que tu postou eu consegui compilar e está funcionando corretamente! Muito obrigado mesmo, reputado! :)

de nada ;D

 

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo