All Activity
- Today
-
IcU joined the community
-
True enough. People still do that when they leave loot floating so people can find it. The coordinate system can be very useful, particularly for pointing people to ore fields and such that are off the beaten path.
- Yesterday
-
Woodstock HGM started following R.I.P. Starfoxer and Noresta
-
They Will both be missed I remember Starfox and his since of humor
-
crouchrocket started following R.I.P. Starfoxer and Noresta
-
It is with a very Heavy heart I am informing the community of the Passing of not just one founding member of this Game but two earlier this week Noresta ( Ralph Thornburg ) Passed away but This morning Starfoxer Passed as well .. They are members of WolfPack Xtreame Dating back from the Beta days of EnB Live all the way to the day it went Offline and continued to help the Enb Community develop this emulator and EnB Classic, Helping out with being some of the very first Support Staff and handling tickets on the server . if anyone wishes to know more about arrangement's ect. please let me know at Ryan1984pcb@gmail.com and ill let you know more when I do ! Crouchrocket LVL 150 TT LVL 150 PP LVL 150 TE ...ect
-
hacx joined the community
-
perhaps, but I also remember pre-Sunset (obviously after EA took over so maybe they are the ones who changed it) learning how to find things based on coordinates because people would often Ctrl+T when they found a hidden nav or place of interest
-
SeaWolfX joined the community
- Last week
-
That works perfectly, thank you so much!
-
Yeah, the math ended up being not that hard, I just had to think about it for a minute. Instead of const x_scale_factor = (viewport_width - (sector_list_width + 30)) / (xmax*2); const y_scale_factor = (viewport_height - (sector_name_rect.bottom + sector_name_bottom_margin)) / (ymax*2); You do const x_scale_factor = (viewport_width - (sector_list_width + 30)) / (xmax - xmin); const y_scale_factor = (viewport_height - (sector_name_rect.bottom + sector_name_bottom_margin)) / (ymax - ymin); So. not that hard. I was just irritated and not thinking. "How do you see them" You need to fly within 3-5km of them. Each has a slightly different discovery range (some are visible from 30+km, but that's rare) but generally you have to fly within about 4km of a hidden nav for it to become 'visible' on your screen (NOT on the map!) and then you can warp to it and 'discover' it. I think just getting within 4k is enough to make it target-able from any range via the X key in-game. Hidden navs never show up on the map. That's what makes them hidden. I think the Westwood dev's original idea was that people couldn't just share screenshots of where stuff was, to make people have to discover things themselves. You have to remember, the internet was very early when this game came out, most people who had been playing games for the past 20 years had written down notes for their own use, and discovered everything themselves. Most people didn't call the Nintendo hotline for tips, for example. In the years since, places like Thottbott and Wowhead have made it clear that the extreme majority of players LOVE being able to look up where to go and what to do, and the few people who want that old-school discovery can best be served by just...ya know, not going to wowhead. So, if designing a new game, the basic loop is: Create content with enough mystery to engage those who enjoy mystery. Make that content easy to data log/capture in an automated fashion Allow external websites to host data repositories of your content, where it is, how to do it, etc. In this way, everyone is happy, and you aren't burdened with needing to create and maintain that knowledge repo. Eve Online has the Eve University Wiki, WoW has wowhead (and Thottbot before that), there's wikia/fandom for most RPG games, you get the idea. Factorio is an example of maintaining the data yourself, as the game company. They have their official wiki which is automatically updated via scripts as they change game elements. That's quite rare though, and they spent a LOT of time getting that automation to work and create pages for things. Especially in the modding space.
-
um hate to be the bearer but server reporting offline
-
Codemonkeyx started following Join us on Teamspeak! and Simple Multiboxing with AHK
-
Hey @Darkekat, give this a shot and let me know if it works for you: https://github.com/ciphersimian/enb-ahk/blob/master/multifire.ahk This may not seem like a "simple AHK script" but it's handling a few things automatically like dynamically adjusting for your display resolution and saving and restoring the cursor position after moving around to different windows, etc. To use it just start up all your Earth & Beyond clients, then run the mutlifire.ahk script. You should get a message box that says "Initialized! Press Alt+f to multi-fire!", then just make sure you're in the "leader" window the first time you use it and press Alt+f. If will then determine all the window handles for the running Earth & Beyond clients (assuming they all have the default window title of "Earth & Beyond"), save the one that was active when you pressed Alt+f as the leader, and the rest as "other". It will then cycle through the "other" windows and take the leaders target, then once everyone has the same target it will cycle through again and press "f" on each to fire. Let me know if you run into any issues or have any further questions! Good luck out there and stay safe!
-
Kalla joined the community
-
Dev reports server is up.
-
I hope other players can help you. While we don't frown on the usage of multi-box utilities, we also know that it can be a complicated thing network-wise and few on the team outside of the programmers have any real view on how that sorta thing works.
-
-
Hi, I've been trying for a couple of days to multibox and have not had much luck. Theres a couple of forum posts on here to help and ive tried reading through, using the scripts people far better than me have already made but i've had no luck. Could someone help me to make a simple AHK script that just tells all clients to assist the leads target and fire? Im happy doing everything else manually, just getting everyone to target and fire on a few key presses would be enough for me.
-
For Sector data: Look at the script I pasted. It keeps track of what sector you're in via the "Now entering <sector>" line. That's how you keep track of that. For roids: you need to either OCR, image match, or otherwise determine the tech level of the roid. If the emulator wasn't made of lies, then you could just infer that from the highest level ore in the roid (tech 4 roids should always have at least 1 tech 4 ore!). But it becomes a mess of data quickly when you have tech 3 ores dropping and you don't know if they came from legit tech 3 rocks (meaning tech 2 is possible) or from tech 4 rocks (meaning the emulator is a lying sack of shit). So OCR/manual/image match are the only viable strategies. It'd be a simple AHK loop: Push trigger button image match text to get tech level send commands to game client to write manual text like '5' (for a tech 5 roid) to chat send 'ctrl+t' to game client to get it to dump roid position Have your python script keep track of state and associate that ores A and B came out of a tech 5 roid of <type>. This does NOT solve the problem you just finished dealing with on the wiki where both glowing and rock asteroids are called 'asteroid'. Another option is to write a simple C++ voice recognition program which would allow you to simply say "glowing 5" and then mine the rock (assuming the program could write 'glowing 5' to the private channel). I tried doing this, but it's been too many years since I worked with the MS Speech APIs and I don't feel like installing Visual Studio or some other C++ environment on my PC. I tried compiling with cygwin and it was just a PITA. For damage by mob: Correct. This one is always going to be manual, but flying around and poking each mob with 1 shot isn't *that* bad. It gets a bit dicey once you get into the higher level mobs (50+) that really hurt, but maybe someone will run shadowplay or OBS and just record their screen and type it in after the fact. I do agree, some combat logging would be super helpful for automation. If you wanted to go the wowhead path, just write a piece of code that intercepts the packets between the Net7Proxy and the game client. The encryption keys are known, so decrypting the packets is simple, once you can inject yourself into that link. As for what each packet opcode does, find the source cold for the old emulator, the opcodes cannot change as they are hard-coded into the client. That's the 'proper' way to write a wowhead client. But, again, why? The same frustrations that drove me away are the reason I don't feel like writing that. It wouldn't be an accomplishment, it'd be a waste of time.
-
Thanks for providing what you've done so far. It would be a shame for the substantial work you've put into this to go to waste so I might just try and pick this up. :) I'm not much for greenfielding projects but I find I have a lot more enthusiasm for building on ones that already exist. I'll admit I'm not as concerned about what M$ stands to gain commercially from this vs what we would gain from their free hosting, but I don't disagree with your sentiment and will obviously honor your license terms; is this the DoctorV1 License? :P To your point about the chore of data collection I wonder if a lot of it could just be done while playing the game normally with some moderate AHK assist; i.e. instead of a keybind that targets, a hotkey that hits that keybind then prints the position info to a private channel. Over time you would just naturally build up a lot of useful data. The two gaps I see are: 1. There is no sector info in the position print-out which has always annoyed me and I don't know of any way to get that very simple piece of info 2. There is no equivalent to /showdamage which shows the damage you DEAL (and how much was resisted) which people arguably care a lot more about! Seeing the damage types that mobs use is nice, but a way to have the "scrolling combat text" numbers go into the log would make life so much better. Aside from those limitations you could at least get all the position info for things one sector at a time while just playing somewhat normally. If there is no solution for the sector problem that I don't know about there could be an AHK macro to replace gating which copies and clears chat.log everytime you change sectors, then either from context or a pop-up enter a name for the sector, etc. Basically I'm thinking something like the WowheadClient+WowheadLooter that preps and parses as much as it can from chat.log during normal gameplay. Yes, it doesn't satisify the OCD completeness factor (trust me, I get it) but it would focus the data on the things that matter, i.e. the things people using this actually do / care about in-game over time.
-
So, I'm semi-abandoning a project I started but am probably not going to finish anytime soon. But I dumped enough hours into it, and feel it has enough merit, that I am going to share the source code in case someone else thinks this is cool and wants to work on it. What is it? A replacement for enbmaps.de and all the other mapping sites we have. I wanted it to show where mobs spawned, and where roid fields were, along with the mining results from every zone (see the wiki on pages like Glenn, to see what I mean by 'mining results', the list of ores found in each sector). Right now, I have all the sectors and all the navs (that I could find) imported. Look in the 'initialization data' folder. No mobs/roids/gravity wells have been added yet. The annoyance of logging ore fields in a way that didn't drive me nuts (and the tedium of logging mobs) made me not want to bother...for about 2 weeks now. "What's the license" You may not use this software for commercial gain. No ads, no donations, no other revenue streams. If you break even with hosting and publicly (no request, publicly, on a normal page anyone can view) display that your operating it as non-profit, that's fine. It must remain open source in its entirety. Every image, every line of code, every byte of data in the database must all be accessible without authorization or signup. The code cannot be placed on github or any other site which intends to ingest the code into AI tools or otherwise monetize the code hosted there. Running your own git instance and hosting from there is fine. Any future license must require and honor these terms. Meaning, you cannot repackage this and change the license to MIT or something else. These terms of license must be in all downstream forks. For running a production site For an actual production site, you'll probably want to use mysql instead of sqlite, but sqlite is great for development and the code changeover from one to the other isn't bad. Mostly it's replacing ? with %s in a bunch of places. Well...the binding process is completely different, but meh. I didn't write it using mysql, again, if zen4's Promontory 21 hadn't been the shitshow it was, I'd have written it to use mysql. Also, you'll probably want to remove the Command Bar entirely from a production site. This tool wasn't really built to work like a wiki. It was meant for 1-2 people who are highly trusted to update the DB, then for it to mostly be a read-only experience. The idea behind adding mobs: Fly around with two chars. A JD and a PW are optimal. JD has 3 beams, 1 Energy, 1 EMP, 1 Plasma. PW has 3 guns, one loaded Explosive, 1 loaded Impact, 1 loaded Chemical. Telescopium on the JD DO NOT USE ANY RESIST DEBUFFS OF ANY KIND! Not even gravity link. Click on the 'Add Mob' button, shoot with energy laser, say it does 145 (-50) damage. You'd type in 145 for the Damage Component and -50 for the Resist Component. There's a blub on the page that explains all this. Fire 1 round from all the other weapon types and enter the damage/resist components. For positive numbers just enter the number without a + sign, so +500 is just 500. The page is smart enough to know that 145 (-50) meant you did 195 dmg, and 1000 (+500) meant you did 500. The page will do the math on its own to determine the mob resists and store them in the DB. A checkbox needs to be added for whether or not the mob is default hostile. "All this is in the wiki!" Yeah, but seeing it on a map is easier, and for things like mobs and ore, it helps to visually see where things are. Sure, there's Titanium in KV, but *where* in KV. Oh, only 2-3 of the 17 fields there. Cool. Now I know where to warp. "This javascript is written by a moron" Yeah. this is my first major javascript attempt. I was making this a web 2.0 page (so, one page load, then only DOM changes after) purely for practice/learning. You'll note I don't import jquery or any libraries. This is all hand-written baisc javascript. Maybe I'm a masochist. Maybe I just like learning. *shrug* "How did you get the navs?" Log into the game (ON ONE CHARACTER, DO NOT MULTIBOX FOR THIS unless using separate installs), enter a sector, Create a private channel (mostly to avoid spamming others) Target a 'normal' nav, press ctrl+t (I remapped it to b for easier pressing) Press n to go to the next visible nav Press ctrl+t Repeat until all visible navs are reported in chat. Don't worry about duplicates, the code below is smart enough to remove them. type 'hidden' in your private channel press 'x' to target the nearest hidden nav (move away if asteroids are in view) Press ctrl+t Press n to go to the next hidden nav Repeat until all hidden navs are dumped Close game Run script below on your chat.log file Copy-paste output into the "Add Navs" button, after you check the 'JSON Import' checkbox I imagine a script similar to this will be useful for import mobs/roids from chat as well. I did not do the work to make this a thing though. Also, I did not learn sectors could be asymmetric (like Grissom, where it's box is -450|575|-525|650) until I was almost done adding sectors, so roughly 40 of the 69 sectors in the game should be double-checked for asymmetry. sector_ids 1-53 are suspect, basically. Xipe Totec was the first asymmetric zone I remember finding. After Xipe, I made sure to check all 4 dimensions instead of assuming symmetry. #!/usr/bin/python3 import argparse import json import re """THis list is also defined in functions.php and map_script.js, update all 3! $NAV_TYPE_MAP_BASE = [ "Normal Nav" => 0, "Hidden Nav" => 1, "Normal Gate" => 2, "Faction Gate" => 3, "Normal Station" => 4, "Faction Station" => 5, "Planet" => 6, "Landable Planet" => 7, "Weft" => 8, "Extended Weft" => 9, "Ore Field" => 10 ]; """ def parse_log(file_path, channel_name, player_name): results = {} sector_pattern = re.compile(r"We have entered (.+?) Sector \((.+?)\)") target_pattern = re.compile(r"\[(\d+)\] " + re.escape(player_name) + r": Target '(.+?)' at \(([-\d.]+), ([-\d.]+), ([-\d.]+)\)") hidden_nav_pattern = re.compile(r"\[(\d+)\] " + re.escape(player_name) + r": hidden") current_sector = "" hidden_nav_mode = False with open(file_path, 'r', encoding='latin-1') as file: for line in file: sector_match = sector_pattern.search(line) if sector_match: sector_name = sector_match.group(1) system_name = sector_match.group(2) current_sector = sector_name #print(f"We have entered {sector_name} ({system_name})") hidden_nav_mode = False if hidden_nav_pattern.search(line): hidden_nav_mode = True target_match = target_pattern.search(line) if target_match: target_channel = target_match.group(1) target_name = target_match.group(2) nav_type = 0; if target_name.startswith("Sector Gate ") or target_name.startswith("Accelerator") or target_name.startswith("System Gate"): nav_type = 2; if hidden_nav_mode: nav_type = 1 if target_channel == channel_name: x_coord = int(round(float(target_match.group(3)),0)) y_coord = int(round(float(target_match.group(4)),0)) z_coord = int(round(float(target_match.group(5)),0)) if current_sector not in results: results[current_sector] = {} #Assume normal navs until we have some way to mark other things automatically. coord_pack = [x_coord, y_coord, z_coord, nav_type] if target_name not in results[current_sector]: results[current_sector][target_name] = [coord_pack] elif coord_pack not in results[current_sector][target_name]: results[current_sector][target_name].append(coord_pack) #print(f"Target '{target_name}' at ({x_coord}, {y_coord}, {z_coord}, {nav_type})") #print(json.dumps(results, indent=4)) #print(results) print(format_output(results)) def format_output(data): formatted_output = "{" for key in data: formatted_output += f'"{key}": {{\n' for nav in data[key]: formatted_output += f'\t"{nav}": {data[key][nav]},\n' formatted_output = formatted_output[:-2] + "},\n" # Remove the trailing comma and newline character for the last line formatted_output = formatted_output[:-2] + "}\n" return formatted_output if __name__ == "__main__": parser = argparse.ArgumentParser(description="Parse log file") parser.add_argument("file", help="Path to the log file") parser.add_argument("--channel", default="100", help="Channel name (default: [100])") parser.add_argument("--player", default="Doctorje", help="Player name (default: Doctorje)") args = parser.parse_args() parse_log(args.file, args.channel, args.player) "How do I initialize this project?" I assume you are on linux and can get a basic PHP running on your own. sqlite3 better_map.db .read initialization_data/base_schema.sqlite_3 .read initialization_data/3_10_data_import.sql You should be good to go. The sector_data files are there as backups, in case the 3_10 import fails for some reason, or if you want to debug/test the JSON nav import feature. site_files.tar.gz
-
I have an official Discord server setup in the background I'll see about adding to this post pretty soon, or unpinning this and making a new one.
-
I'm not even close to LVL150, let alone maxing my gear after that - but from my limited view that sounds like a fun timesink alternative for endgame.
-
You are LV150, having gathered the best gear in the entire galaxy, every raid can be done with eyes shut. You want a big challenge. Welcome to Boss Rush Arena. In the old arena zone, 10 final bosses await you. Bring friends, plan your strategy, and fight for your life. Zenth'ren-Ti the Dark One Aren'zael The Master Zenrei Tempest Black Beard The Controller Ya Zi Long Scooter Gen'ril Danner McQuirken Enraged Ascentdant Voltoi Celestial Warder All 10 bosses have the exact stats of their true form, but without any minions. The zone is quite small, all bosses are aggressive, roams randomly, have large scan range, and respawns 15 minutes after been killed. The bosses don't have their regular drops, but only drop 1 token when killed, to be traded in for prize. The prize for this challenge are all temporary items that are mainly fun to use. - Jenquai only 1 time use shield boost lv9 device, adds a temporary buff of 50k shield for 60 minutes (similar to the 1 time use station keys). This will hopefully make jennies get 1 shot less often during raids. - Terran only 1 time use reactor boost lv8 device, adds a temporary buff of 5k reactor for 60 minutes. This is for the poor terran souls running out of juice every minute. - Progen can trade token for 1 stack of lv9 projectile ammo that stacks to 9999 to free up their hull at last. These are special variant of Brimstone Plasma Rounds, Archos Plasma Round, Dark Matter Sludge, etc. 1 stack that is non-buildable and stacks to 9999 This challenge uses the old arena zone with the same entry point in carpenter. The entry point also acts as the point for trading the coins into prizes. The programming needed to create this zone should be mainly copy and paste. Tell me what you guys think.
-
Is the TeamSpeak server down for good now? Any word on an "official" Discord server? I haven't seen Dahaka Khan / Clasious / Cartog for quite awhile (the admin of the most active Discord server I'm aware of).
-
Blacksledge joined the community
-
The first question is in the title. It's been so long I lost the sheet of paper with the login credentials and besides that, my old email is defunct so regaining pw is not possible. Second question: Some of my existing email addresses which i had at the time are not showing toons - does the attack on the emulator have anything to do with that? Ty for reading
-
loshamano10 joined the community
-
Unsure, but no evidence of an instability in our logs, everything appears to be running normally.
- Earlier
-
ded EDIT: false alarm, looks like it was on my end, but I can't explain what happened, lost connection on all my characters, got server not responding message, but forums and wiki were working fine (i.e. didn't seem like my connection)... then after I went and made a sandwich and came back it was able to connect again. So it would seem my internet connection momentarily decided it didn't want to talk to the server?
-
They don't actually appear on the map. They are just points that give you xp when you find them. You can use them for navigation by pressing the "c" or "x" keys (if I remember correctly) and then warping to the target, but they'll never display on the in-game starmap.