Code Monkey home page Code Monkey logo

evemu_server's People

Contributors

aknorjaden avatar almamu avatar bb2k avatar bc1bb avatar bobekjan avatar captnoord avatar comet0 avatar davkilla101 avatar deslona avatar evemuproject avatar houaha avatar i-89762345-i avatar ion9 avatar ionysterra avatar jdhirst avatar kingspider avatar mastereve avatar mdrayman avatar ozatomic avatar polareckon avatar positron96 avatar pyrii avatar reve avatar stranho avatar stschake avatar thundergroove avatar titorus avatar ubiquitatis avatar zhyrohaad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evemu_server's Issues

CMake 3.4.0 compile failure

EVEmu fails to compile when using CMake 3.4.0

[16:15][<user>:/iscsi/evemu_personal/build]$ cmake ..
CMake Warning (dev) at cmake/GitTreeInfo.cmake:57 (IF):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "GIT_TAG_EXACT" will no longer be dereferenced when
  the policy is set to NEW.  Since the policy is not set the OLD behavior
  will be used.
Call Stack (most recent call first):
  cmake/DetectScm.cmake:33 (GIT_TREE_INFO)
  CMakeLists.txt:97 (DETECT_SCM)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at cmake/GitTreeInfo.cmake:65 (IF):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "GIT_BRANCH" will no longer be dereferenced when the
  policy is set to NEW.  Since the policy is not set the OLD behavior will be
  used.
Call Stack (most recent call first):
  cmake/DetectScm.cmake:33 (GIT_TREE_INFO)
  CMakeLists.txt:97 (DETECT_SCM)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at cmake/GitTreeInfo.cmake:70 (IF):
  Policy CMP0054 is not set: Only interpret if() arguments as variables or
  keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  Quoted variables like "GIT_TAG_LAST" will no longer be dereferenced when
  the policy is set to NEW.  Since the policy is not set the OLD behavior
  will be used.
