Ir para conteúdo
  • Cadastre-se

(Resolvido)[TFS 0.4 Protocolo 8.60]


Ir para solução Resolvido por Fir3element,

Posts Recomendados

bom pessoal, boa tarde a todos e estou com uma duvida, estou fazendo um projeto no protocolo 8.6 tfs 0.4 e gostaria de saber se tem como eu adiciona nas sources e como eu faço isso. seria o seguinte

entrei em um servidor hoje 8.6 e vi que dentro do templo players consegue andar em cima de players como nos servidor mais avançados, e players lvl abaixo de 100 tambem podia andar neles, e outra coisa que reparei nesse servidor, a barra de hp e mana é por porcentagem ...

 

alguem sabe algo sobre isso ?

 

obrigado desde ja

Link para o post
Compartilhar em outros sites

Você precisa ter as sources do servidor e compilar elas com o DEV C++, tenta esse tutorial, acho que pode te ajudar:

http://www.tibiaking.com/forum/topic/33548-dev-c-compilando-tfs-no-windows/

Link para o post
Compartilhar em outros sites

Wakon obrigado pela resposta, mas eu ja tenho as sources já estão compiladas aos meus parâmetros.

 

Fireelement, desculpa não tinha reparado esta pz lvl 1 e esta funcionando

 

agora quanto ao o hp e a mana fica por porcentagem ele não esta, se liga só 

 

(obs: sistema de reset do jogador direto nas sources, CREDITOS: gpedro e ao Fireelement por ter me ajudado)

 

http://prntscr.com/6fy8rt

 

 

 

16:20 You see Paladin (Level 408) [Reset 21]. He is a paladin.

Health: [76250 / 76250], Mana: [114150 / 114150].
IP: 127.0.0.1, Client: 860.
Position: [X: 95] [Y: 115] [Z: 7].

Wakon obrigado pela resposta, mas eu ja tenho as sources já estão compiladas aos meus parâmetros.

 

Fireelement, desculpa não tinha reparado esta pz lvl 1 e esta funcionando

 

agora quanto ao o hp e a mana fica por porcentagem ele não esta, se liga só 

 

(obs: sistema de reset do jogador direto nas sources, CREDITOS: gpedro e ao Fireelement por ter me ajudado)

 

http://prntscr.com/6fy8rt

 

firelement observei aqui agora que só o player maior que lvl 100 passa em player abaixo de lvl 100, nos servidor novos, nao tem essa de lvl, se é pz tool independente do lvl ele pode passar pro cima do outro char, exemplo: Area pz tool player lvl 1000 por ficar dentro de um outro player lvl 1000 entendeu ?

Link para o post
Compartilhar em outros sites

Wakon obrigado pela resposta, mas eu ja tenho as sources já estão compiladas aos meus parâmetros.

 

Fireelement, desculpa não tinha reparado esta pz lvl 1 e esta funcionando

 

agora quanto ao o hp e a mana fica por porcentagem ele não esta, se liga só 

 

(obs: sistema de reset do jogador direto nas sources, CREDITOS: gpedro e ao Fireelement por ter me ajudado)

 

http://prntscr.com/6fy8rt

 

 

 

firelement observei aqui agora que só o player maior que lvl 100 passa em player abaixo de lvl 100, nos servidor novos, nao tem essa de lvl, se é pz tool independente do lvl ele pode passar pro cima do outro char, exemplo: Area pz tool player lvl 1000 por ficar dentro de um outro player lvl 1000 entendeu ?

andar por cima dos players é na função canWalkthrough (player.cpp)

 

hp/mana por % tem q fazer essas alterações:

 

protocolgame.cpp, substitua:

    msg->put<uint16_t>(player->getHealth());
    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));

por:

    if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
    {
        msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);
    }

substitua:

    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));
    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));

por:

    if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
    {
        msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);
    }
Editado por fireelement (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

vou testar o do hp aqui fire, quanto ao tile eu tenho que add essa tag em todos os tile então ?

então eu tenho que mudar algo aqui né creio eu 

bool Player::canWalkthrough(const Creature* creature) const
{
	if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() ||
		(creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster())))
		return true;

	const Player* player = creature->getPlayer();
	if(!player)
		return false;

pow fire pra finalizar falto o tile se sabe como eu arrumo isso ? ja estou dando um rep pra voce por ter conseguido da mana e hp ta funcionando de boa

 

agora seria os players pode ficar tudo no mesmo tile em protect zone e players abaixo do lvl de pvp

Editado por markmv (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

tenta isso aq:

bool Player::canWalkthrough(const Creature* creature) const
{
    if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() ||
        (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster())))
        return true;

    const Player* player = creature->getPlayer();
    if(!player)
        return false;

    if((((g_game.getWorldType() == WORLDTYPE_OPTIONAL &&
#ifdef __WAR_SYSTEM__
        !player->isEnemy(this, true) &&
#endif
        player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() &&
        player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground &&
        Item::items[player->getTile()->ground->getID()].walkStack) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges)
        || player->getAccess() <= getAccess()))
        return true;

    return (player->isGhost() && getGhostAccess() < player->getGhostAccess())
        || (isGhost() && getGhostAccess() > player->getGhostAccess());
}
Link para o post
Compartilhar em outros sites
  • 1 year later...

reset do meu servidor é lv 717217 depois de uns dois reset o hp não ta aparecendo 100% mais ta aparecendo 65533

 

Em 12/03/2015 ás 16:34, Fir3element disse:

andar por cima dos players é na função canWalkthrough (player.cpp)

 

hp/mana por % tem q fazer essas alterações:

 

protocolgame.cpp, substitua:


    msg->put<uint16_t>(player->getHealth());
    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));

por:


    if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
    {
        msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);
    }

substitua:


    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA));
    msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXMANA));

por:


    if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
    {
        msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
        msg->put<uint16_t>(100);
    }
    else
    {
        msg->put<uint16_t>(0);
        msg->put<uint16_t>(0);
    }

 

OT PURA DIVERSÃO | IP: otfun.servegame.com | 8.60 | Port: 7171

 

1584817_1.png

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo