Ir para conteúdo

Posts Recomendados

Eu alertei que ocorreriam problemas por usar o guid, o deathlist passou a salvar o guid ao invez do uid, logicamente onde mais ele acessa deve tentar encontrar pelo uid alternativamente. Para fazer sem ser assim, teria que criar um outro array, talvez seja até mais trabalhoso.

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696217
Compartilhar em outros sites

11 minutos atrás, dalvorsn disse:

Eu alertei que ocorreriam problemas por usar o guid, o deathlist passou a salvar o guid ao invez do uid, logicamente onde mais ele acessa deve tentar encontrar pelo uid alternativamente. Para fazer sem ser assim, teria que criar um outro array, talvez seja até mais trabalhoso.

 

em vez de usar o guid será que não consigo usar o uid não? No função do target ou do addDamage?

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696218
Compartilhar em outros sites

8 minutes ago, Kilowog said:

 

em vez de usar o guid será que não consigo usar o uid não? No função do target ou do addDamage?

Não adiantaria, porque o uid é temporario, quando o player deslogar esse uid perde referencia.

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696219
Compartilhar em outros sites

Agora, dalvorsn disse:

Não adiantaria, porque o uid é temporario, quando o player deslogar esse uid perde referencia.

 

Mas ele só deslogaria quando saisse de Battle não? Come seria a ideia da lista?

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696220
Compartilhar em outros sites

Just now, Kilowog said:

 

Mas ele só deslogaria quando saisse de Battle não? Come seria a ideia da lista?

A lista permanece enquanto o monstro estiver vivo, te dar um exemplo de algo que aconteceria, se eu ataco o pokemon e corro, espero o battle e deslogo, e eu volto perto dele novamente, ele ja nao vai mais reconhecer que esse player atacou ele porque ele relogou. Caso ele morra aconteceria a mesma coisa.

Se isso que foi citado acima não é problema, então basta modificar para:

 

    uint32_t id = creature->getID();    if(creature->getMaster() && creature->getMaster()->getPlayer())        id = creature->getMaster()->getID();    if (isPassive() && !hasBeenAttacked(id)) {            return false;    }

 

e

void CreatureaddDamagePoints(Creature* attacker, int32_t damagePoints){	if(damagePoints < 0)		return;	uint32_t attackerId = 0;    if(attacker){        if(attacker->getMaster() && attacker->getMaster()->getPlayer())            attackerId = attacker->getMaster()->getID();        else            attackerId = attacker->getID();    }

 

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696221
Compartilhar em outros sites

2 minutos atrás, dalvorsn disse:

A lista permanece enquanto o monstro estiver vivo, te dar um exemplo de algo que aconteceria, se eu ataco o pokemon e corro, espero o battle e deslogo, e eu volto perto dele novamente, ele ja nao vai mais reconhecer que esse player atacou ele porque ele relogou. Caso ele morra aconteceria a mesma coisa.

Se isso que foi citado acima não é problema, então basta modificar para:

 

    uint32_t id = creature->getID();    if(creature->getMaster() && creature->getMaster()->getPlayer())        id = creature->getMaster()->getID();    if (isPassive() && !hasBeenAttacked(id)) {            return false;    }

 

e

void CreatureaddDamagePoints(Creature* attacker, int32_t damagePoints){	if(damagePoints < 0)		return;	uint32_t attackerId = 0;    if(attacker){        if(attacker->getMaster() && attacker->getMaster()->getPlayer())            attackerId = attacker->getMaster()->getID();        else            attackerId = attacker->getID();    }

 

Entendi, seria como eu pretendia fazer inicialmente quando vi o problema, com lista.

Porém meu conhecimento é bom em Java e não tanto em C++, são linguagens parecidas porém as lib são diferentes. Vou dá uma estudada nesse conceito da lista e ver o que consigo fazer, mas sua solução é uma boa também.

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696222
Compartilhar em outros sites

  • Diretor
6 minutos atrás, dalvorsn disse:

A lista permanece enquanto o monstro estiver vivo, te dar um exemplo de algo que aconteceria, se eu ataco o pokemon e corro, espero o battle e deslogo, e eu volto perto dele novamente, ele ja nao vai mais reconhecer que esse player atacou ele porque ele relogou. Caso ele morra aconteceria a mesma coisa.

Se isso que foi citado acima não é problema, então basta modificar para:

 

    uint32_t id = creature->getID();    if(creature->getMaster() && creature->getMaster()->getPlayer())        id = creature->getMaster()->getID();    if (isPassive() && !hasBeenAttacked(id)) {            return false;    }

 

e

void CreatureaddDamagePoints(Creature* attacker, int32_t damagePoints){	if(damagePoints < 0)		return;	uint32_t attackerId = 0;    if(attacker){        if(attacker->getMaster() && attacker->getMaster()->getPlayer())            attackerId = attacker->getMaster()->getID();        else            attackerId = attacker->getID();    }

 

 

Como isso seria um problema? na verdade esse seria o modo correto, na minha opinião é bem melhor.

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696223
Compartilhar em outros sites

5 minutes ago, Kilowog said:

@dalvorsn eu consigo pegar um uid pelo guid? Digamos, tem uma função facil que dá isso e tal?

Sim, facilmente.

 

C++

g_game.getPlayerByGUID(guid)

Lua

getPlayerByGUID(guid)

 

Editado por dalvorsn
Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696225
Compartilhar em outros sites

5 horas atrás, Kilowog disse:

Pode sim, sem problema nenhum. A ideia do topico é ajudar a todos, não ganhar +rep.

@Ceetros poderia disponibilizar pra versão 0.3.6?

Link para o comentário
https://xtibia.com/forum/topic/241040-c-passive-system/page/5/#findComment-1696256
Compartilhar em outros sites

×
×
  • Criar Novo...