EvEmu-Project / evemu_Crucible

Emulator for EvE Online's Crucible expansion
https://evemu.dev
168 stars 65 forks source link

Starting a corporation breaks the players ability to purchase anything on the market #273

Closed OperationDx closed 2 months ago

OperationDx commented 11 months ago

Describe the bug Bug - Starting a corporation breaks the players ability to purchase anything on the market.

To Reproduce Steps to reproduce the behavior: Open EVE menu (N) Select social tab in the drop down menu then select corporation. In the new window create a new corporation. After completing this task fly to a station with items on the market or just open the local market. Try and purchase anything on the market. After hitting buy nothing happens.

Note: The market is much faster after you make a corporation but you can not buy anything.

Expected behavior Starting a corporation should not stop the players ability to use the in game market.

Screenshots Corp

System Details (please complete the following information):

Additional context None at this time

OperationDx commented 11 months ago

When player creates a corporation transferring ISK into different wallets does not work.

d10sfan commented 10 months ago

The buy not working seems to be because of:

02:03:27 E Client::CallReq: Unable to find method to handle call to: marketProxy::PlaceCharOrder

02:03:27 E Client::CallReq: marketProxy::PlaceCharOrder candidates: 

    (PyInt*,PyInt*,PyFloat*,PyInt*,PyInt*,PyInt*,std::optional<PyInt*>,PyInt*,PyInt*,PyBool*,std::optional<PyRep*>)

Does not match parameters: 

    (PyInt*,PyInt*,PyFloat*,PyInt*,PyInt*,PyInt*,PyNone*,PyInt*,PyInt*,PyInt*,PyNone*)

02:03:29 [Service] account::GetCashBalance()

I've pushed up a PR that fixes the PlaceCharOrder, since the useCorp is a PyInt if the char has a corp wallet. Note that buying with a corp wallet does not look to be supported at this time, from this code in this project: call.client->SendErrorMsg("Corporation Market transactions are not available at this time.");, but this should fix the issue of not being able to buy anything after starting a corp.

I noticed the corp window dosen't display properly, which could point to something not being implemented, that may need its own issue if that's re-producible.

EXCEPTION #6 logged at  09/01/2023 20:58:35 

Caught at:

/common/lib/bluepy.py(86) CallWrapper

/../carbon/common/script/sys/servicemanager.py(780) MollycoddledUthread

Thrown at:

/../carbon/common/script/sys/servicemanager.py(777) MollycoddledUthread

/client/script/ui/shared/neocom/corporation/base_corporation_ui.py(117) OnSessionChanged

/client/script/ui/shared/neocom/corporation/base_corporation_ui.py(210) ResetWindow

/client/script/ui/shared/neocom/corporation/base_corporation_ui.py(217) Show

/client/script/ui/shared/neocom/corporation/base_corporation_ui.py(150) GetWnd

/client/script/ui/shared/neocom/corporation/base_corporation_ui.py(307) Initialize

/../carbon/client/script/ui/primitives/base.py(141) __init__

/client/script/ui/shared/neocom/corporation/corp_ui_member_find.py(842) init

/client/script/ui/shared/neocom/corporation/corp_ui_member_find.py(104) __init__

/common/script/sys/rowset.py(1138) __len__

/../carbon/common/script/net/objectcallgpcs.py(683) __getattr__

        attribute = 'realRowCount'

        self = <RemoteObject:N=888444:12>

        pa = {}

AttributeError: realRowCount

Thread Locals:  session was <Session: (sid:6707395562437566369, clientID:0, mutating:0, locationid:60004450, corprole:0xffffe07ffffff81L, userid:1, languageID:EN, role:0x62f8000280c41000L, charid:90000001, address:192.168.0.148:55836, userType:30, sessionType:5, regionid:10000016, constellationid:20000204, warfactionid:0, corpid:98000000, stationid:60004450, stationid2:60004450, worldspaceid:60004450, solarsystemid2:30001392, hqID:60004450, baseID:60004450, rolesAtAll:0xffffe07ffffff81L, rolesAtHQ:0xffffe07ffffff81L, rolesAtBase:0xffffe07ffffff81L, rolesAtOther:0xffffe07ffffff81L, genderID:0, bloodlineID:2, raceID:1, corpAccountKey:1000)>

EXCEPTION END
d10sfan commented 10 months ago

The second part about not being able to send money to a corp looks to be this:

01:16:07 E Client::CallReq: Unable to find method to handle call to: account::GiveCash

01:16:07 E Client::CallReq: account::GiveCash candidates: 

    (PyInt*,PyInt*,std::optional<PyWString*>)

    (PyInt*,PyFloat*,std::optional<PyWString*>)

Does not match parameters: 

    (PyInt*,PyFloat*,PyString*)

I've pushed up another PR that fixes the GiveCash function not working.

d10sfan commented 10 months ago

If you try the latest from staging, my changes have been merged, so these should be fixed.

OperationDx commented 10 months ago

Thank you for your efforts d10sfan I appreciate it.

jdhirst commented 2 months ago

Closing as fixed