Arakne / ArakneUtils

Common utilities and algorithm for Dofus 1.29 applications like server or bot in java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Question Pathfinder

krm35 opened this issue · comments

commented

Yo, j'ai rajouté un TU pour évaluer le pathfinder mais j'ai l'impression qu'il y a un problème pour aller sur la case à droite (327) depuis la case 326 où se situe le cra, il passe par la case 341 puis remonte en 327.

https://i.imgur.com/e7LFSmq.png

J'ai peut-être mal pigé un truc dans la lib après ça me dérange pas mais tu penses que c'est safe et qu'on se prend pas de ban de la part du serveur avec des chemins pas optis ?

    @Test
    void myTest() {
        // 10292_0802221742X.swf
        MyDofusMap mymap = MyDofusMap.parse("73055813270c175a154e3a3f574c06052b4744550a271a4b5746334b3417611f385a52154f2e475d7f534e0c1c56134313213102192e4b07575a1843205d1438274c1646054b340e0237284e29155b4e0c101e285c16230341427f1800451945482b0c44701d5b2e40452d151d2c725d464139052213035b2f133928464c28072b180c4946373b0f2c212c0d60553c2803405c31482c00094d263f5955281715252b365f1750255c3121774d145d06404c180f453658405124254b56414c112a5c001b435a0c58130a05175a114e1336574c2b0c2b474055232e1a4b7a4f334b30174816385a7f1c4f2e435d565a4e0c315f13431721180b192e660e575a1c43095414380a451646014b1d070237054729155f4e25191e28711f2303454256110045344c482b084459145b2e6d4c2d15192c5b544641140c2213075b061a39286b4528072f182540463716062c21280d495c3c282e495c314c2c29004d261250552813150c22365f3a59255c35215e44145d2b494c180b451f514051092c4b56454c38235c00364a5a0c5c13230c175a3c471336534c02052b476d5c232e1e4b5346334b1d1e48163c5a56154f2e6e54565a4a0c185613433a28180b1d2e4f07575a314a09541038234c16462c421d0706372c4e2915724725191a2858162303684b561104451d45482b254d59145f2e44452d1534255b5442413d0522132a52061a3d28424c28070211254042373f0f2c210504495c382807405c316125290049263b5955283e1c0c22325f1350255c18285e44105d02404c18264c1f51445120254b566845382358001f435a0c711a230c135a154e13367e4502052f474455232e33425346374b34174816115356154b2e475d565a6705185617431321180b30274f07535a184309543d31234c1246054b1d072b3e2c4e2d155b4e251937215816270341425611294c1d454c2b0c4459147227444529151d2c5b546f483d052613035b061a1021424c2c072b1825406f3e3f0f28212c0d495c152107405831482c2900642f3b59512817150c221f561350215c31215e443d54024048180f451f51695820254f56414c382375091f435e0c5813230c3e53154e1736574c0205024e4455272e1a4b53461a4234174c16385a56156627475d525a4e0c18563a4a13211c0b192e4f077e5318430d541438234c3f4f054b190702372c4e001c5b4e21191e2858160a0a4142521100451d4561220c445d145b2e4445041c1d2c5f5446413d050b1a035b021a3928424c010e2b18214046373f0f05282c0d4d5c3c2807407538482c2d004d263b597c2117150822365f13500c5531215a44145d024065110f451b5140512025625f414c3c235c001f4373055813270c175a154e3a3f574c06052b4744550a271a4b5746334b3417611f385a52154f2e475d7f534e0c1c56134313213102192e4b07575a1843205d1438274c1646054b340e0237284e29155b4e0c101e285c16230341427f1800451945482b0c44701d5b2e40452d151d2c725d464139052213035b2f133928464c28072b180c4946373b0f2c212c0d60553c2803405c31482c00094d263f5955281715252b365f1750255c3121774d145d06404c180f453658405124254b56414c112a5c001b435a0c58130a05175a114e1336574c2b0c2b474055232e1a4b7a4f334b30174816385a7f1c4f2e435d565a4e0c315f13431721180b192e660e575a1c43095414380a451646014b1d070237054729155f4e25191e28711f2303454256110045344c482b084459145b2e6d4c2d15192c5b544641140c2213075b061a39286b4528072f182540463716062c21280d495c3c282e495c314c2c29004d261250552813150c22365f3a59255c35215e44145d2b494c180b451f514051092c4b56454c38235c00364a5a0c5c13230c175a3c471336534c02052b476d5c232e1e4b5346334b1d1e48163c5a56154f2e6e54565a4a0c185613433a28180b1d2e4f07575a314a09541038234c16462c421d0706372c4e2915724725191a2858162303684b561104451d45482b254d59145f2e44452d1534255b5442413d0522132a52061a3d28424c28070211254042373f0f2c210504495c382807405c316125290049263b5955283e1c0c2232093650255c18285e44105d02404c18264c1f51445120254b566845382358001f435a0c711a230c135a154e13367e4502052f474455232e33425346374b34174816115356154b2e475d565a6705185617431321180b30274f07535a184309543d31234c1246054b1d072b3e2c4e2d155b4e251937215816270341425611294c1d454c2b0c4459147227444529151d2c5b546f483d052613035b061a1021424c2c072b1825406f3e3f0f28212c0d495c152107405831482c2900642f3b59512817150c221f561350215c31215e443d54024048180f451f51695820254f56414c382375091f435e0c5813230c3e53154e1736574c0205024e4455272e1a4b53461a4234174c16385a56156627475d525a4e0c18563a4a13211c0b192e4f077e5318430d541438234c3f4f054b190702372c4e001c5b4e21191e2858160a0a4142521100451d4561220c445d145b2e4445041c1d2c5f5446413d050b1a035b021a3928424c010e2b18214046373f0f05282c0d4d5c3c2807407538482c2d004d263b597c2117150822365f13500c5531215a44145d024065110f451b5140512025625f414c3c235c001f4373055813270c175a154e3a3f574c06052b4744550a271a4b5746334b3417611f385a52154f2e475d7f534e0c1c56134313213102192e4b07575a1843205d1438274c1646054b340e0237284e29155b4e0c101e285c16230341427f1800451945482b0c44701d5b2e40452d151d2c725d464139052213035b2f133928464c28072b180c4946373b0f2c212c0d60553c2803405c31482c00096b263f0d78281715252b365f1750255c3121774d145d06404c180f453658405124254b56414c112a5c001b435a0c58130a05175a114e1336574c2b0c2b474055232e1a4b7a4f334b30174816385a7f1c4f2e435d565a4e0c315f13431721180b192e660e575a1c43095414380a451646014b1d070237054729155f4e25191e28711f0503454256110045344c6e2b084459145b2e6d4c0b15192c5b544641140c2213075b061a39286b4528072f182540463716062c21280d495c3c282e495c314c2c29004d261250552813150c22365f3a59255c35215e44145d2b494c180b451f514051092c4b56454c38235c00364a5a0c5c13230c175a3c471336534c02052b476d5c232e1e4b5346334b1d1e6e163c5a56154f2e6154565a4a0c1856455b3a283e0b1d2e4f07575a314a09541038234c16462c421d0706372c4e2915724725191a2858162303684b561104451d45482b254d59145f2e44452d1534255b5442413d0522132a52061a3d28424c28070211254042373f0f2c210504495c382807405c316125290049263b5955283e1c0c22325f1350255c18285e44105d02404c18264c3951445120254b5668451e23582b19435a0c711a050c135a154e13367e4502052f474455232e33425346374b34174816115356154b2e475d565a6705185617431321180b30274f07535a184309543d31234c1246054b1d072b3e2c4e2d155b4e251937215816275570425611294c1d454c2b0c4459147227444529151d2c5b546f483d052613035b061a1021424c2c072b1825406f3e190f28212c0d495c152121405831482c2900642f1d59512817150c221f561350215c31215e443d54024048180f451f51695820254f56414c382375091f435e0c5813230c3e53154e1736574c0205024e4455272e1a4b53461a4234174c16385a56156627475d525a4e0c18563a4a13211c0b192e4f077e5318430d541438234c3f4f054b190702372c4e001c7d4e21191e2858160a0a6742521100451d4561222a445d145b2e4445041c3b2c5f7f40413d050b1a035b021a3928424c010e2b18214046373f0f05282c0d4d5c3c2807407538482c2d004d263b597c2117150822365f13500c5531215a44145d024065110f451b5140512025625f414c3c235c001f4373055813270c175a154e3a3f574c06052b4744550a273c4b5746334b3417611f1e5a523c422e475d7f53680c1c561343132131023f2e4b07575a1843205d3238274c1646054b340e0237284e29155b4e0c101e285c16230341427f1800451945482b0c44701d5b2e40452d151d2c725d464139052213035b2f133928464c28072b180c4946373b0f2c212c0d60553c2803405c31482c00094d263f5955281715252b365f175025586529774d325d06404c180f453658665124254b56414c112a7a001b435a0c58130a05315a114e1336574c2b0c0d474055232e1a4b7a4f334b30174816385a7f1c4f2e435d565a4e0c315f13431721180b192e660e575a1c43095414380a451646014b1d070237054729155f4e25191e28711f2303454256110045344c482b084459145b2e6d4c0b15192c5b544641140c0413075b061a39286b450e072f182540463716060a21280d495c3c282e497a314c2c29004d261250732813150c22365f3a59255c35215e44145d2b494c180b451f514051092c4b56454c38235c00364a5a0c5c13230c175a3c471336534c02052b476d5c232e1e4b5346334b1d1e48163c5a56154f2e6e54565a4a0c185613433a283e0b1d2e4f07575a314a2f541038234c16462c421d0706372c4a7d1d724703191a2858162303684b701104451d45482b254d7f145f2e44452d1534255b5442413d0522132a52061a3d28424c28070211254042373f0f2c210504495c382807405c316125290049263b5955283e1c0c22325f1350255c18285e44105d02404c18264c1f51445120254b5668451e2358001f435a0c711a050c135a154e13367e4524052f474455232e33425346374b34174816115370154b2e475d565a67053e5617431321180b30274f07535a184309543d31234c1246054b1d072b3e2c4e2d155b4e251937215816270341425611294c1d454c2b0c4459147d27444529151d2c0d4f6f481b0526470d5b061a1021424c2c072b1825406f3e190f28212c0d495c1521214058657c242900642f1d59510311150c221f561350215c31215e443d54244048180f451f51695806254f56414c3823750939435e0c5813230c3e53154e1736574c0205024e4455272e1a4b53461a4234174c16385a56156627475d525a4e0c18563a4a13211c0b192e4f077e533e430d001838234c3f4f054b190702377845001c7d4e21191e2858160a0a6742521100451d4561222a445d145b2e4445041c1d2c5f7f40413d050b1a255b021a3928424c010e0d18214046373f0f05280a0d4d5c3c28074075386e2c2d004d263b597c2117150822365f13500c5531215a44145d024065110f451b5140512025625f414c3c235c001f4373054813270c175a2b1b3a3f714c06052b4744550a273c4b5746334b3417611f1e5a52154f2e475d7f53680c1c56134313213102192e4b07575a1843205d3238274c1646054b340e2437284e29155b4e0c1038285c16230341427f1826451945482b587a701d7d2e40452d151d2c725d464139052213035b2f133928464c28072b180c4946373b5909212c0d60553c2803405c31482c00096b263f5955281715252b105f1750255c3121774d325d06404c180f453658405124254b56414c112a5c001b435a0c58130a05175a114e1336574c2b0c0d474055232e1a4b7a4f154b30174816385a7f1c692e435d565a4e0c315f35431721180b192e660e575a1c43095414380a451646014b1d070237054729155f4e25191e28711f2303454256110045344c6e2b084459145b2e6d4c0b15192c5b544641140c0413075b061a39286b4528072f182540123c16062c21280d495c3c282e495c314c2c29004d261250552813411c22365f3a59255c35215e44426e2b494c180b451f514051092c6d56454c38235c00364a5a0c5c13230c175a3c471336534c02052b476d5c232e1e4b5346334b1d1e48163c5a56154f2e6e54565a4a0c185613433a283e0b1d2e4f070072314a2f541038234c16462c423b0706372c4e2915724725191a2858162303684b561104451d45482b254d59145f2e44452d1534255b5442413d0522132a52061a3d28424c28070211254042373f0f2c210504495c382807405c316125290049263b5955283e1c0c22325f1350255c18285e44105d02404c18264c1f51445120254b5668451e2358001f435a0c711a050c135a154e13367e4524052f474455232e33425346374b34174816115356154b2e475d565a6705185617431321180b30274f07535a184309543d31234c1246054b1d072b3e2c4e2d155b4e251937215816270341425611294c1d454c2b0c440d217227444529151d2c5b546f483d052613035b061a1021424c2c072b1825406f3e3f0f28212c0d495c152107405831482c2900642f3b59512817150c221f561350215c31215e443d540240484c03451f51695820254f56414c382375091f435e0c5813230c3e53154e1736574c0205024e4455272e1a4b53461a4234174c16385a56156627475d525a4e0c18563a4a13211c0b192e4f077e5318430d541438234c3f4f054b190702372c4e001c5b4e21191e285816");
        Path<MyDofusCell> path = pathfinder.findPath(mymap.get(326), mymap.get(327));
        assertArrayEquals(
                new int[] {326, 327},
                path.stream().mapToInt(step -> step.cell().id()).toArray()
        );
    }

Par défaut le pathfinder ne permet de se déplacer que dans 4 directions. Pour ne pas limiter les directions, il faut appelr la méthode Pathfinder#directions() en lui donnant la liste de toutes les directions.
Par contre ce n'est pas suffisant pour que la path soit le même que celui d'un vrai client, car le calcul du chemin du client dépend aussi de la valeur "movement" de la case, redéfinissable via Pathfinder#cellWeightFunction().
L'algo du client est celui là : https://github.com/Emudofus/Dofus/blob/1.29/ank/battlefield/utils/Pathfinding.as#L127
Il est tout à fait possible que la détection des bots se base en partie sur le chemin, mais je ne travaille pas chez Ankama, alors le mieux est de tester ;)

commented

Merci pour les explications, à mon avis le path c'est safe tant que tu marches pas sur des obstacles / traverse des murs sinon y'aurait trop de faux positifs et de ban de client legit. Je testerai tout ça!