2.0 Timing

Inscrit
23 Novembre 2016
Messages
11
Reactions
0
#1
Yop, je voudrais savoir, est-il possible de se faire ban sur un mauvais timing lors de l'envois du GameMapMovementConfirmMessage ? ou d'un message qui nécéssite d'un timing en général ?
Je vous remercie d'avance! :)
 

asyade

Membre Actif
Inscrit
26 Avril 2013
Messages
368
Reactions
1
#2
Sa parais logique faut envoyer les bon message au bon momens :p tu te fais kick il me semble quand tu confirme trop top deux ou trois fois
 
Inscrit
23 Novembre 2016
Messages
11
Reactions
0
#3
Ah, pourtant j'ai fais des centaines de mouvements, nada, du coup je me pose la question -_- De toute façon je vais corriger ça, merci d'avoir répondu!
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#4
Alors, pour ma part je recevais des echec de déplacement au bout de 5000 récoltes, vers 6500 le serveur refusait tout mes déplacements.
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
150
#5
Il y a des délais exacts, faut les respecter à la miliseconde près.
Si tu envois ton check trop tôt ou plusieurs fois, tu as des NoMovement, si tu l’envoi un peu plus tard, c'est sans conséquence.

Les délais sont gérés dans des classes dérivées de AnimatedMovementBehavior.

