JA
suporte programação

[Resolvido]Movimento Diagonal igual da PXG

Por JairKevick, 06 de jan. de 2017 em Resolvidos

pxg
diagonal
walkslide
resolvido
16
7.7k
JairKevickJ
06 de janeiro de 2017 às 03:02

 

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 ! 

 

 

Alvoroso FiosenA
06 de janeiro de 2017 às 13:50

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

LordbaxxL
06 de janeiro de 2017 às 14:11
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!

nociamN
06 de janeiro de 2017 às 15:26
Melhor resposta

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

 

 

Editado Janeiro 6 por nociam

TaigerT
06 de janeiro de 2017 às 16:10
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?

nociamN
06 de janeiro de 2017 às 16:14

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

TaigerT
06 de janeiro de 2017 às 16:46
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?

nociamN
06 de janeiro de 2017 às 16:48

https://gyazo.com/a752ac891ac235c8819829387b4d2a0c

TaigerT
06 de janeiro de 2017 às 16:52
Agora, nociam disse:

Ai sim, tem como voce dar uma luz no que editar ali no código manow? Só agradeco

JairKevickJ
06 de janeiro de 2017 às 18:11
1 hora atrás, nociam disse:

 

você é foda mano !

 

06 de janeiro de 2017 às 20:29
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

nociamN
06 de janeiro de 2017 às 20:36

  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();
}

 

 

Editado Janeiro 6 por nociam

JairKevickJ
07 de janeiro de 2017 às 01:41
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 

nociamN
07 de janeiro de 2017 às 13:59

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.

JairKevickJ
07 de janeiro de 2017 às 15:35

olha como fica !