Jump to content

Zackman

Lead Developers [LDEV]
  • Posts

    4038
  • Joined

  • Donations

    0.00 USD 

Posts posted by Zackman

  1. bhuges, i have an old tool here called "Travelmate", which was (is) a windows tool for EnB-route calculation.

    Its taking also wormhole-skill/level into consideration for calculation.

    If you clue me into your algo u using for calculation, im willing to develope a new windows tool.

  2. hard to read sentences without any puntuation and commas i dont know why this has been changed i think its because they are working on mobs as well some1 might have sent in some infos about aggro or not they might change this now to reflect more live.

  3. ...4 pages for such simple thing...in my books :)

    I dont talk about killsteal or mobsteal, i am talking about fairplay and common sense, so here is what i do:

    If i jump in and there are people already around, i ask for an invite.

    If the group is full or they dont want to invite me, i ask for "share" (left spawn, right spawn).

    If all fails, we have a problem (never happend so far).

    Boss/rare mobs:

    If a group is camping, they have the "first option" in my book.

    If they "overcamp", i ask for a break to let our group camp a bit as well.

    If all fails, we have a problem - the last step then is "most damage kill" then (intentional damage race).

    This last step is caused due to "unfair" acting of the overcamping group, so no need to complain (house made problem).

    Hunting general:

    Whenever i see a player around, i watch the mob i have targetted, esp. the health.

    If the health is not 100%, i wont' shoot the mob !

    Before i "take" this mob, i also check if there are already missiles on the way.

    If both is no, i go after this mob.

    This has to do with fair play and common sense.

    This is an mmo-server and a consequence is that more people will hunt the same mob/same spot.

    Its a MUST to arrange with others and it will work 95% of the time, if you act fair and nice - my experience.

    Yes, it happend to me that i was accidiently shooting an "owned" mob. I immediatly stop firing then and send a tell to the other player (Sorry, didnt see you, dont want to ksing)

    If i was doing more damage with one shot (low mob, hunting for eg. a low level device to map), i open the corpse and give the loot to the other player !!

    It happend also to me, that others shoot "my mob". If they are sorry and act fair (no repeating), all is fine.

    If they are jerks (happend as well), i will response appropiate...

  4. I think the problem is more based on the "Unknown Opcode"-Problem.

    Looks like the proxy is dropping the connection while receiving opcodes he can't handle.

    As a result, the client is losing communication.

    Sometimes, the proxy seems to pass some opcodes to the client, which the client can't handle

    or cant handle correct at this point, then it "hard"-crashes to desktop.

    I see unknown opcodes after gating-crashs more often, but yesterday it happend even in space.

    You reconnect...you CTD again, second relogin normally works.

    It looks like it is also dependent on the (higher) serverpopulation.

    I will write donw the opcode next time when i have the chance to see them, cuz the proxy will shutdown as well shortly after the CTD.

  5. Hi Team !

    First of all, thank you for all your work in your free time and effort to bring back this great game!

    I try to word this carefully so it doesnt appear as a smart-ass posting (not intended), all i want is to contribute a little bit.

    I am a developer by profession and i also worked on emulation projects myself. My strength is coding and even more SQL/MySQL.

    I have no intention to file an application since i do not have the time due to my business (unfortunatly).

    While the server is down i had some time to "investigate" an issue i realized - so i looked up the code.

    It is a bout the loading time for the vendor/market items which takes a very long time - too long imho.

    I stumbled across some code that could be optimized a big deal, missing sql-indexes and an ugly/big Switch in the code (switch/case).

    itemBaseSQL.cpp, the FOR-IF loop beginning at Line 101.

    The MySQL query is querying the item_base, within the loop it is querying diff. item type tables (missiles, engines, shields etc) constantly over and over again, depending on the item_type (case switch).

    This will fire a huge amount of childprocesses up on the MySQL server, it will initialize the query queue over and over and almost every single item in the "master query" is causing many "isolated" child-querys in the switch again.

    This is a huge performance issue and resource waste.

    I changed the query a big time to this:

    Index-changes:
    Table item_effect_container
    Index-name : item_id    Field: itemID
    Table item_effects
    Index-name : item_id    Field: itemID
    Table item_ammo
    Index-name : ammo_type_id    Field: ammo_type_id
    Table item_projectile
    Index-name : ammo_type_id    Field: ammo_type_id
    

    This query is executing in 0.7 seconds.

    This will return in a bigger result (like 100 fields) which could be still cut down ( i was lazy, didnt select only needed fields).

    The memory consumption of this query is WAY lower then the current code - with 4293 items in the tables its about 3,2 MB RAM for the query.

    If you pimp the MySQL-Server and spend some more Key-Cache, Table-Cache and (important) QUERY!-Cache, the market will be load almost every time from the servers RAM which will result in a huge performance-boost!

    There are indexes missing in the tables. Without some changes the query took 6 seconds, with changed indexes it was 0.7 sec.

    Index-changes:
    Table item_effect_container
    Index-name : item_id    Field: itemID
    Table item_effects
    Index-name : item_id    Field: itemID
    Table item_ammo
    Index-name : ammo_type_id    Field: ammo_type_id
    Table item_projectile
    Index-name : ammo_type_id    Field: ammo_type_id
    

    The switch in the code could stay, switching on the diff. item_types, but the querys in the case-blocks can be deleted and simply query the according (item based) fields - a NULL-check is needed of course.

    Another thing i realized is, there are no MySQL-escape-sequence-capsulating in most ( all? ) querys.

    This could cause problems on certain characters within querys.

    This posting is intended to contribute to the project, please do not understand it in any other way.

    I hope it helps a bit.

    PS.:

    Didn't find a "Developer" Section here, so i hope this board is fine for the topic.

    • Upvote 1
  6. Hi,

    not sure when the server will be back up again - one of the other devs is rolling the SQL player database back so ppl can get their chars back but it looks like he's having trouble with it.

    Yes we do use SQL and yes it's more than good enough to run our MMO :) Although obviously it isn't just SQL, the database is just one component of the server - we use it for content and storing player data.

    TB

    Is there an IRC-Channel for EnB ?

  7. LOL,

    well in my case I see the net7Proxy.exe launch ENB and then ENB crashes to desktop with no message.

    I think its an issue with Direct3D not beeing able to run and ENB just doesn't handle this well (doesn't display any appropriate message when it crashes to desktop)

    Rightclick "My Computer", choose Eventlog, System and see what in there right after the crash.

    Most times, this will help very much to determine the cause of a CTD.

    So the result of my expiriment...

    Question, can i run multiple ENB clients on one computer via Virtual PC's

    Answer, Not with Windows VPC (no direct3d) perhaps with VMWARE (expirimental direct3d support), but i havent tried it yet.

    VMWare:

    Workstation 6.5 has experimental Dx8 support, but workstation isnt free.

    (You can also enable it in Vmware-Player, its hidden. You can Google the How-To)

    VirtualBox (Sun):

    Also DirectX Support and free.

    Advise:

    Running 2 EnB Clients from VMs will slow down the overall performance (also the host) cuz the clients are using the physical gfx card, emulating an isolated software gfx with an DX layer.

    The performance will be shitty !

    Running EnB in ONE VM will be ok (20~ish fps).

    Since EnB is older, grap yourself an old computer with a small DX8 card and 2 GHz CPU, this will do the job.

    MULTIBOXING FOR THE WIN ! :D

    I had 4 toons similar running on live....this will train your personal multitasking skills :P

  8. Checked my eventlog, has to do with some files missing.

    There is obv. a reference to the Visual C++ frame i once had on my system, now the system is trying to load files from this (deinstalled) package.

    Oh f*ck Microcrap..i hate you for unclean left overs... (i am normally on linux).

    Anyway...will report back.

×
×
  • Create New...