Call Stack (most recent call first):
  cmake/DetectScm.cmake:33 (GIT_TREE_INFO)
  CMakeLists.txt:97 (DETECT_SCM)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:102 (MESSAGE):
  Version mismatch, please update PROJECT_VERSION in CMakeLists.txt
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Boost version: 1.59.0
-- Found the following Boost libraries:
--   system
-- Configuring done
-- Generating done
-- Build files have been written to: /iscsi/evemu_personal/build
[16:15][<user>:/iscsi/evemu_personal/build]$ 
[16:16][<user>:/iscsi/evemu_personal/build]$ cmake --version
cmake version 3.4.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).
[16:16][<user>:/iscsi/evemu_personal/build]$ make -j4
[  0%] Built target doc
[  2%] Built target utils
[  3%] Built target gangsta
[  3%] Generating CMakeFiles/eve-core.dir/eve-core.h.gch
/iscsi/evemu_personal/src/eve-core/eve-core.h:33:23: fatal error: config.h: No such file or directory
compilation terminated.
src/eve-core/CMakeFiles/eve-core.dir/build.make:62: recipe for target 'src/eve-core/CMakeFiles/eve-core.dir/eve-core.h.gch' failed
make[2]: *** [src/eve-core/CMakeFiles/eve-core.dir/eve-core.h.gch] Error 1
CMakeFiles/Makefile2:195: recipe for target 'src/eve-core/CMakeFiles/eve-core.dir/all' failed
make[1]: *** [src/eve-core/CMakeFiles/eve-core.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
[16:16][<user>:/iscsi/evemu_personal/build]$

Building with CMake 3.3.2 works.

[16:18][<user>:/iscsi/evemu_personal/build]$ cmake --version
cmake version 3.3.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
[16:18][<user>:/iscsi/evemu_personal/build]$ cmake ..
CMake Warning (dev) at CMakeLists.txt:102 (MESSAGE):
  Version mismatch, please update PROJECT_VERSION in CMakeLists.txt
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Boost version: 1.59.0
-- Found the following Boost libraries:
--   system
-- Configuring done
-- Generating done
-- Build files have been written to: /iscsi/evemu_personal/build
[16:18][<user>:/iscsi/evemu_personal/build]$ make -j4
[  1%] Building CXX object dep/utils/CMakeFiles/utils.dir/Base64.cpp.o
[  1%] Building CXX object dep/utils/CMakeFiles/utils.dir/TriFile.cpp.o
...
...
[100%] Building CXX object src/eve-server/CMakeFiles/eve-server.dir/system/SystemManager.cpp.o
[100%] Building CXX object src/eve-server/CMakeFiles/eve-server.dir/system/WrecksAndLoot.cpp.o
[100%] Linking CXX executable eve-server
[100%] Built target eve-server
[16:23][<user>:/iscsi/evemu_personal/build]$ 

Build Errors: Ubuntu 12.04 LTS

[ 23%] Building CXX object src/eve-xmlpktgen/CMakeFiles/eve-xmlpktgen.dir/EncodeGenerator.cpp.o
/home/demortes/evemu/evemu_server/src/eve-xmlpktgen/EncodeGenerator.cpp: In member function âvirtual bool ClassEncodeGenerator::ProcessWStringInline(const TiXmlElement_)â:
/home/demortes/evemu/evemu_server/src/eve-xmlpktgen/EncodeGenerator.cpp:420:5: warning: format â%luâ expects argument of type âlong unsigned intâ, but argument 5 has type âsize_t {aka unsigned int}â [-Wformat]
[ 23%] Building CXX object src/eve-xmlpktgen/CMakeFiles/eve-xmlpktgen.dir/HeaderGenerator.cpp.o
[ 23%] Building CXX object src/eve-xmlpktgen/CMakeFiles/eve-xmlpktgen.dir/XMLPacketGen.cpp.o
make[2]: *_* No rule to make target mysql-5.5.25a-linux2.6-i686/lib/libmysqlclient_r.so', needed bysrc/eve-xmlpktgen/eve-xmlpktgen'. Stop.
make[1]: *** [src/eve-xmlpktgen/CMakeFiles/eve-xmlpktgen.dir/all] Error 2
make: *** [all] Error 2

EVEmu Control Panel and other tools don't know what type of database is being accessed

PROBLEM:

EVEmu Control Panel, the Web Portal, etc should all be able to query the database they are connected to in order to use appropriate queries and present appropriate options and data to the user based on which type of database is identified, be it Apocrypha, Incursion, Crucible, or beyond as CCP keeps changing database data and structure.

NEED PROPOSALS:
My proposal would be a new database table, called say 'system' perhaps, that would contain just one row and a bunch of columns, such as "client version", "macho version", "client version name", "evemu server version", etc

Other proposals are welcome!

  • Aknor

Make all Logging systems flush data to files during server runtime

PROBLEM:
When the server crashes, any logs that are currently open by the existing logging system(s) will not have been written to the file on the hard drive and therefore will be empty when viewed after the crash. Something needs to be done such that logging data is written to files while the server is running such that the logs are not empty in the event the server does crash.

STEPS TO REPRODUCE:
not applicable, this is an Enhancement

WORKAROUND:
Not sure there is a workaround, heh, don't let your server crash else the logs will be empty XD

PROPOSED SOLUTIONS:
(1) Open log file, write log data, close log file -- every time there is log data to write, however small. Problem with this is there will be many file open/close operations when there is a lot of data getting logged per second.
(2) Implement (1), but use a timer to determine when to close the file then restart the timer and open the file again, so file close/open operations only happen when the timer expires. Problem with this is that you may lose up to the amount of time the timer runs worth of log data leading up to the server crash.
(3) Implement a function in the logging system that can let the programmers call to "flush" the log, letting programmers decide how often to flush log data to the file. The "flush" operation would be nothing more than closing the log file and reopening it.

Any other ideas folks? If so, just leave them in comments here.

-- Aknor

Server crash after Char creation & client restart

EvEmu-Error

EXCEPTION #7 logged at  03/01/2013 08:57:35 
Caught at:
/common/lib/bluepy.py(86) CallWrapper
/../carbon/common/script/net/machonet.py(4543) TransportReader
/common/lib/bluepy.py(396) Wrapper
/../carbon/common/script/net/machonet.py(4714) HandleMessage
/../carbon/common/script/net/machonettransport.py(599) SessionNotification
/../carbon/common/script/net/sessionchangegpcs.py(46) NotifyUp
/../carbon/common/script/sys/sessions.py(1183) ApplyRemoteAttributeChanges
/../carbon/common/script/sys/servicemanager.py(677) ChainEvent
/../carbon/common/script/sys/servicemanager.py(706) ChainEventWithoutTheStars
Thrown at:
/../carbon/common/script/sys/servicemanager.py(700) ChainEventWithoutTheStars
/client/script/environment/invcache.py(142) ProcessSessionChange
/client/script/environment/godma.py(516) ProcessSessionChange
/client/script/environment/godma.py(1233) ProcessSessionChange
/client/script/environment/godma.py(2616) Prime
/client/script/environment/invcache.py(568) GetInventoryFromId
        itemid = 60015148
        inv = None
        passive = 1
        locationID = 60014719
        key = (60015148, None)
        sessionCheckParams = {'locationid': 60014719}
        inventoryMgr = <util.Moniker instance at 0x378E91C0>
        self = <svc.invCache instance at 0x096719E0>
AttributeError: 'NoneType' object has no attribute 'SetSessionCheck'
Thread Locals:  session was <Session: (sid:3451433819767174134, clientID:0, changing:ApplyRemoteAttributeChanges, mutating:0, locationid:60014719, corprole:0x0, userid:1, languageID:DE, role:0x4570000000000000L, charid:60015148, address:127.0.0.1:1874, userType:1, sessionType:5, regionid:10000068, constellationid:20000776, corpid:1000169, stationid:60014719, stationid2:60014719, worldspaceid:60014719, solarsystemid2:30005305, hqID:60014719, rolesAtAll:0x0, rolesAtHQ:0x0, rolesAtBase:0x0, rolesAtOther:0x0)>  currentcall was: <MachoCallOrNotification, packet=Packet::SessionChangeNotification (Address::Node(nodeID="888444",service="None",callID="None"),Address::Client(clientID="1",callID="0",service="None"),192 bytes,['', (0, {'constellationid': (None, 20000776), 'corprole': (None, 0), 'corpid': (None, 1000169), 'regionid': (None, 10000068), 'rolesAtAll': (None, 0), 'rolesAtBase': (None, 0), 'worldspaceid': (None, 60014719), 'stationid': (None, 60014719), 'locationid': (None, 60014719), 'hqID': (None, 60014719), 'stationid2': (None, 60014719), 'solarsystemid2': (None, 30005305), 'solarsystemid': (None, None), 'rolesAtHQ': (None, 0), 'charid': (None, 60015148), 'rolesAtOther': (None, 0)}), [888444]],{}, None)>

EXCEPTION END

it gave me the cannot load inventory error after char creation:

08:57:35 [SvcError] InventoryDB::GetItem(..\..\..\src\eve-server\inventory\InventoryDB.cpp:477): Item 60015148 not found.
08:57:35 [SvcError] InventoryDB::GetItem(..\..\..\src\eve-server\inventory\InventoryDB.cpp:477): Item 60015148 not found.
08:57:35 [SvcError] InvBrokerBound::Handle_GetInventoryFromId(..\..\..\src\eve-server\inventory\InvBrokerService.cpp:143): (null): Unable to load inventory 60015148

Constants of type long do not fit on x86 arch

Debian squeeze x86 toolchain gives a lot of warnings about long constants not fitting into their size, e.g

src/eve-common/network/packet_types.h:507: warning: integer constant is too large for 'long' type

I wonder if it is a serious problem that can break the whole thing.

Implement Module Auto-Fit

PROBLEM:
When attempting to tell the server to automatically fit a module by not dragging it from an inventory onto a specific slot, the server is completely not able to handle it by virtue of that functionality just not being present at all. Right now, the server just does nothing, spits an error into the server console, and returns nothing to the client.

STEPS TO REPRODUCE:

  1. Open Fitting window in Client
  2. Drag a module from an inventory onto the CENTER of the fitting window and NOT onto any specific slot
  3. Regardless if there is an available slot for this type of module in the bank it needs, the server will do nothing and return nothing to the client.

PROPOSED SOLUTION:
There is code that captures this option in InventoryIMBound::_ExecAdd() and it just needs further coding, however, other deeper things need to be implemented first. Within ModuleManager, the ModuleContainer class needs a method that can query slot banks to see if there are any available slots in the indicated bank. ModuleManager and Ship class objects need to provide exposure to that method as well as a way to reserve a specific slot if there is more than one available on that bank. Then, they need to relay that reserved slot flag to InventoryIMBound, so then it can either return it to the client (see RESEARCH below) or proceed with a normal Add with the specific slot flag.

RESEARCH:
We need to determine if the Client expects a return packet with the reserved slot so that it can then send regular call to add module with the actual reserved slot OR if the client just expects the server to go ahead with fitting it, if it can, then provide a return to the client of whether the module was fitted or not.

Injecting a skill while Training Queue is open does not update listed skills

PROBLEM:
Create or buy off the market a skill book that you do not own. Right-click it in your items window and select "Inject Skill". If you have the Training queue already open showing all skills, when you inject this new one, it does not update the list of skills such that you can start training this skill.

STEPS TO REPRODUCE:

  1. Open your character's Training Queue
  2. Create or buy off the market a skill book that you do not own
  3. Right click the skill book in your items/cargo window and select "Inject Skill"
  4. Notice how the new skill does not appear in the category it was supposed to show up within

WORKAROUND:
The only way to make this appear in the Training Queue list is to click the "Skills that fit within the queue's timeframe" checkbox in the upper left corner of the Training Queue window. Click it enough times to cycle it once through checked then finally to unchecked. If you had it already unchecked, then just click it twice. Any invisible injected skills will now appear in the Training Queue list of skills that can be trained.

PROPOSED SOLUTIONS:
I have no idea why this is not working. Perhaps a missing or wrongly formatted packet regarding skill Injection or something like that?

Attributes for entities are not saved in DB between server restarts

This means that character attributes (skills, speeds, etc) do not get lost when server is restarted, effectively making the char unusable. For example, skill queue and skill list do not show any data (though there is space left for it), after undocking shield is 0%, warp does not work, and server logs show some weird NaN speeds. All in all, this is very inconsistent server state.
I've also tested it with asteroids that I seeded with .spawnbelt. Asteroids themselves do get saved, but not their attributes (radius, volume)

CMAKE Dependency Issued

Here is the log at the bottom of cmake:

Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
Could NOT find Boost
Downloading or verifying boost_1_49_0.tar.bz2
CMake Error at cmake/BuildPackage.cmake:45 (FILE):
  file DOWNLOAD MD5 mismatch

    for file: [C:/SERVERS/BUILD/eveemu/server/evemu_server/build/boost_1_49_0.tar.bz2]
      expected MD5 sum: [0d202cb811f934282dea64856a175698]
        actual MD5 sum: [d41d8cd98f00b204e9800998ecf8427e]

Call Stack (most recent call first):
  CMakeLists.txt:178 (BUILD_PACKAGE)


Extracting boost_1_49_0.tar.bz2
Could NOT find Lua51 (missing:  LUA_LIBRARIES LUA_INCLUDE_DIR) (Required is at least version "5.1")
Downloading or verifying lua-5.1.5.tar.gz
CMake Error at cmake/BuildPackage.cmake:45 (FILE):
  file DOWNLOAD MD5 mismatch

    for file: [C:/SERVERS/BUILD/eveemu/server/evemu_server/build/lua-5.1.5.tar.gz]
      expected MD5 sum: [2e115fe26e435e33b0d5c022e4490567]
        actual MD5 sum: [d41d8cd98f00b204e9800998ecf8427e]

Call Stack (most recent call first):
  CMakeLists.txt:179 (BUILD_PACKAGE)


Extracting lua-5.1.5.tar.gz
Could NOT find TinyXML (missing:  TINYXML_LIBRARIES TINYXML_INCLUDE_DIRS) (Required is at least version "2.6.0")
Downloading or verifying tinyxml_2_6_2.tar.gz
CMake Error at cmake/BuildPackage.cmake:45 (FILE):
  file DOWNLOAD MD5 mismatch

    for file: [C:/SERVERS/BUILD/eveemu/server/evemu_server/build/tinyxml_2_6_2.tar.gz]
      expected MD5 sum: [c1b864c96804a10526540c664ade67f0]
        actual MD5 sum: [d41d8cd98f00b204e9800998ecf8427e]

Call Stack (most recent call first):
  CMakeLists.txt:181 (BUILD_PACKAGE)


Extracting tinyxml_2_6_2.tar.gz
Could NOT find UTF8CPP (missing:  UTF8CPP_INCLUDE_DIRS) 
Downloading or verifying utf8_v2_3_2.zip
CMake Error at cmake/BuildPackage.cmake:45 (FILE):
  file DOWNLOAD MD5 mismatch

    for file: [C:/SERVERS/BUILD/eveemu/server/evemu_server/build/utf8_v2_3_2.zip]
      expected MD5 sum: [e01080a941dfda1136b992d996245e77]
        actual MD5 sum: [d41d8cd98f00b204e9800998ecf8427e]

Call Stack (most recent call first):
  CMakeLists.txt:182 (BUILD_PACKAGE)


Extracting utf8_v2_3_2.zip
Found ZLIB: C:/SERVERS/BUILD/eveemu/server/common/mysql/lib/opt/zlib.lib (found suitable version "1.2.7", required is "1.2.3") 
CMake Warning at CMakeLists.txt:231 (MESSAGE):
  If you require generated documentation, please install Doxygen


Configuring incomplete, errors occurred!

I HAVE added all the dependencies in the 'common' folder, and have added:

Name: CMAKE_SYSTEM_INCLUDE_PATH Type: PATH Value: C:\evemu\server\common\mysql\include;C:\evemu\server\common\zlib 
Name: CMAKE_SYSTEM_LIBRARY_PATH Type: PATH Value: C:\evemu\server\common\mysql\lib\opt 
Name: Boost_INCLUDE_DIR Type: PATH Value: C:\evemu\server\common\boost 

Create or document ability to NOT download deps in CMake Configure

I have a common directory into which I install and link to evemu's dependencies of boost, mysql, and zilb in the old style of doing things and I'd like to keep it that way and not download any deps to be installed into the evemu_server directory. I'd like a way to tell CMake to not download them and use the ones I have setup instead.

This is because I might have more than one project directory and I dont want multiple copies of each dependency embedded within the dep/ directory.

Please, Bloody.Rabbit, can you help me with this?

Aknor

Client does not load market tree into market window

I've tried to trace code, and now I suspect that some commented code around /eve_server/market/MarketDB.cpp:533 was useful before it was commented. There is a result variable, args and it is never populated with actual data, only some headers for that data. Though I might be wrong. Anyway, I am very new evemu, so feel free to ask any additional info and logs.

Inefficient Data Storage of Default Attributes of Entity items

THE PROBLEM:
Each time an item is created in the EVE universe, the server creates a row in the 'entity' table and creates rows in the 'entity_attributes' and 'entity_default_attributes' tables for the attributes of that item (mass, radius, armor thermal resonance, etc). Now, the 'entity_attributes' table is for storing the attributes of every unique item instance in the EVE universe and provides a place for holding those attribute values when they are modified by a skill, implant, booster, module, charge, etc. The 'entity_default_attributes' table holds those same sets of attributes for all unique items but they are NEVER allowed to be modified. They are default to what was found in the 'dgmTypeAttributes' table. The problem here is a complete waste of space that I coded up when I expanded the attributes system ahead of working to implement modules and realized it would be quicker to recalculate attribute changes from the default whenever some attribute modifier was added/removed/changed. So it made sense to maintain an in-memory copy of the default set of attributes in every item object that is loaded in the game when the server is running. It seemed easiest to modify the AttributeMap class to allow for loading attributes from one of two tables based on whether the AttributeMap was modifiable or read-only (ie default). The code for AttributeMap does not allow for loading/storing these default attribute sets based on typeID but rather itemID, and that is where space in the Database will be wasted if this is not addressed.

STEPS TO REPRODUCE:

  1. log into the game and buy an item off the market or create one using .create
  2. view the additions to the 'entity_default_attributes' table in the database for your EVEmu server, you'll see that there is a set for each unique itemID found in the 'entity' table whereas it could be stored based only on typeID OR even pulled straight from dgmTypeAttributes table every time an item is loaded from the DB or created

PROPOSED SOLUTION:
At first, I thought it might be best to have AttributeMap just load the attribute set from 'dgmTypeAttributes' every time an item object is loaded/created by the server, however, in my experience of working with items and modules so far, there are a number of attributes that are not present in the list stored in 'dgmTypeAttributes' for each typeID. Therefore, I think the best solution would be to just modify AttributeMap class so that it loads/stores the default attribute sets based on typeID and not itemID.

Missing Item Attributes Require Creation and Assignment of Default Values

-- PERPETUAL OPEN ISSUE UNTIL ALL MISSING ATTRIBUTES ARE IDENTIFIED
-- MARK MISSING ATTRIBUTES AS DONE WHEN THEY ARE FOUND AND IMPLEMENTED

Some items may have missing attributes from the list pulled from the 'dgmTypeAttributes' table in the Database and so therefore have to be created manually by the Class Constructor for that Item type. This Issue is for tracking the work needed to add these missing attributes for various item categories/groups/types and assignment of default values pulled from the 'dgmAttributeTypes' table. Code in each constructor must test for the existence of these attributes before attempting to add them as some types within groups/categories may not be missing these attributes while others are.

Ships:

  • Add 'droneControlDistance' with default value of 20000 (from dgmAttributeTypes ID= 458

MORE TO BE ADDED AS NEEDED

EvilNumber get_int and get_float should be removed.

Back when I wrote the EvilNumber class I wrote it so it was a polymorphic type.
So I see people not understanding how things work and converting code back to
its jigsaw puzzle state was it was when we started this project.

Shutdown sequence broken

Today I encountered a bug in server shutdown sequence.
I was running server, then pressed Ctrl+C as I always do, it went into shutdown, but something went wrong:

13:32:35 L Signal system: Caught signal: 2
13:32:35 L server shutdown: Main loop stopped
13:32:35 L server shutdown: TCP listener stopped.
13:32:35 L server shutdown: Image Server TCP listener stopped.
13:32:35 L server shutdown: API Server TCP listener stopped.
13:32:35 L Threading: Ending TCPServerLoop with thread ID -1222182032
13:32:36 L server init: SERVER IS NOW [OFFLINE]
13:32:36 L server shutdown: Shutting down Item Factory.
13:32:36 L Saving Items::  5.41% complete...
13:32:36 L Saving Items::  10.81% complete...
13:32:36 L Saving Items::  16.22% complete...
13:32:36 L Saving Items::  21.62% complete...
13:32:36 L Saving Items::  27.03% complete...
13:32:36 L Saving Items::  32.43% complete...
13:32:36 L Saving Items::  37.84% complete...
13:32:36 L Saving Items::  43.24% complete...
13:32:36 L Saving Items::  48.65% complete...
13:32:36 L Saving Items::  54.05% complete...
13:32:36 L Saving Items::  59.46% complete...
13:32:36 L Saving Items::  64.86% complete...
13:32:39 L Saving Items::  70.27% complete...
13:32:40 L Saving Items::  75.68% complete...
13:32:40 L Saving Items::  81.08% complete...
13:32:40 L Saving Items::  86.49% complete...
13:32:41 L Saving Items::  91.89% complete...
13:32:41 L Saving Items::  97.30% complete...
13:32:41 L Saving Items::  100% complete!
13:32:41 L server shutdown: Cleanup db cache

press ENTER key to exit...
13:32:42 L Saving Items::  5.41% complete...
13:32:42 L Saving Items::  10.81% complete...
13:32:42 L Saving Items::  16.22% complete...
13:32:42 L Saving Items::  21.62% complete...
13:32:42 L Saving Items::  27.03% complete...
13:32:42 L Saving Items::  32.43% complete...
13:32:42 L Saving Items::  37.84% complete...
13:32:42 L Saving Items::  43.24% complete...
13:32:42 L Saving Items::  48.65% complete...
13:32:42 L Saving Items::  54.05% complete...
13:32:42 L Saving Items::  59.46% complete...
13:32:42 L Saving Items::  64.86% complete...
13:32:43 L Saving Items::  70.27% complete...
13:32:43 L Saving Items::  75.68% complete...
13:32:43 L Saving Items::  81.08% complete...
13:32:43 L Saving Items::  86.49% complete...
13:32:43 L Saving Items::  91.89% complete...
13:32:43 L Saving Items::  97.30% complete...
13:32:43 L Saving Items::  100% complete!
*** glibc detected *** ./eve-server: double free or corruption (out): 0xb5252df8 *** ======= Backtrace: =========
/lib/i686/cmov/libc.so.6(+Ox6af7l)[0xb7325f7l] /lib/i686/cmov/libc.so.6(+Ox6c7c8)[0xb73277c8] /lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb732a8ad] /usr/lib/libstdc++.so.6(_ZdlPv+Ox2l)[0xb750170l] ./eve-server(_ZNllItemFactoryDlEv+Ox2aO)[0x8419572] ./eve-server(main+0x2030)[0x82c6d9G]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb72dlca6]
./eve-server[Ox82c42f1]
13:32:43 L Signal system: Caught signal: 6