WalkingMovementBehavior
Code:
public class WalkingMovementBehavior extends AnimatedMovementBehavior
   {
    
      private static const WALK_LINEAR_VELOCITY:Number = 1 / 480;
    
      private static const WALK_HORIZONTAL_DIAGONAL_VELOCITY:Number = 1 / 510;
    
      private static const WALK_VERTICAL_DIAGONAL_VELOCITY:Number = 1 / 425;
RunningMovementBehavior
Code:
public class WalkingMovementBehavior extends AnimatedMovementBehavior
   {
    
      private static const WALK_LINEAR_VELOCITY:Number = 1 / 480;
    
      private static const WALK_HORIZONTAL_DIAGONAL_VELOCITY:Number = 1 / 510;
    
      private static const WALK_VERTICAL_DIAGONAL_VELOCITY:Number = 1 / 425;
Et tu as aussi les délais pour les Dragodindes et les Montiliers.

ParableMovementBehavior
Code:
public class ParableMovementBehavior extends AnimatedMovementBehavior
   {
     
      private static const LINEAR_VELOCITY:Number = 1 / 400;
     
      private static const HORIZONTAL_DIAGONAL_VELOCITY:Number = 1 / 500;
     
      private static const VERTICAL_DIAGONAL_VELOCITY:Number = 1 / 450;
MountedMovementBehavior
Code:
public class MountedMovementBehavior extends AnimatedMovementBehavior
   {
     
      private static const RUN_LINEAR_VELOCITY:Number = 1 / 135;
     
      private static const RUN_HORIZONTAL_DIAGONAL_VELOCITY:Number = 1 / 200;
     
      private static const RUN_VERTICAL_DIAGONAL_VELOCITY:Number = 1 / 120;
 
Dernière édition:
Inscrit
23 Novembre 2016
Messages
11
Reactions
0
#6
Merci, j'avais tout ça mais j'étais incapable de les utiliser :facepalm:
Merci encore de la réponse!
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#7
Bonjour,

je comprends pas bien le temps de déplacement, par exemple :

private static const WALK_LINEAR_VELOCITY:Number = 1 / 480;

ça signifie 480 ms ou 1/480 ms(impossible selon moi)

Je viens avec cette question tout simplement car mon bot se déplace trop vite en utilisant la méthode que j'utilise pour calculer les déplacements comem montré ci-dessus.
 
Inscrit
1 Juin 2016
Messages
20
Reactions
2
#8
Je pense que ça fait référence à 480ms pour 1 cell: c'est le plus plausible d'après moi.
 
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#9
Yep et moi, j'ai fais ça mais le bot se déplace assez vite de mon coté.
 
Inscrit
1 Juin 2016
Messages
20
Reactions
2
#10
Comme l'a sous-entendu alex, vaut mieux que ta réponse soit envoyée en retard plutôt qu'en avance: tu peux très bien faire un écart de quelques ms, je pense.
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#11
Mince alors ... je viens de me rendre compte que l'univers du jeu ne possède pas un milieu isotrope :/, les déplacements horizontaux sont plus rapide que les verticaux, cela voudrais dire qu'il est plus simple de faire des mouvements verticaux (ou en ligne droite selon les cas) !
De plus, les mouvements en ligne droite, n'ont pas une vitesse qui correspond à une combinaisons linéaire des vitesses verticales et horizontales ...
( √( (500/√2)² + (450/√2)² ) = 476 != 400 ).
Ça doit être dure de faire le métier de physicien dans le jeu ... c'est peut-etre pour cela qu'il n'y en à pas...

Je me demande si il y a moyen d'optimiser le pathfinding en fonction de ces données ^^.

Et je note qu'ils n'ont même pas pris le soin de définir un rapport constant entre les vitesses horizontale et verticale ^^ c'est amusant.
 
Dernière édition:
Inscrit
23 Novembre 2016
Messages
11
Reactions
0
#12
osdfisdhf Mais, d'où viens-tu Arth ?
 
Dernière édition:
Inscrit
10 Mai 2015
Messages
357
Reactions
55
#13
On est d'accord que la première cellid ne doit pas être calculé par exemple : je démarre de 150 à 153

150 -> 151 + x temps
151-> 152 + x temps
152 -> 153 + x temps
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#14
@Invertia
Désolé, ce sont des restes douloureux électromagnétique ^^ (même si c'est vraiment passionnant).

@Brizze
Si je suppose que les vitesses sont en case/ms:
A priori la première et dernière cases sont à moitié parcouru (480ms/2 et 480ms/2). Si tu les parcours dans la même direction, tu peut considérer qu'elle ne font qu’une seule case(480ms).
Mais si tu parcours (à moitié) la première horizontalement (510ms/2) et si tu parcours (à moitié) la dernier verticalement (425ms/2), cela fera pas une seule case (510ms/2+425ms/2 = 467.5ms).

Edit: d’ailleurs, en toute logique, pour les cases où tu as un changement de direction, tu doit aussi les considérer en 2 parties.

Edit2: Après réflexion, ton 'schéma' me semble correct, et on y calcul bien la première case ^^
 
Dernière édition:

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#16
Mince alors ... je viens de me rendre compte que l'univers du jeu ne possède pas un milieu isotrope :/, les déplacements horizontaux sont plus rapide que les verticaux, cela voudrais dire qu'il est plus simple de faire des mouvements verticaux (ou en ligne droite selon les cas) !
De plus, les mouvements en ligne droite, n'ont pas une vitesse qui correspond à une combinaisons linéaire des vitesses verticales et horizontales ...
( √( (500/√2)² + (450/√2)² ) = 476 != 400 ).
Ça doit être dure de faire le métier de physicien dans le jeu ... c'est peut-etre pour cela qu'il n'y en à pas...

Je me demande si il y a moyen d'optimiser le pathfinding en fonction de ces données ^^.


Et je note qu'ils n'ont même pas pris le soin de définir un rapport constant entre les vitesses horizontale et verticale ^^ c'est amusant.
oui mais y'a surtout moyen d'aller plus vite en passant par les cases ou le deplacement est plus rapide

sur l'herbe on marche moins vite que sur un chemin pavé de bonta , j'ai plus en tete son nom mais y'a une variable (enfin un multiplicateur) dans les maps "pour savoir" la vitesse de deplacement sur une case , faut chercher dans les messages de FastFrench , il avait cherché a fair un deplacement au plus rapide possible , en mettant ce multiplicateur dans A* , j'ai recherché vite fait sur le forum sans le retrouver , j'espere que ca a pas disparu avec les histoires de 'super vieux forum' , 'vieu forum' , 'un peu moins vieu forum' et tout ca , en fait avec l'age du capitain (pas le obvious , l'autre)
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
150
#17
Il faut aussi prendre en compte que le personnage, quand il en a la possibilité, privilégie les chemins déjà tracés sur la carte.
Sinon je vais faire quelques recherches, mais tout ce que j'ai c'est le 'un peu mon vieux forum' et le 'vieux forum'. Pourquoi pas remettre des archives en ligne ?
 

Arth

Contributeur
Inscrit
28 Aout 2016
Messages
80
Reactions
3
#19
@BlueDream
Oui mais ce sont des chemins rarement optimaux, et je ne pense pas qu'on puisse ce faire ban pour ne pas avoir emprunté les chemins automatiques ^^. Enfin j’espère, ça serait moche.

@ToOnS
Super intéressant comme information, merci. Je n'ai pas trouvé le message de FastFrench à ce sujet, mais je ne suis pas familier avec le forum.
Et après quelque recherche dans les sources on peut trouver:
Code:
_loc4_.linearVelocity = this.getLinearVelocity() * (this.speedAdjust / 10 + 1);
_loc4_.hDiagVelocity = this.getHorizontalDiagonalVelocity() * (this.speedAdjust / 10 + 1);
_loc4_.vDiagVelocity = this.getVerticalDiagonalVelocity() * (this.speedAdjust / 10 + 1);
Donc j'imagine donc que le coefficient dont tu parles est speedAdjust.
 
Dernière édition par un modérateur:

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#20
je suis pas sur que c'est speedAdjust, mais c'est en fonction de la "texture" (enfin de la variable "speed" dont j'ai oublié le nom) pour chaque cellule du terrain qui se trouve dans les fichiers maps , il y'a "walkable" , cette variable et d'autres
non ils bannissent pas si tu prends un autre chemin mieux optimisé que le leur , le leur est le plus court mais c'est pas forcement le plus rapide
 
Dernière édition:
Haut Bas