Jump to content
×
×
  • Create New...
  • 0

suporte programação [Resolvido]Movimento Diagonal igual da PXG


JairKevick
 Share

Question

 

Salve Pessoal do Fórum! bom fiquei umas 2 semanas quebrando a cabeça para fazer um andar diagonal igual da pokexgames, pirate king online e Otpiece e ainda não consegui!

 

 

caso não saiba que estou falando veja o exemplo no video

 

 

 

 

 

 

 

 

 

 

 

 

no momento exato que você deu play ele andou na diagonal ! caso não percebeu volte em 4:58 

 

 

 

 

 

 

 

 

Será que alguma alma boa saiba fazer isso?

 

 

 

 

 

é só no otcliente? 

 

 

ou na source do servidor? eis a questão ! 

 

 

Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

isso e bem fácil nas souces creature.cpp e procure por onCreatureMove e retire a delay

 

ex: modifique

 

 if(creature == this)
 {
  lastStep = OTSYS_TIME();
  lastStepCost = 2;
  setLastPosition(oldPos);
  if(!teleport)
  {
   if(oldPos.z != newPos.z || (std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1))
    lastStepCost = 2;
  }
  else
   stopEventWalk();
 
e claro mexa nessa parte tb
 
int32_t Creature::getStepDuration(Direction dir) const

 

 

Edited by nociam
Link to post
Share on other sites

  • 0

cara, ja tem diagonal no proprio OTC, so habilitar um bang ai

10 horas atrás, JairKevick disse:

Salve Pessoal do Fórum! bom fiquei umas 2 semanas quebrando a cabeça para fazer um andar diagonal igual da pokexgames, pirate king online e Otpiece e ainda não consegui!

caso não saiba que estou falando veja o exemplo no video

 

 

 

no momento exato que você deu play ele andou na diagonal ! caso não percebeu volte em 4:58 

 

 

Será que alguma alma boa saiba fazer isso?

 

é só no otcliente? 

ou na source do servidor? eis a questão ! 

 

 

Eu estou usando meu cliente, mas e so ir nas Opçoes, dps Jogo e habilitar essas duas ai na foto, se n tiver, troque o cliente por outro

Capturar.PNG

Capturar.PNG.4e6e0d99c90f7b61775298bf28175b84.PNG

Link to post
Share on other sites

  • 0
14 minutos atrás, Alvoroso Fiosen disse:

cara, ja tem diagonal no proprio OTC, so habilitar um bang ai

 

 

Eu estou usando meu cliente, mas e so ir nas Opçoes, dps Jogo e habilitar essas duas ai na foto, se n tiver, troque o cliente por outro

Capturar.PNG

Não é exatamente o que ele quer. Isso dai ativa o andar inteligente porém apenas um sqm em diagonal, após isso ele dá um stop(delay), de alguns segundos para poder executar de novo o movimento em diagonal, já na pokeXgames, os jogadores com tal função abilitada pode andar em diagonal sem delay algum. Eu tenho o que ele quer porém é algo que não é só meu, a equipe do meu projeto quem pediu, eu fiz e mantenho guardado pois é algo deles. Boa sorte!

Link to post
Share on other sites

  • 0
39 minutos atrás, nociam disse:

isso e bem fácil nas souces creature.cpp e procure por onCreatureMove e retire a delay

 

ex: modifique

 

 if(creature == this)

 {

  lastStep = OTSYS_TIME();

  lastStepCost = 2;

  setLastPosition(oldPos);

  if(!teleport)

  {

   if(oldPos.z != newPos.z || (std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1))

    lastStepCost = 2;

  }

  else

   stopEventWalk();

 
e claro mexa nessa parte tb
 
int32_t Creature::getStepDuration(Direction dir) const

 

 

 

O que tem que editar ai? colocar 0 no lugar do 1 e 2?

Link to post
Share on other sites

  • 0
26 minutos atrás, nociam disse:

mano se vc tem um servidor deve saber o básico de if analisa o código e mude.

Não sei não manow, sempre tive amigos que me ajudaram com scripts, não entendo muito, sera que voce podia dar uma dica?

Link to post
Share on other sites

  • 0
4 horas atrás, nociam disse:

isso e bem fácil nas souces creature.cpp e procure por onCreatureMove e retire a delay

 

ex: modifique

 

 if(creature == this)

 {

  lastStep = OTSYS_TIME();

  lastStepCost = 2;

  setLastPosition(oldPos);

  if(!teleport)

  {

   if(oldPos.z != newPos.z || (std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1))

    lastStepCost = 2;

  }

  else

   stopEventWalk();

 
e claro mexa nessa parte tb
 
int32_t Creature::getStepDuration(Direction dir) const

 

 

 

<3

Link to post
Share on other sites

  • 0

  sei la mude os 2 lastStepCost = 2 pra 1 e la embaixo na parte int32_t Creature::getStepDuration(Direction dir) const comentem as linhas igual a baixo vai melhorar mais acho que não e o certo mais testem. eu não lembro mas acho que ate tiro a parada do delay dos items quanto anda kkkkkkkk.

 

int32_t Creature::getStepDuration(Direction dir) const
{
 //if(dir == NORTHWEST || dir == NORTHEAST || dir == SOUTHWEST || dir == SOUTHEAST)
 // return getStepDuration() * 2;
 return getStepDuration();
}

 

 

Edited by nociam
Link to post
Share on other sites

  • 0
5 horas atrás, nociam disse:

  sei la mude os 2 lastStepCost = 2 pra 1 e la embaixo na parte int32_t Creature::getStepDuration(Direction dir) const comentem as linhas igual a baixo vai melhorar mais acho que não e o certo mais testem. eu não lembro mas acho que ate tiro a parada do delay dos items quanto anda kkkkkkkk.

 

int32_t Creature::getStepDuration(Direction dir) const

{

 //if(dir == NORTHWEST || dir == NORTHEAST || dir == SOUTHWEST || dir == SOUTHEAST)

 // return getStepDuration() * 2;

 return getStepDuration();

}

 

 

 

n funfo n U.u

o char ficou pulando SQM 

Link to post
Share on other sites

  • 0

Funciona esse erro de pular sqm e porque não tem delay ai depende como vc fica segurando o botão de andar, tava pensando em diminuir a velocidade do player quanto ele anda em diagonal ficaria mais parecido com a pxg talvez resolveria.

Link to post
Share on other sites

  • 0

pois é eu ate setei uma velocidade menor para não acontecer isso mas não foi, continua esse erro como tenho muito pouca pratica em c++ talvez alguém mais experiente ajude como dalvorsn .

Link to post
Share on other sites

Guest
This topic is now closed to further replies.
 Share