Free version of Dalewj's second book (Diaries of Afterworld) is now available!
I think revival points are part of the challenge of playing the game. Automating/Eliminating all the challenges leaves in EU-WoW zone.
are coordinates written somewhere into local drive log files? Like sau loots and chat are.Without that coordinates data in log files as plain text, forget it. Creating tool which would use OCR would be just too much trouble. Both for coder and end-users.
The coordinates are written to the log files (see https://my.afterworld.deelogic.net/survival/knowledge-database/building-inside-the-swamp/msg4480/#msg4480 for an example where that data was used).And the file is updated real time.
Quote from: Event "Janе" Horizon on March 29, 2014, 09:27:41 pmThe coordinates are written to the log files (see https://my.afterworld.deelogic.net/survival/knowledge-database/building-inside-the-swamp/msg4480/#msg4480 for an example where that data was used).And the file is updated real time. This is only true when you press the Date/Time/Coordinates keyboard key, 'O' by default. Unless you use a macro program to repeatedly press this for you...
Quote from: Jarod "Brickwit" McBrickerton on March 31, 2014, 05:58:06 pmQuote from: Event "Janе" Horizon on March 29, 2014, 09:27:41 pmThe coordinates are written to the log files (see https://my.afterworld.deelogic.net/survival/knowledge-database/building-inside-the-swamp/msg4480/#msg4480 for an example where that data was used).And the file is updated real time. This is only true when you press the Date/Time/Coordinates keyboard key, 'O' by default. Unless you use a macro program to repeatedly press this for you...Why would a player need to be continuously reminded of where the revive boundary is?Wouldn't it be enough that a player is at coordinates 12.45E 67.89N, presses O and is told that they need to go to 24.68E 35.79N to revive at their selected outpost? They then use their mini-map to get to those coordinates?
<html>// This code is public domain. It can be used and changed without violating copyright.// However, it would be nice to have an acknowledgement of Event "Jane" Savon's contribution.<script>// Datavar defaultRevives = [ ["Mugen Village",49.56, 85.79], ["New Urengoy",58.61, 94.61], ["Norilsk",60.72, 101.14], ["Saransk", 50.98, 100.68], ["Saransk West",51.16, 94.69], ["Surgot",54.59, 87.98], ["Turukhansk",56.17, 101.87] ];// Classesfunction Player(north,east) { var mNorth = north; var mEast = east; this.GetPosition = function() { // --> Point var point = new Point(); point.North = mNorth; point.East = mEast; return point; }}function Point() { this.North = 0; this.East = 0; this.ToString = function() { // --> String return this.North.toFixed(2) "N " this.East.toFixed(2) "E"; }}function Revive(name,north,east) { var mName = name; var mNorth = north; var mEast = east; var mId = Revive.id ; this.GetId = function() { // --> id return mId; } this.GetName = function() { // --> name return mName; } this.GetPosition = function() { // --> Point var point = new Point() point.East = mEast; point.North = mNorth; return point; } }Revive.id = 0;function Revives() { var list = new Array(); this.Add = function(revive) { // --> void list[revive.GetId()] = revive } this.GetByName = function(name) { // --> revive for (i=0; i<list.length; i ) { if (list[i].GetName() == name) { return list[i]; } }; } this.GetList = function() { // --> revives list return list; }}// Functionsfunction GetNearestRevive(revives, point) { // --> Point var nearestRevive = null; var nearestDistance = Math.pow(2,32) -1; var reviveList = revives.GetList(); var reviveCount = reviveList.length; for (i=0; i< reviveCount; i ) { revive = reviveList[i]; position = revive.GetPosition(); dist = Math.pow( Math.pow((point.East - position.East),2) Math.pow((point.North - position.North),2) ,0.5); if (dist < nearestDistance) { nearestDistance = dist; nearestRevive = revive; } } return nearestRevive;}function SetRevives(reviveList) { // --> Revives var revive; var revives = new Revives(); for (i=0; i<reviveList.length; i ) { revive = new Revive(reviveList[i][0],reviveList[i][1],reviveList[i][2]); revives.Add(revive); } return revives;}// Mainvar revives = SetRevives(defaultRevives);var player = new Player(54,97.77);var revivePoint = GetNearestRevive(revives,player.GetPosition());alert("Player at " player.GetPosition().ToString() " revives at: " revivePoint.GetName());var player = new Player(54,97.78);var revivePoint = GetNearestRevive(revives,player.GetPosition());alert("Player at " player.GetPosition().ToString() " revives at: " revivePoint.GetName());</script></html>
I still do not see why a database is required.