Note that I've never seen this bug before, but I sometimes get segfault and assertion errors after server completes its finalization. It probably does not matter when the server is running, but is a bug anyway.

Creating Corporation with Too-Long name results in SQL Error and NO new Corp created

PROBLEM:
When creating a corporation with a name longer than 24 characters (including the word Corporation that is auto-filled by the client), the following error is seen in the server log: http://pastebin.com/tkcp1azk

Notice the SQL error on the 'reason' field being too long.

STEPS TO REPRODUCE:

  1. start server, login with an existing character
  2. create a corporation and make sure the length of the corporation name is longer than 24 characters

WORKAROUND:
The only known workaround is to make your corporation name shorter than 25 characters when creating one. This maximum length of the 'reason' field in the 'market_journal' table is 43 characters and this particular instance exceeded that length, thereby causing the SQL statement to fail. Stay below that limit and the query will go through.

PROPOSED SOLUTIONS:
We could do one of the following or something else I have not thought of:

  1. We really should just write the code that inserts this into 'market_journal' to simply truncate the text going into the 'reason' field to the length expected. I don't know how we would query the DB to get the maximum length, but for expediency, we could just hard code the length to 43 characters in the server code and truncate text to that length.
  2. Add some SQL statement a new file in the sql/ofic-updates folder that will increase the length of the 'reason' field in the 'market_journal' table
  3. Shorten the text inserted into the 'reason' field of the 'market_journal' table when a new corporation is created. Currently, this text is "Creating new corporation:". This can be shortened to simply "New corp:" instead.

