Cung cấp tính năng cốt lõi của API máy chủ trò chơi Steam.
Hàm con
Hàm con (member function) cho
ISteamGameServer
được gọi qua hàm accessor dạng global
SteamGameServer()
.
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
Tên | Loại | Mô tả |
steamIDClan | CSteamID | SteamID của nhóm mà bạn muốn liên kết. |
Liên kết máy chủ trò chơi này với nhóm này với mục đích tính toán độ tương thích của người chơi.
Trả về: SteamAPICall_t để dùng với kết quả gọi từ
AssociateWithClanResult_t.
BeginAuthSession
EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
Tên | Loại | Mô tả |
pAuthTicket | const void * | Auth ticket để xác thực. |
cbAuthTicket | int | Kích thước theo byte của auth ticket. Đây phải là kích thước pcbTicket được cung cấp bởi lệnh gọi tạo nên ticket này. |
steamID | CSteamID | SteamID của thực thể đã gửi ticket này. |
Xác thực ticket từ SteamID của thực thể để đảm bảo hợp lệ và chưa tái sử dụng. Lưu ý rằng danh tính không được xác thực cho đến khi nhận callback từ
ValidateAuthTicketResponse_t và giá trị trả về trong callback đó được kiểm là thành công.
Ticket được tạo trên thực thể với
ISteamUser::GetAuthSessionTicket hoặc
GetAuthSessionTicket và rồi cần được cung cấp trên hệ thống mạng để đầu còn lại xác thực.
Điều này ghi nhận cho các callback của
ValidateAuthTicketResponse_t nếu thực thể mất kết nối hoặc hủy ticket. Xem
EAuthSessionResponse để biết thêm thông tin.
Khi kết thúc phiên chơi nhiều người, bạn phải gọi
EndAuthSession.
Trả về: EBeginAuthSessionResultXem thêm: Xác thực người dùng và quyền sở hữuBLoggedOn
bool BLoggedOn();
Kiểm tra xem máy chủ trò chơi đã đăng nhập chưa.
Trả về: bool
true nếu máy chủ trò chơi đã đăng nhập; còn không,
false.
BSecure
bool BSecure();
Kiểm tra xem máy chủ trò chơi có ở chế độ "Secure" (bảo mật) chưa.
Trả về: bool
true nếu máy chủ trò chơi bảo mật; còn không,
false.
Xem thêm: EServerMode,
GSPolicyResponse_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
Tên | Loại | Mô tả |
steamIDUser | CSteamID | SteamID của người dùng. |
pchPlayerName | const char * | Tên của người dùng. |
uScore | uint32 | Điểm số hiện tại của người dùng. |
Cập nhật dữ liệu để hiện trong interface trình duyệt tìm máy chủ và xếp trận cho người dùng hiện đang kết nối tới máy chủ.
LƯU Ý: Phần này là API cũ để xác thực người dùng và không nên trộn lẫn với API mới.
Trả về: bool
true nếu lệnh gọi thành công; còn không
false nếu thất bại (ví dụ,
steamIDUser
không phải là người chơi trên máy chủ hiện tại).
Xem thêm: Xác thực người dùng và quyền sở hữuCancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
Tên | Loại | Mô tả |
hAuthTicket | HAuthTicket | Auth ticket đang hoạt động cần hủy. |
Hủy auth ticket nhận từ
ISteamUser::GetAuthSessionTicket. Nên được gọi khi không còn chơi với thực thể được chỉ định.
Xem thêm: Xác thực người dùng và quyền sở hữuClearAllKeyValues
void ClearAllKeyValues();
Xóa toàn bộ danh sách khóa/giá trị (key/value) được gửi trong truy vấn quy tắc.
Xem thêm: SetKeyValue,
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
Tên | Loại | Mô tả |
steamIDNewPlayer | CSteamID | SteamID của người chơi tìm cách gia nhập. |
Kiểm tra xem có người dùng hiện tại nào không muốn chơi cùng người chơi mới đang tìm cách gia nhập - hoặc ngược lại; dựa trên hệ thống frenemy (bạn thù).
Trả về: SteamAPICall_t để dùng với kết quả gọi từ
ComputeNewPlayerCompatibilityResult_t.
CreateUnauthenticatedUserConnection
CSteamID CreateUnauthenticatedUserConnection();
Tạo người dùng ảo (vd: bot) được xem là đang chơi trên máy chủ, nhưng bỏ qua bước xác thực.
LƯU Ý: Phần này là API cũ để xác thực người dùng và không nên trộn lẫn với API mới.
Trả về: CSteamIDTrả về SteamID cho bot cần theo dõi.
Nên gọi
SendUserDisconnect khi người dùng này rời máy chủ, tương tự quy trình thực hiện cho người dùng thực.
EnableHeartbeats
void EnableHeartbeats( bool bActive );
Tên | Loại | Mô tả |
bActive | bool | Bật (true) hoặc tắt (false) công cụ cập nhật máy chủ tổng. |
Cho máy chủ tổng của Steam biết bạn có muốn hoạt động hay không.
Nếu hàm này được kích hoạt thì máy chủ sẽ giao tiếp với máy chủ tổng, nếu không, các tin nhắn đến sẽ bị phớt lờ và heartbeat sẽ không được gửi.
Xem thêm: SetHeartbeatInterval,
ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
Tên | Loại | Mô tả |
steamID | CSteamID | Thực thể để kết thúc phiên xác thực đang diễn ra. |
Kết thúc phiên xác thực bắt đầu bằng
BeginAuthSession. Nên được gọi khi không còn chơi với thực thể được chỉ định.
Xem thêm: Xác thực người dùng và quyền sở hữuForceHeartbeat
void ForceHeartbeat();
Buộc gửi một heartbeat đến máy chủ tổng của Steam ngay khi có cơ hội tiếp theo.
Thường không cần dùng hàm này.
Xem thêm: EnableHeartbeats,
SetHeartbeatIntervalGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
Tên | Loại | Mô tả |
pTicket | void * | Bộ nhớ đệm nơi auth ticket mới được sao chép vào nếu lệnh gọi thành công. |
cbMaxTicket | int | Kích thước của bộ nhớ đệm được phân bổ cho pTicket . Nên là 1024. |
pcbTicket | uint32 * | Trả về độ dài của ticket thực. |
Truy xuất auth ticket để gửi đến thực thể muốn xác thực bạn.
Sau khi gọi hàm này, bạn có thể gửi ticket đến thực thể, tại đây
ISteamUser::BeginAuthSession được gọi để xác minh tính toàn vẹn của các thực thể này.
Khi tạo ticket để được dùng bởi API Web
ISteamUserAuth/AuthenticateUserTicket, trình gọi nên đợi lệnh callback
GetAuthSessionTicketResponse_t tạo ra từ lệnh gọi API trước khi tìm cách dùng ticket, nhằm đảm bảo ticket đã được truyền đến máy chủ. Nếu lệnh callback không xử lý kịp thời (10 - 20 giây), thì client của bạn sẽ không thể kết nối với Steam, và lệnh gọi AuthenticateUserTicket sẽ thất bại vì không thể xác thực người dùng.
Trả về: HAuthTicketKích hoạt lệnh callback
GetAuthSessionTicketResponse_t.
Handle cho auth ticket. Sau khi tương tác xong với thực thể, bạn phải gọi
CancelAuthTicket trên handle.
Trả về
k_HAuthTicketInvalid nếu lệnh gọi thất bại.
Xem thêm: Xác thực người dùng và quyền sở hữuGetGameplayStats
void GetGameplayStats();
Không dùng nữa - Sẽ được gỡ bỏ trong bản phát hành tương lai của SDK.
Trả về: void
Kích hoạt lệnh callback
GSGameplayStats_t.
GetNextOutgoingPacket
int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
Tên | Loại | Mô tả |
pOut | void * | Trả về gói cần được gửi đi bằng cách sao chép nó vào bộ nhớ đệm này. Gói có thể có kích thước lên đến 16KiB nên hãy phân bổ phù hợp. |
cbMaxOut | int | Kích thước bộ nhớ đệm cung cấp cho pOut , nên là 16 * 1024. |
pNetAdr | uint32 * | Trả về địa chỉ IP mà gói này cần được gửi đến theo thứ tự máy chủ (host), tức là 127.0.0.1 == 0x7f000001. |
pPort | uint16 * | Trả về cổng mà gói cần được gửi qua, theo thứ tự máy chủ (host). |
Nhận gói mà công cụ cập nhật máy chủ tổng cần gửi trên UDP khi trong chế độ GameSocketShare.
LƯU Ý: Chỉ nên gọi hàm này SAU KHI gọi
HandleIncomingPacket cho bất kỳ gói nào đi vào khung hình đó!
LƯU Ý: Hàm này PHẢI được gọi liên tục cho mỗi khung hình đến khi kết quả trả về 0 trong chế độ GameSocketShare.
Có thể bật chế độ GameSocketShare khi gọi
SteamGameServer_Init.
Trả về: int
Độ dài của gói cần được gửi, hoặc 0 nếu không có thêm gói để gửi khung hình này.
GetPublicIP
uint32 GetPublicIP();
Lấy IP công khai của máy chủ dựa theo Steam.
Hữu dụng khi máy chủ nằm sau NAT và bạn muốn quảng cáo IP của nó trong một phòng chờ để các client khác trực tiếp kết nối tới.
Trả về: uint32IP công khai theo thứ tự máy chủ (host), ví dụ 127.0.0.1 == 0x7f000001.
Trả về
0 nếu không xác định được IP.
GetServerReputation
SteamAPICall_t GetServerReputation();
Không dùng nữa - Sẽ được gỡ bỏ trong bản phát hành tương lai của SDK.
Trả về: SteamAPICall_t để dùng với kết quả gọi từ
GSReputation_t.
GetSteamID
CSteamID GetSteamID();
Lấy SteamID của máy chủ trò chơi.
Trả về: CSteamIDHandleIncomingPacket
bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
Tên | Loại | Mô tả |
pData | const void * | Dữ liệu từ gói đang gửi đến. |
cbData | int | Kích thước của pData tính bằng byte. |
srcIP | uint32 | Địa chỉ IP của gói được gửi đến theo thứ tự máy chủ (host), ví dụ 127.0.0.1 == 0x7f000001. |
srcPort | uint16 | Cổng mà gói này được gửi qua, theo thứ tự máy chủ (host). |
Xử lý một gói máy chủ tổng Steam khi trong chế độ GameSocketShare.
Khi trong chế độ GameSocketShare, thay vì ISteamGameServer tạo socket riêng để giao tiếp với máy chủ tổng, hàm này cho phép trò chơi sử dụng socket của nó để chuyển tiếp thông điệp qua lại. Điều này ngăn chúng tôi yêu cầu các nhà điều hành máy chủ mở thêm cổng trong tường lửa.
Hàm này nên được gọi bất cứ khi nào gói bắt đầu bằng 0xFFFFFFFF gửi đến. Mã đó báo hiệu gói dành cho máy của chúng ta.
Tham số IP và cổng được dùng khi bạn chọn ghép kênh socket UDP của máy chủ trò chơi thay vì để công cụ cập nhật máy chủ tổng sử dụng socket của riêng nó.
Trò chơi source engine dùng để giảm tải công việc cho các quản trị viên máy chủ, để họ không phải mở thêm cổng trên tường lửa.
Chỉ
SAU lần gọi lệnh này, bạn mới nên gọi
GetNextOutgoingPacket.
Có thể bật chế độ GameSocketShare khi gọi
SteamGameServer_Init.
Trả về: bool
InitGameServer
bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
Tên | Loại | Mô tả |
unIP | uint32 | Địa chỉ IP định gán. (Nên sắp xếp theo thứ tự máy chủ (host), tức là 127.0.0.1 == 0x7f000001). Bạn có thể dùng INADDR_ANY để gán cho tất cả địa chỉ IPv4 cục bộ. |
usGamePort | uint16 | Cổng mà client sẽ kết nối để chơi. |
usQueryPort | uint16 | Cổng quản lý các nhiệm vụ liên quan đến trình duyệt máy chủ và ping thông tin từ các client. |
unFlags | uint32 | Tổ hợp một hoặc nhiều ServerFlag. |
nGameAppId | AppId_t | AppID của trò chơi trên máy chủ này. |
pchVersionString | const char * | Chuỗi phiên bản thường ở dạng x.x.x.x, và được sử dụng bởi máy chủ tổng để phát hiện khi máy chủ hết hạn. (Chỉ các máy chủ với phiên bản mới nhất sẽ được liệt kê). |
Khởi tạo thực thể của ISteamGameServer. Hàm này được gọi bởi
SteamGameServer_Init, và bạn sẽ thường không cần gọi trực tiếp.
Nếu truyền
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE vào
usQueryPort
sẽ khiến API máy chủ trò chơi sử dụng chế độ "GameSocketShare", có nghĩa là trò chơi sẽ chịu trách nhiệm gửi và nhận gói UDP cho công cụ cập nhật máy chủ tổng.
Nếu chế độ GameSocketShare được sử dụng, thì bạn phải dùng
HandleIncomingPacket và
GetNextOutgoingPacket để tương tác với máy chủ tổng của Steam.
Trả về: bool
true nếu máy chủ trò chơi thành công gán với cổng/IP được cung cấp; còn không,
false để báo lỗi.
LogOff
void LogOff();
Bắt đầu quá trình đăng xuất máy chủ trò chơi ra khỏi Steam.
Trả về: void
Kích hoạt lệnh callback
SteamServerConnectFailure_t.
Kích hoạt lệnh callback
SteamServersConnected_t.
Kích hoạt lệnh callback
SteamServersDisconnected_t.
LogOn
void LogOn( const char *pszToken );
Tên | Loại | Mô tả |
pszToken | const char * | |
Bắt đầu quá trình đăng nhập vào tài khoản máy chủ trò chơi cố định.
Trả về: void
Kích hoạt lệnh callback
SteamServerConnectFailure_t.
Kích hoạt lệnh callback
SteamServersConnected_t.
Kích hoạt lệnh callback
SteamServersDisconnected_t.
Xem thêm: LogOnAnonymousLogOnAnonymous
void LogOnAnonymous();
Đăng nhập vào một tài khoản chung, ẩn danh.
Trả về: void
Kích hoạt lệnh callback
SteamServerConnectFailure_t.
Kích hoạt lệnh callback
SteamServersConnected_t.
Kích hoạt lệnh callback
SteamServersDisconnected_t.
Xem thêm: LogOnRequestUserGroupStatus
bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
Tên | Loại | Mô tả |
steamIDUser | CSteamID | Người dùng có trạng thái nhóm cần kiểm tra. |
steamIDGroup | CSteamID | Nhóm cần kiểm tra. |
Kiểm tra xem người dùng có thuộc về một nhóm Steam đã chỉ định hay không.
Trả về: bool
Kích hoạt lệnh callback
GSClientGroupStatus_t.
true nếu lệnh gọi được gửi thành công đến máy chủ Steam; còn không,
false nếu ta không kết nối tới máy chủ Steam hoặc một người dùng hay nhóm không hợp lệ được cung cấp.
SendUserConnectAndAuthenticate
bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
Tên | Loại | Mô tả |
unIPClient | uint32 | Địa chỉ IP của client đang kết nối vào. Sắp xếp theo thứ tự máy chủ (host), tức là 127.0.0.1 == 0x7f000001. |
pvAuthBlob | const void * | Dữ liệu xác thực do người dùng cung cấp từ lệnh gọi tới ISteamUser::InitiateGameConnection. |
cubAuthBlobSize | uint32 | Kích thước của pvAuthBlob tính bằng byte. |
pSteamIDUser | CSteamID * | Trả về SteamID của người dùng. Không được là NULL. |
Xử lý việc nhận kết nối mới từ một người dùng Steam. Hàm yêu cầu máy chủ Steam xác thực danh tính người dùng, quyền sở hữu ứng dụng, và trạng thái VAC.
Nếu tất cả máy chủ Steam đều ngắt kết nối mạng, hàm này sẽ tự xác thực ticket đã lưu, từ đó giúp xác thực quyền sở hữu và danh tính ứng dụng.
LƯU Ý: Phần này là API cũ để xác thực người dùng và không nên trộn lẫn với API mới.
Trả về: bool
true nếu ticket của người dùng vượt qua các kiểm tra cơ bản; còn không,
false.
Nếu lệnh gọi thành công, đợi lệnh callback
GSClientApprove_t hoặc
GSClientDeny_t để biết đã xác thực người dùng thành công hay thất bại. SteamID trong lệnh callback sẽ khớp với SteamID do lệnh gọi này trả về.
SendUserDisconnect
void SendUserDisconnect( CSteamID steamIDUser );
Tên | Loại | Mô tả |
steamIDUser | CSteamID | SteamID của người dùng đã rời khỏi máy chủ trò chơi. |
Hàm này nên được gọi bất cứ khi nào người dùng rời khỏi máy chủ trò chơi.
Hàm này cho phép Steam theo dõi nội bộ người dùng nào hiện đang ở máy chủ nào, nhằm mục đích ngăn một tài khoản đăng nhập vào nhiều máy chủ và hiển thị ai nay có trên máy chủ, vv.
LƯU Ý: Phần này là API cũ để xác thực người dùng và không nên trộn lẫn với API mới.
SetBotPlayerCount
void SetBotPlayerCount( int cBotplayers );
Tên | Loại | Mô tả |
cBotplayers | int | Số lượng người chơi bot/AI hiện chơi trên máy chủ. |
Đặt số lượng người chơi bot/AI trên máy chủ trò chơi. Giá trị mặc định là 0.
SetDedicatedServer
void SetDedicatedServer( bool bDedicated );
Tên | Loại | Mô tả |
bDedicated | bool | Đây là máy chủ chuyên dụng (true) hay máy chủ kiêm người chơi (false)? |
Đặt làm máy chủ chuyên dụng hoặc máy chủ kiêm người chơi. Mặc định là máy chủ kiêm người chơi.
LƯU Ý: Chỉ có thể đặt trước khi gọi
LogOn hoặc
LogOnAnonymous.
SetGameData
void SetGameData( const char *pchGameData );
Tên | Loại | Mô tả |
pchGameData | const char * | Giá trị "gamedata" mới cần đặt. Không được là NULL hoặc chuỗi rỗng (""). Không thể dài hơn k_cbMaxGameServerGameData. |
Đặt một chuỗi định nghĩa "gamedata" cho máy chủ này, tuy không bắt buộc nhưng nếu đặt thì cho phép người dùng lọc trong interface xếp trận/trình duyệt tìm máy chủ dựa trên giá trị này.
Thường được định dạng theo kiểu danh sách phân tách bằng dấu phẩy hoặc chấm phẩy.
Đừng đặt trừ khi thực sự có thay đổi, chỉ tải lên máy chủ tổng một lần khi được xác nhận.
SetGameDescription
void SetGameDescription( const char *pszGameDescription );
Đặt mô tả trò chơi. Khuyến khích đặt thành tên đầy đủ của trò chơi.
LƯU Ý: Yêu cầu đặt cho tất cả máy chủ trò chơi và chỉ có thể đặt trước khi gọi
LogOn hoặc
LogOnAnonymous.
SetGameTags
void SetGameTags( const char *pchGameTags );
Tên | Loại | Mô tả |
pchGameTags | const char * | Giá trị "gametags" mới cần đặt. Không được là NULL hoặc chuỗi rỗng (""). Không thể dài hơn k_cbMaxGameServerTags. |
Đặt một chuỗi định nghĩa "gametags" cho máy chủ này, tuy không bắt buộc nhưng nếu đặt thì cho phép người dùng lọc trong interface xếp trận/trình duyệt tìm máy chủ dựa trên giá trị này.
Thường được định dạng theo kiểu danh sách phân tách bằng dấu phẩy hoặc chấm phẩy.
Đừng đặt trừ khi thực sự có thay đổi, chỉ tải lên máy chủ tổng một lần khi được xác nhận.
SetHeartbeatInterval
void SetHeartbeatInterval( int iHeartbeatInterval );
Tên | Loại | Mô tả |
iHeartbeatInterval | int | Khoảng thời gian giữa hai lần gửi heartbeat, tính bằng mili giây. Thường nằm trong phạm vi 250-1000. Dùng -1 để sử dụng giá trị mặc định. |
Thay đổi tần suất gửi heartbeat đến máy chủ tổng của Steam.
Thường không cần dùng hàm này.
Xem thêm: EnableHeartbeats,
ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
Tên | Loại | Mô tả |
pKey | const char * | |
pValue | const char * | |
Thêm/cập nhật cặp khóa/giá trị (key/value) cho một quy tắc.
Xem thêm: ClearAllKeyValues,
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
Tên | Loại | Mô tả |
pszMapName | const char * | Tên màn chơi mới cần đặt. Không được là NULL hoặc chuỗi rỗng (""). Không thể dài hơn k_cbMaxGameServerMapName. |
Đặt tên màn chơi để báo cáo trong trình duyệt máy chủ.
SetMaxPlayerCount
void SetMaxPlayerCount( int cPlayersMax );
Tên | Loại | Mô tả |
cPlayersMax | int | Số lượng người chơi tối đa (số liệu mới) được cho phép trên máy chủ này. |
Đặt số lượng người chơi tối đa được cho phép trên máy chủ này cùng lúc.
Giá trị này có thể được thay đổi bất cứ lúc nào.
SetModDir
void SetModDir( const char *pszModDir );
Tên | Loại | Mô tả |
pszModDir | const char * | Thư mục trò chơi cần thiết lập. Không được là NULL hoặc chuỗi rỗng (""). Không thể dài hơn k_cbMaxGameServerGameDir. |
Thiết lập thư mục trò chơi.
Nên cùng là thư mục cài đặt trò chơi. Chỉ tên thư mục, không phải toàn bộ đường dẫn. Ví dụ: "Spacewar".
LƯU Ý: Yêu cầu đặt cho tất cả máy chủ trò chơi và chỉ có thể đặt trước khi gọi
LogOn hoặc
LogOnAnonymous.
SetPasswordProtected
void SetPasswordProtected( bool bPasswordProtected );
Tên | Loại | Mô tả |
bPasswordProtected | bool | Bật (true) hoặc tắt (false) tính năng bảo mật bằng mật khẩu. |
Đặt để máy chủ trò chơi yêu cầu mật khẩu khi người dùng cố kết nối.
SetProduct
void SetProduct( const char *pszProduct );
Tên | Loại | Mô tả |
pszProduct | const char * | Mã định danh độc nhất cho trò chơi. Không được là NULL hoặc chuỗi rỗng (""). |
Đặt mã định danh sản phẩm cho trò chơi. Hàm hiện được sử dụng bởi máy chủ tổng để kiểm tra phiên bản.
Khuyến khích đổi appID của trò chơi thành chuỗi.
LƯU Ý: Yêu cầu đặt cho tất cả máy chủ trò chơi và chỉ có thể đặt trước khi gọi
LogOn hoặc
LogOnAnonymous.
SetRegion
void SetRegion( const char *pszRegion );
Tên | Loại | Mô tả |
pszRegion | const char * | |
Định danh khu vực. Không bắt buộc, giá trị mặc định là chuỗi rỗng, nghĩa là chỉ khu vực "thế giới".
SetServerName
void SetServerName( const char *pszServerName );
Tên | Loại | Mô tả |
pszServerName | const char * | Tên mới máy chủ cần đặt. Không được là NULL hoặc chuỗi rỗng (""). Không thể dài hơn k_cbMaxGameServerName. |
Đặt tên của máy chủ để hiển thị trong trình duyệt máy chủ.
SetSpectatorPort
void SetSpectatorPort( uint16 unSpectatorPort );
Tên | Loại | Mô tả |
unSpectatorPort | uint16 | Cổng để khán giả kết nối. |
Đặt để máy chủ trò chơi cho phép khán giả theo dõi, và cổng nào để họ kết nối. Giá trị mặc định là 0, nghĩa là dịch vụ không được dùng.
SetSpectatorServerName
void SetSpectatorServerName( const char *pszSpectatorServerName );
Tên | Loại | Mô tả |
pszSpectatorServerName | const char * | Tên cần đặt cho máy chủ khán giả. Không được là NULL hoặc chuỗi rỗng (""). Không thể dài hơn k_cbMaxGameServerMapName. |
Đặt tên cho máy chủ khán giả. Chỉ được dùng nếu cổng khán giả là giá trị khác 0.
UserHasLicenseForApp
EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
Tên | Loại | Mô tả |
steamID | CSteamID | SteamID của người dùng gửi auth ticket. |
appID | AppId_t | AppID DLC để kiểm tra người dùng có sở hữu không. |
Kiểm tra xem người dùng có sở hữu một phần cụ thể của
Nội dung tải thêm (DLC).
Chỉ có thể gọi sau khi gửi auth ticket của người dùng đến
BeginAuthSession.
Trả về: EUserHasLicenseForAppResultXem thêm: Xác thực người dùng và quyền sở hữuWasRestartRequested
bool WasRestartRequested();
Kiểm tra xem máy chủ tổng có báo hết hạn hay không.
Đổi lại
false sau khi gọi hàm này.
Trả về: bool
true nếu máy chủ tổng muốn máy chủ trò chơi này cập nhật và khởi động lại; còn không,
false.
Callback
Đây là các callback có thể kích hoạt bằng cách gọi
SteamAPI_RunCallbacks. Rất nhiều trong số này sẽ được kích hoạt trực tiếp để phản hồi lại hàm con của
ISteamGameServer
.
AssociateWithClanResult_t
Gửi khi máy chủ trò chơi tìm cách liên kết với một nhóm Steam.
Tên | Loại | Mô tả |
m_eResult | EResult | Kết quả của thao tác. Giá trị khả thi:
|
Hàm liên quan: AssociateWithClanComputeNewPlayerCompatibilityResult_t
Được gửi khi máy chủ trò chơi kiểm tra xem người chơi mới có phù hợp với máy chủ không dựa trên hệ thống frenemy (bạn thù).
Tên | Loại | Mô tả |
m_eResult | EResult | Kết quả của thao tác. Giá trị khả thi:
|
m_cPlayersThatDontLikeCandidate | int | Số người chơi hiện tại không thích chơi với người chơi được chỉ định. |
m_cPlayersThatCandidateDoesntLike | int | Số người chơi trên máy chủ đó mà người chơi được chỉ định không muốn chơi cùng. |
m_cClanPlayersThatDontLikeCandidate | int | Số người chơi trong nhóm Steam liên kết không thích chơi với người chơi đó. |
m_SteamIDCandidate | CSteamID | SteamID của người chơi được chỉ định. |
Hàm liên quan: ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
Không còn dùng - Thay vào đó sử dụng
ISteamGameServerStats.
Tên | Loại | Mô tả |
m_SteamID | uint64 | Không còn dùng |
m_pchAchievement | char[128] | Không còn dùng |
m_bUnlocked | bool | Không còn dùng |
GSClientApprove_t
Một client đã được duyệt cho kết nối tới máy chủ trò chơi này.
Tên | Loại | Mô tả |
m_SteamID | CSteamID | SteamID của người dùng đang muốn kết nối. |
m_OwnerSteamID | CSteamID | SteamID sở hữu trò chơi, nó sẽ khác với m_SteamID nếu trò chơi được truy cập qua Chia sẻ gia đình Steam. |
GSClientDeny_t
Gọi khi người dùng bị từ chối kết nối tới máy chủ trò chơi này.
Tên | Loại | Mô tả |
m_SteamID | CSteamID | SteamID của người dùng đã tìm cách kết nối. |
m_eDenyReason | EDenyReason | Lý do người chơi bị từ chối. |
m_rgchOptionalText | char[128] | Đoạn tin nhắn giải thích lý do từ chối (không bắt buộc). Thường không dùng ngoài mục đích ghi chú. |
GSClientGroupStatus_t
Gọi khi đã nhận được trạng thái nhóm của người dùng.
Tên | Loại | Mô tả |
m_SteamIDUser | CSteamID | Người dùng mà ta đã truy vấn trạng thái nhóm. |
m_SteamIDGroup | CSteamID | Nhóm mà ta truy vấn. |
m_bMember | bool | Người dùng có phải thành viên nhóm (true) hay không (false)? |
m_bOfficer | bool | Người dùng có phải ủy viên trong nhóm (true) hay không (false)? Giá trị sẽ không bao giờ là true nếu m_bMember là false. |
Hàm liên quan: RequestUserGroupStatusGSClientKick_t
Gọi khi máy chủ trò chơi nên đuổi người dùng.
Tên | Loại | Mô tả |
m_SteamID | CSteamID | SteamID của người chơi nên bị đuổi. |
m_eDenyReason | EDenyReason | Lý do người chơi bị đuổi. |
GSGameplayStats_t
Không còn dùng - Gọi khi thông tin số liệu thống kê về trò chơi đã được truy vấn bằng
GetGameplayStats.
Tên | Loại | Mô tả |
m_eResult | EResult | Kết quả của thao tác. |
m_nRank | int32 | Thứ hạng tổng quát của máy chủ (thấp nhất là 0). |
m_unTotalConnects | uint32 | Tổng số lượng client đã từng kết nối tới máy chủ. |
m_unTotalMinutesPlayed | uint32 | Tổng số phút từng được chơi trên máy chủ. |
Hàm liên quan: GetGameplayStatsGSPolicyResponse_t
Nhận khi máy chủ trò chơi yêu cầu được hiển thị là bảo mật (bảo mật bằng VAC)
Tên | Loại | Mô tả |
m_bSecure | uint8 | Máy chủ hiện được thiết lập bảo mật (true) hay không bảo mật (false)? |
GSReputation_t
Không còn dùng - Gọi khi danh tiếng máy chủ trò chơi đã được truy vấn.
Lệnh cấm ban hành từ máy chủ tổng là theo IP, nên có thể bị cấm kể cả khi điểm số tốt nếu có một máy chủ xấu trên cổng khác.
Thông tin này có thể được sử dụng để xác định máy chủ nào xấu.
Tên | Loại | Mô tả |
m_eResult | EResult | Kết quả của thao tác. |
m_unReputationScore | uint32 | Điểm danh tiếng của máy chủ trò chơi. |
m_bBanned | bool | Liệu máy chủ có bị cấm khỏi máy chủ tổng của Steam (true) hay không (false)? |
m_unBannedIP | uint32 | IP của máy chủ bị cấm. Chỉ đặt nếu m_bBanned là true. |
m_usBannedPort | uint16 | Cổng của máy chủ bị cấm. Chỉ đặt nếu m_bBanned là true. |
m_ulBannedGameID | uint64 | GameID của trò chơi trên máy chủ bị cấm. Chỉ đặt nếu m_bBanned là true. |
m_unBanExpires | uint32 | Thời điểm hết hạn cấm, cung cấp ở định dạng giờ Unix (số giây kể từ ngày 1/1/1970). Chỉ đặt nếu m_bBanned là true. |
Hàm liên quan: GetServerReputationHằng số
Đây là các hằng số được định nghĩa để dùng với ISteamGameServer.
Tên | Loại | Giá trị | Mô tả |
k_unServerFlagActive | uint32 | 0x01 | Máy chủ trò chơi có người dùng đang chơi. |
k_unServerFlagDedicated | uint32 | 0x04 | Máy chủ trò chơi này là loại chuyên dụng. |
k_unServerFlagLinux | uint32 | 0x08 | Máy chủ trò chơi này đang chạy trên Linux. |
k_unServerFlagNone | uint32 | 0x00 | Máy chủ trò chơi này không có flag. |
k_unServerFlagPassworded | uint32 | 0x10 | Máy chủ trò chơi này có mật khẩu bảo vệ. |
k_unServerFlagPrivate | uint32 | 0x20 | Máy chủ trò chơi này không nên có trên máy chủ tổng và sẽ không bắt buộc xác minh người dùng kết nối đến máy chủ đó. Hữu ích khi chạy một máy chủ mà client có thể không thể kết nối với mạng Internet nhưng bạn muốn cho các máy đó chơi được (ví dụ qua mạng LAN). |
k_unServerFlagPrivate | uint32 | 0x02 | Máy chủ trò chơi muốn được bảo mật VAC. |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | Sử dụng với SteamGameServer_Init để bật chế độ GameSocketShare. |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |