Ir para conteúdo
  • 0

Inserir Comando Getplayerpz Pela Source


dragonfight

Pergunta

Encontrei um server com as sources modificadas(devland 8.0) com um comando interessante. Funciona mais ou menos assim:

getPlayerPz(cid) == 0 Não está pz locked

getPlayerPz(cid) == 1 Está pz locked

Esse comando me ajudaria muito, principalmente em npcs em que eu não queira que viajassem players pks, pz locked, etc.

Se alguém puder me ajudar com a programação, pois sou novato ainda. Gostaria de inserir esse comando nas sources do devland 0.97(tibia 8.0)

Por favor programadores, me ajudem. Dou rp+++ :sarcastic:

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Não precisa ser diretamente nas souce,só colocar isso na

 

lib/050-function

function getPlayerPz(cid)
return (getTilePzInfo(getCreaturePosition(cid)) == TRUE)
end

 

ai modo de uso + ou -

 

if getPlayerPz(cid) then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,'está em pz')
else
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,'NÃO está em pz')
end

Link para o comentário
Compartilhar em outros sites

  • 0

Não precisa ser diretamente nas souce,só colocar isso na

 

lib/050-function

function getPlayerPz(cid)
return (getTilePzInfo(getCreaturePosition(cid)) == TRUE)
end

 

ai modo de uso + ou -

 

if getPlayerPz(cid) then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,'está em pz')
else
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,'NÃO está em pz')
end

Cara, você me ajudou muito, só não te do rep+ agora porque já atingi o limite por hoje. Eu testei, esse script que você me passo, confere se o chão em que o player está é protect zone ou não. Só pra finalizar, não existe um jeito de em vez de verificar o chão, verificasse o player mesmo, se a condição apontasse para CONDITION_INFIGHT. Existe como fazer isso?

Link para o comentário
Compartilhar em outros sites

  • 0

tenta fazer outra função

function getPlayerInFight(cid)
return (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE)
end

 

getPlayerInFight(cid) == true

ou

getPlayerInFight(cid) == false

 

 

obs:

só para saber

 

1 = true

0 = false

Link para o comentário
Compartilhar em outros sites

  • 0

tenta fazer outra função

function getPlayerInFight(cid)
return (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE)
end

 

getPlayerInFight(cid) == true

ou

getPlayerInFight(cid) == false

 

 

obs:

só para saber

 

1 = true

0 = false

Vodkart, não deu certo, eu verifiquei e a source que estou trabalhando não tem a função getCreatureCondition. Aparece o tal do <a nil value>. Verifiquei e não tem mesmo na source.

Mas mesmo assim obrigado cara, o primeiro rep+ que eu tiver é pra você :smile_positivo:

 

Editando: Vodkart consegui colocar a função getCreatureCondition no meu source, e o seu script funcionou certinho. Vou colocar aqui mesmo como por a função em ots antigos, como o meu(devland 8.0):

 

Testado somente no devland

 

Adicione o seguinte no luascript.cpp:

 

 

//getCreatureCondition(cid, condition)

lua_register(m_luaState, "getCreatureCondition", LuaScriptInterface::luaGetCreatureCondition);

 

 

Depois mais embaixo adicione isso:

 

 

int LuaScriptInterface::luaGetCreatureCondition(lua_State* L)

{

//getCreatureCondition(cid, condition)

uint32_t condition = popNumber(L);

uint32_t cid = popNumber(L);

ScriptEnviroment* env = getScriptEnv();

Creature* creature = env->getCreatureByUID(cid);

if(creature)

{

if(creature->hasCondition((ConditionType_t)condition))

lua_pushnumber(L, LUA_TRUE);

else

lua_pushnumber(L, LUA_FALSE);

}

else

{

reportErrorFunc(getErrorDesc(LUA_ERROR_CREATURE_NOT_FOUND));

lua_pushnumber(L, LUA_FALSE);

}

return 1;

}

 

 

Depois na parte //get player info functions do arquivo luascript.h, adicione:

 

 

static int luaGetCreatureCondition(lua_State* L);

 

 

Por incrível que pareça, eu fiz sozinho pegando o script de um ot mais novo e colocando nesse.

Se alguém quiser fazer um tópico ensinando colocar a função, ok, mas não esqueça os créditos :thumbsupsmiley:

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...