I vote for solution (1) as it is the most elegant and solves the problem the right way. We should not impose some character limit on corporation names just because of some dumb limit from some other table not wholly related to corporations.

Let's use GitHub issues to discuss changes

This thing came up recently in my discussion with Aknor (see http://forum.evemu.org/viewtopic.php?f=7&t=720) and this is kind of a follow-up.

Dear fellow developers, what do you think about using GitHub issues to track what everyone is doing? The way I see it, we could create an issue for every larger change, discuss it and then assign ourselves to the issue so everyone know what we are up to.

Do you think it's a good idea? At least tell me "I will/won't use it" :-D

Creating Titans inside Station using .create GM command break

PROBLEM:
When using the .create GM command while inside of a Station or Outpost to spawn a Titan causes your character to completely be unusable after a logoff then login.

STEPS TO REPRODUCE:

  1. Log into an account and log into the game with a character
  2. Use the .create for any of the four Titan ships when in a Station or Outpost
  3. Log off then log back in. Your character will be completely unusable.

WORKAROUND:
There are no known workarounds for this problem except, of course, not to create Titans in stations!

PROPOSED SOLUTIONS:
While we don't have any idea why this does not work on Crucible server but did on Incursion server, I propose the solution to prevent using .create GM command with any of the four Titan ships while either docked into a station or outpost.

Need of a super class for entities

I needed to pull Process() into Afterburner.cpp for example and I ended up virtualising the method in ActiveModules.h to be able to get it. While this is no problem because ActiveModules will act more as an interface, it is hard to trace back from where the virtualisation starts.

My idee is to create a super class which contains Process(), DestinyProcess() and maybe an Init() which can be inherited by any object enabling you to drag into your code the methods specified above.

This super object will have it's methods triggered in the main loop in eve-server.cpp and spread that loop throughout the whole inheritance tree.

This is how Unity3D works (www.unity3d.com). You inherit MonoBehaviour and you get a bunch of methods that you can implement and use them as you wish.

DBError causes crash

Hi,
I just tried to setup evemu and got this error.

09:07:28 E DBCore Query: #1054 in ' SELECT  targetAttributeID,  sourceAttributeID,  calculationTypeID,  reverseCalculationTypeID,  effectAppliedTo,  effectAppliedBehavior,  effectApplicationType,  targetEquipmentType,  targetGroupIDs,  stackingPenaltyApplied  FROM dgmEffectsInfo  WHERE effectID = '4' ': Unknown column 'effectAppliedTo' in 'field list'
09:07:28 [DBError] Error in query: Unknown column 'effectAppliedTo' in 'field list'

Create new database table to link Ship typeIDs to Wreck typeIDs

ASSIGNED TO: kingtiger01

TASK:

PART ONE:
We need to create a new database table, called "shipTypeWrecks", with structure of typeID as INT and wreckTypeID as INT. The table needs no other fields. The goal here is to choose a typeID from invTypes table for a wreck and match that to all the appropriate ship typeIDs. This is a daunting task as there are 376 player operable ships as well as the scores of NPC ships, all of which have wreck types. The task can be made a bit less daunting by realizing that just about every wreck will link to multiple typeIDs. The time consuming part will be simply filtering the typeIDs to discover which are linked to the same wreck, then the table can be constructed from the data.

If it is easier to do, data can be entered into our wiki at http://wiki.evemu.org.

When this part is done, pass off the Issue to AknorJaden for PART TWO.

PART TWO:
We need to create the code in the server to pull the data from the new table when a ship is created or spawned and load the wreckID for that ship/NPC typeID. Code also needs to be created in Damage.cpp to properly spawn the object for the wreckID

Server Crash on creating new Characters

When creating a new character from a fresh INSERT query on the 'account' table where the password hash blobs are empty, the server calls PasswordModule.cpp's GeneratePasswordHash() in the Client.cpp function _VerifyLogin(). What happens in this case is an assertion failure on line 70 in PasswordModule.cpp:

username.assign( username.begin() + frontIndex,
                 username.end() - backIndex );

When I step-debugged this, I found that frontIndex = 0 and backIndex = 0, when i was using a username = 'aknor' and a password = 'aknor'.

The quickest way to see this is to make use of one of our API server calls from a browser window. Just paste this into a browser window after the server is running to see the problem:

http://127.0.0.1:64/account/APIKeyRequest.xml.aspx?username=aknor&password=aknor&keytype=full&action=new

You will have to have a line in the account table with username and password set to 'aknor'.

Bloody.Rabbit, could this have occurred recently when you made changes to the password hashing code?

Aknor Jaden

What wrong with my Cmake ?

CMake Warning (dev) at CMakeLists.txt:99 (MESSAGE):
Version mismatch, please update PROJECT_VERSION in CMakeLists.txt
This warning is for project developers. Use -Wno-dev to suppress it.

Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:695 (file):
file Internal CMake error when trying to open file:
C:\evemu\server\common\boost /boost/version.hpp for reading.
Call Stack (most recent call first):
cmake/BuildBoost.cmake:8 (FIND_PACKAGE)
cmake/BuildPackage.cmake:33 (INCLUDE)
CMakeLists.txt:180 (BUILD_PACKAGE)

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:708 (math):
math cannot parse the expression: " / 100000": syntax error, unexpected
exp_DIVIDE, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
cmake/BuildBoost.cmake:8 (FIND_PACKAGE)
cmake/BuildPackage.cmake:33 (INCLUDE)
CMakeLists.txt:180 (BUILD_PACKAGE)

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:709 (math):
math cannot parse the expression: " / 100 % 1000": syntax error, unexpected
exp_DIVIDE, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
cmake/BuildBoost.cmake:8 (FIND_PACKAGE)
cmake/BuildPackage.cmake:33 (INCLUDE)
CMakeLists.txt:180 (BUILD_PACKAGE)

CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:710 (math):
math cannot parse the expression: " % 100": syntax error, unexpected
exp_MOD, expecting exp_OPENPARENT or exp_NUMBER (2)
Call Stack (most recent call first):
cmake/BuildBoost.cmake:8 (FIND_PACKAGE)
cmake/BuildPackage.cmake:33 (INCLUDE)
CMakeLists.txt:180 (BUILD_PACKAGE)

Could NOT find Boost
Downloading or verifying boost_1_49_0.tar.bz2
Could NOT find Lua51 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR) (Required is at least version "5.1")
Downloading or verifying lua-5.1.5.tar.gz
Could NOT find MySQL (missing: MYSQL_LIBRARIES MYSQL_INCLUDE_DIRS) (Required is at least version "5.0")
Downloading or verifying mysql-5.5.25a-win32.zip
Extracting mysql-5.5.25a-win32.zip
Could NOT find TinyXML (missing: TINYXML_LIBRARIES TINYXML_INCLUDE_DIRS) (Required is at least version "2.6.0")
Downloading or verifying tinyxml_2_6_2.tar.gz
Could NOT find UTF8CPP (missing: UTF8CPP_INCLUDE_DIRS)
Downloading or verifying utf8_v2_3_2.zip
Extracting utf8_v2_3_2.zip
Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) (Required is at least version "1.2.3")
Downloading or verifying zlib-1.2.7.tar.bz2
CMake Warning at CMakeLists.txt:233 (MESSAGE):
If you require generated documentation, please install Doxygen

