Manipulate multiple game accounts [on hold]

In some online strategy mmo games, like Clash of Kings, Final Fantasy, Last Empire – War Z and etc, players use one main account and often some alt accounts for farming. It takes lots of time to sign in every of them and sending resources to main account.

My question is the next: is it possible to write a program in any language (like c++, java, python and etc.) to manipulate alt accounts or are there any ready-made programs for it?

Configure multiple interfaces on RHEL7 with routing

We have a reverse proxy which have 2 network interfaces. One with a public IP and one with a private IP. So clients use the extern interface and web servers the interne one. Bu for the admins it’s tricky beacause we want to exploit the revser proxy with SSH using the private interface and use the websites like a regular user via the public interface. Here a descriptive diagram :

Network scheme

So here my network table on the reverse proxy :

[root@reverse ~]# route -n Kernel IP routing table Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 0.0.0.0         GW_INT          0.0.0.0         UG    101    0        0 ens224 0.0.0.0         GW_EXT          0.0.0.0         UG    102    0        0 ens256 NETWORK_INT     0.0.0.0         255.255.255.0   U     101    0        0 ens224 NETWORK_EXT     0.0.0.0         255.255.255.224 U     102    0        0 ens256 

Previously we used the net.ipv4.conf.all.rp_filter parameter in sysctl to do asymmetric routing and communicate with both interfaces. But now there is a new network equipment (Palo Alto) which blocks the asymmetric routing.

So now i can access only to the private one (i think because of the metric), i am taking a time out on the public interface.

I think this a way to tell the server : the traffic which come for one interface goes out with the same interface (without being redirect to the other interface). Is it possible ?

Thank you for advance, Regards.

Modules and components shared between multiple projects in Angular 8?

I have two projects that have the same “core” funcionality, for example they share the same layout and have same pages, but there are components and modules that are project specific, so currently I have 2 entirely seperated Angular project but when I change something in the core, I have to apply those changes to both project. How could I solve this problem? What is the common goto?

I already looked Angular libraries but they are only for some component that are shared between projects but not the whole application core.

Android / Google “Find my device” service with multiple devices

I hope this is the right community for this question. if not I’d be thankful to be redirected.

I have multiple Android devices all connected to my google account and activated for the “Find my Device” anti theft service. When I go to android.com/find it only displays one device and I cannot find a single way to choose which device to track. I’ve been googling this thoroughly and can’t seem to find an answer. Does the service only allow one device to be registered for emergency tracking?

How to cache multiple version of site

I have a site with feed of user notes, and i want to show to users only top 100 notes (paginated by 10 per page). Every note has some tags (like subreddits on reddit), and every user can add some tags to black list to don’t see notes with this tags. I have a problem because if all of top 100 notes has one tag from blacklist then user see no notes. I don’t want to generate page for user because is expensive, so i am looking for smart way to cache multiple version of site.

I tried: – get top 1000 and cache and filter value from cache per request – build cache key with user blacklist – every user can have different black list so i can cache it for user – not good – get top5 tags from last hour and build from it all combination and cache every combination, and check which combination match the best for user – it’s not good idea because there is so much tags, and calculating top X it isn’t cheap, and top 5 can be too least

When splitting data to a hash data structure, what is the syntax for multiple assignment?

I am going through the “Head First” Learn to Program text for python 2.7, and as I was working through one of the exercises. It gave me a clue to multiple assign a line of data, while splitting it. And since I could not guess it, I went to the solution, and I do not understand the solution.

I am running the latest python in the native IDLE

”’python

line = “101;Johnny ‘wave-boy’ Jones;USA;8.32;Fish;21”

display = {}

(display[‘ID’], display[‘Name’], display[‘Country’], display[‘Average’], display[‘Board’], display[‘Age’]) = line.split(‘;’)

”’

I do not understand what is going on with the multiple assignment in the code above. How is the splitting making key and value pairs?

What role are the braces playing in this?

When I guessed for multiple assignment I imagined this:

(ID, Name, Country, Average, Board, Age) = line.split(;)

for a, b, c, d, e, f in line: display[ID] = Name, Country, Average, Board, Age

I thought that I could assign several values to one key, and just index or iterate the has with the keys() or items() method

find shortest path in the matrix for multiple objects

I have the implementation of A* search algorithm that allows to find the shortest path from start to goal.

The implementation looks like this

