Welcome, guest! Please login or register.

    * Shoutbox

    RefreshHistory
    • stCky: idk man im just a chat bot
      August 22, 2017, 11:14:52 PM
    • symantec: is this forum
      August 22, 2017, 09:02:56 PM
    • symantec: what the fudge
      August 22, 2017, 09:02:52 PM
    • symantec: I just joined to download datmaker, the links are broken and a user named i nelson i has a fudgeing weird signature
      August 22, 2017, 08:59:33 PM
    • stCky: ur so cool and edgy
      August 22, 2017, 04:15:50 PM
    • Deathspirit: anyways, i'm un ip banned now.. but don't even want to be that at this point lmfao
      August 22, 2017, 01:58:14 PM
    • Deathspirit: now it's some sell out half leeched server :')
      August 22, 2017, 01:57:53 PM
    • Deathspirit: gf moparscape, was the best rsps community i've been on since 2006
      August 22, 2017, 01:57:31 PM
    • stCky: yeah, nah. it's cooked. [link] might help u with a backup or something idk man im just a chat bot
      August 22, 2017, 12:13:25 AM
    • flew420: I sure hope someone has a copy of the forum before it was recked
      August 21, 2017, 11:40:52 PM
    • flew420: O wow i see now, just read thru all the news articles. :(  i've been out of the game for a couple years so coming back to this shit is sad.
      August 21, 2017, 11:39:46 PM
    • flew420: Huh?
      August 21, 2017, 10:49:51 PM
    • stCky: got bought by a russian dude, he put a shitty rsps on it for donations, now no one cares
      August 21, 2017, 10:48:30 PM
    • flew420: I came on for some nostalgic reading in old classic development, and it only goes back to 2014 wtf.
      August 21, 2017, 10:43:09 PM
    • flew420: what happened to this site??
      August 21, 2017, 10:42:36 PM
    • Sean56:[link]
      August 21, 2017, 05:33:45 PM
    • kb010: how can i play? i downloaded the client and it doesnt open.
      August 21, 2017, 10:52:56 AM
    • wodkode: shut it down or fix it
      August 20, 2017, 10:11:28 PM
    • wodkode: dude i cant goto no links on here from google
      August 20, 2017, 10:11:13 PM
    • Dell: Greetings
      August 20, 2017, 11:56:30 AM

    Author Topic: [PI/Emu/Riot] Server Side pathfinding (Clipped following)  (Read 26060 times)

    0 Members and 1 Guest are viewing this topic.

    Offlineasshole_rule

    • Member
    • ****
    • Posts: 4,872
    • Thanks: +0/-0
      • View Profile
    [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « on: December 07, 2011, 08:02:11 PM »
    Been leaked and released everywhere but here, and I'm tired of people selling something that's released. Remove all your client side following shit.

    Post errors!

    Links:
    ; data
    ; classes

    Ty RandQm

    FIRST:
    Download clip.rar and extract it and place this folder inside your server folder - it should now look like src/server/clip



    Download: Click here![/url]


    SECOND:
    Download world.rar and extract it, place this folder inside your data directory.
    e.g servername/Data/WORLD FOLDER HERE

    Download: Click here![/url]


    THIRD:
    Create a new class, name it Pathfinder.java - paste the following code in it and save it to your server.model.players folder.

    Code: [Select]
    package server.model.players;

    import java.util.LinkedList;

    import server.clip.region.Region;
    import server.model.players.Client;

    public class PathFinder {

    private static final PathFinder pathFinder = new PathFinder();

    public static PathFinder getPathFinder() {
    return pathFinder;
    }

    public PathFinder() {
    }

    public void findRoute(Client c, int destX, int destY, boolean moveNear,
    int xLength, int yLength) {
    if (destX == c.getLocalX() && destY == c.getLocalY() && !moveNear) {
    c.sendMessage("ERROR!");
    return;
    }
    destX = destX - 8 * c.getMapRegionX();
    destY = destY - 8 * c.getMapRegionY();
    int[][] via = new int[104][104];
    int[][] cost = new int[104][104];
    LinkedList<Integer> tileQueueX = new LinkedList<Integer>();
    LinkedList<Integer> tileQueueY = new LinkedList<Integer>();
    for (int xx = 0; xx < 104; xx++) {
    for (int yy = 0; yy < 104; yy++) {
    cost[xx][yy] = 99999999;
    }
    }
    int curX = c.getLocalX();
    int curY = c.getLocalY();
    via[curX][curY] = 99;
    cost[curX][curY] = 0;
    int tail = 0;
    tileQueueX.add(curX);
    tileQueueY.add(curY);
    boolean foundPath = false;
    int pathLength = 4000;
    while (tail != tileQueueX.size() && tileQueueX.size() < pathLength) {
    curX = tileQueueX.get(tail);
    curY = tileQueueY.get(tail);
    int curAbsX = c.getMapRegionX() * 8 + curX;
    int curAbsY = c.getMapRegionY() * 8 + curY;
    if (curX == destX && curY == destY) {
    foundPath = true;
    break;
    }
    tail = (tail + 1) % pathLength;
    int thisCost = cost[curX][curY] + 1;
    if (curY > 0
    && via[curX][curY - 1] == 0
    && (Region.getClipping(curAbsX, curAbsY - 1, c.heightLevel) & 0x1280102) == 0) {
    tileQueueX.add(curX);
    tileQueueY.add(curY - 1);
    via[curX][curY - 1] = 1;
    cost[curX][curY - 1] = thisCost;
    }
    if (curX > 0
    && via[curX - 1][curY] == 0
    && (Region.getClipping(curAbsX - 1, curAbsY, c.heightLevel) & 0x1280108) == 0) {
    tileQueueX.add(curX - 1);
    tileQueueY.add(curY);
    via[curX - 1][curY] = 2;
    cost[curX - 1][curY] = thisCost;
    }
    if (curY < 104 - 1
    && via[curX][curY + 1] == 0
    && (Region.getClipping(curAbsX, curAbsY + 1, c.heightLevel) & 0x1280120) == 0) {
    tileQueueX.add(curX);
    tileQueueY.add(curY + 1);
    via[curX][curY + 1] = 4;
    cost[curX][curY + 1] = thisCost;
    }
    if (curX < 104 - 1
    && via[curX + 1][curY] == 0
    && (Region.getClipping(curAbsX + 1, curAbsY, c.heightLevel) & 0x1280180) == 0) {
    tileQueueX.add(curX + 1);
    tileQueueY.add(curY);
    via[curX + 1][curY] = 8;
    cost[curX + 1][curY] = thisCost;
    }
    if (curX > 0
    && curY > 0
    && via[curX - 1][curY - 1] == 0
    && (Region.getClipping(curAbsX - 1, curAbsY - 1,
    c.heightLevel) & 0x128010e) == 0
    && (Region.getClipping(curAbsX - 1, curAbsY, c.heightLevel) & 0x1280108) == 0
    && (Region.getClipping(curAbsX, curAbsY - 1, c.heightLevel) & 0x1280102) == 0) {
    tileQueueX.add(curX - 1);
    tileQueueY.add(curY - 1);
    via[curX - 1][curY - 1] = 3;
    cost[curX - 1][curY - 1] = thisCost;
    }
    if (curX > 0
    && curY < 104 - 1
    && via[curX - 1][curY + 1] == 0
    && (Region.getClipping(curAbsX - 1, curAbsY + 1,
    c.heightLevel) & 0x1280138) == 0
    && (Region.getClipping(curAbsX - 1, curAbsY, c.heightLevel) & 0x1280108) == 0
    && (Region.getClipping(curAbsX, curAbsY + 1, c.heightLevel) & 0x1280120) == 0) {
    tileQueueX.add(curX - 1);
    tileQueueY.add(curY + 1);
    via[curX - 1][curY + 1] = 6;
    cost[curX - 1][curY + 1] = thisCost;
    }
    if (curX < 104 - 1
    && curY > 0
    && via[curX + 1][curY - 1] == 0
    && (Region.getClipping(curAbsX + 1, curAbsY - 1,
    c.heightLevel) & 0x1280183) == 0
    && (Region.getClipping(curAbsX + 1, curAbsY, c.heightLevel) & 0x1280180) == 0
    && (Region.getClipping(curAbsX, curAbsY - 1, c.heightLevel) & 0x1280102) == 0) {
    tileQueueX.add(curX + 1);
    tileQueueY.add(curY - 1);
    via[curX + 1][curY - 1] = 9;
    cost[curX + 1][curY - 1] = thisCost;
    }
    if (curX < 104 - 1
    && curY < 104 - 1
    && via[curX + 1][curY + 1] == 0
    && (Region.getClipping(curAbsX + 1, curAbsY + 1,
    c.heightLevel) & 0x12801e0) == 0
    && (Region.getClipping(curAbsX + 1, curAbsY, c.heightLevel) & 0x1280180) == 0
    && (Region.getClipping(curAbsX, curAbsY + 1, c.heightLevel) & 0x1280120) == 0) {
    tileQueueX.add(curX + 1);
    tileQueueY.add(curY + 1);
    via[curX + 1][curY + 1] = 12;
    cost[curX + 1][curY + 1] = thisCost;
    }
    }
    if (!foundPath) {
    if (moveNear) {
    int i_223_ = 1000;
    int thisCost = 100;
    int i_225_ = 10;
    for (int x = destX - i_225_; x <= destX + i_225_; x++) {
    for (int y = destY - i_225_; y <= destY + i_225_; y++) {
    if (x >= 0 && y >= 0 && x < 104 && y < 104
    && cost[x][y] < 100) {
    int i_228_ = 0;
    if (x < destX) {
    i_228_ = destX - x;
    } else if (x > destX + xLength - 1) {
    i_228_ = x - (destX + xLength - 1);
    }
    int i_229_ = 0;
    if (y < destY) {
    i_229_ = destY - y;
    } else if (y > destY + yLength - 1) {
    i_229_ = y - (destY + yLength - 1);
    }
    int i_230_ = i_228_ * i_228_ + i_229_ * i_229_;
    if (i_230_ < i_223_
    || (i_230_ == i_223_ && (cost[x][y] < thisCost))) {
    i_223_ = i_230_;
    thisCost = cost[x][y];
    curX = x;
    curY = y;
    }
    }
    }
    }
    if (i_223_ == 1000) {
    return;
    }
    } else {
    return;
    }
    }
    tail = 0;
    tileQueueX.set(tail, curX);
    tileQueueY.set(tail++, curY);
    int l5;
    for (int j5 = l5 = via[curX][curY]; curX != c.getLocalX()
    || curY != c.getLocalY(); j5 = via[curX][curY]) {
    if (j5 != l5) {
    l5 = j5;
    tileQueueX.set(tail, curX);
    tileQueueY.set(tail++, curY);
    }
    if ((j5 & 2) != 0) {
    curX++;
    } else if ((j5 & 8) != 0) {
    curX--;
    }
    if ((j5 & 1) != 0) {
    curY++;
    } else if ((j5 & 4) != 0) {
    curY--;
    }
    }
    c.resetWalkingQueue();
    int size = tail--;
    int pathX = c.getMapRegionX() * 8 + tileQueueX.get(tail);
    int pathY = c.getMapRegionY() * 8 + tileQueueY.get(tail);
    c.addToWalkingQueue(localize(pathX, c.getMapRegionX()),
    localize(pathY, c.getMapRegionY()));
    for (int i = 1; i < size; i++) {
    tail--;
    pathX = c.getMapRegionX() * 8 + tileQueueX.get(tail);
    pathY = c.getMapRegionY() * 8 + tileQueueY.get(tail);
    c.addToWalkingQueue(localize(pathX, c.getMapRegionX()),
    localize(pathY, c.getMapRegionY()));
    }
    }

    public int localize(int x, int mapRegion) {
    return x - 8 * mapRegion;
    }

    }


    FOURTH:
    Open up playerAssistant.java and add this anywhere you like.

    Code: [Select]
    public void playerWalk(int x, int y) {
    PathFinder.getPathFinder().findRoute(c, x, y, true, 1, 1);
    }
    Then search for public void followPlayer() and replace it with the one below.

    Code: [Select]
    public void followPlayer() {
    if (PlayerHandler.players[c.followId] == null
    || PlayerHandler.players[c.followId].isDead) {
    resetFollow();
    return;
    }
    if (c.freezeTimer > 0) {
    return;
    }
    if (c.isDead || c.playerLevel[3] <= 0)
    return;

    int otherX = PlayerHandler.players[c.followId].getX();
    int otherY = PlayerHandler.players[c.followId].getY();

    boolean sameSpot = (c.absX == otherX && c.absY == otherY);

    boolean hallyDistance = c.goodDistance(otherX, otherY, c.getX(),
    c.getY(), 2);

    boolean rangeWeaponDistance = c.goodDistance(otherX, otherY, c.getX(),
    c.getY(), 4);
    boolean bowDistance = c.goodDistance(otherX, otherY, c.getX(),
    c.getY(), 6);
    boolean mageDistance = c.goodDistance(otherX, otherY, c.getX(),
    c.getY(), 7);

    boolean castingMagic = (c.usingMagic || c.mageFollow || c.autocasting || c.spellId > 0)
    && mageDistance;
    boolean playerRanging = (c.usingRangeWeapon)
    && rangeWeaponDistance;
    boolean playerBowOrCross = (c.usingBow) && bowDistance;

    if (!c.goodDistance(otherX, otherY, c.getX(), c.getY(), 25)) {
    c.followId = 0;
    resetFollow();
    return;
    }
    c.faceUpdate(c.followId + 32768);
    if (!sameSpot) {
    if (c.playerIndex > 0 && !c.usingSpecial && c.inWild()) {
    if (c.usingSpecial && (playerRanging || playerBowOrCross)) {
    c.stopMovement();
    return;
    }
    if (castingMagic || playerRanging || playerBowOrCross) {
    c.stopMovement();
    return;
    }
    if (c.getCombat().usingHally() && hallyDistance) {
    c.stopMovement();
    return;
    }
    }
    }
    if (otherX == c.absX && otherY == c.absY) {
    int r = Misc.random(3);
    switch (r) {
    case 0:
    walkTo(0, -1);
    break;
    case 1:
    walkTo(0, 1);
    break;
    case 2:
    walkTo(1, 0);
    break;
    case 3:
    walkTo(-1, 0);
    break;
    }
    } else if (c.isRunning2) {
    if (otherY > c.getY() && otherX == c.getX()) {
    playerWalk(otherX, otherY - 1);
    } else if (otherY < c.getY() && otherX == c.getX()) {
    playerWalk(otherX, otherY + 1);
    } else if (otherX > c.getX() && otherY == c.getY()) {
    playerWalk(otherX - 1, otherY);
    } else if (otherX < c.getX() && otherY == c.getY()) {
    playerWalk(otherX + 1, otherY);
    } else if (otherX < c.getX() && otherY < c.getY()) {
    playerWalk(otherX + 1, otherY + 1);
    } else if (otherX > c.getX() && otherY > c.getY()) {
    playerWalk(otherX - 1, otherY - 1);
    } else if (otherX < c.getX() && otherY > c.getY()) {
    playerWalk(otherX + 1, otherY - 1);
    } else if (otherX > c.getX() && otherY < c.getY()) {
    playerWalk(otherX + 1, otherY - 1);
    }
    } else {
    if (otherY > c.getY() && otherX == c.getX()) {
    playerWalk(otherX, otherY - 1);
    } else if (otherY < c.getY() && otherX == c.getX()) {
    playerWalk(otherX, otherY + 1);
    } else if (otherX > c.getX() && otherY == c.getY()) {
    playerWalk(otherX - 1, otherY);
    } else if (otherX < c.getX() && otherY == c.getY()) {
    playerWalk(otherX + 1, otherY);
    } else if (otherX < c.getX() && otherY < c.getY()) {
    playerWalk(otherX + 1, otherY + 1);
    } else if (otherX > c.getX() && otherY > c.getY()) {
    playerWalk(otherX - 1, otherY - 1);
    } else if (otherX < c.getX() && otherY > c.getY()) {
    playerWalk(otherX + 1, otherY - 1);
    } else if (otherX > c.getX() && otherY < c.getY()) {
    playerWalk(otherX - 1, otherY + 1);
    }
    }
    c.faceUpdate(c.followId+32768);
    }

    FIFTH:
    Open up Player.java and add this in where else you want it.

    Code: [Select]
    public int getLocalX() {
    return getX() - 8 * getMapRegionX();
    }

    public int getLocalY() {
    return getY() - 8 * getMapRegionY();
    }


    SIXTH:
    Open up FollowPlayer.java which will be in your packets folder and replace it with this.. Probably the same as you have already to be honest.
    Code: [Select]
    package server.model.players.packets;

    import server.Server;
    import server.model.players.Client;
    import server.model.players.PacketType;

    public class FollowPlayer implements PacketType {

    @Override
    public void processPacket(Client c, int packetType, int packetSize) {
    int followPlayer = c.getInStream().readUnsignedWordBigEndian();
    if(Server.playerHandler.players[followPlayer] == null) {
    return;
    }
    c.playerIndex = 0;
    c.npcIndex = 0;
    c.mageFollow = false;
    c.usingBow = false;
    c.usingRangeWeapon = false;
    c.followDistance = 1;
    c.followId = followPlayer;
    }
    }

    SEVENTH:
    Open up Server.java and add these imports

    Code: [Select]
    import server.clip.region.ObjectDef;
    import server.clip.region.Region;

    Then add these under the main method. (public static void main)

    Code: [Select]
    ObjectDef.loadConfig();
    Region.load();

    Credits to Palidino76 for all the code and everyone who leaked it.

    Post errors!


    Edit: Moved onto better things then PI, expect some big releases soon.
    « Last Edit: December 05, 2012, 01:07:17 PM by asshole_rule »
    the strongest super saiyan on moparscape

    I'd also like to say that rep abuse is an offense, and one member of this topic has had their rep locked due to it.

    OfflineKozs

    • Member
    • ****
    • Posts: 2,241
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #1 on: December 07, 2011, 08:08:48 PM »
    Bonerific. Will add


    Offlineasshole_rule

    • Member
    • ****
    • Posts: 4,872
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #2 on: December 07, 2011, 08:10:05 PM »
    Bonerific. Will add

    Ok, good night Mopar.. told myself I wouldn't sleep until the first comment :P
    the strongest super saiyan on moparscape

    I'd also like to say that rep abuse is an offense, and one member of this topic has had their rep locked due to it.

    Offlineartem543

    • Member
    • ****
    • Posts: 1,539
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #3 on: December 07, 2011, 08:10:22 PM »
    NO! Why you released it? Mine is pretty better  :| But still dont leave it for people to leech it.

    OfflineKozs

    • Member
    • ****
    • Posts: 2,241
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #4 on: December 07, 2011, 08:12:19 PM »
    Bonerific. Will add

    Ok, good night Mopar.. told myself I wouldn't sleep until the first comment :P

    Goodnight :D

    Offlinesini

    • Member
    • ****
    • *
    • *
    • Posts: 5,785
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #5 on: December 08, 2011, 01:20:05 AM »
    I love when people copy the code from the client for clipping and just rename it.

    Offlineasshole_rule

    • Member
    • ****
    • Posts: 4,872
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #6 on: December 08, 2011, 05:08:35 AM »
    I love when people copy the code from the client for clipping and just rename it.

    Uhm, alright?

    NO! Why you released it? Mine is pretty better  :| But still dont leave it for people to leech it.

    I doubt it.
    the strongest super saiyan on moparscape

    I'd also like to say that rep abuse is an offense, and one member of this topic has had their rep locked due to it.

    Offlineartem543

    • Member
    • ****
    • Posts: 1,539
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #7 on: December 08, 2011, 05:35:16 AM »
     -.-' But still why release it? Dont give something special to people just to leech it.

    Offlinereality0scape

    • Member
    • **
    • Posts: 84
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #8 on: December 08, 2011, 12:08:10 PM »
    yay all leechers have clipped following.

    Offlineasshole_rule

    • Member
    • ****
    • Posts: 4,872
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #9 on: December 08, 2011, 01:57:37 PM »
    yay all leechers have clipped following.

    Holy shit, shut up about leechers, the point of a fudgeing tutorial is for people to use it (or in your case "leech") you guys are being extremely greedy!
    the strongest super saiyan on moparscape

    I'd also like to say that rep abuse is an offense, and one member of this topic has had their rep locked due to it.

    Offlineyouridudock

    • Member
    • ****
    • Posts: 1,028
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #10 on: December 08, 2011, 02:08:55 PM »
    Thanks for releasing, Looks good.
    Hello world!

    Offlineitai

    • Member
    • ****
    • Posts: 642
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #11 on: December 08, 2011, 02:22:36 PM »
    yay all leechers have clipped following.

    Holy shit, shut up about leechers, the point of a fudgeing tutorial is for people to use it (or in your case "leech") you guys are being extremely greedy!
    This has been getting leached since it got released in a source; but, anyone who uses something off tutorial is technically leaching so who cares?
    Jili X I

    OfflineKozs

    • Member
    • ****
    • Posts: 2,241
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #12 on: December 08, 2011, 02:23:19 PM »
    yay all leechers have clipped following.

    Holy shit, shut up about leechers, the point of a fudgeing tutorial is for people to use it (or in your case "leech") you guys are being extremely greedy!

    The guy with 47 REP talks about leeching. Lmfaook.

    OfflineAdvocatus

    • Member
    • ***
    • Posts: 224
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #13 on: December 08, 2011, 03:05:11 PM »
    yay all leechers have clipped following.

    Holy shit, shut up about leechers, the point of a fudgeing tutorial is for people to use it (or in your case "leech") you guys are being extremely greedy!

    The guy with 47 REP talks about leeching. Lmfaook.

    The guy with 199 rep talks about leeching. Lmfaook.

    @O.P. Nice job for giving credits to pali, but this has been released for like over a year at least.

    OfflineKozs

    • Member
    • ****
    • Posts: 2,241
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #14 on: December 08, 2011, 03:05:45 PM »
    Off my dick :L oh btw ty for -1 REP

    Offlineiz3 legend

    • Member
    • ****
    • Posts: 1,024
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #15 on: December 08, 2011, 03:34:18 PM »
    Had this for awhile now, good job though i guess.

    Offlineasshole_rule

    • Member
    • ****
    • Posts: 4,872
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #16 on: December 08, 2011, 04:05:53 PM »
    yay all leechers have clipped following.

    Holy shit, shut up about leechers, the point of a fudgeing tutorial is for people to use it (or in your case "leech") you guys are being extremely greedy!

    The guy with 47 REP talks about leeching. Lmfaook.

    The guy with 199 rep talks about leeching. Lmfaook.

    @O.P. Nice job for giving credits to pali, but this has been released for like over a year at least.

    Ofc mate, wouldn't steal the credits. Yea, I just decided to release it because I'm pretty much done with PI.
    the strongest super saiyan on moparscape

    I'd also like to say that rep abuse is an offense, and one member of this topic has had their rep locked due to it.

    OfflineFridder

    • Member
    • ****
    • Posts: 5,107
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #17 on: December 08, 2011, 06:31:05 PM »
    Cool I'll try this later.
    what the fudge is this shit

    Offlineskiller8860

    • Member
    • ***
    • Posts: 163
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #18 on: December 08, 2011, 06:44:35 PM »
    Nice, thanks for this. ;)
    For the people I support and Respect please click Here.

    Offlinen10si t

    • Member
    • ****
    • Posts: 2,407
    • Thanks: +0/-0
      • View Profile
    Re: [PI/Emu/Riot] Server Side pathfinding (Clipped following)
    « Reply #19 on: December 08, 2011, 10:02:16 PM »
    cool beans

     

    Copyright © 2017 MoparScape. All rights reserved.
    Powered by SMFPacks SEO Pro Mod |
    SimplePortal 2.3.5 © 2008-2012, SimplePortal