Configuring incomplete, errors occurred!

How to connect

Hi, sorry i don't understand how to configure my client for a connection with my server. thx

DogmaIMBound::Handle_GetAllInfo() method is Incomplete in creating the response packet

Simply stated, the DogmaIMBound::Handle_GetAllInfo() method in the DogmaIMService.cpp file in the DogmaIMBound class is incomplete.

The "locationInfo" and "shipModifiedCharAttribs" keys in the response dictionary are not filled with anything at the moment. These should be studied in the server response of the GetAllInfo service call then filled properly with server-side data being requested by the client.

You will need EVE live packet captures, preferrably from Crucible 1.6.5 era in order to figure out what to send back. Alternatively, if you are brave, you can decompyle the Crucible 1.6.5 client /script/compiled.code file using the python uncompyle2 tool and inspect the python source code to figure out what it wants and reverse engineer what the packet should look like and contain.

Build errors at commit 127e3f0

[ 12%] Built target doc
[ 12%] Generating CMakeFiles/eve-core.dir/eve-core.h.gch
/eve/evemu_server/include/eve-core/eve-core.h:160:23: fatal error: GaPreReqs.h: No such file or directory
compilation terminated.
make[2]: *** [src/eve-core/CMakeFiles/eve-core.dir/eve-core.h.gch] Error 1
make[1]: *** [src/eve-core/CMakeFiles/eve-core.dir/all] Error 2
make: *** [all] Error 2