public class AStarShortestPathContext {      private Vertex[][] matrix;     private int rows, columns;     private int cost;     private PriorityQueue<Vertex> openList;     private Set<Vertex> closedSet;      public AStarShortestPathContext(int rows, int columns, int cost) {         this.rows = rows;         this.columns = columns;         this.cost = cost;          openList = new PriorityQueue<>(Comparator.comparingInt(Vertex::getF));         closedSet = new HashSet<>();     }      public List<Vertex> find(Vertex startVertex, Vertex goalVertex, boolean[][] blocked) {         refreshContext();          Vertex start = new Vertex(startVertex);         Vertex goal = new Vertex(goalVertex);          ComputationUtils.updateEuristic(matrix, goal);          openList.add(start);         while (!openList.isEmpty()) {             Vertex current = openList.poll();             closedSet.add(current);             if (current.equals(goal)) {                 return path(current);             } else {                 neighbours(current, blocked);             }         }          return Collections.emptyList();     }      /** Temporary solution **/     public void refreshContext() {         // do I really need to do that every search?         this.matrix = new Vertex[rows][];         for (int i = 0; i < rows; i++) {             this.matrix[i] = new Vertex[columns];             for (int j = 0; j < columns; j++) {                 matrix[i][j] =  new Vertex(i, j);             }         }          openList.clear();         closedSet.clear();     }      private void neighbours(Vertex current, boolean[][] blocked) {         int row = current.getRow();         int column = current.getColumn();          int lower = row + 1;         if (lower < rows && !blocked[lower][column]) {             checkAdjacentVertex(current, lower, column);         }          int left = column - 1;         if (left >= 0 && !blocked[row][left]) {             checkAdjacentVertex(current, row, left);         }          int right = column + 1;         if (right < columns && !blocked[row][right]) {             checkAdjacentVertex(current, row, right);         }          int upper = row - 1;         if (upper >= 0 && !blocked[upper][column]) {             checkAdjacentVertex(current, upper, column);         }     }      private void checkAdjacentVertex(Vertex current, int row, int column) {         Vertex adjacent = matrix[row][column];         if (!closedSet.contains(adjacent)) {             int g = ComputationUtils.g(current, cost);             if (!openList.contains(adjacent)) {                 updateVertex(adjacent, current, g, ComputationUtils.f(adjacent));                 openList.add(adjacent);             } else {                 if (g < adjacent.getG()) {                     updateVertex(adjacent, current, g, ComputationUtils.f(adjacent));                      // as no update operation by default we need to remove and add node again                     openList.remove(adjacent);                     openList.add(adjacent);                 }             }         }     }      // considering that I need only the last vertex I may need to adjust it     private List<Vertex> path(Vertex reachedGoal) {         List<Vertex> path = new ArrayList<>();         path.add(reachedGoal);          Vertex parent;         while ((parent = reachedGoal.getParent()) != null) {             path.add(0, parent);             reachedGoal = parent;         }         return path;     }      private void updateVertex(Vertex v, Vertex parent, int g, int f) {         v.setParent(parent);         v.setG(g);         v.setF(f); // order is important as F depends on G     }  } 

It supposed to work for multiple bots (threads) over the same table. To achieve that I created concurrent context class that looks like this

public class AStarShortestPathConcurrentContext implements IObservable<ChangeStateEvent> {     private AStarShortestPathContext searchContext;     private boolean[][] blocked;     private List<IObserver<ChangeStateEvent>> observers;      public AStarShortestPathConcurrentContext(int rows, int columns, int cost) {         searchContext = new AStarShortestPathContext(rows, columns, cost);         blocked = DataUtils.generateEmptyBoolMatrix(rows, columns);         observers = new ArrayList<>();     }      public synchronized Vertex next(Vertex startVertex, Vertex goalVertex, String identifier) {         List<Vertex> path = searchContext.find(startVertex, goalVertex, blocked);         // start vertex is 0, next vertex is 1         Vertex next = path.get(1);         updateBlockedTable(startVertex, next);          // basically notify Swing JTable to update values in cells and force rendering         notifyObserver(ChangeStateEvent             .builder()             .identifier(identifier)             .newState(NPCWalkState                 .builder()                 .row(next.getRow())                 .column(next.getColumn())                 .build())             .previousState(NPCWalkState                 .builder()                 .row(startVertex.getRow())                 .column(startVertex.getColumn())                 .build())             .build());         return next;     }      private void updateBlockedTable(Vertex startVertex, Vertex next) {         int blocked_row = next.getRow();         int blocked_column = next.getColumn();          int released_row = startVertex.getRow();         int released_column = startVertex.getColumn();          blocked[blocked_row][blocked_column] = true;         blocked[released_row][released_column] = false;     }      @Override     public void addObserver(IObserver<ChangeStateEvent> observer) {         observers.add(observer);     }      @Override     public void notifyObserver(ChangeStateEvent data) {         observers             .parallelStream()             .forEach(observer -> observer.receiveNotification(data));     } } 

And that class is used in the threads.

public class WalkableNPCThread implements Runnable {     private int speed;     private String objectId;     private AStarShortestPathConcurrentContext searchContext;     private Vertex startVertex;     private Vertex goalVertex;      public WalkableNPCThread(WalkableNPC npc, AStarShortestPathConcurrentContext searchContext) {         this.speed = npc.getSpeed();         this.searchContext = searchContext;         this.objectId = npc.getIdentifier();     }      public void configureWalk(int initialRow, int initialColumn, int goalRow, int goalColumn) {         startVertex = new Vertex(initialRow, initialColumn);         goalVertex = new Vertex(goalRow, goalColumn);     }      @Override     public void run() {         while (!startVertex.equals(goalVertex)) {             ThreadUtils.delaySeconds(speed);             Vertex nextStep = searchContext.next(startVertex, goalVertex, objectId);             startVertex = new Vertex(nextStep);         }     } } 

The table is the same for all threads, so I instantiate AStarShortestPathConcurrentContext only once and pass it as a constructor parameter to each thread. It seems to work fine.

What is bothering me is that method

public synchronized Vertex next(Vertex startVertex, Vertex goalVertex, String identifier) {     List<Vertex> path = searchContext.find(startVertex, goalVertex, blocked);     // start vertex is 0, next vertex is 1     Vertex next = path.get(1);     updateBlockedTable(startVertex, next);      // basically notify Swing JTable to update values in cells and force rendering     notifyObserver(ChangeStateEvent         .builder()         .identifier(identifier)         .newState(NPCWalkState             .builder()             .row(next.getRow())             .column(next.getColumn())             .build())         .previousState(NPCWalkState             .builder()             .row(startVertex.getRow())             .column(startVertex.getColumn())             .build())         .build());     return next; } 

I syncronize it in order to prevent updates of blocked field by other threads and also to prevent the update the AStarShortestPathContext when doing the search (I refresh it for each thread before the search).

I am not sure if I really need to block the whole method next. Is there a way to achieve the same better?

I was thinking for using lock for the whole method instead of synchronized but still it would block the whole method.