AccountServer

From Project: Ouroboros
(Redirected from Accountserver)
Jump to navigation Jump to search

AccountServer handles all inventory-related queries and reads processed payment information. PlaySpan is the original payment backend used before NCSoft shut down City of Heroes.

AccountServer is also responsible for directing the transfer of player characters (Entities) between shards.

Configuration

account_server.cfg

ShardName
  ShardName Paragon
  ShardId 1
  Address 127.0.0.1
  NoXferOut
  NoXferIn
  XferDestinations None
ShardEnd
PlayNCAdminWebPageSecretKey Paragon
MtxEnvironment Paragon
MtxSecretKey Paragon
MtxIOThreads 1
SqlDbName cohacc
SqlLogin "Driver={SQL Server Native Client 11.0};server=localhost;database=cohacc;trusted_connection=Yes;"
CatalogTimeStampTestOffsetDays 0
clientAuthTimeout 1800
ShardXfersDayMemory 14
ShardXfersAllowedInMemory 0

Database Schema

An SQL dump can be found under Source\Assets\DbSchemas.

Table Structures

Columns are nullable unless denoted by Primary Key or Non Nullable.

account

Column Name Data Type Attributes
auth_id int Primary Key
name varchar(14)
loyalty_bits binary(16)
last_loyalty_point_count smallint
loyalty_points_spent smallint
last_email_date smalldatetime
last_num_emails_sent smallint
free_xfer_date smalldatetime

game_log

Column Name Data Type Attributes
order_id uniqueidentifier Primary Key, Foreign Key to game_transactions.order_id
auth_id int Foreign Key to account.auth_id, Not Nullable
sku_id char(8) Foreign Key to product.sku_id, Not Nullable
transaction_date datetime
shard_id tinyint
ent_id int
granted int
claimed int
csr_did_it bit
parent_order_id uniqueidentifier Foreign Key to game_transactions.order_id, Not Nullable
saved int

game_transactions

Column Name Data Type Attributes
order_id uniqueidentifier Primary Key
auth_id int Foreign Key to account.auth_id, Not Nullable
sku_id char(8) Foreign Key to product.sku_id, Not Nullable
transaction_date datetime
shard_id tinyint
ent_id int
granted int
claimed int
csr_did_it bit
parent_order_id uniqueidentifier Foreign Key to game_transactions.order_id, Not Nullable

inventory

Column Name Data Type Attributes
auth_id int Foreign Key to account.auth_id, Not Nullable
sku_id char(8) Foreign Key to product.sku_id, Not Nullable
granted_total int
claimed_total int
saved_total int
expires smalldatetime

mtx_log

Column Name Data Type Attributes
order_id uniqueidentifier Primary Key, Foreign Key to game_transactions.order_id
auth_id int Foreign Key to account.auth_id, Not Nullable
sku_id char(8) Foreign Key to product.sku_id, Not Nullable
transaction_date datetime
quantity int
points int

product

Column Name Data Type Attributes
sku_id char(8) Primary Key
name varchar(128)
product_type_id int Foreign Key to product_type.product_type_id, Not Nullable
grant_limit int
expiration_seconds int

product_type

Column Name Data Type Attributes
product_type_id int Primary Key
name varchar(128) Not Nullable

Stored Procedures

SP_add_game_transaction

SP_add_micro_transaction

SP_add_multi_game_transaction

SP_find_or_create_account

SP_read_unsaved_game_transactions

SP_revert_game_transaction

SP_save_game_transaction

SP_update_account

Table-Valued Parameters

TVP_game_transaction

Development Notes

[2:14 PM] Searge: nice, you can also get all sku by just changing some code, int AccountGetStoreProductCount2(AccountInventorySet* invSet, const AccountProduct* pProd, bool bActive) in AccountData.c could always return 1
[2:39 PM] Searge: @Pazaz the loyalty bits set by the client when you take all of them are set to 0xFFFFFFFF7FE00F000000000000000000 in the database