root@thinkpad:/eve/evemu_server# git branch -av

  • master 127e3f0 cmake: Remove options for linking Boost libraries.

Ubuntu Precise 12.04

git clone
mkdir build
cd build
cmake ../evemu_server
make

SQL dumps in ofic-updates create table dulpicates with different names (even more on linux)

I noticed that sql dumps from bulkdata and cache files create tables with similar contents but different names (and naming convertions) than official CCP tables. I noticed these:

dgmeffects ->(should be) dgmEffects
dgmattribs -> dgmTypeAttributes
bpTypes -> invBlueprintTypes
certificateRelationShips -> crtRelationships
graphics -> eveGraphics
icons -> eveIcons

The problem is, sometimes both tables are used in code (e.g. graphics in https://github.com/evemuproject/evemu_server/blob/master/src/eve-server/cache/ObjCacheDB.cpp#L701 and eveGraphics in https://github.com/evemuproject/evemu_server/blob/master/src/eve-server/config/ConfigDB.cpp#L215, I also noticed dgmattribs and dgmTypeAttributes being used)

Why is it so? Is it really needed to duplicate tables with similar content, and break eve naming convention? If not, this can and should be fixed (and I almost started doing it, but then noticed that these wrongly named tables are used) or it will lead to confision and other problems. I guess noone really needs two tables with same purpose, and if one does, let's rename them to reduce chaos. (E.g rename dgmattribs to dgmAttributeTypesFull or dgmAttributeTypes2)

PS, Linux filesystem is usually case-sensitive, and so are names of tables in mysql (http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html).
Some sql dumps in ofic-updates folder are spelt in lowercasae (I noticed crpNPCDivisions and fixed it in positron96@e6f1ed2 and positron96@50b543a)

Shrinking the repository

See also http://forum.evemu.org/viewtopic.php?f=7&t=721.

As promised, I tried using git filter-branch to make the repository smaller. I was successful; however, it turns out that the removed stuff (boost, mysql, zlib) saves us about 4 megs of space, which isn't that much (the repo has ~32 MB atm).
I investigated further and found out that we could save additional 12 (!) megabytes if we removed utils/playertools, making the repository only ~16 MB (half of the original value!).

This is disk usage of current checked-out tree (that is, with boost, mysql and zlib removed), ordered from the smallest:

36K   cmake
84K   doc
2.1M  include
3.4M  src
5.1M  dep
25M   sql
26M   utils

It's apparent that removing utils/playertools could save us some serious megs (the directory utils itself holds hardly anything).

So, any thoughts?

Correct Server Saving Character information All the Time

PROBLEM:
When fixing the attributes-not-getting-saved problem a few weeks ago, I inadvertently introduced a non-optimal problem into the server code when logging in and using the game. The problem is the worst when all skills are trained on the character and was noticed when I used the new giveallskills GM command I recently added. It took minutes and minutes to "save" the character data to the database on a login. Seems to do it that long at other times, but might be inconsistent. The problem lies with the

It seems to do this several places on login and is always making the call Character::SaveCharacter(), so we need to search for where this is being called and evaluate how to minimize the impact of doing this saving. We only need to save this stuff when necessary.

STEPS TO REPRODUCE:

  1. Start the server and the client, then log in one of your characters.
  2. Issue the new giveallskills GM command or not, it's your choice, but that command will take quite a while to complete (another possible "bug" perhaps)
  3. Notice that a few times during the login process, you'll see messages in the server console saying "Character::SaveCharacter(): Saving all character info and skill attribute info to DB for character XXXXXXX..."

WORKAROUND:
There is no way to workaround this problem as it is applied to every character at the points where the saving happens. Only way to minimize it is to minimize the number of skills trained by the character. This problem is the worst after one has run the giveallskills command as this trains ALL skills to the character and ends up taking minutes to save the character to the Database upon login and logoff.

PROPOSED SOLUTION:
After some consideration, I believe I have a good solution. InventoryItem class should have a "dirty" flag that indicates something about it has been CHANGED since the last time it was written to the database. Whenever some other object invokes InventoryItem::SaveItem(), it should check to see if this dirty flag is set and if so, proceed with write to database, otherwise, ignore. This should ensure that even if other objects are looping through large caches of items during a bulk save-off operation, only the ones that have been changed get committed to the database. One can imagine that with a server running quite a long time will see many objects get changed and require writing to the database so this solution should also be coupled with the caveat that at some point in the future, we'll need random periodic saves of modified objects to the database in order to minimize the sheer amount of time it will take for ALL changed objects to get saved when the server is shutdown. For now though, we can just implement the dirty flag in InventoryItem.

Ship Fittings loaded after server restart or log-off -> login leave ALL modules Offline

PROBLEM:
When fitting modules that go Online, restarting the server and observing the modules fitted to ships prior to the restart show all Offline instead of whatever online/offline state they had prior to the restart.

STEPS TO REPRODUCE:

  1. Log into an account and log into the game with a character
  2. Fit one or more modules to a ship, then log off
  3. Shutdown the server
  4. Restart the server and login with your character. The ship fitting will show all modules in the Offline state

WORKAROUND:
There are no known workarounds for this problem.

PROPOSED SOLUTIONS:
I suspect this has something to do with the Online attribute either not getting properly saved to the database or not properly pulled from the database and updated in the in-memory object for the module when it gets created from the stored fitting. I am leaning toward the latter since I have observed attribute 2 (online) is set to 1 in the 'entity_attributes' table for such modules. This must mean that somehow the server is not using that value to update the modules' power states.

Market base prices are WAY too high

Now that positron's market fixes are in, we can view and buy items off the market after they've been seeded there in the market_orders table. The problem with this right now is the base price in the invTypes table for each item is WAY too high. 1,050,000,000,000.00 for a Megathron. That's just ridiculous.

So, with Xyrtic's help, we have an idea of grabbing data from eve-central.com API server for pricing data for all types using the following query:

http://api.eve-central.com/api/marketstat?typeid=641&typeid=641&regionlimit=10000002

Here, typeid=641 is for Megathron and regionlimit=10000002 is for The Forge region. We can create a PHP or python script to grab pricing data for all types for each region and make an update SQL file for the market_orders table.

Drop the dependency on Boost

Currently the only thing that we use Boost for is implementation of asinh, which we could easily implement ourselves:

double asinh( double x )
{
    return log( x + sqrt( x * x + 1 ) );
}

I suggest we do that and drop the (not so insignificant) dependency on Boost. Thoughts?

invMarketGroups table missing columns, need cache from working eve to fix

Specifically, official invMarketGroups table is now

CREATE TABLE `invMarketGroups` (
  `marketGroupID` smallint(6) NOT NULL,
  `parentGroupID` smallint(6) DEFAULT NULL,
  `marketGroupName` varchar(100) DEFAULT NULL,
  `description` varchar(3000) DEFAULT NULL,
  `iconID` smallint(6) DEFAULT NULL,
  `hasTypes` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`marketGroupID`),
  KEY `parentGroupID` (`parentGroupID`),
  KEY `iconID` (`iconID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

and lacks columns dataID, descriptionID and margetGroupNameID. Situation is pretty same as with invTypes table, that lacked similar columns in official dump and now is fixed by ofic-updates/600004-cacheInvTypes.sql file.

If anyone has file 67b3.cache from folder
%userprofile%\Local Settings\Application Data\CCP\EVE\d_games_eve_tranquility\cache\MachoNet\87.237.38.200\320\CachedMethodCalls from official eve server, please post it here.

Also, anyone remembers how to build CacheToSql.cs? It lacks "eveCache.Generation" dependency andI cannot find it anywhere.

Is EveMu project dead?

Hi,

just wanted to know if the EveMu project is officially dead?
The webpage seems to be down including forums, etc.

Is there a way to stay in touch with the developers?
Is a new community around the project planned?

Thanks!

Best regards

Avatar body structure OK on Females but NOT on Males

PROBLEM:
http://imgur.com/xnaURjn
'nuf said

STEPS TO REPRODUCE:

  1. start server, create a new character that is MALE with distinctive muscular look
  2. log in, switch to Captain's Quarters view and inspect the body structure of the avatar, you will see that it is NOT at all what you created in Character creation

WORKAROUND:
There are none, go make a Female, at least they work, in every respect of their body structures.

PROPOSED SOLUTIONS:
I have no freaking clue. Reve was the one doing this, and he'll have to fix it, whenever he returns from his hiatus.

HOWTO compile on Ubuntu 12.04LTS

I don't have an evemu wiki account, and this github project doesn't enable Wiki pages.

So, this is my recipe to get evemu-server compiled. Kudos to burning.rabbit for some code changes and pointers.

  1. Install Ubuntu Precise (12.04LTS) with your favorite method.
  2. Run the following:
apt-get install doxygen
apt-get install libboost-dev
apt-get install libasio-dev
wget https://launchpad.net/ubuntu/+source/cmake/2.8.8-2ubuntu1/+build/3441442/+files/cmake_2.8.8-2ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/cmake-data_2.8.8-2ubuntu1_all.deb
apt-get remove cmake-data cmake
dpkg --install cmake-data_2.8.8-2ubuntu1_all.deb cmake_2.8.8-2ubuntu1_amd64.deb 
wget https://launchpad.net/ubuntu/+source/tinyxml/2.5.3-3/+build/1754900/+files/libtinyxml2.5.3_2.5.3-3_amd64.deb
wget https://launchpad.net/ubuntu/+source/tinyxml/2.5.3-3/+build/1754900/+files/libtinyxml-dev_2.5.3-3_amd64.deb
dpkg --install libtinyxml2.5.3_2.5.3-3_amd64.deb libtinyxml-dev_2.5.3-3_amd64.deb
git clone git://github.com/evemuproject/evemu_server.git
mkdir build
cd build
cmake ../evemu_server
make

Have CMake download dependencies during configuration

It basically means that we could remove the entire dep folder; we'd simply download and unpack the dependencies' sources during configuration phase. I already have it implemented and it works great IMO (you don't have to worry about anything, everything is cared for by CMake automatically), but I wanted to ask for your opinion before pushing it.

So what do you think?

Question - can be used with Apocrypha client(?)

Hello there, sorry cant post on forum, becouse something with registration.
Question: That EvEmu can be used with Apocrypha client? I will use lolpy4 and decompile EvE Aporcypha for use it with customs mods, functions etc... But new clients not fully on py, and cant be decompiled (lolpy4 and some more software get high quality source code, i think it can be compiled again) same as Apocrypha...(or i am miss something?) Yep i can take Apocrypha Server, but here another issue - server seems unstable, broken and useless... So, what is a better way for custom EvE-based-game server? Thanks for advice!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.