home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Revista CD Expert 51
/
PCGamer51_17Demos.iso
/
games
/
CM
/
CyclingManagerDemoCangas.exe
/
CyclingManagerDemo
/
scripts
/
common
/
admin
/
object_users.cnc
< prev
next >
Wrap
Text File
|
2001-06-02
|
11KB
|
401 lines
// Message box callback
func void KickUser_Callback(i32x _iResult)
{
var szx szLogin;
if(_iResult == g_iTypeOkDialog)
{
if(oAdminUsers.m_iSelectedUserMode==G_iRegisteredUser)
{
szLogin = Join_GetStringFromKey(g_oMenuJoins.m_jUser_szLogin,oAdminUsers.m_iSelectedUserId);
// Unsubscribe user
g_oMenuServer.m_oServer << mGame_AdminKickUser(szLogin);
}
else
{
szLogin = Join_GetStringFromKey(g_oMenuJoins.m_jGuest_szLogin,oAdminUsers.m_iSelectedUserId);
// Kick guest user
g_oMenuServer.m_oServer << mGame_AdminKickGuest(szLogin);
}
}
}
//Object User Item Create func
//----------------------------------------------------------------------------------------------------------------//
func void Object_Users_Item_Create ()
{
var i32x id;
SetComponentNumber(6);
// Members number to save guest flag and user id
SetObjectMembersNumber(2);
// back
oUserItem.m_cBack=InitContainer(tCommonTableBorder);
SetContainerSize(oUserItem.m_cBack,480,32);
SetEvents(oUserItem.m_cBack,GUI_NoEvent);
// selection
oUserItem.m_cSelection=InitContainer(tCommonTableBorder);
SetContainerColor(oUserItem.m_cSelection,c_ListSelection);
SetContainerSize(oUserItem.m_cSelection, 480, 32);
SetComponentClipper(oUserItem.m_cSelection, 0, 0, 480, 32);
SetComponentVisibleStatus(oUserItem.m_cSelection,false);
// User name
oUserItem.m_cName = InitContainer(tFontArial);
SetComponentSize(oUserItem.m_cName,204,16);
SetComponentPosition(oUserItem.m_cName,0,8);
// User info
oUserItem.m_cInfo = InitContainer(tFontArial);
SetContainerOffset(oUserItem.m_cInfo,-1);
SetComponentSize(oUserItem.m_cInfo,96,16);
SetComponentPosition(oUserItem.m_cInfo,204,8);
// Connected or not ?
oUserItem.m_cConnected = InitContainer(tFontArial);
SetContainerOffset(oUserItem.m_cConnected,-1);
SetComponentSize(oUserItem.m_cConnected,132,16);
SetComponentPosition(oUserItem.m_cConnected,300,8);
SetObjectSize(480,32);
}
//Object User Item Update func
//----------------------------------------------------------------------------------------------------------------//
func void Object_Users_Item_Update (i32x _iItemID)
{
var i32x iGuestIndex;
var i32x iGuestID;
var szx szLogin;
iGuestIndex = _iItemID+oAdminUsers.m_iFirstGuest;
iGuestID = Join_GetIntFromSortedIndex( g_oMenuJoins.m_jGuest_iId, iGuestIndex);
szLogin = Join_GetStringFromSortedIndex( g_oMenuJoins.m_jGuest_szLogin, iGuestIndex);
// back color
if ((_iItemID%2)==0) SetContainerColor(oUserItem.m_cBack,MakeARGB(50,255,255,255));
else SetContainerColor(oUserItem.m_cBack,MakeARGB(75,255,255,255));
// Guest or user
if(_iItemID<oAdminUsers.m_iNumGuests)
{
// Guest user
// Update members
Seti32x(0,G_iGuestUser);
Seti32x(1,iGuestID);
// Fill item
SetContainerText(oUserItem.m_cName,szLogin);
// Guest user
SetContainerText(oUserItem.m_cInfo,GetLocalizedFromGMKey(176));
// Guest user is always connected !
SetContainerText(oUserItem.m_cConnected,GetLocalizedFromGMKey(175));
}
else
{
// Registered user
var i32x iUserID;
var szx szTeam;
// tutu debug : this is slow
iUserID = Join_FindKeyFromStringData(g_oMenuJoins.m_jUser_szLogin, szLogin);
// Update members
Seti32x(0,G_iRegisteredUser);
Seti32x(1,iUserID);
// Fill item
SetContainerText(oUserItem.m_cName,Join_GetStringFromKey(g_oMenuJoins.m_jUser_szPseudo,iUserID));
// team
szTeam = Join_GetStringFromKey(g_oMenuJoins.m_jUser_szTeamAbrev,iUserID);
SetContainerText(oUserItem.m_cInfo,szTeam);
// connected ?
if(Join_GetIntFromKey(g_oMenuJoins.m_jUser_iConnected,iUserID)==1)
{
//print("User ");print(itoa(iUserID));print(" Connected.");
if(Join_GetIntFromKey(g_oMenuJoins.m_jUser_iReady,iUserID)==1)
{
//print("User ");print(itoa(iUserID));print(" ready.");
SetContainerText(oUserItem.m_cConnected,GetLocalizedFromGMKey(379));
}
else
{
SetContainerText(oUserItem.m_cConnected,GetLocalizedFromGMKey(381));
}
}
else
{
//print("User ");print(itoa(iUserID));print(" Not Connected.");
SetContainerText(oUserItem.m_cConnected,GetLocalizedFromGMKey(437));
}
// admin ?
if(IsAdmin())
{
SetContainerColor(oUserItem.m_cName,c_Highlight);
}
else
{
SetContainerColor(oUserItem.m_cName,c_White);
}
}
}
//Onglet_Results Item Event func
//----------------------------------------------------------------------------------------------------------------//
func i32x Object_Users_Item_Event (i32x _iComponentID, i32x _iEvent)
{
if (_iComponentID == -1)
{
if (_iEvent == GUI_LIST_UNSELECTITEM)
{
SetComponentVisibleStatus(oUserItem.m_cSelection,false);
}
if (_iEvent == GUI_LIST_SELECTITEM)
{
oAdminUsers.m_iSelectedUserMode = Geti32x(0);
oAdminUsers.m_iSelectedUserId = Geti32x(1);
SetComponentVisibleStatus(oUserItem.m_cSelection,true);
}
}
if (_iEvent == GUI_COMPONENT_MOUSE_LDOWN)
{
if (_iComponentID != oUserItem.m_cSelection)
{
PlaySound(0,sbClickSound[0]);
PushEvent(GUI_LIST_SELECTION);
}
}
return 1;
}
// Query callback
func void vFillUsersList()
{
var component pOld;
var i32x i;
var i32x iNumRows;
var i32x iStatus;
// Delete old join if any
vObjectUsers_DeleteJoins();
// Create joins
vObjectUsers_CreateJoins();
// Save current context
pOld = GetParserComponent();
// Set object users context
SetParserComponent(oAdminUsers.pThis);
// number of users/guests
i = 0;
iNumRows = Join_GetNumRows(g_oMenuJoins.m_jGuest_iFree);
oAdminUsers.m_iNumFree = 0;
oAdminUsers.m_iNumGuests = 0;
oAdminUsers.m_iNumUsers = 0;
while (i<iNumRows)
{
iStatus = Join_GetIntFromIndex(g_oMenuJoins.m_jGuest_iFree,i);
if (iStatus==0)
{
oAdminUsers.m_iNumFree = oAdminUsers.m_iNumFree+1;
}
else if (iStatus==1)
{
oAdminUsers.m_iNumGuests = oAdminUsers.m_iNumGuests+1;
}
else if (iStatus==2)
{
oAdminUsers.m_iNumUsers = oAdminUsers.m_iNumUsers+1;
}
i = i+1;
}
// sorted acces
Join_Sort(g_oMenuJoins.m_jGuest_iFree,1);
oAdminUsers.m_iFirstGuest = Join_FindSortedIntData(g_oMenuJoins.m_jGuest_iFree,g_iGUEST_STATUS_Guest);
if (oAdminUsers.m_iFirstGuest<0)
oAdminUsers.m_iFirstGuest = Join_FindSortedIntData(g_oMenuJoins.m_jGuest_iFree,g_iGUEST_STATUS_User);
// Create list
if(oAdminUsers.m_cList == ID_NOT_CREATED)
{
oAdminUsers.m_cList = InitList(
"Users List", // List name
32, // Max item number
500,300, // Width, height
Object_Users_Item_Create,Object_Users_Item_Update,Object_Users_Item_Event, // Item oFunc
t_btn_slider, // Slider texture
NullButtonState); // State func for the slider
SetComponentPosition(oAdminUsers.m_cList,0,50);
}
SetListNbItems(oAdminUsers.m_cList,oAdminUsers.m_iNumUsers + oAdminUsers.m_iNumGuests);
if(oAdminUsers.m_iNumUsers + oAdminUsers.m_iNumGuests>0)
{
SetListSelectedItem(oAdminUsers.m_cList,0);
SetListPosition(oAdminUsers.m_cList,0);
}
// Restore context
SetParserComponent(pOld);
}
func void vObjectUsers_DeleteJoins()
{
}
func void vObjectUsers_CreateJoins()
{
}
func void Object_Users_Create()
{
var i32x id;
//Get Current Context
oAdminUsers.pThis=GetParserComponent();
// Component number
SetComponentNumber(21);
// Title background
id=InitContainer(tCommonTableBorder);
SetContainerColor(id,c_TitleList);
SetContainerSize(id,500,15);
SetComponentPosition(id,0,35);
SetEvents(id,GUI_NoEvent);
// Game Password
// password caption
//id = InitContainer(tFontArialItalique);
//SetContainerText(id,GetLocalizedFromGMKey(169));
//SetComponentPosition(id,220,2);
// Password background
//id = Init_LibObject_FilledCadre(tFCadre7,110,20);
//SetComponentPosition(id,316,10);
// Password editbox
//oAdminUsers.m_cPassword = InitEditBox(tFontArial,8);
//SetComponentPosition(oAdminUsers.m_cPassword,320,2);
//SetComponentSize(oAdminUsers.m_cPassword,100,16);
// Title Column
id = InitContainer(tFontArialItalique);
SetContainerText(id,GetLocalizedFromGMKey(65)); // Name
SetContainerOffset(id,-1);
SetComponentPosition(id,0,35);
id = InitContainer(tFontArialItalique);
SetContainerText(id,GetLocalizedFromGMKey(7)); // team
SetContainerOffset(id,-1);
SetComponentPosition(id,204,35);
id = InitContainer(tFontArialItalique);
SetContainerText(id,GetLocalizedFromGMKey(178)); // status
SetContainerOffset(id,-1);
SetComponentPosition(id,300,35);
// Slider background
id=InitContainer(tCommonTableBorder);
SetContainerColor(id,c_TitleList);
SetContainerSize(id,20,300);
SetComponentPosition(id,480,50);
// Create list
oAdminUsers.m_cList = InitList(
"Users List", // List name
96, // Max item number
500,300, // Width, height
Object_Users_Item_Create,Object_Users_Item_Update,Object_Users_Item_Event, // Item oFunc
t_btn_slider, // Slider texture
NullButtonState); // State func for the slider
SetComponentPosition(oAdminUsers.m_cList,0,50);
// Horizontal line
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,500,1);
SetComponentPosition(id,0,35);
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,500,1);
SetComponentPosition(id,0,50);
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,500,1);
SetComponentPosition(id,0,350);
// Vertical line
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,1,315);
SetComponentPosition(id,0,35);
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,1,315);
SetComponentPosition(id,204,35);
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,1,315);
SetComponentPosition(id,300,35);
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,1,315);
SetComponentPosition(id,480,35);
id = InitContainer(tCommonTableBorder);
SetContainerSize(id,1,315);
SetComponentPosition(id,500,35);
// kick button
oAdminUsers.m_cKick = InitLibMultiSpriteButtonWithText(tButton32Multi,9,GetLocalizedFromGMKey(174),tFontArial,0);
SetComponentPosition(oAdminUsers.m_cKick,500-GetComponentWidth(oAdminUsers.m_cKick),375);
// admin ?
if(IsAdmin())
{
SetComponentVisibleStatus(oAdminUsers.m_cKick,true);
}
else
{
SetComponentVisibleStatus(oAdminUsers.m_cKick,false);
}
// Defaul object size
AutoResize();
}
func i32x Object_Users_Event(i32x _iComponentID,i32x _iEvent)
{
if(_iComponentID == -1)
{
if(_iEvent == GUI_COMPONENT_DESTRUCTOR)
{
vObjectUsers_DeleteJoins();
oAdminUsers.pThis = g_poNullComponent;
oAdminUsers.m_cList = ID_NOT_CREATED;
}
}
if(_iEvent == GUI_BUTTON_PRESSED)
{
if(_iComponentID == oAdminUsers.m_cKick)
{
// Ask before kick user
CreateMessageBox(GetLocalizedFromGMKey(438),g_iTypeOkCancelDialog,KickUser_Callback);
}
}
return 1;
}
func void Object_Users_InitMembers()
{
oAdminUsers.oFunc.pcreate = Object_Users_Create;
oAdminUsers.oFunc.pevent = Object_Users_Event;
}