Init
This commit is contained in:
84
Samples/RoomsBrowserGFx3/Resources/Accounts_RakNet.as
Normal file
84
Samples/RoomsBrowserGFx3/Resources/Accounts_RakNet.as
Normal file
@ -0,0 +1,84 @@
|
||||
import flash.external.*;
|
||||
|
||||
loginButton.addEventListener("click", this, "Login");
|
||||
function Login()
|
||||
{
|
||||
ExternalInterface.call("f2c_Login", usernameTextInput.text, passwordTextInput.text);
|
||||
}
|
||||
|
||||
|
||||
registerAccountButton.addEventListener("click", this, "registerAccount");
|
||||
function registerAccount()
|
||||
{
|
||||
ExternalInterface.call("f2c_RegisterAccount", usernameTextInput.text, passwordTextInput.text);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Client_Login", this, c2f_Client_Login);
|
||||
function c2f_Client_Login(resultCode:String):Void
|
||||
{
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
// Save this account
|
||||
ExternalInterface.call("f2c_SaveProperty", "DefaultUsername", usernameTextInput.text);
|
||||
ExternalInterface.call("f2c_SaveProperty", "DefaultPassword", passwordTextInput.text);
|
||||
|
||||
// Goto logged in screen
|
||||
gotoAndStop("Lobby");
|
||||
}
|
||||
else
|
||||
{
|
||||
// L2RC_Client_Login_HANDLE_NOT_IN_USE_OR_BAD_SECRET_KEY
|
||||
// L2RC_Client_Login_EMAIL_ADDRESS_NOT_VALIDATED
|
||||
// L2RC_Client_Login_CDKEY_STOLEN
|
||||
// L2RC_Client_Login_BANNED
|
||||
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Client_RegisterAccount", this, c2f_Client_RegisterAccount);
|
||||
function c2f_Client_RegisterAccount(resultCode:String):Void
|
||||
{
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
// Try to login with this account now
|
||||
ExternalInterface.call("f2c_Login", usernameTextInput.text, passwordTextInput.text);
|
||||
}
|
||||
else
|
||||
{
|
||||
// L2RC_PROFANITY_FILTER_CHECK_FAILED
|
||||
// L2RC_Client_RegisterAccount_HANDLE_ALREADY_IN_USE
|
||||
// L2RC_Client_RegisterAccount_REQUIRES_CD_KEY
|
||||
// L2RC_Client_RegisterAccount_CD_KEY_NOT_USABLE
|
||||
// L2RC_Client_RegisterAccount_CD_KEY_NOT_USABLE
|
||||
// L2RC_Client_RegisterAccount_CD_KEY_STOLEN
|
||||
// L2RC_Client_RegisterAccount_CD_KEY_ALREADY_USED
|
||||
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_LoadProperty_DefaultUsername", this, c2f_LoadProperty_DefaultUsername);
|
||||
ExternalInterface.addCallback("c2f_LoadProperty_DefaultPassword", this, c2f_LoadProperty_DefaultPassword);
|
||||
|
||||
// Ask for last used account
|
||||
function FillInUsernameAndPassword()
|
||||
{
|
||||
ExternalInterface.call("f2c_LoadProperty", "DefaultUsername", "c2f_LoadProperty_DefaultUsername");
|
||||
ExternalInterface.call("f2c_LoadProperty", "DefaultPassword", "c2f_LoadProperty_DefaultPassword");
|
||||
}
|
||||
|
||||
|
||||
function c2f_LoadProperty_DefaultUsername(property:String):Void
|
||||
{
|
||||
usernameTextInput.text=property;
|
||||
}
|
||||
|
||||
function c2f_LoadProperty_DefaultPassword(property:String):Void
|
||||
{
|
||||
passwordTextInput.text=property;
|
||||
}
|
||||
|
||||
FillInUsernameAndPassword();
|
||||
|
||||
stop();
|
||||
36
Samples/RoomsBrowserGFx3/Resources/ConnectToServer_RakNet.as
Normal file
36
Samples/RoomsBrowserGFx3/Resources/ConnectToServer_RakNet.as
Normal file
@ -0,0 +1,36 @@
|
||||
import flash.external.*;
|
||||
|
||||
connectToServerButton.addEventListener("click", this, "connectToServer");
|
||||
ExternalInterface.addCallback("c2f_connectToServer_callback", this, c2f_connectToServer_callback);
|
||||
function connectToServer()
|
||||
{
|
||||
ExternalInterface.call("f2c_ConnectToServer", ipAddressTextInput.text, portTextInput.text, "c2f_connectToServer_callback");
|
||||
}
|
||||
|
||||
function c2f_connectToServer_callback(callSucceeded : Boolean)
|
||||
{
|
||||
if (callSucceeded==false)
|
||||
gotoAndStop("Main");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_NotifyConnectionAttemptToServerSuccess", this, c2f_NotifyConnectionAttemptToServerSuccess);
|
||||
function c2f_NotifyConnectionAttemptToServerSuccess():Void
|
||||
{
|
||||
gotoAndStop("Accounts_RakNet");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_NotifyConnectionAttemptToServerFailure", this, c2f_NotifyConnectionAttemptToServerFailure);
|
||||
function c2f_NotifyConnectionAttemptToServerFailure(resultCode:String, systemAddress:String):Void
|
||||
{
|
||||
// Result codes are:
|
||||
// CONNECTION_ATTEMPT_FAILED
|
||||
// ALREADY_CONNECTED
|
||||
// NO_FREE_INCOMING_CONNECTIONS
|
||||
// RSA_PUBLIC_KEY_MISMATCH
|
||||
// CONNECTION_BANNED
|
||||
// INVALID_PASSWORD
|
||||
trace(resultCode);
|
||||
gotoAndStop("Main");
|
||||
}
|
||||
|
||||
stop();
|
||||
64
Samples/RoomsBrowserGFx3/Resources/CreateRoom.as
Normal file
64
Samples/RoomsBrowserGFx3/Resources/CreateRoom.as
Normal file
@ -0,0 +1,64 @@
|
||||
import flash.external.*;
|
||||
|
||||
ExternalInterface.addCallback("c2f_QueryPlatform_CreateRoom_Callback", this, c2f_QueryPlatform_CreateRoom_Callback);
|
||||
ExternalInterface.call("f2c_QueryPlatform","c2f_QueryPlatform_CreateRoom_Callback");
|
||||
|
||||
function c2f_QueryPlatform_CreateRoom_Callback(platform:String):Void
|
||||
{
|
||||
if (platform=="RakNet")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
lanGameCheckbox.visible=false;
|
||||
roomMembersCanInviteCheckbox.visible=false;
|
||||
}
|
||||
}
|
||||
|
||||
cancelButton.addEventListener("click", this, "Cancel");
|
||||
function Cancel()
|
||||
{
|
||||
gotoAndStop("Lobby");
|
||||
}
|
||||
|
||||
okButton.addEventListener("click", this, "CreateRoom");
|
||||
function CreateRoom()
|
||||
{
|
||||
|
||||
ExternalInterface.call("f2c_CreateRoom",
|
||||
[roomNameTextInput.text,
|
||||
mapNameTextInput.text,
|
||||
Number(publicSlotsTextInput.text),
|
||||
Number(reservedSlotsTextInput.text),
|
||||
hiddenFromSearchesCheckbox.selected,
|
||||
roomMembersCanInviteCheckbox.selected,
|
||||
lanGameCheckbox.selected
|
||||
]);
|
||||
}
|
||||
|
||||
// Duplicated
|
||||
ExternalInterface.addCallback("c2f_CreateRoom", this, c2f_CreateRoom);
|
||||
function c2f_CreateRoom(resultCode:String, isLanGame:Boolean):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
if (isLanGame)
|
||||
{
|
||||
gotoAndStop("InGame");
|
||||
}
|
||||
else
|
||||
{
|
||||
gotoAndStop("InRoom");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_CreateRoom failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_CREATE_ROOM_UNKNOWN_TITLE,
|
||||
REC_CREATE_ROOM_CURRENTLY_IN_QUICK_JOIN,
|
||||
REC_CREATE_ROOM_CURRENTLY_IN_A_ROOM,
|
||||
*/
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,8 @@
|
||||
import flash.external.*;
|
||||
|
||||
ExternalInterface.addCallback("c2f_NotifyServerConnectionLost", this, c2f_NotifyServerConnectionLost);
|
||||
function c2f_NotifyServerConnectionLost(reason:String):Void
|
||||
{
|
||||
trace("Server connection lost. Reason=" + reason);
|
||||
gotoAndStop("Main");
|
||||
}
|
||||
589
Samples/RoomsBrowserGFx3/Resources/InRoom.as
Normal file
589
Samples/RoomsBrowserGFx3/Resources/InRoom.as
Normal file
@ -0,0 +1,589 @@
|
||||
import flash.external.*;
|
||||
|
||||
function f2c_LeaveRoom()
|
||||
{
|
||||
ExternalInterface.call("f2c_LeaveRoom");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_LeaveRoom", this, c2f_LeaveRoom);
|
||||
function c2f_LeaveRoom(resultCode:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_LeaveRoom failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_LEAVE_ROOM_UNKNOWN_ROOM_ID,
|
||||
REC_LEAVE_ROOM_CURRENTLY_IN_QUICK_JOIN,
|
||||
REC_LEAVE_ROOM_NOT_IN_ROOM,
|
||||
*/
|
||||
}
|
||||
|
||||
gotoAndStop("CreateRoom");
|
||||
}
|
||||
inviteFriendButton.addEventListener("click", this, "f2c_SendInvite");
|
||||
function f2c_SendInvite()
|
||||
{
|
||||
ExternalInterface.call("f2c_SendInvite", playerNameTextInput.text,false);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_SendInvite", this, c2f_SendInvite);
|
||||
function c2f_SendInvite(resultCode:String, inviteeName:String, inviteToSpectatorSlot:Boolean ):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_SendInvite failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_SEND_INVITE_UNKNOWN_ROOM_ID,
|
||||
REC_SEND_INVITE_INVITEE_ALREADY_INVITED,
|
||||
REC_SEND_INVITE_CANNOT_PERFORM_ON_SELF,
|
||||
REC_SEND_INVITE_INVITOR_ONLY_MODERATOR_CAN_INVITE, // INVITE_MODE_MODERATOR_ONLY
|
||||
REC_SEND_INVITE_INVITOR_LACK_INVITE_PERMISSIONS, // Any other INVITE_MODE
|
||||
REC_SEND_INVITE_INVITOR_NOT_IN_ROOM,
|
||||
REC_SEND_INVITE_NO_SLOTS,
|
||||
REC_SEND_INVITE_INVITEE_ALREADY_IN_THIS_ROOM,
|
||||
REC_SEND_INVITE_INVITEE_BANNED,
|
||||
REC_SEND_INVITE_RECIPIENT_NOT_ONLINE,
|
||||
REC_SEND_INVITE_ROOM_LOCKED,
|
||||
*/
|
||||
}
|
||||
}
|
||||
startSpectatingButton.addEventListener("click", this, "f2c_StartSpectating");
|
||||
function f2c_StartSpectating()
|
||||
{
|
||||
ExternalInterface.call("f2c_StartSpectating");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_StartSpectating", this, c2f_StartSpectating);
|
||||
function c2f_StartSpectating(resultCode:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_StartSpectating failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_START_SPECTATING_UNKNOWN_ROOM_ID,
|
||||
REC_START_SPECTATING_ALREADY_SPECTATING,
|
||||
REC_START_SPECTATING_NO_SPECTATOR_SLOTS_AVAILABLE,
|
||||
REC_START_SPECTATING_NOT_IN_ROOM,
|
||||
REC_START_SPECTATING_REASSIGN_MODERATOR_BEFORE_SPECTATE,
|
||||
REC_START_SPECTATING_ROOM_LOCKED,
|
||||
*/
|
||||
}
|
||||
}
|
||||
stopSpectatingButton.addEventListener("click", this, "f2c_StopSpectating");
|
||||
function f2c_StopSpectating()
|
||||
{
|
||||
ExternalInterface.call("f2c_StopSpectating");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_StopSpectating", this, c2f_StopSpectating);
|
||||
function c2f_StopSpectating(resultCode:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_StopSpectating failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_STOP_SPECTATING_UNKNOWN_ROOM_ID,
|
||||
REC_STOP_SPECTATING_NOT_IN_ROOM,
|
||||
REC_STOP_SPECTATING_NOT_CURRENTLY_SPECTATING,
|
||||
REC_STOP_SPECTATING_NO_SLOTS,
|
||||
REC_STOP_SPECTATING_ROOM_LOCKED,
|
||||
*/
|
||||
}
|
||||
}
|
||||
makeModeratorButton.addEventListener("click", this, "f2c_GrantModerator");
|
||||
function f2c_GrantModerator()
|
||||
{
|
||||
ExternalInterface.call("f2c_GrantModerator", playerNameTextInput.text);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_GrantModerator", this, c2f_GrantModerator);
|
||||
function c2f_GrantModerator(resultCode:String, newModerator:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_GrantModerator failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_GRANT_MODERATOR_UNKNOWN_ROOM_ID,
|
||||
REC_GRANT_MODERATOR_NEW_MODERATOR_NOT_ONLINE,
|
||||
REC_GRANT_MODERATOR_NOT_IN_ROOM,
|
||||
REC_GRANT_MODERATOR_NEW_MODERATOR_NOT_IN_ROOM,
|
||||
REC_GRANT_MODERATOR_CANNOT_PERFORM_ON_SELF,
|
||||
REC_GRANT_MODERATOR_MUST_BE_MODERATOR_TO_GRANT_MODERATOR,
|
||||
REC_GRANT_MODERATOR_NEW_MODERATOR_NOT_IN_PLAYABLE_SLOT,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
readyButton.addEventListener("click", this, "f2c_SetReadyStatus_true");
|
||||
unreadyButton.addEventListener("click", this, "f2c_SetReadyStatus_false");
|
||||
|
||||
function f2c_SetReadyStatus_true()
|
||||
{
|
||||
ExternalInterface.call("f2c_SetReadyStatus", true);
|
||||
}
|
||||
function f2c_SetReadyStatus_false()
|
||||
{
|
||||
ExternalInterface.call("f2c_SetReadyStatus", false);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_SetReadyStatus", this, c2f_SetReadyStatus);
|
||||
function c2f_SetReadyStatus():Void
|
||||
{
|
||||
var resultCode:String = arguments[0];
|
||||
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
var isReady:Boolean = arguments[1];
|
||||
var readyUsersListSize:Number = arguments[2];
|
||||
var argumentIndex=3;
|
||||
for (var i:Number = 0; i < roomMemberListSize; i++)
|
||||
{
|
||||
var userName:String = arguments[argumentIndex++];
|
||||
}
|
||||
|
||||
var unreadyUsersListSize:Number = arguments[argumentIndex++];
|
||||
for (var i:Number = 0; i < roomMemberListSize; i++)
|
||||
{
|
||||
var userName:String = arguments[argumentIndex++];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_SetReadyStatus failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_SET_READY_STATUS_UNKNOWN_ROOM_ID,
|
||||
REC_SET_READY_STATUS_NOT_IN_ROOM,
|
||||
REC_SET_READY_STATUS_NOT_IN_PLAYABLE_SLOT,
|
||||
REC_SET_READY_STATUS_AUTO_LOCK_ALL_PLAYERS_READY,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_GetReadyStatus()
|
||||
{
|
||||
ExternalInterface.call("f2c_GetReadyStatus");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_GetReadyStatus", this, c2f_GetReadyStatus);
|
||||
function c2f_GetReadyStatus(resultCode:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
var readyUsersListSize:Number = arguments[1];
|
||||
var argumentIndex=2;
|
||||
for (var i:Number = 0; i < roomMemberListSize; i++)
|
||||
{
|
||||
var userName:String = arguments[argumentIndex++];
|
||||
}
|
||||
|
||||
var unreadyUsersListSize:Number = arguments[argumentIndex++];
|
||||
for (var i:Number = 0; i < roomMemberListSize; i++)
|
||||
{
|
||||
var userName:String = arguments[argumentIndex++];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_GetReadyStatus failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_GET_READY_STATUS_NOT_IN_ROOM,
|
||||
REC_GET_READY_STATUS_UNKNOWN_ROOM_ID,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
lockRoomButton.addEventListener("click", this, "f2c_SetRoomLockState_Locked");
|
||||
unlockRoomButton.addEventListener("click", this, "f2c_SetRoomLockState_Unlocked");
|
||||
function f2c_SetRoomLockState_Locked()
|
||||
{
|
||||
// NOT_LOCKED
|
||||
// PLAYERS_LOCKED
|
||||
// ALL_LOCKED
|
||||
ExternalInterface.call("f2c_SetRoomLockState", "ALL_LOCKED");
|
||||
}
|
||||
function f2c_SetRoomLockState_Unlocked()
|
||||
{
|
||||
// NOT_LOCKED
|
||||
// PLAYERS_LOCKED
|
||||
// ALL_LOCKED
|
||||
ExternalInterface.call("f2c_SetRoomLockState", "NOT_LOCKED");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_SetRoomLockState", this, c2f_SetRoomLockState);
|
||||
function c2f_SetRoomLockState(resultCode:String, roomLockState:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
if ( roomLockState=="NOT_LOCKED")
|
||||
{
|
||||
teamsAreLockedLabel.text="Not Locked";
|
||||
}
|
||||
else
|
||||
{
|
||||
teamsAreLockedLabel.text="Locked";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_SetRoomLockState failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_SET_ROOM_LOCK_STATE_UNKNOWN_ROOM_ID,
|
||||
REC_SET_ROOM_LOCK_STATE_NOT_IN_ROOM,
|
||||
REC_SET_ROOM_LOCK_STATE_MUST_BE_MODERATOR,
|
||||
REC_SET_ROOM_LOCK_STATE_BAD_ENUMERATION_VALUE,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_GetRoomLockState()
|
||||
{
|
||||
ExternalInterface.call("f2c_GetRoomLockState");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_GetRoomLockState", this, c2f_GetRoomLockState);
|
||||
function c2f_GetRoomLockState(resultCode:String, roomLockState:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
|
||||
// NOT_LOCKED
|
||||
// PLAYERS_LOCKED
|
||||
// ALL_LOCKED
|
||||
|
||||
if ( roomLockState=="NOT_LOCKED")
|
||||
{
|
||||
teamsAreLockedLabel.text="Not Locked";
|
||||
}
|
||||
else
|
||||
{
|
||||
teamsAreLockedLabel.text="Locked";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_GetRoomLockState failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_GET_ROOM_LOCK_STATE_UNKNOWN_ROOM_ID,
|
||||
REC_GET_ROOM_LOCK_STATE_NOT_IN_ROOM,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
function f2c_AreAllMembersReady()
|
||||
{
|
||||
ExternalInterface.call("f2c_AreAllMembersReady");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_AreAllMembersReady", this, c2f_AreAllMembersReady);
|
||||
function c2f_AreAllMembersReady(resultCode:String, allReady:Boolean):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_AreAllMembersReady failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_ARE_ALL_MEMBERS_READY_UNKNOWN_ROOM_ID,
|
||||
REC_ARE_ALL_MEMBERS_READY_NOT_IN_ROOM,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
kickSelectedPlayerButton.addEventListener("click", this, "f2c_KickMember");
|
||||
function f2c_KickMember()
|
||||
{
|
||||
var memberName:String = roomMembersScrollingList.dataProvider[roomMembersScrollingList.selectedIndex];
|
||||
ExternalInterface.call("f2c_KickMember", memberName,"Reason goes here");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_KickMember", this, c2f_KickMember);
|
||||
function c2f_KickMember(resultCode:String, kickedMember:String, reason:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_KickMember failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_KICK_MEMBER_UNKNOWN_ROOM_ID,
|
||||
REC_KICK_MEMBER_NOT_IN_ROOM,
|
||||
REC_KICK_MEMBER_TARGET_NOT_ONLINE,
|
||||
REC_KICK_MEMBER_TARGET_NOT_IN_YOUR_ROOM,
|
||||
REC_KICK_MEMBER_MUST_BE_MODERATOR,
|
||||
REC_KICK_MEMBER_CANNOT_PERFORM_ON_SELF,
|
||||
*/
|
||||
}
|
||||
}
|
||||
sendChatMessageButton.addEventListener("click", this, "f2c_Room_Chat_Func");
|
||||
function f2c_Room_Chat_Func()
|
||||
{
|
||||
ExternalInterface.call("f2c_Room_Chat_Func", chatTextInput.text);
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_Chat_Callback", this, c2f_Chat_Callback);
|
||||
function c2f_Chat_Callback(resultCode:String, chatRecipient:String, chatTextInput:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
trace(chatRecipient + " >> " + chatTextInput + "\n");
|
||||
chatTextArea.text+=chatRecipient + " >> " + chatTextInput + "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_Chat_Callback failure. Result= " + resultCode + " when sent to " + chatRecipient);
|
||||
|
||||
/*
|
||||
REC_CHAT_USER_NOT_IN_ROOM,
|
||||
REC_CHAT_RECIPIENT_NOT_ONLINE,
|
||||
REC_CHAT_RECIPIENT_NOT_IN_ANY_ROOM,
|
||||
REC_CHAT_RECIPIENT_NOT_IN_YOUR_ROOM,
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Chat_Notification", this, c2f_Chat_Notification);
|
||||
function c2f_Chat_Notification(sender:String, chatRecipient:String, chatTextInput:String, profanityFilteredTextInput:String ):Void
|
||||
{
|
||||
chatTextArea.text+=sender + " << " + chatTextInput + "\n";
|
||||
}
|
||||
startGameButton.addEventListener("click", this, "f2c_StartGame");
|
||||
function f2c_StartGame()
|
||||
{
|
||||
ExternalInterface.call("f2c_StartGame");
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_StartGame", this, c2f_StartGame);
|
||||
function c2f_StartGame( resultCode:String ):Void
|
||||
{
|
||||
// Result of asking C++ to start the game
|
||||
|
||||
if (resultCode=="START_GAME_SUCCESS")
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_StartGame failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
User defined codes here
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_StartGame_Notification", this, c2f_StartGame_Notification);
|
||||
function c2f_StartGame_Notification( ):Void
|
||||
{
|
||||
// Tell actionscript that C++ start the game
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_RoomMemberStartedSpectating_Callback", this, c2f_RoomMemberStartedSpectating_Callback)
|
||||
function c2f_RoomMemberStartedSpectating_Callback( userName:String ):Void
|
||||
{
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomMemberStoppedSpectating_Callback", this, c2f_RoomMemberStoppedSpectating_Callback)
|
||||
function c2f_RoomMemberStoppedSpectating_Callback( userName:String ):Void
|
||||
{
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_ModeratorChanged_Callback", this, c2f_ModeratorChanged_Callback)
|
||||
function c2f_ModeratorChanged_Callback( newModerator:String, oldModerator:String ):Void
|
||||
{
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomMemberReadyStatusSet_Callback", this, c2f_RoomMemberReadyStatusSet_Callback)
|
||||
function c2f_RoomMemberReadyStatusSet_Callback( ):Void
|
||||
{
|
||||
var isReady:Boolean = arguments[0];
|
||||
var roomMemberName:String = arguments[1];
|
||||
var num:Number = arguments[2];
|
||||
var argumentIndex=3;
|
||||
|
||||
// users in the ready state
|
||||
for (var i:Number = 0; i < num; i++)
|
||||
{
|
||||
var roomMemberName = arguments[argumentIndex++];
|
||||
}
|
||||
|
||||
num = arguments[argumentIndex++];
|
||||
|
||||
// Users in the unready state
|
||||
for (var i:Number = 0; i < num; i++)
|
||||
{
|
||||
var roomMemberName = arguments[argumentIndex++];
|
||||
}
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomLockStateSet_Callback", this, c2f_RoomLockStateSet_Callback)
|
||||
function c2f_RoomLockStateSet_Callback( roomLockState:String ):Void
|
||||
{
|
||||
// NOT_LOCKED
|
||||
// PLAYERS_LOCKED
|
||||
// ALL_LOCKED
|
||||
if ( roomLockState=="NOT_LOCKED")
|
||||
{
|
||||
teamsAreLockedLabel.text="Not Locked";
|
||||
}
|
||||
else
|
||||
{
|
||||
teamsAreLockedLabel.text="Locked";
|
||||
}
|
||||
}
|
||||
function RemoveFromRoomMembersList(roomMember:String)
|
||||
{
|
||||
for (var i:Number = 0; i < roomMembersScrollingList.dataProvider.length; i++)
|
||||
{
|
||||
var memberName:String = roomMembersScrollingList.dataProvider[i];
|
||||
if (memberName==roomMember)
|
||||
{
|
||||
roomMembersScrollingList.splice(i,1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
function AddToRoomMembersList(roomMember:String)
|
||||
{
|
||||
for (var i:Number = 0; i < roomMembersScrollingList.dataProvider.length; i++)
|
||||
{
|
||||
var memberName:String = roomMembersScrollingList.dataProvider[i];
|
||||
if (memberName==roomMember)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
roomMembersScrollingList.dataProvider.push(roomMember);
|
||||
roomMembersScrollingList.dataProvider.invalidate();
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomMemberKicked_Callback", this, c2f_RoomMemberKicked_Callback)
|
||||
function c2f_RoomMemberKicked_Callback( roomMember:String, moderator:String, reason:String ):Void
|
||||
{
|
||||
RemoveFromRoomMembersList(roomMember);
|
||||
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomMemberLeftRoom_Callback", this, c2f_RoomMemberLeftRoom_Callback)
|
||||
function c2f_RoomMemberLeftRoom_Callback( roomMember:String ):Void
|
||||
{
|
||||
RemoveFromRoomMembersList(roomMember);
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomMemberJoinedRoom_Callback", this,c2f_RoomMemberJoinedRoom_Callback)
|
||||
function c2f_RoomMemberJoinedRoom_Callback( acceptedInvitorName:String, acceptedInvitorAddress:String, joiningMemberName:String, joiningMemberAddress:String ):Void
|
||||
{
|
||||
AddToRoomMembersList(joiningMemberName);
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomDestroyedOnModeratorLeft_Callback", this, c2f_RoomDestroyedOnModeratorLeft_Callback)
|
||||
function c2f_RoomDestroyedOnModeratorLeft_Callback( oldModerator:String ):Void
|
||||
{
|
||||
trace("The room was destroyed.");
|
||||
gotoAndStop("CreateRoom");
|
||||
}
|
||||
|
||||
function f2c_GetRoomProperties()
|
||||
{
|
||||
ExternalInterface.call("f2c_GetRoomProperties");
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_GetRoomProperties", this, c2f_GetRoomProperties)
|
||||
function c2f_GetRoomProperties( ):Void
|
||||
{
|
||||
var resultCode:String = arguments[0];
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
roomMembersScrollingList.dataProvider=[];
|
||||
|
||||
|
||||
var roomName:String = arguments[1];
|
||||
var roomMemberListSize:Number = arguments[2];
|
||||
var argumentIndex=3;
|
||||
for (var i:Number = 0; i < roomMemberListSize; i++)
|
||||
{
|
||||
var roomMemberName:String = arguments[argumentIndex++];
|
||||
// RMM_MODERATOR
|
||||
// RMM_PUBLIC
|
||||
// RMM_RESERVED
|
||||
// RMM_SPECTATOR_PUBLIC
|
||||
// RMM_SPECTATOR_RESERVED
|
||||
// RMM_ANY_PLAYABLE
|
||||
// RMM_ANY_SPECTATOR
|
||||
var roomMemberMode:String = arguments[argumentIndex++];
|
||||
var roomMemberIsReady:Boolean = arguments[argumentIndex++];
|
||||
var roomMemberAddress:String = arguments[argumentIndex++];
|
||||
var roomMemberGuid:String = arguments[argumentIndex++];
|
||||
|
||||
|
||||
roomMembersScrollingList.dataProvider.push(roomMemberName);
|
||||
}
|
||||
roomMembersScrollingList.dataProvider.invalidate();
|
||||
|
||||
var banListSize:Number = arguments[argumentIndex++];
|
||||
for (var i:Number = 0; i < banListSize; i++)
|
||||
{
|
||||
var roomMemberName:String = arguments[argumentIndex++];
|
||||
var reason:String = arguments[argumentIndex++];
|
||||
}
|
||||
|
||||
// NOT_LOCKED
|
||||
// PLAYERS_LOCKED
|
||||
// ALL_LOCKED
|
||||
var roomLockState:String = arguments[argumentIndex++];
|
||||
var roomId:Number = arguments[argumentIndex++];
|
||||
var automaticallyLockRoomWhenAllUsersAreReady:Boolean = arguments[argumentIndex++];
|
||||
var roomIsHiddenFromSearches:Boolean = arguments[argumentIndex++];
|
||||
|
||||
// For both inviteToRoomPermission and inviteToSpectatorSlotPermission
|
||||
// INVITE_MODE_ANYONE_CAN_INVITE,
|
||||
// INVITE_MODE_MODERATOR_CAN_INVITE,
|
||||
// INVITE_MODE_PUBLIC_SLOTS_CAN_INVITE,
|
||||
// INVITE_MODE_RESERVED_SLOTS_CAN_INVITE,
|
||||
// INVITE_MODE_SPECTATOR_SLOTS_CAN_INVITE,
|
||||
// INVITE_MODE_MODERATOR_OR_PUBLIC_SLOTS_CAN_INVITE,
|
||||
// INVITE_MODE_MODERATOR_OR_PUBLIC_OR_RESERVED_SLOTS_CAN_INVITE,
|
||||
var inviteToRoomPermission:String = arguments[argumentIndex++];
|
||||
var inviteToSpectatorSlotPermission:String = arguments[argumentIndex++];
|
||||
|
||||
roomNameLabel.text=roomName;
|
||||
if ( roomLockState=="NOT_LOCKED")
|
||||
{
|
||||
teamsAreLockedLabel.text="Not Locked";
|
||||
}
|
||||
else
|
||||
{
|
||||
teamsAreLockedLabel.text="Locked";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_GetRoomProperties failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_GET_ROOM_PROPERTIES_EMPTY_ROOM_NAME_AND_NOT_IN_A_ROOM,
|
||||
REC_GET_ROOM_PROPERTIES_UNKNOWN_ROOM_NAME,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
f2c_GetRoomProperties();
|
||||
8
Samples/RoomsBrowserGFx3/Resources/LANConnection.as
Normal file
8
Samples/RoomsBrowserGFx3/Resources/LANConnection.as
Normal file
@ -0,0 +1,8 @@
|
||||
import flash.external.*;
|
||||
|
||||
returnToTitleButton.addEventListener("click", this, "ReturnToTitle");
|
||||
function ReturnToTitle()
|
||||
{
|
||||
// Disconnect from the server
|
||||
ExternalInterface.call("f2c_Logoff");
|
||||
}
|
||||
346
Samples/RoomsBrowserGFx3/Resources/Lobby.as
Normal file
346
Samples/RoomsBrowserGFx3/Resources/Lobby.as
Normal file
@ -0,0 +1,346 @@
|
||||
import flash.external.*;
|
||||
|
||||
updateButton.addEventListener("click", this, "UpdateRoomsList");
|
||||
function UpdateRoomsList()
|
||||
{
|
||||
var isNetUpdate:Boolean = netRadioButton.selected;
|
||||
|
||||
lobbyRoomsScrollingList.dataProvider=[];
|
||||
|
||||
ExternalInterface.call("f2c_UpdateRoomsList", isNetUpdate);
|
||||
|
||||
// If the platform requires friends in the scaleform UI, this will update it.
|
||||
ExternalInterface.call("f2c_QueryPlatform","c2f_QueryPlatform_Lobby_Callback");
|
||||
}
|
||||
|
||||
netRadioButton.addEventListener("click", this, "UpdateRoomsList");
|
||||
lanRadioButton.addEventListener("click", this, "UpdateRoomsList");
|
||||
joinRoomButton.addEventListener("click", this, "JoinRoom");
|
||||
function JoinRoom()
|
||||
{
|
||||
// 0th element is the unique room id, used as a search flag for when joining a room
|
||||
// How do I tell if lobbyRoomsScrollingList has a selection active?
|
||||
ExternalInterface.call("f2c_JoinByFilter",
|
||||
Boolean(lobbyRoomsScrollingList.dataProvider[lobbyRoomsScrollingList.selectedIndex][0]), // isFromNetwork
|
||||
Number(lobbyRoomsScrollingList.dataProvider[lobbyRoomsScrollingList.selectedIndex][1]), // guid
|
||||
String(lobbyRoomsScrollingList.dataProvider[lobbyRoomsScrollingList.selectedIndex][2]) // IP address
|
||||
);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_JoinByFilter", this, c2f_JoinByFilter);
|
||||
function c2f_JoinByFilter( resultCode:String ):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
gotoAndStop("inRoom");
|
||||
else
|
||||
{
|
||||
trace("c2f_JoinByFilter failure. Result= " + resultCode);
|
||||
|
||||
/*
|
||||
REC_JOIN_BY_FILTER_UNKNOWN_TITLE,
|
||||
REC_JOIN_BY_FILTER_NO_ROOMS,
|
||||
REC_JOIN_BY_FILTER_CURRENTLY_IN_A_ROOM,
|
||||
REC_JOIN_BY_FILTER_CURRENTLY_IN_QUICK_JOIN,
|
||||
REC_JOIN_BY_FILTER_CANNOT_JOIN_AS_MODERATOR,
|
||||
REC_JOIN_BY_FILTER_ROOM_LOCKED,
|
||||
REC_JOIN_BY_FILTER_BANNED,
|
||||
REC_JOIN_BY_FILTER_NO_SLOTS,
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
createRoomButton.addEventListener("click", this, "CreateRoom");
|
||||
function CreateRoom()
|
||||
{
|
||||
gotoAndStop("CreateRoom");
|
||||
}
|
||||
|
||||
manageFriendsButton.addEventListener("click", this, "ManageFriends");
|
||||
function ManageFriends()
|
||||
{
|
||||
gotoAndStop("ManageFriends_PC");
|
||||
}
|
||||
|
||||
logoffButton.addEventListener("click", this, "Logoff");
|
||||
function Logoff()
|
||||
{
|
||||
ExternalInterface.call("f2c_Logoff");
|
||||
}
|
||||
|
||||
chatTextInput.addEventListener("textChange", this, "UpdateSendButton");
|
||||
chatRecipient.addEventListener("textChange", this, "UpdateSendButton");
|
||||
function UpdateSendButton()
|
||||
{
|
||||
if (chatTextInput.text.length>0 && chatRecipient.text.length>0)
|
||||
sendChatButton.enabled=true;
|
||||
else
|
||||
sendChatButton.enabled=false;
|
||||
}
|
||||
|
||||
sendChatButton.addEventListener("click", this, "Chat_Func");
|
||||
function Chat_Func()
|
||||
{
|
||||
if (chatTextInput.text.length>0 && chatRecipient.text.length>0)
|
||||
{
|
||||
ExternalInterface.call("f2c_Directed_Chat_Func", chatRecipient.text, chatTextInput.text);
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Chat_Callback", this, c2f_Chat_Callback);
|
||||
function c2f_Chat_Callback(resultCode:String, chatRecipient:String, chatTextInput:String):Void
|
||||
{
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
chatTextArea.text+=chatRecipient + " >> " + chatTextInput + "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
trace("c2f_Chat_Callback failure. Result= " + resultCode + " when sent to " + chatRecipient);
|
||||
|
||||
/*
|
||||
REC_CHAT_USER_NOT_IN_ROOM,
|
||||
REC_CHAT_RECIPIENT_NOT_ONLINE,
|
||||
REC_CHAT_RECIPIENT_NOT_IN_ANY_ROOM,
|
||||
REC_CHAT_RECIPIENT_NOT_IN_YOUR_ROOM,
|
||||
*/
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Chat_Notification", this, c2f_Chat_Notification);
|
||||
function c2f_Chat_Notification(sender:String, chatRecipient:String, chatTextInput:String, profanityFilteredTextInput:String ):Void
|
||||
{
|
||||
chatTextArea.text+=sender + " << " + chatTextInput + "\n";
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Client_Logoff", this, c2f_Client_Logoff);
|
||||
function c2f_Client_Logoff(resultCode:String):Void
|
||||
{
|
||||
gotoAndStop("Main");
|
||||
}
|
||||
|
||||
function UpdateFriendsList()
|
||||
{
|
||||
lobbyFriendsScrollingList.dataProvider=[];
|
||||
ExternalInterface.call("f2c_UpdateFriendsList");
|
||||
}
|
||||
|
||||
function c2f_QueryPlatform_Lobby_Callback(platform:String):Void
|
||||
{
|
||||
if (platform=="RakNet")
|
||||
{
|
||||
UpdateFriendsList();
|
||||
}
|
||||
else
|
||||
{
|
||||
// This stuff is handled thought internal menus on the XBOX 360 and PS3
|
||||
friendsStatusLabel.visible=false;
|
||||
lobbyFriendsScrollingList.visible=false;
|
||||
lobbyFriendsScrollBar.visible=false;
|
||||
manageFriendsButton.visible=false;
|
||||
chatTextArea.visible=false;
|
||||
sendChatButton.visible=false;
|
||||
chatLabel1.visible=false;
|
||||
chatLabel2.visible=false;
|
||||
chatRecipient.visible=false;
|
||||
chatTextInput.visible=false;
|
||||
chatScrollBar.visible=false;
|
||||
|
||||
// Only NET on the XBOX 360 and PS3
|
||||
netRadioButton.visible=false;
|
||||
lanRadioButton.visible=false;
|
||||
}
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_AddSingleRoom", this, c2f_AddSingleRoom);
|
||||
function c2f_AddSingleRoom():Void
|
||||
{
|
||||
var roomIsFromServer = arguments[0];
|
||||
var roomId:Number = arguments[1];
|
||||
var ipAddrAndPort:String = arguments[2];
|
||||
var roomName:String = arguments[3];
|
||||
var numRoomMembers:Number = arguments[4];
|
||||
var maxRoomMembers:Number = arguments[5];
|
||||
var mapName:String = arguments[6];
|
||||
|
||||
lobbyRoomsScrollingList.dataProvider.push([roomIsFromServer,roomId,ipAddrAndPort,roomName,numRoomMembers,maxRoomMembers,mapName]);
|
||||
lobbyRoomsScrollingList.dataProvider.invalidate();
|
||||
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_SearchByFilter_Callback", this, c2f_SearchByFilter_Callback);
|
||||
function c2f_SearchByFilter_Callback():Void
|
||||
{
|
||||
// push statements below do not work unless I clear the list first. I don't know why though.
|
||||
lobbyRoomsScrollingList.dataProvider=[];
|
||||
|
||||
var resultCode:String = arguments[0];
|
||||
if (resultCode=="REC_SUCCESS")
|
||||
{
|
||||
var num:Number = arguments[1];
|
||||
var startingIdx:Number=2;
|
||||
for (var i:Number = 0; i < num; i++)
|
||||
{
|
||||
var roomIsFromServer = arguments[startingIdx+i*7+0];
|
||||
var roomId:Number = arguments[startingIdx+i*7+1];
|
||||
var ipAddrAndPort:String = arguments[startingIdx+i*7+2];
|
||||
var roomName:String = arguments[startingIdx+i*7+3];
|
||||
var numRoomMembers:Number = arguments[startingIdx+i*7+4];
|
||||
var maxRoomMembers:Number = arguments[startingIdx+i*7+5];
|
||||
var mapName:String = arguments[startingIdx+i*7+6];
|
||||
|
||||
lobbyRoomsScrollingList.dataProvider.push([roomIsFromServer,roomId,ipAddrAndPort,roomName,numRoomMembers,maxRoomMembers,mapName]);
|
||||
lobbyRoomsScrollingList.dataProvider.invalidate();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Unknown title (Programmer error).
|
||||
trace(resultCode);
|
||||
|
||||
// REC_SEARCH_BY_FILTER_UNKNOWN_TITLE,
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Friends_GetInvites", this, c2f_Friends_GetInvites);
|
||||
function c2f_Friends_GetInvites():Void
|
||||
{
|
||||
var resultCode:String = arguments[0];
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
var num:Number = arguments[1];
|
||||
var startingIdx:Number=2;
|
||||
|
||||
// Invites received
|
||||
for (var i:Number = 0; i < num; i++)
|
||||
{
|
||||
// params are same as c2f_Friends_GetFriends
|
||||
var handle:String = arguments[startingIdx+i*5+0];
|
||||
var isOnline:Boolean = arguments[startingIdx+i*5+1];
|
||||
var isVisible:Boolean = arguments[startingIdx+i*5+2];
|
||||
var loggedInTitle:String = arguments[startingIdx+i*5+3];
|
||||
var status:String = arguments[startingIdx+i*5+4];
|
||||
|
||||
lobbyFriendsScrollingList.dataProvider.push(["Got invitation", handle,isOnline,isVisible,loggedInTitle,status]);
|
||||
}
|
||||
|
||||
// Invites sent
|
||||
startingIdx+=num*5;
|
||||
num=arguments[startingIdx++];
|
||||
for (var i:Number = 0; i < num; i++)
|
||||
{
|
||||
// params are same as c2f_Friends_GetFriends
|
||||
var handle:String = arguments[startingIdx+i*5+0];
|
||||
var isOnline:Boolean = arguments[startingIdx+i*5+1];
|
||||
var isVisible:Boolean = arguments[startingIdx+i*5+2];
|
||||
var loggedInTitle:String = arguments[startingIdx+i*5+3];
|
||||
var status:String = arguments[startingIdx+i*5+4];
|
||||
|
||||
lobbyFriendsScrollingList.dataProvider.push(["Sent invitation", handle,isOnline,isVisible,loggedInTitle,status]);
|
||||
}
|
||||
lobbyFriendsScrollingList.dataProvider.invalidate();
|
||||
}
|
||||
else
|
||||
{
|
||||
// For RakNet, cannot fail
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Friends_GetFriends", this, c2f_Friends_GetFriends);
|
||||
function c2f_Friends_GetFriends():Void
|
||||
{
|
||||
var resultCode:String = arguments[0];
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
var num:Number = arguments[1];
|
||||
var startingIdx:Number=2;
|
||||
|
||||
for (var i:Number = 0; i < num; i++)
|
||||
{
|
||||
// params are same as c2f_Friends_GetInvites
|
||||
var handle:String = arguments[startingIdx+i*5+0];
|
||||
var isOnline:Boolean = arguments[startingIdx+i*5+1];
|
||||
var isVisible:Boolean = arguments[startingIdx+i*5+2];
|
||||
var loggedInTitle:String = arguments[startingIdx+i*5+3];
|
||||
var status:String = arguments[startingIdx+i*5+4];
|
||||
|
||||
lobbyFriendsScrollingList.dataProvider.push(["Is a friend", handle,isOnline,isVisible,loggedInTitle,status]);
|
||||
lobbyFriendsScrollingList.dataProvider.invalidate();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// For RakNet, cannot fail
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Notification_Friends_PresenceUpdate", this, c2f_Notification_Friends_PresenceUpdate);
|
||||
function c2f_Notification_Friends_PresenceUpdate(otherHandle:String, onlineStatusSetToVisible:Boolean, loggedInTitle:String, status:String):Void
|
||||
{
|
||||
trace("c2f_Notification_Friends_PresenceUpdate, " + otherHandle + ", " + onlineStatusSetToVisible + ", " + loggedInTitle + ", " + status);
|
||||
|
||||
// Update the friends list if the platform requires it
|
||||
ExternalInterface.call("f2c_QueryPlatform","c2f_QueryPlatform_Lobby_Callback");
|
||||
}
|
||||
|
||||
// LAN connection attempt failed
|
||||
ExternalInterface.addCallback("c2f_NotifyFailedConnectionAttempt", this, c2f_NotifyFailedConnectionAttempt);
|
||||
function c2f_NotifyFailedConnectionAttempt(resultCode:String, systemAddress:String):Void
|
||||
{
|
||||
// Result codes are:
|
||||
// CONNECTION_ATTEMPT_FAILED
|
||||
// ALREADY_CONNECTED
|
||||
// NO_FREE_INCOMING_CONNECTIONS
|
||||
// RSA_PUBLIC_KEY_MISMATCH
|
||||
// CONNECTION_BANNED
|
||||
// INVALID_PASSWORD
|
||||
trace(resultCode);
|
||||
gotoAndStop("Main");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_NotifyNewConnection", this, c2f_NotifyNewConnection);
|
||||
function c2f_NotifyNewConnection(systemAddress:String, rakNetGuid:String, isIncoming:Boolean):Void
|
||||
{
|
||||
trace("c2f_NotifyNewConnection, " + systemAddress + ", " + rakNetGuid + ", " + isIncoming);
|
||||
// Connecting at this stage must be through the LAN
|
||||
gotoAndStop("InGame");
|
||||
}
|
||||
|
||||
|
||||
ExternalInterface.addCallback("c2f_Notification_Friends_StatusChange", this, c2f_Notification_Friends_StatusChange);
|
||||
function c2f_Notification_Friends_StatusChange(operation:String, otherHandle:String, onlineStatusSetToVisible:Boolean, loggedInTitle:String, status:String):Void
|
||||
{
|
||||
// operation can be:
|
||||
// FRIEND_LOGGED_IN,
|
||||
// FRIEND_LOGGED_OFF,
|
||||
// FRIEND_ACCOUNT_WAS_DELETED,
|
||||
// YOU_WERE_REMOVED_AS_A_FRIEND,
|
||||
// GOT_INVITATION_TO_BE_FRIENDS,
|
||||
// THEY_ACCEPTED_OUR_INVITATION_TO_BE_FRIENDS,
|
||||
// THEY_REJECTED_OUR_INVITATION_TO_BE_FRIENDS,
|
||||
|
||||
trace("c2f_Notification_Friends_StatusChange, " + operation + ", " + otherHandle + ", " + onlineStatusSetToVisible + ", " + loggedInTitle + ", " + status);
|
||||
|
||||
// If the platform requires friends in the scaleform UI, this will update it.
|
||||
ExternalInterface.call("f2c_QueryPlatform","c2f_QueryPlatform_Lobby_Callback");
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_RoomInvitationSent_Callback", this, c2f_RoomInvitationSent_Callback)
|
||||
function c2f_RoomInvitationSent_Callback( invitorName:String, inviteToSpectatorSlot:Boolean ):Void
|
||||
{
|
||||
trace("You got a room invitation from " + invitorName);
|
||||
}
|
||||
ExternalInterface.addCallback("c2f_RoomInvitationWithdrawn_Callback", this, c2f_RoomInvitationWithdrawn_Callback)
|
||||
function c2f_RoomInvitationWithdrawn_Callback( invitorName:String, invitorAddress:String ):Void
|
||||
{
|
||||
trace("Your room invitation was withdrawn from " + invitorName);
|
||||
}
|
||||
|
||||
|
||||
sendChatButton.enabled=false;
|
||||
netRadioButton.selected=true;
|
||||
UpdateRoomsList();
|
||||
|
||||
|
||||
stop();
|
||||
20
Samples/RoomsBrowserGFx3/Resources/Main.as
Normal file
20
Samples/RoomsBrowserGFx3/Resources/Main.as
Normal file
@ -0,0 +1,20 @@
|
||||
import flash.external.*;
|
||||
|
||||
startButton.addEventListener("click", this, "Start");
|
||||
ExternalInterface.addCallback("c2f_QueryPlatform_Main_Callback", this, c2f_QueryPlatform_Main_Callback);
|
||||
function Start()
|
||||
{
|
||||
ExternalInterface.call("f2c_QueryPlatform","c2f_QueryPlatform_Main_Callback");
|
||||
}
|
||||
|
||||
|
||||
function c2f_QueryPlatform_Main_Callback(platform:String):Void
|
||||
{
|
||||
if (platform=="RakNet")
|
||||
{
|
||||
gotoAndStop("connectToServer_RakNet");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
stop();
|
||||
108
Samples/RoomsBrowserGFx3/Resources/ManageFriends_PC.as
Normal file
108
Samples/RoomsBrowserGFx3/Resources/ManageFriends_PC.as
Normal file
@ -0,0 +1,108 @@
|
||||
import flash.external.*;
|
||||
|
||||
|
||||
sendInviteButton.addEventListener("click", this, "Friends_SendInvite");
|
||||
function Friends_SendInvite()
|
||||
{
|
||||
ExternalInterface.call("f2c_Friends_SendInvite", usernameTextInput.text);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Friends_SendInvite", this, c2f_Friends_SendInvite);
|
||||
function c2f_Friends_SendInvite(resultCode:String, userHandle:String):Void
|
||||
{
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
trace("c2f_Friends_SendInvite success, " + userHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
// L2RC_Friends_SendInvite_UNKNOWN_TARGET_HANDLE
|
||||
// L2RC_Friends_SendInvite_CANNOT_PERFORM_ON_SELF
|
||||
// L2RC_DATABASE_CONSTRAINT_FAILURE
|
||||
// L2RC_Friends_SendInvite_ALREADY_SENT_INVITE
|
||||
// L2RC_Friends_SendInvite_ALREADY_FRIENDS
|
||||
|
||||
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
removeButton.addEventListener("click", this, "Friends_Remove");
|
||||
function Friends_Remove()
|
||||
{
|
||||
ExternalInterface.call("f2c_Friends_Remove", usernameTextInput.text);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Friends_Remove", this, c2f_Friends_Remove);
|
||||
function c2f_Friends_Remove(resultCode:String, targetHandle:String):Void
|
||||
{
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
trace("c2f_Friends_Remove success, " + targetHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
// L2RC_Friends_Remove_UNKNOWN_TARGET_HANDLE
|
||||
// L2RC_Friends_Remove_CANNOT_PERFORM_ON_SELF
|
||||
// L2RC_DATABASE_CONSTRAINT_FAILURE
|
||||
// L2RC_Friends_Remove_NOT_FRIENDS
|
||||
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
acceptInviteButton.addEventListener("click", this, "Friends_AcceptInvite");
|
||||
function Friends_AcceptInvite( )
|
||||
{
|
||||
ExternalInterface.call("f2c_Friends_AcceptInvite", usernameTextInput.text);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Friends_AcceptInvite", this, c2f_Friends_AcceptInvite);
|
||||
function c2f_Friends_AcceptInvite(resultCode:String, userHandle:String, onlineStatusSetToVisible:Boolean, loggedInTitle:String, status:String):Void
|
||||
{
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
trace("c2f_Friends_AcceptInvite success, " + userHandle + ", " + onlineStatusSetToVisible + ", " + loggedInTitle + ", " + status);
|
||||
}
|
||||
else
|
||||
{
|
||||
// L2RC_Friends_AcceptInvite_UNKNOWN_TARGET_HANDLE
|
||||
// L2RC_Friends_AcceptInvite_CANNOT_PERFORM_ON_SELF
|
||||
// L2RC_DATABASE_CONSTRAINT_FAILURE
|
||||
// L2RC_Friends_AcceptInvite_NO_INVITE
|
||||
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
rejectInviteButton.addEventListener("click", this, "Friends_RejectInvite");
|
||||
function Friends_RejectInvite()
|
||||
{
|
||||
ExternalInterface.call("f2c_Friends_RejectInvite", usernameTextInput.text);
|
||||
}
|
||||
|
||||
ExternalInterface.addCallback("c2f_Friends_RejectInvite", this, c2f_Friends_RejectInvite);
|
||||
function c2f_Friends_RejectInvite(resultCode:String, targetHandle:String):Void
|
||||
{
|
||||
if (resultCode=="L2RC_SUCCESS")
|
||||
{
|
||||
trace("c2f_Friends_RejectInvite success, " + targetHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
// L2RC_Friends_RejectInvite_UNKNOWN_TARGET_HANDLE
|
||||
// L2RC_Friends_RejectInvite_CANNOT_PERFORM_ON_SELF
|
||||
// L2RC_DATABASE_CONSTRAINT_FAILURE
|
||||
// L2RC_Friends_RejectInvite_NO_INVITE
|
||||
|
||||
trace(resultCode);
|
||||
}
|
||||
}
|
||||
|
||||
backButton.addEventListener("click", this, "BackToLobby");
|
||||
function BackToLobby()
|
||||
{
|
||||
gotoAndStop("Lobby");
|
||||
}
|
||||
|
||||
stop();
|
||||
BIN
Samples/RoomsBrowserGFx3/Resources/RoomsBrowserGFx3.fla
Normal file
BIN
Samples/RoomsBrowserGFx3/Resources/RoomsBrowserGFx3.fla
Normal file
Binary file not shown.
BIN
Samples/RoomsBrowserGFx3/Resources/RoomsBrowserGFx3.swf
Normal file
BIN
Samples/RoomsBrowserGFx3/Resources/RoomsBrowserGFx3.swf
Normal file
Binary file not shown.
Reference in New Issue
Block a user