mirror of
https://github.com/Ragora/TribesReplay.git
synced 2026-01-19 17:44:45 +00:00
v22460 (04/13/01):
**Tweak, Spider Clamp turrets need more Surface area for legal deploy space now**: *Minor tweak to improve long-term server stability. *A new voice Codec, 'GSM' was added to allow voice communication between Linux and Windows users. *Minor Sound system tweaks and fixes. *Minor BOT navigation and seeking improvements. *Fix removing BOTs counting toward the Vote Meter representation. *Improvement for Vehicle Physics, particularly instances when Vehicles would get stuck on their edge. *Fix for BOT's skins not dynamically updating to correct team skin, when Admin team changed them. *Fixed bug where certain cases would cause Cursor to vanish when it should not. *Minor Server query improvements. *Fix Players can be added to the 'Admin List'. *No more voting to BAN, only Super ADMIN may now BAN. *Various GUI improvements, notably the Voice Com. elements in the Lobby, and some minor pointer Icon improvements for certain cases. *Linux 'Penguin' Symbol added for Server List Screen when joining, so users may identify Windows and Linux servers at a glance.
This commit is contained in:
parent
f9ca0b52f9
commit
116be1648d
|
|
@ -1,7 +1,7 @@
|
|||
ProductName "Tribes2"
|
||||
DisplayName "Tribes 2"
|
||||
PatchFolder .\patch
|
||||
CurrentVersion 0.22337.0.0
|
||||
CurrentVersion 0.22460.0.0
|
||||
AutoStart
|
||||
MonitorPatch
|
||||
LaunchExe "tribes2.exe"
|
||||
|
|
|
|||
|
|
@ -523,12 +523,33 @@ function abs(%val)
|
|||
|
||||
function ServerConnectionAccepted()
|
||||
{
|
||||
Canvas.setContent("LoadingGui");
|
||||
%info = GMJ_Browser.getServerInfoString();
|
||||
%desc = "joined a" SPC getField(%info,4) @ " game (" @ getField(%info,3) @ ") on the \"" @ getField(%info,0) @ "\" server.";
|
||||
|
||||
IRCClient::onJoinGame($JoinGameAddress,%desc);
|
||||
|
||||
if ( !$pref::Net::CheckEmail )
|
||||
CancelEmailCheck();
|
||||
|
||||
// if($pref::Net::DisconnectChat)
|
||||
// IRCClient::quit();
|
||||
|
||||
Canvas.setContent("LoadingGui");
|
||||
}
|
||||
|
||||
function LocalConnectionAccepted()
|
||||
{
|
||||
Canvas.setContent("LoadingGui");
|
||||
{
|
||||
%desc = $pref::IRCClient::hostmsg;
|
||||
|
||||
IRCClient::onJoinGame("", %desc);
|
||||
|
||||
if ( !$pref::Net::CheckEmail )
|
||||
CancelEmailCheck();
|
||||
|
||||
// if($pref::Net::DisconnectChat)
|
||||
// IRCClient::quit(); //this is screwed up right now ^^
|
||||
|
||||
Canvas.setContent("LoadingGui");
|
||||
}
|
||||
|
||||
function DispatchLaunchMode()
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ new GuiControl(MainChatHud) {
|
|||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
modal = "1";
|
||||
bypassHideCursor = "1";
|
||||
setFirstResponder = "0";
|
||||
|
||||
new GuiNoMouseCtrl() {
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ new GuiChunkedBitmapCtrl(ChatGui) {
|
|||
lineSpacing = "0";
|
||||
lineContinuedIndex = "5";
|
||||
allowedMatches[0] = "http";
|
||||
matchColor = "0 0 255 255";
|
||||
matchColor = "4 235 105 255";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -152,6 +152,7 @@ new GuiChunkedBitmapCtrl(ChatGui) {
|
|||
maxLength = "255";
|
||||
password = "0";
|
||||
glowOffset = "9 9";
|
||||
tabComplete = "1";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "ShellTextRightProfile";
|
||||
|
|
|
|||
|
|
@ -63,18 +63,13 @@ function ToggleConsole(%make)
|
|||
{
|
||||
Canvas.popDialog(ConsoleDlg);
|
||||
$ConsoleActive = false;
|
||||
if(!ConsoleDlg.mouseOn)
|
||||
CursorOff();
|
||||
if ( $enableDirectInput )
|
||||
activateKeyboard();
|
||||
}
|
||||
else
|
||||
{
|
||||
Canvas.pushDialog(ConsoleDlg, 99);
|
||||
ConsoleDlg.mouseOn = Canvas.isCursorOn();
|
||||
$ConsoleActive = true;
|
||||
if(!ConsoleDlg.mouseOn)
|
||||
CursorOn();
|
||||
deactivateKeyboard();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ new GuiChunkedBitmapCtrl(CreditsGui) {
|
|||
variable = "$ShellBackground";
|
||||
helpTag = "0";
|
||||
useVariable = "1";
|
||||
qLineCount = "0";
|
||||
hideCursor = "1";
|
||||
qLineCount = "0";
|
||||
|
||||
new ShellPaneCtrl() {
|
||||
profile = "ShellPaneProfile";
|
||||
|
|
|
|||
|
|
@ -283,7 +283,6 @@ function Editor::onSleep(%this)
|
|||
MoveMap.pop();
|
||||
GlobalActionMap.unbind(keyboard, "tab");
|
||||
lockMouse(false);
|
||||
CursorOn();
|
||||
|
||||
%this.popDialogs();
|
||||
|
||||
|
|
|
|||
|
|
@ -10,6 +10,16 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
variable = "$ShellBackground";
|
||||
helpTag = "0";
|
||||
useVariable = "1";
|
||||
forumCount = "-1";
|
||||
refreshFlag = "0";
|
||||
state = "done";
|
||||
eid = "112";
|
||||
ebstat = "1";
|
||||
initialized = "1";
|
||||
key = "163";
|
||||
TDialogOpen = "0";
|
||||
bflag = "4";
|
||||
TextCheck = "0";
|
||||
|
||||
new ShellPaneCtrl(ForumShell) {
|
||||
profile = "ShellPaneProfile";
|
||||
|
|
@ -152,6 +162,13 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
drawSeparators = "0";
|
||||
headerSort = "0";
|
||||
allowReposition = "0";
|
||||
noSelect = "0";
|
||||
lastID = "413653";
|
||||
state = "done";
|
||||
highestUpdate = "413653";
|
||||
lastDate = "04/20/2001 11:09am";
|
||||
allRead = "1";
|
||||
key = "162";
|
||||
};
|
||||
};
|
||||
new ShellScrollCtrl() {
|
||||
|
|
@ -186,12 +203,14 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "532 180";
|
||||
extent = "532 36";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
deniedSound = "InputDeniedSound";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -336,7 +355,7 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "137 1908";
|
||||
extent = "137 414";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
|
@ -392,7 +411,7 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "52 1161";
|
||||
extent = "52 1902";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
|
@ -424,6 +443,7 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
drawSeparators = "0";
|
||||
headerSort = "1";
|
||||
allowReposition = "0";
|
||||
noSelect = "0";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
|
|
@ -455,39 +475,39 @@ new GuiChunkedBitmapCtrl(ForumsGui) {
|
|||
profile = "ShellButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "234 300";
|
||||
extent = "117 38";
|
||||
position = "291 300";
|
||||
extent = "82 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
command = "ForumsRefreshTopics();";
|
||||
helpTag = "0";
|
||||
text = "REFRESH TOPICS";
|
||||
text = "REFRESH ";
|
||||
simpleStyle = "0";
|
||||
};
|
||||
new ShellBitmapButton(FM_NextThreads) {
|
||||
new ShellBitmapButton(FTNextBtn) {
|
||||
profile = "ShellButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "406 309";
|
||||
extent = "90 38";
|
||||
position = "357 300";
|
||||
extent = "53 38";
|
||||
minExtent = "32 38";
|
||||
visible = "0";
|
||||
command = "ForumsGoTopics(1);";
|
||||
visible = "1";
|
||||
command = "ForumsGui.NextThreadPage();";
|
||||
helpTag = "0";
|
||||
text = "NEXT TOPICS";
|
||||
text = "--->";
|
||||
simpleStyle = "0";
|
||||
};
|
||||
new ShellBitmapButton(FM_PrevThreads) {
|
||||
new ShellBitmapButton(FTPrevBtn) {
|
||||
profile = "ShellButtonProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "top";
|
||||
position = "324 309";
|
||||
extent = "90 38";
|
||||
position = "254 300";
|
||||
extent = "53 38";
|
||||
minExtent = "32 38";
|
||||
visible = "0";
|
||||
command = "ForumsGoTopics(2);";
|
||||
visible = "1";
|
||||
command = "ForumsGui.PreviousThreadPage();";
|
||||
helpTag = "0";
|
||||
text = "PREV TOPICS";
|
||||
text = "<---";
|
||||
simpleStyle = "0";
|
||||
};
|
||||
new ShellBitmapButton(RForumsBtn) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ new GuiControl(FrameOverlayGui) {
|
|||
setFirstResponder = "True";
|
||||
modal = "false";
|
||||
helpTag = "0";
|
||||
bypassHideCursor = "1";
|
||||
|
||||
new GuiConsoleTextCtrl(TextOverlayControl) {
|
||||
profile = "GuiTextProfile";
|
||||
|
|
|
|||
|
|
@ -301,6 +301,7 @@ new GuiControl(MessageHud)
|
|||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bypassHideCursor = "1";
|
||||
|
||||
new ShellFieldCtrl(MessageHud_Frame)
|
||||
{
|
||||
|
|
@ -351,6 +352,7 @@ new GuiControl(ChatMenuHudDlg)
|
|||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bypassHideCursor = "1";
|
||||
|
||||
new ShellFieldCtrl(ChatMenuHud)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -148,13 +148,8 @@ function InteriorDontRestrict::onAction()
|
|||
|
||||
function interiorDebugDialog::onWake( %this )
|
||||
{
|
||||
%this.cursor = isCursorOn();
|
||||
if ( !%this.cursor )
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
function interiorDebugDialog::onSleep( %this )
|
||||
{
|
||||
if ( !%this.cursor )
|
||||
CursorOff();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,6 +93,5 @@ function InteriorPreviewGui::onSleep(%this)
|
|||
GlobalActionMap.unbind(keyboard, "tab");
|
||||
GlobalActionMap.unbind(keyboard, "f9");
|
||||
lockMouse(false);
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,63 +7,113 @@ new GuiControl(JoinChatDlg) {
|
|||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new ShellPaneCtrl(JoinChatPane) {
|
||||
profile = "ShellDlgPaneProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "117 47";
|
||||
position = "120 60";
|
||||
extent = "400 360";
|
||||
minExtent = "48 92";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
text = "CHOOSE CHAT CHANNEL";
|
||||
maxLength = "255";
|
||||
noTitleBar = "0";
|
||||
|
||||
new ShellScrollCtrl() {
|
||||
profile = "NewScrollCtrlProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "height";
|
||||
position = "91 36";
|
||||
extent = "218 232";
|
||||
minExtent = "24 52";
|
||||
new ShellFancyArrayScrollCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "48 39";
|
||||
extent = "304 227";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "alwaysOn";
|
||||
constantThumbHeight = "0";
|
||||
defaultLineHeight = "15";
|
||||
childMargin = "0 3";
|
||||
fieldBase = "gui/shll_field";
|
||||
fixedHorizontal = "1";
|
||||
vertSpacerBitmap = "gui/shll_vertspacer";
|
||||
horzSpacerBitmap = "gui/shll_horzspacer";
|
||||
|
||||
new GuiScrollContentCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
new VirtualScrollCtrl() {
|
||||
profile = "NewScrollCtrlProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "4 7";
|
||||
extent = "194 218";
|
||||
position = "0 16";
|
||||
extent = "304 211";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "0";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "alwaysOn";
|
||||
constantThumbHeight = "0";
|
||||
defaultLineHeight = "15";
|
||||
childMargin = "0 0";
|
||||
|
||||
new ShellTextList(JoinChatList) {
|
||||
profile = "ShellTextArrayProfile";
|
||||
new VirtualScrollContentCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "194 8";
|
||||
position = "4 4";
|
||||
extent = "280 203";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
enumerate = "1";
|
||||
resizeCell = "1";
|
||||
columns = "0";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "288 9616";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
new ShellFancyTextList(JoinChatList) {
|
||||
profile = "ShellServerBrowserProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "284 223";
|
||||
minExtent = "8 20";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
altCommand = "JoinChatDlg.join();";
|
||||
helpTag = "0";
|
||||
startScrollRegion = "0 0";
|
||||
headerBitmap = "gui/server_tabs";
|
||||
sortArrowBitmap = "gui/shll_sortarrow";
|
||||
fieldBase = "gui/shll_field";
|
||||
barBase = "gui/shll_bar";
|
||||
glowOffset = "4";
|
||||
rowHeight = "19";
|
||||
headerFontSize = "0";
|
||||
headerFontColor = "8 19 6 255";
|
||||
headerFontColorHL = "25 68 56 255";
|
||||
separatorColor = "192 192 192 255";
|
||||
drawSeparators = "0";
|
||||
headerSort = "1";
|
||||
allowReposition = "0";
|
||||
noSelect = "0";
|
||||
allowColorChars = "0";
|
||||
};
|
||||
};
|
||||
new ShellBitmapButton() {
|
||||
profile = "ShellButtonProfile";
|
||||
|
|
@ -73,8 +123,10 @@ new GuiControl(JoinChatDlg) {
|
|||
extent = "128 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
command = "Canvas.popDialog(JoinChatDlg); LaunchTabView.viewTab(\"CHAT\",ChatGui,0);";
|
||||
accelerator = "escape";
|
||||
accelerator = "escape";
|
||||
helpTag = "0";
|
||||
text = "CANCEL";
|
||||
simpleStyle = "0";
|
||||
|
|
@ -83,10 +135,12 @@ new GuiControl(JoinChatDlg) {
|
|||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "top";
|
||||
position = "86 269";
|
||||
extent = "228 36";
|
||||
position = "67 269";
|
||||
extent = "272 36";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new ShellTextEditCtrl(JoinChatName) {
|
||||
|
|
@ -94,13 +148,19 @@ new GuiControl(JoinChatDlg) {
|
|||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "48 0";
|
||||
extent = "180 38";
|
||||
extent = "223 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
command = "JoinChatName.onCharInput();";
|
||||
altCommand = "JoinChatDlg.join();";
|
||||
helpTag = "0";
|
||||
maxLength = "24";
|
||||
historySize = "0";
|
||||
maxLength = "255";
|
||||
password = "0";
|
||||
tabComplete = "0";
|
||||
deniedSound = "InputDeniedSound";
|
||||
glowOffset = "9 9";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
|
|
@ -111,8 +171,11 @@ new GuiControl(JoinChatDlg) {
|
|||
extent = "44 22";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
helpTag = "0";
|
||||
text = "Channel:";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
new ShellBitmapButton() {
|
||||
|
|
@ -123,6 +186,8 @@ new GuiControl(JoinChatDlg) {
|
|||
extent = "128 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
hideCursor = "0";
|
||||
bypassHideCursor = "0";
|
||||
command = "JoinChatDlg.join();";
|
||||
helpTag = "0";
|
||||
text = "JOIN CHAT";
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ new GuiChunkedBitmapCtrl(LobbyGui) {
|
|||
minExtent = "8 20";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
startScrollRegion = "4 0";
|
||||
startScrollRegion = "3 0";
|
||||
headerBitmap = "gui/server_tabs";
|
||||
sortArrowBitmap = "gui/shll_sortarrow";
|
||||
fieldBase = "gui/shll_field";
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ new GameTSCtrl(PlayGui) {
|
|||
visible = "1";
|
||||
setFirstResponder = "1";
|
||||
modal = "1";
|
||||
hideCursor = "1";
|
||||
helpTag = "0";
|
||||
beaconBaseTextureName = "gui/beacon_base";
|
||||
beaconTargetTextureName = "gui/crosshairs";
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ new GuiControl(TaskHudDlg) {
|
|||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
bypassHideCursor = "1";
|
||||
|
||||
new ShellFieldCtrl() {
|
||||
profile = "GuiChatBackProfile";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Input log opened at Sun Apr 15 10:48:48 2001
|
||||
Input log opened at Mon Apr 23 18:55:20 2001
|
||||
|
||||
Operating System:
|
||||
WinNT version 5.0
|
||||
|
|
|
|||
|
|
@ -479,7 +479,7 @@ function CTFGame::gameOver(%game)
|
|||
messageAll('MsgClearObjHud', "");
|
||||
for(%i = 0; %i < ClientGroup.getCount(); %i ++)
|
||||
{
|
||||
%client = %group.getObject(%i);
|
||||
%client = ClientGroup.getObject(%i);
|
||||
%game.resetScore(%client);
|
||||
}
|
||||
for(%j = 1; %j <= %game.numTeams; %j++)
|
||||
|
|
@ -520,30 +520,6 @@ function CTFGame::clientMissionDropReady(%game, %client)
|
|||
DefaultGame::clientMissionDropReady(%game, %client);
|
||||
}
|
||||
|
||||
//NOTE - if we revert to this method of scoring, the function DefaultGame::awardScoreSuicide() no longer increments %client.deaths
|
||||
// function CTFGame::recalcScore(%game, %cl)
|
||||
// {
|
||||
// // currently no penalty for suicide?
|
||||
// //%cl.offenseScore = ((%cl.kills * %game.SCORE_PER_KILL) * (%cl.kills * %game.SCORE_PER_KILL)) / ((%cl.kills * %game.SCORE_PER_KILL) + (%cl.deaths * %game.SCORE_PER_DEATH)); //currently 1 pt per
|
||||
// %cl.offenseScore = %cl.kills * %game.SCORE_PER_KILL + // 1
|
||||
// %cl.deaths * %game.SCORE_PER_DEATH + // -1
|
||||
// %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + // 1
|
||||
// %cl.teamKills * %game.SCORE_PER_TEAMKILL + // -1
|
||||
// %cl.flagCaps * %game.SCORE_PER_PLYR_FLAG_CAP + // 3
|
||||
// %cl.genDestroys * %game.SCORE_PER_GEN_DESTROY + // 2
|
||||
//
|
||||
// %cl.defenseScore = %cl.genDefends * %game.SCORE_PER_GEN_DEFEND + // 1
|
||||
// %cl.carrierKills * %game.SCORE_PER_CARRIER_KILL + // 1
|
||||
// %cl.escortAssists * %game.SCORE_PER_ESCORT_ASSIST + // 1
|
||||
// %cl.turretKills * %game.SCORE_PER_TURRET_KILL + // 1
|
||||
// %cl.flagReturns * %game.SCORE_PER_FLAG_RETURN + // 1
|
||||
// %cl.genRepairs * %game.SCORE_PER_GEN_REPAIR + // 1
|
||||
//
|
||||
// %cl.score = %cl.offenseScore + %cl.defenseScore;
|
||||
//
|
||||
// %game.recalcTeamRanks(%cl);
|
||||
// }
|
||||
|
||||
function CTFGame::assignClientTeam(%game, %client, %respawn)
|
||||
{
|
||||
DefaultGame::assignClientTeam(%game, %client, %respawn);
|
||||
|
|
|
|||
|
|
@ -53,11 +53,21 @@ function JoinChatDlg::onWake(%this)
|
|||
MessageBoxYesNo("Connect IRC","Connect to IRC server?","IRCClient::connect();","Canvas.popDialog(JoinChatDlg);");
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function JoinChatList::onAdd( %this )
|
||||
{
|
||||
%this.addColumn( 0, "Channel Name", 210, 210, 210 );
|
||||
%this.addColumn( 1, "Users", 74, 74, 74, "numeric center" );
|
||||
%this.addColumn( 2, "", 0, 0, 0, "numeric" );
|
||||
%this.setSortColumn( 2 );
|
||||
%this.setSortIncreasing( false );
|
||||
%this.addStyle( 1, $ShellBoldFont, $ShellFontSize, "180 180 180", "220 220 220", "40 40 40" );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function JoinChatList::onSelect(%this,%id,%text)
|
||||
{
|
||||
%stripped = stripChars( %text, "\c4");
|
||||
JoinChatName.setValue(%stripped);
|
||||
JoinChatName.setValue( getField( %text, 0 ) );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
@ -76,6 +86,24 @@ function JoinChatDlg::join(%this)
|
|||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function JoinChatName::onCharInput( %this )
|
||||
{
|
||||
%text = %this.getValue();
|
||||
if ( %text !$= "" )
|
||||
{
|
||||
%count = JoinChatList.rowCount();
|
||||
for ( %row = 0; %row < %count; %row++ )
|
||||
{
|
||||
if ( %text $= getSubStr( getField( JoinChatList.getRowText( %row ), 0 ), 0, strlen( %text ) ) )
|
||||
break;
|
||||
}
|
||||
|
||||
if ( %row < %count )
|
||||
JoinChatList.scrollVisible( %row );
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function ChatGui::onAdd(%this)
|
||||
{
|
||||
|
|
@ -145,7 +173,7 @@ function ChatTabView::onSelect(%this,%obj,%name)
|
|||
if ($IRCClient::currentChannel == $IRCClient::attachedChannel)
|
||||
ChatGuiMessageVector.detach();
|
||||
ChatGuiMessageVector.attach(%obj);
|
||||
ChatGuiMessageVector.scrollToBottom();
|
||||
//ChatGuiMessageVector.scrollToBottom();
|
||||
$IRCClient::attachedChannel = %obj;
|
||||
}
|
||||
$IRCClient::currentChannel = %obj;
|
||||
|
|
@ -197,12 +225,17 @@ function ChatGuiMessageVector::urlClickCallback(%this,%type,%url,%content)
|
|||
case "http":
|
||||
gotoWebPage(%url);
|
||||
case "server":
|
||||
IRCClient::onJoinGame(%content,%url);
|
||||
|
||||
//IRCClient::onJoinGame(%content,%url);
|
||||
%url = nextToken(%url,a," ");
|
||||
%url = nextToken(%url,map,"(");
|
||||
%url = nextToken(%url,type,")");
|
||||
|
||||
if(getSubStr(%content, 0, 1) $= "#")
|
||||
{
|
||||
// this is a fake server, its really a channel for invites
|
||||
IRCClient::join(%content);
|
||||
return;
|
||||
}
|
||||
// set the loading gui
|
||||
// LoadingGui.map = %map;
|
||||
// LoadingGui.missionType = %type;
|
||||
|
|
@ -755,17 +788,18 @@ function IRCClient::notify(%event)
|
|||
JoinChatList.clear();
|
||||
for (%i = 0; %i < $IRCClient::numChannels; %i++)
|
||||
{
|
||||
%officailChannelMod = IRCClient::getOfficailChannelMod($IRCClient::channelNames[%i]);
|
||||
%channelListDisplayName = %officailChannelMod @ IRCClient::displayChannel($IRCClient::channelNames[%i]) @"\c1 ["@ $IRCClient::channelUsers[%i] @"]";
|
||||
JoinChatList.addRow(%i, %channelListDisplayName);
|
||||
}
|
||||
JoinChatList.sort(0);
|
||||
if (strlen(JoinChatName.getValue()))
|
||||
{
|
||||
%i = JoinChatList.findTextIndex(JoinChatName.getValue());
|
||||
JoinChatList.scrollVisible(%i);
|
||||
JoinChatList.setSelectedById(JoinChatList.getRowId(%i));
|
||||
switch$ ( $IRCClient::channelNames[%i] )
|
||||
{
|
||||
case "#Tribes2": %temp = 3;
|
||||
case "#Tribes2-recruiting": %temp = 2;
|
||||
case "#Help": %temp = 1;
|
||||
default: %temp = 0;
|
||||
}
|
||||
JoinChatList.addRow(%i, IRCClient::displayChannel( $IRCClient::channelNames[%i]) TAB $IRCClient::channelUsers[%i] TAB %temp );
|
||||
JoinChatList.setRowStyle( %i, %temp > 0 );
|
||||
}
|
||||
JoinChatList.sort();
|
||||
JoinChatName.onCharInput();
|
||||
case IDIRC_CHANNEL_HAS_KEY:
|
||||
KeyChannelName.setValue(IRCClient::displayChannel($IRCClient::keyChannel));
|
||||
Canvas.pushDialog(ChannelKeyDlg);
|
||||
|
|
@ -799,11 +833,8 @@ function IRCClient::notify(%event)
|
|||
}
|
||||
ChatTabView.removeTab($IRCClient::deletedChannel);
|
||||
case IDIRC_INVITED:
|
||||
MessageBoxOKCancel("Invite",
|
||||
"You have been invited to channel " @
|
||||
IRCClient::displayChannel($IRCClient::invitechannel) @
|
||||
" by " @ $IRCClient::inviteperson @ ".",
|
||||
"IRCClient::join($IRCClient::invitechannel);");
|
||||
//MessageBoxOKCancel("Invite", "You have been invited to channel " @ IRCClient::displayChannel($IRCClient::invitechannel) @ " by " @ $IRCClient::inviteperson @ ".", "IRCClient::join($IRCClient::invitechannel);");
|
||||
IRCClient::newMessage($IRCClient::CurrentChannel, "You have been invited to channel " @ $IRCClient::invitechannel @ " by " @ $IRCClient::inviteperson @ ".");
|
||||
case IDIRC_BAN_LIST:
|
||||
ChannelBannedList_refresh();
|
||||
case IDIRC_TOPIC:
|
||||
|
|
@ -859,6 +890,8 @@ function IRCClient::connected()
|
|||
//------------------------------------------------------------------------------
|
||||
function IRCClient::newMessage(%channel,%message)
|
||||
{
|
||||
%message = IRCClient::findChannelURL(%message);
|
||||
|
||||
if (%channel == $IRCClient::channels.getObject(0) ||
|
||||
%channel $= "")
|
||||
$IRCClient::channels.getObject(0).pushBackLine(%message);
|
||||
|
|
@ -1136,20 +1169,6 @@ function IRCClient::findChannel(%name,%create)
|
|||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function IRCClient::getOfficailChannelMod(%name)
|
||||
{
|
||||
if(%name $= "#Tribes2"
|
||||
|| %name $= "#Tribes2-recruiting"
|
||||
|| %name $= "#Help")
|
||||
{
|
||||
return "\c4";
|
||||
}
|
||||
else return "";
|
||||
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function IRCClient::displayChannel(%channel)
|
||||
{
|
||||
|
|
@ -1445,8 +1464,7 @@ function IRCClient::dispatch(%prefix,%command,%params)
|
|||
case "JOIN":
|
||||
IRCClient::onJoin(%prefix,%params);
|
||||
case "NICK":
|
||||
error("onNick has been removed!");
|
||||
//IRCClient::onNick(%prefix,%params);
|
||||
IRCClient::onNick(%prefix,%params);
|
||||
case "QUIT":
|
||||
IRCClient::onQuit(%prefix,%params);
|
||||
case "ERROR":
|
||||
|
|
@ -1638,7 +1656,7 @@ function IRCClient::onPrivMsg(%prefix,%params)
|
|||
// should we highlight this message
|
||||
if($pref::IRCClient::highlightOn)
|
||||
%msg = IRCClient::nickHighLight(%msg);
|
||||
|
||||
|
||||
%nick = %ch;
|
||||
if (getSubStr(%ch,0,1) $= "@" || getSubStr(%ch,0,1) $= "+")
|
||||
%nick = getSubStr(%nick,1,strlen(%nick)-1);
|
||||
|
|
@ -1665,6 +1683,54 @@ function IRCClient::onPrivMsg(%prefix,%params)
|
|||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function IRCClient::findChannelURL(%msg)
|
||||
{
|
||||
%numWords = getWordCount(%msg);
|
||||
for(%i = 0; %i < %numWords; %i++)
|
||||
{
|
||||
%word = getWord(%msg, %i);
|
||||
%firstLetter = getSubStr(%word, 0, 1);
|
||||
|
||||
if(%firstLetter $= "#")
|
||||
{
|
||||
// this is a fake server link that will get parsed to an
|
||||
// IRCClient::join by the urlCallback hack
|
||||
%newWord = "<t2server:" @ %word @ ">"@ IRCClient::displayChannel(%word)@"</t2server>";
|
||||
%word = %newWord;
|
||||
}
|
||||
|
||||
if(%newText $= "")
|
||||
%newText = %word;
|
||||
else %newText = %newText SPC %word;
|
||||
}
|
||||
|
||||
return %newText;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function IRCClient::onNick(%prefix,%params)
|
||||
{
|
||||
%person = IRCClient::findPerson2(%prefix,false);
|
||||
|
||||
if (%person)
|
||||
{
|
||||
if (!(%person.flags & $PERSON_IGNORE))
|
||||
IRCClient::newMessage($IRCClient::currentChannel,%person.getName() @ " is now known as " @ %params @ ".");
|
||||
|
||||
%channel = IRCClient::findChannel(%person.getName());
|
||||
|
||||
if (%channel)
|
||||
%channel.setName(%params);
|
||||
|
||||
%person.setName(%params);
|
||||
|
||||
// If this is me, re-set the console variable
|
||||
if (%person == $IRCClient::people.getObject(0))
|
||||
$IRCClient::NickName = %person.getName();
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function IRCClient::onQuit(%prefix,%params)
|
||||
{
|
||||
|
|
@ -1681,7 +1747,11 @@ function IRCClient::onQuit(%prefix,%params)
|
|||
if (!(%p.flags & $PERSON_IGNORE))
|
||||
IRCClient::newMessage(%c,"\c4" @ IRCClient::taggedNick(%p) @ " has disconnected from IRC.");
|
||||
if (%c == $IRCClient::currentChannel)
|
||||
{
|
||||
IRCClient::notify(IDIRC_PART);
|
||||
//IRCClient::part(%c.getName());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2668,11 +2738,14 @@ function IRCClient::nick(%nick)
|
|||
if (($IRCClient::state $= IDIRC_CONNECTED || $IRCClient::state $= IDIRC_CONNECTING_IRC) &&
|
||||
strlen(nick))
|
||||
{
|
||||
if (stricmp(%nick, $IRCClient::people.getObject(0).displayName))
|
||||
if (stricmp(%nick, $IRCClient::people.getObject(0).getName()))
|
||||
IRCClient::send("NICK " @ %nick);
|
||||
}
|
||||
else
|
||||
$IRCClient::people.getObject(0).displayName = %nick;
|
||||
{
|
||||
$IRCClient::people.getObject(0).setName(%nick);
|
||||
$IRCClient::NickName = %nick;
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
@ -2681,6 +2754,166 @@ function IRCClient::name(%name)
|
|||
$IRCClient::people.getObject(0).real = %name;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
function ChatMessageEntry::onTabComplete(%this)
|
||||
{
|
||||
// the word that the cursor is on or just behind
|
||||
// and exchange it for a matching nick from this channel
|
||||
|
||||
//%channel = $IRCClient::channels.getObject(0);
|
||||
%me = $IRCClient::people.getObject(0);
|
||||
|
||||
// if there is no text just iterate through the channel members
|
||||
|
||||
%text = %this.getValue();
|
||||
|
||||
if(%text $= "")
|
||||
{
|
||||
error("null string completion not implemented yet.");
|
||||
return;
|
||||
}
|
||||
|
||||
%cursorPos = %this.getCursorPos();
|
||||
%textLen = strLen(%text);
|
||||
|
||||
// find the first space behind the cursor
|
||||
for(%a = %cursorPos; %a >= 0; %a--)
|
||||
{
|
||||
%letter = getSubStr(%text, %a, 1);
|
||||
if(%letter $= " ")
|
||||
{
|
||||
%space = %a + 1; // add 1 so we dont INCLUDE the space
|
||||
%begining = %space;
|
||||
//echo("first space is at pos" SPC %begining);
|
||||
break;
|
||||
}
|
||||
if(%a == 0)
|
||||
{
|
||||
//echo("there are no prev spaces.");
|
||||
%begining = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// find the first space in front of the cursor
|
||||
for(%b = %cursorPos; %b <= %textLen; %b++)
|
||||
{
|
||||
%letter = getSubStr(%text, %b, 1);
|
||||
if(%letter $= " ")
|
||||
{
|
||||
%end = %b;
|
||||
//echo("end space is at pos" SPC %end);
|
||||
|
||||
break;
|
||||
}
|
||||
if(%b == %textLen)
|
||||
{
|
||||
//echo("there are no end spaces.");
|
||||
%end = %textLen;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//why dont we move the cursor to the end of the word if they try and tab complete
|
||||
//successfull or not
|
||||
%this.setCursorPos(%b);
|
||||
|
||||
// this forms a word
|
||||
%wordLen = %end - %begining;
|
||||
%word = getSubStr(%text, %begining, %wordLen);
|
||||
//error("Word to tabComplete: "@%word@".");
|
||||
|
||||
//we interupt here
|
||||
// if we have the last word we tab completed then we are trying to cycle
|
||||
// we want to cycle with the stem of the last word we completed from
|
||||
// so we use the stem instead of the word
|
||||
if(%word $= %me.lastCompletion)
|
||||
{
|
||||
%word = %me.lastCompletionStub;
|
||||
%wordLen = strLen(%word);
|
||||
}
|
||||
|
||||
// is it a tab-completable word?
|
||||
for (%i = 0; %i < $IRCClient::people.getCount(); %i++)
|
||||
{
|
||||
%person = $IRCClient::people.getObject(%i);
|
||||
if(%person.untagged !$= "")
|
||||
%personName = %person.untagged;
|
||||
else %personName = %person;
|
||||
|
||||
%personSnip = getSubStr(%personName, 0, %wordLen);
|
||||
|
||||
if(%personSnip $= %word)
|
||||
{
|
||||
%nickPossiblity[%numMatches++] = %personName;
|
||||
}
|
||||
}
|
||||
|
||||
if(!%numMatches)
|
||||
{
|
||||
//error("no matches...sorry.");
|
||||
return;
|
||||
}
|
||||
|
||||
// we have ALL the possible tab completes for the word
|
||||
// if we have just tab completed on of them give us the next one instead
|
||||
// cycle through the possiblities
|
||||
|
||||
for(%i = 1; %i <= %numMatches; %i++)
|
||||
{
|
||||
if(%nickPossiblity[%i] $= %me.lastCompletion)
|
||||
{
|
||||
%newWord = %nickPossiblity[%i+1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(%newWord $= "" )
|
||||
%newWord = %nickPossiblity1;
|
||||
|
||||
%newWordLenDif = strLen(%newWord) - strLen(%word);
|
||||
|
||||
if(%newWord $= "")
|
||||
{
|
||||
//error("There is no word to tab complete");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// there is a word (%newWord) find out which word it is
|
||||
for(%i = 0; %i < getWordCount(%text); %i++)
|
||||
{
|
||||
%wordCheck = getWord(%text, %i);
|
||||
//echo("is this word our candidate? "@%wordCheck);
|
||||
if(%wordCheck $= %word)
|
||||
{
|
||||
%wordNum = %i;
|
||||
}
|
||||
//what if there are multiple instances of this word?
|
||||
}
|
||||
|
||||
// replace the word with the new word and move the cursor
|
||||
|
||||
for(%x = 0; %x < getWordCount(%text); %x++)
|
||||
{
|
||||
%thisWord = getWord(%text, %x);
|
||||
|
||||
if(%wordNum == %x)
|
||||
{
|
||||
%thisWord = %newWord;
|
||||
}
|
||||
|
||||
if(%newText $= "")
|
||||
%newText = %thisWord;
|
||||
else %newText = %newText SPC %thisWord;
|
||||
}
|
||||
|
||||
%this.setCursorPos( %this.getCursorPos() + %newWordLenDif -1 );
|
||||
|
||||
// replace what the current text is, with new text
|
||||
%this.setValue(%newText);
|
||||
|
||||
%me.lastCompletion = %newWord;
|
||||
%me.lastCompletionStub = %word;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
function IRCClient::nickHighLight(%message)
|
||||
{
|
||||
|
|
@ -2978,21 +3211,25 @@ function IRCClient::onJoinServer(%mission,%server,%address,%mayprequire,%prequir
|
|||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function IRCClient::onJoinGame(%address,%desc)
|
||||
function IRCClient::onJoinGame(%address, %desc)
|
||||
{
|
||||
//error("IRCClient::onJoinGame( "@ %address @", "@ %desc @" )");
|
||||
IRCClient::away("joined a game.");
|
||||
//IRCClient::away("joined a game.");
|
||||
|
||||
%me = $IRCClient::people.getObject(0);
|
||||
if(%address $= %me.lastAddress)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
%me.lastAddress = %address;
|
||||
|
||||
if (%address $= "")
|
||||
%msg = $pref::IRCClient::hostMsg;
|
||||
%joinLink = "<t2server:" @ %address @ ">Click here to follow</t2server>.";
|
||||
|
||||
if(%address $= "")
|
||||
%msg = %desc;
|
||||
else
|
||||
%msg = "launched into <t2server:" @ %address @ ">" @ %desc @ "</t2server>.";
|
||||
%msg = %desc SPC %joinLink;
|
||||
|
||||
//IRCClient::sendAction(%msg);
|
||||
|
||||
|
|
@ -3000,7 +3237,10 @@ function IRCClient::onJoinServer(%mission,%server,%address,%mayprequire,%prequir
|
|||
{
|
||||
%c = $IRCClient::channels.getObject(%i);
|
||||
if (!%c.private)
|
||||
{
|
||||
IRCClient::send("PRIVMSG " @ %c.getName() @ " :\x01ACTION " @ %msg @ "\x01");
|
||||
IRCClient::newMessage($IRCClient::currentChannel, IRCClient::taggedNick($IRCClient::people.getObject(0)) @ "\c9 " @ %msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3012,6 +3252,6 @@ function IRCClient::onLeaveGame()
|
|||
|
||||
if ($LaunchMode $= "Normal")
|
||||
{
|
||||
IRCClient::init();
|
||||
IRCClient::connect();
|
||||
}
|
||||
IRCClient::init();
|
||||
IRCClient::connect();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -444,6 +444,7 @@ function CnHGame::resetScore(%game, %client)
|
|||
%client.offenseScore = 0;
|
||||
%client.kills = 0;
|
||||
%client.deaths = 0;
|
||||
%client.suicides = 0;
|
||||
%client.teamKills = 0;
|
||||
%client.flipFlopsCapped = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -213,24 +213,6 @@ function DMGame::updateKillScores(%game, %clVictim, %clKiller, %damageType, %imp
|
|||
messageClient(%clVictim, 'MsgDMPlayerDies', "", %clVictim.deaths + %clVictim.suicides);
|
||||
}
|
||||
|
||||
//NOTE - if we revert to this method of scoring, the function DefaultGame::awardScoreSuicide() no longer increments %client.deaths
|
||||
//function DMGame::recalcScore(%game, %client)
|
||||
//{
|
||||
// // MES - just in case :)
|
||||
// if((%client.kills + %client.deaths) == 0)
|
||||
// %client.efficiency = 0;
|
||||
// else
|
||||
// %client.efficiency = ((%client.kills) * (%client.kills)) / (%client.kills + %client.deaths);
|
||||
|
||||
//TINMAN - I changed this since DM seems based on efficiency, and the previous score doesn't appear anywhere...
|
||||
//%client.score = (%client.kills * %game.SCORE_PER_KILL) + (%client.deaths * %game.SCORE_PER_DEATH);
|
||||
// %client.score = mFloatLength(%client.efficiency, 1);
|
||||
|
||||
// messageClient(%client, 'MsgDMYourEfficIs', "", %client.score);
|
||||
// %game.recalcTeamRanks(%client);
|
||||
// %game.checkScoreLimit(%client);
|
||||
//}
|
||||
|
||||
function DMGame::recalcScore(%game, %client)
|
||||
{
|
||||
%killValue = %client.kills * %game.SCORE_PER_KILL;
|
||||
|
|
@ -272,7 +254,7 @@ function DMGame::gameOver(%game)
|
|||
cancel(%game.timeThread);
|
||||
messageAll('MsgClearObjHud', "");
|
||||
for(%i = 0; %i < ClientGroup.getCount(); %i ++) {
|
||||
%client = %group.getObject(%i);
|
||||
%client = ClientGroup.getObject(%i);
|
||||
%game.resetScore(%client);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -267,4 +267,7 @@ function DnDGame::resetScore(%game, %client)
|
|||
%client.scoreSelfKills = 0;
|
||||
%client.teamKills = 0;
|
||||
%client.objScore = 0;
|
||||
%client.kills = 0;
|
||||
%client.deaths = 0;
|
||||
%client.suicides = 0;
|
||||
}
|
||||
|
|
@ -578,16 +578,7 @@ function PasswordDlg::accept( %this )
|
|||
//------------------------------------------------------------------------------
|
||||
function JoinSelectedGame()
|
||||
{
|
||||
// This stuff must go soon!
|
||||
%info = GMJ_Browser.getValue();
|
||||
LoadingGui.map = getField( %info, 3 );
|
||||
LoadingGui.missionType = getField( %info, 4 );
|
||||
//
|
||||
|
||||
%info = GMJ_Browser.getServerInfoString();
|
||||
%desc = "a" SPC getField(%info,4) @ "(" @ getField(%info,3) @ ") game on the \"" @ getField(%info,0) @ "\" server. Click here to follow";
|
||||
|
||||
IRCClient::onJoinGame($JoinGameAddress,%desc);
|
||||
$ServerInfo = GMJ_Browser.getServerInfoString();
|
||||
|
||||
JoinGame($JoinGameAddress);
|
||||
}
|
||||
|
|
@ -914,7 +905,7 @@ function StartHostedGame()
|
|||
return;
|
||||
}
|
||||
|
||||
IRCClient::onJoinGame("", "");
|
||||
//IRCClient::onJoinGame("", "");
|
||||
|
||||
MessagePopup( "STARTING SERVER", "Initializing..." );
|
||||
Canvas.repaint();
|
||||
|
|
|
|||
|
|
@ -268,8 +268,6 @@ function LaunchGui::onAdd(%this)
|
|||
//----------------------------------------------------------------------------
|
||||
function LaunchGui::onWake(%this)
|
||||
{
|
||||
if ( !Canvas.isCursorOn() )
|
||||
CursorOn();
|
||||
$enableDirectInput = "0";
|
||||
deactivateDirectInput();
|
||||
Canvas.pushDialog(LaunchToolbarDlg);
|
||||
|
|
|
|||
|
|
@ -45,9 +45,6 @@ function LobbyGui::onWake( %this )
|
|||
}
|
||||
|
||||
$InLobby = true;
|
||||
%this.mouseOn = Canvas.isCursorOn();
|
||||
if ( !%this.mouseOn )
|
||||
CursorOn();
|
||||
|
||||
//pop any key maps
|
||||
moveMap.pop();
|
||||
|
|
@ -57,7 +54,6 @@ function LobbyGui::onWake( %this )
|
|||
observerBlockMap.pop();
|
||||
if ( isObject( observerMap ) )
|
||||
observerMap.pop();
|
||||
//flyingCameraMove.pop();
|
||||
|
||||
$enableDirectInput = "0";
|
||||
deactivateDirectInput();
|
||||
|
|
@ -91,9 +87,6 @@ function LobbyGui::onSleep( %this )
|
|||
LobbyVoteMenu.mode = "";
|
||||
LobbyCancelBtn.setVisible( false );
|
||||
LobbyStatusText.setText( "" );
|
||||
if ( !%this.mouseOn )
|
||||
CursorOff();
|
||||
%this.mouseOn = "";
|
||||
$InLobby = false;
|
||||
}
|
||||
|
||||
|
|
@ -114,7 +107,6 @@ function lobbyLeaveGame()
|
|||
function lobbyReturnToGame()
|
||||
{
|
||||
Canvas.setContent( PlayGui );
|
||||
CursorOff();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
@ -139,8 +131,7 @@ function LobbyPlayerList::initColumns( %this )
|
|||
%this.clear();
|
||||
%this.clearColumns();
|
||||
%this.addColumn( 0, " ", 24, 24, 24, "center" ); // Flag column
|
||||
%this.addColumn( 6, " ", 20, 20, 20, "icon" ); // Voice Enabled column
|
||||
%this.addColumn( 7, " ", 20, 20, 20, "icon" ); // Listening column
|
||||
%this.addColumn( 6, "lobby_headset", 36, 36, 36, "headericon" ); // Voice Com column
|
||||
%this.addColumn( 1, "Player", $pref::Lobby::Column1, 50, 200 );
|
||||
if ( $clTeamCount > 1 )
|
||||
%this.addColumn( 2, "Team", $pref::Lobby::Column2, 50, 200 );
|
||||
|
|
@ -197,11 +188,17 @@ function lobbyUpdatePlayer( %clientId )
|
|||
|
||||
if ( %player.canListen )
|
||||
{
|
||||
%voiceEnabled = %player.voiceEnabled ? "lobby_icon_speak" : "";
|
||||
%listening = %player.isListening ? "lobby_icon_listen" : "";
|
||||
if ( %player.voiceEnabled )
|
||||
{
|
||||
%voiceIcons = "lobby_icon_speak";
|
||||
if ( %player.isListening )
|
||||
%voiceIcons = %voiceIcons @ ":lobby_icon_listen";
|
||||
}
|
||||
else
|
||||
%voiceIcons = %player.isListening ? "lobby_icon_listen" : "";
|
||||
}
|
||||
else
|
||||
%voiceEnabled = %listening = "shll_icon_timedout";
|
||||
%voiceIcons = "shll_icon_timedout";
|
||||
|
||||
if ( $clTeamCount > 1 )
|
||||
{
|
||||
|
|
@ -209,10 +206,10 @@ function lobbyUpdatePlayer( %clientId )
|
|||
%teamName = "Observer";
|
||||
else
|
||||
%teamName = $clTeamScore[%player.teamId, 0] $= "" ? "-" : $clTeamScore[%player.teamId, 0];
|
||||
%text = %tag TAB %voiceEnabled TAB %listening TAB %player.name TAB %teamName TAB %player.score TAB %player.ping TAB %player.packetLoss;
|
||||
%text = %tag TAB %voiceIcons TAB %player.name TAB %teamName TAB %player.score TAB %player.ping TAB %player.packetLoss;
|
||||
}
|
||||
else
|
||||
%text = %tag TAB %voiceEnabled TAB %listening TAB %player.name TAB %player.score TAB %player.ping TAB %player.packetLoss;
|
||||
%text = %tag TAB %voiceIcons TAB %player.name TAB %player.score TAB %player.ping TAB %player.packetLoss;
|
||||
|
||||
if ( LobbyPlayerList.getRowNumById( %clientId ) == -1 )
|
||||
LobbyPlayerList.addRow( %clientId, %text );
|
||||
|
|
@ -299,11 +296,36 @@ function LobbyPlayerPopup::onSelect( %this, %id, %text )
|
|||
|
||||
case 9: // enable/disable voice communication
|
||||
togglePlayerVoiceCom( %this.player );
|
||||
|
||||
case 10:
|
||||
confirmAdminListAdd( %this.player, false );
|
||||
|
||||
case 11:
|
||||
confirmAdminListAdd( %this.player, true );
|
||||
}
|
||||
|
||||
Canvas.popDialog( LobbyPlayerActionDlg );
|
||||
}
|
||||
|
||||
function confirmAdminListAdd( %client, %super )
|
||||
{
|
||||
if( %super )
|
||||
MessageBoxYesNo( "CONFIRM", "Are you sure you want to add " @ %client.name @ " to the server super admin list?", "toSuperList( " @ %client.clientId @ " );" );
|
||||
|
||||
else
|
||||
MessageBoxYesNo( "CONFIRM", "Are you sure you want to add " @ %client.name @ " to the server admin list?", "toAdminList( " @ %client.clientId @ " );" );
|
||||
}
|
||||
|
||||
function toSuperList( %client )
|
||||
{
|
||||
commandToServer( 'AddToSuperAdminList', %client );
|
||||
}
|
||||
|
||||
function toAdminList( %client )
|
||||
{
|
||||
commandToServer( 'AddToAdminList', %client );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function LobbyPlayerPopup::onCancel( %this )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -11,11 +11,6 @@ $max_TSDetailAdjust = 1.0;
|
|||
//------------------------------------------------------------------------------
|
||||
function OptionsDlg::onWake( %this )
|
||||
{
|
||||
// Save the cursor state since it's possible we will be coming from the sim:
|
||||
%this.wasCursorOn = Canvas.isCursorOn();
|
||||
if ( !%this.wasCursorOn )
|
||||
CursorOn();
|
||||
|
||||
$enableDirectInput = "1";
|
||||
activateDirectInput();
|
||||
|
||||
|
|
@ -269,10 +264,6 @@ function OptionsDlg::deviceDependent( %this )
|
|||
//------------------------------------------------------------------------------
|
||||
function OptionsDlg::onSleep( %this )
|
||||
{
|
||||
// Restore the cursor state:
|
||||
if ( !%this.wasCursorOn )
|
||||
CursorOff();
|
||||
|
||||
$enableDirectInput = "0";
|
||||
deactivateDirectInput();
|
||||
|
||||
|
|
@ -1153,16 +1144,20 @@ function OP_VoiceListenMenu::init( %this )
|
|||
%this.add( ".v12", 1 );
|
||||
%this.add( ".v12 - .v24", 3 );
|
||||
%this.add( ".v12 - .v29", 7 );
|
||||
// %this.add( ".v12 - .gsm", 15 );
|
||||
%this.add( ".v12 - .gsm", 15 );
|
||||
|
||||
switch ( $pref::Audio::decodingMask )
|
||||
{
|
||||
// case 0 or 3 or 7 or 15:
|
||||
case 0 or 3 or 7:
|
||||
case 0 or 3 or 7 or 15:
|
||||
%this.setSelected( $pref::Audio::decodingMask );
|
||||
default:
|
||||
%this.setSelected( 1 );
|
||||
}
|
||||
|
||||
// Linux only has the GSM codec available for now
|
||||
if ( $platform $= "linux" ) {
|
||||
%this.setActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
@ -1172,9 +1167,14 @@ function OP_VoiceSendMenu::init( %this )
|
|||
%this.add( ".v12", 0 );
|
||||
%this.add( ".v24", 1 );
|
||||
%this.add( ".v29", 2 );
|
||||
// %this.add( ".gsm", 3 );
|
||||
%this.add( ".gsm", 3 );
|
||||
|
||||
%this.setSelected($pref::Audio::encodingLevel);
|
||||
|
||||
// Linux only has the GSM codec available for now
|
||||
if ( $platform $= "linux" ) {
|
||||
%this.setActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
function OP_VoiceCodecInfo::init( %this )
|
||||
|
|
@ -1182,10 +1182,10 @@ function OP_VoiceCodecInfo::init( %this )
|
|||
%headerStyle = "<font:" @ $ShellLabelFont @ ":" @ $ShellFontSize @ "><color:00DC00>";
|
||||
%displayText = "<spush>" @ %headerStyle @ "Voice Codec Information:<spop>" NL
|
||||
"\n" @
|
||||
" .v12: variable bitrate codec (~1.2 kbits/sec win)" NL
|
||||
" .v24: fixed bitrate codec (2.4 kbits/sec win)" NL
|
||||
" .v29: fixed bitrate codec (2.9 kbits/sec win)" NL
|
||||
// " .gsm: fixed bitrate codec (6.6 kbits/sec win/linux)" NL
|
||||
" .v12: variable bitrate codec (~1.2 kbits/sec win only)" NL
|
||||
" .v24: fixed bitrate codec (2.4 kbits/sec win only)" NL
|
||||
" .v29: fixed bitrate codec (2.9 kbits/sec win only)" NL
|
||||
" .gsm: fixed bitrate codec (6.6 kbits/sec win/linux)" NL
|
||||
"\n" @
|
||||
"<bitmap:bullet_2><lmargin:24>" @
|
||||
"Setting your codec levels too high can have adverse" @
|
||||
|
|
@ -1831,13 +1831,11 @@ function RemapDlg::onWake( %this )
|
|||
RemapText.setText( "<just:center>Press a key to assign it to this action" NL "or Esc to cancel..." );
|
||||
else
|
||||
RemapText.setText( "<just:center>Press a key or button to assign it to this action" NL "or Esc to cancel..." );
|
||||
//CursorOff();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function RemapDlg::onSleep( %this )
|
||||
{
|
||||
//CursorOn();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -332,7 +332,7 @@ function RabbitGame::gameOver(%game)
|
|||
messageAll('MsgClearObjHud', "");
|
||||
for(%i = 0; %i < ClientGroup.getCount(); %i++)
|
||||
{
|
||||
%client = %group.getObject(%i);
|
||||
%client = ClientGroup.getObject(%i);
|
||||
%game.resetScore(%client);
|
||||
cancel(%client.waypointSchedule);
|
||||
}
|
||||
|
|
@ -344,6 +344,8 @@ function RabbitGame::resetScore(%game, %client)
|
|||
{
|
||||
%client.score = 0;
|
||||
%client.kills = 0;
|
||||
%client.deaths = 0;
|
||||
%client.suicides = 0;
|
||||
%client.flagGrabs = 0;
|
||||
%client.flagTimeMS = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -885,6 +885,7 @@ function SiegeGame::resetScore(%game, %client)
|
|||
%client.score = 0;
|
||||
%client.kills = 0;
|
||||
%client.deaths = 0;
|
||||
%client.suicides = 0;
|
||||
%client.objScore = 0;
|
||||
%client.teamKills = 0;
|
||||
%client.turretKills = 0;
|
||||
|
|
|
|||
|
|
@ -337,8 +337,7 @@ function SinglePlayerGame::onClientKilled(%game, %clVictim, %clKiller, %damageTy
|
|||
if(%num == 1)
|
||||
%textNum = "one life";
|
||||
else %textNum = %num SPC "lives";
|
||||
messageBoxOk("Restart", "You have" SPC %textNum SPC "remaining.", "CursorOff(); spawnSinglePlayer();");
|
||||
//canvas.cursorOn();
|
||||
messageBoxOk("Restart", "You have" SPC %textNum SPC "remaining.", "spawnSinglePlayer();");
|
||||
}
|
||||
else schedule(3000, $player.player, singlePlayerDead);
|
||||
}
|
||||
|
|
@ -418,7 +417,6 @@ function trainingBiodermSpeaks(%client)
|
|||
function singlePlayerDead()
|
||||
{
|
||||
missionFailed($player.miscMsg[trainingDeathLoss]);
|
||||
CursorOn();
|
||||
AIMissionEnd();
|
||||
$objectiveQ[$enemyTeam].clear();
|
||||
cancel($player.distanceCheckSchedule);
|
||||
|
|
@ -839,7 +837,6 @@ function missionComplete(%text)
|
|||
$player.endMission = schedule(15000, game, forceFinish);
|
||||
|
||||
messageBoxOk("Victory", %text, "forceFinish();");
|
||||
//canvas.cursorOn();
|
||||
|
||||
//AI stop
|
||||
clearQueue();
|
||||
|
|
@ -877,7 +874,6 @@ function reloadMission()
|
|||
{
|
||||
cancel($player.endMission);
|
||||
Game.gameOver();
|
||||
CursorOn();
|
||||
loadMission($currentMission, singlePlayer);
|
||||
debriefContinue();
|
||||
}
|
||||
|
|
@ -992,10 +988,6 @@ function SinglePlayerGame::createCustomKeymap(%game)
|
|||
//=======================================================================================
|
||||
function SinglePlayerEscapeDlg::onWake( %this )
|
||||
{
|
||||
%this.wasCursorOn = Canvas.isCursorOn();
|
||||
if ( !%this.wasCursorOn )
|
||||
CursorOn();
|
||||
|
||||
$timeScale = 0;
|
||||
|
||||
if( OptionsDlg.isAwake())
|
||||
|
|
@ -1014,16 +1006,12 @@ function SinglePlayerEscapeDlg::onSleep( %this )
|
|||
function SinglePlayerEscapeDlg::leaveGame( %this )
|
||||
{
|
||||
Canvas.popDialog( SinglePlayerEscapeDlg );
|
||||
if ( !%this.wasCursorOn )
|
||||
CursorOff();
|
||||
MessageBoxYesNo( "LEAVE GAME", $player.miscMsg[LeaveGame], "forceFinish();", "CursorOff(); $timeScale = 1;" );
|
||||
MessageBoxYesNo( "LEAVE GAME", $player.miscMsg[LeaveGame], "forceFinish();", "$timeScale = 1;" );
|
||||
}
|
||||
|
||||
function SinglePlayerEscapeDlg::gotoSettings( %this )
|
||||
{
|
||||
Canvas.popDialog( SinglePlayerEscapeDlg );
|
||||
//if ( !%this.wasCursorOn )
|
||||
// CursorOff();
|
||||
Canvas.pushDialog( OptionsDlg );
|
||||
}
|
||||
|
||||
|
|
@ -1032,7 +1020,6 @@ function SinglePlayerEscapeDlg::returnToGame( %this )
|
|||
//error( "** CALLING SinglePlayerEscapeDlg::returnToGame **" );
|
||||
$timeScale = 1;
|
||||
Canvas.popDialog( SinglePlayerEscapeDlg );
|
||||
CursorOff();
|
||||
|
||||
movemap.push();
|
||||
//trainingmap.push();
|
||||
|
|
@ -1041,6 +1028,9 @@ function SinglePlayerEscapeDlg::returnToGame( %this )
|
|||
|
||||
function singlePlayerGame::OptionsDlgSleep(%game)
|
||||
{
|
||||
$enableDirectInput = 1;
|
||||
activateDirectInput();
|
||||
|
||||
Canvas.pushDialog( SinglePlayerEscapeDlg );
|
||||
// the player may have changed his keys
|
||||
// we need to reload the big spdialog string table that
|
||||
|
|
|
|||
|
|
@ -170,23 +170,6 @@ function TeamHuntersGame::resetScore(%game, %client)
|
|||
%client.deaths = 0;
|
||||
}
|
||||
|
||||
//NOTE - if we revert to this method of scoring, the function DefaultGame::awardScoreSuicide() no longer increments %client.deaths
|
||||
// function TeamHuntersGame::recalcScore(%game, %cl)
|
||||
// {
|
||||
// if (%cl <= 0)
|
||||
// return;
|
||||
//
|
||||
// %cl.score = 0;
|
||||
// %cl.score += %cl.kills * %game.SCORE_PER_KILL;
|
||||
// %cl.score += %cl.deaths * %game.SCORE_PER_DEATH;
|
||||
// %cl.score += %cl.suicides * %game.SCORE_PER_SUICIDE;
|
||||
//
|
||||
// //must send the message to update the HUD
|
||||
// messageClient(%cl, 'MsgYourScoreIs', "", %cl.score);
|
||||
//
|
||||
// %game.recalcTeamRanks(%cl);
|
||||
// }
|
||||
|
||||
function TeamHuntersGame::recalcScore(%game, %cl)
|
||||
{
|
||||
if (%cl <= 0)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
%gender = (%client.sex $= "Male" ? 'he' : 'she');
|
||||
if ( Game.scheduleVote $= "" )
|
||||
{
|
||||
%clientsVoting = 0;
|
||||
|
||||
//send a message to everyone about the vote...
|
||||
if (%playerVote)
|
||||
{
|
||||
|
|
@ -36,14 +38,13 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
}
|
||||
|
||||
Game.kickClient = %arg1;
|
||||
%clientsVoting = 0;
|
||||
if(%teamSpecific)
|
||||
{
|
||||
for ( %clientIndex = 0; %clientIndex < ClientGroup.getCount(); %clientIndex++ )
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %clientIndex );
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
|
||||
if(%cl.team == %client.team)
|
||||
if (%cl.team == %client.team && !%cl.isAIControlled())
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1.name);
|
||||
%clientsVoting++;
|
||||
|
|
@ -51,15 +52,43 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
}
|
||||
}
|
||||
else
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1.name);
|
||||
{
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1.name);
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1.name);
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1.name);
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( %typeName $= "VoteChangeMission" )
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2 %3 (%4).', %client.name, %actionMsg, %arg1, %arg2 );
|
||||
{
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 %3 (%4).', %client.name, %actionMsg, %arg1, %arg2 );
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (%arg1 !$= 0)
|
||||
{
|
||||
if (%arg2 !$= 0)
|
||||
|
|
@ -68,7 +97,17 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
{
|
||||
%admin = getAdmin();
|
||||
if(%admin > 0)
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2 Tournament Mode (%3).', %client.name, %actionMsg, %arg1);
|
||||
{
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 Tournament Mode (%3).', %client.name, %actionMsg, %arg1);
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
messageClient( %client, 'clientMsg', 'There must be a server admin to play in Tournament Mode.');
|
||||
|
|
@ -76,14 +115,43 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
}
|
||||
}
|
||||
else
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2 %3 %4.', %client.name, %actionMsg, %arg1, %arg2);
|
||||
|
||||
{
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 %3 %4.', %client.name, %actionMsg, %arg1, %arg2);
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1);
|
||||
{
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2 %3.', %client.name, %actionMsg, %arg1);
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
messageAll( 'VoteStarted', '\c2%1 initiated a vote to %2.', %client.name, %actionMsg);
|
||||
{
|
||||
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %idx );
|
||||
if ( !%cl.isAIControlled() )
|
||||
{
|
||||
messageClient( %cl, 'VoteStarted', '\c2%1 initiated a vote to %2.', %client.name, %actionMsg);
|
||||
%clientsVoting++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// open the vote hud for all clients that will participate in this vote
|
||||
if(%teamSpecific)
|
||||
|
|
@ -92,7 +160,7 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
{
|
||||
%cl = ClientGroup.getObject( %clientIndex );
|
||||
|
||||
if(%cl.team == %client.team)
|
||||
if(%cl.team == %client.team && !%cl.isAIControlled())
|
||||
messageClient(%cl, 'openVoteHud', "", %clientsVoting, ($Host::VotePassPercent / 100));
|
||||
}
|
||||
}
|
||||
|
|
@ -101,7 +169,8 @@ function serverCmdStartNewVote(%client, %typeName, %actionMsg, %arg1, %arg2, %ar
|
|||
for ( %clientIndex = 0; %clientIndex < ClientGroup.getCount(); %clientIndex++ )
|
||||
{
|
||||
%cl = ClientGroup.getObject( %clientIndex );
|
||||
messageClient(%cl, 'openVoteHud', "", $HostGamePlayerCount, ($Host::VotePassPercent / 100));
|
||||
if ( !%cl.isAIControlled() )
|
||||
messageClient(%cl, 'openVoteHud', "", %clientsVoting, ($Host::VotePassPercent / 100));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -473,11 +473,6 @@ function AIConnection::onAIConnect(%client, %name, %team, %skill, %offense, %voi
|
|||
%voicePitch = 1.0;
|
||||
%client.voicePitch = %voicePitch;
|
||||
|
||||
if ( getRandom() > 0.5 )
|
||||
%client.skin = addTaggedString( "basebot" );
|
||||
else
|
||||
%client.skin = addTaggedString( "basebbot" );
|
||||
|
||||
%client.name = addTaggedString( "\cp\c9" @ %name @ "\co" );
|
||||
%client.nameBase = %name;
|
||||
|
||||
|
|
@ -485,8 +480,15 @@ function AIConnection::onAIConnect(%client, %name, %team, %skill, %offense, %voi
|
|||
echo("CADD: " @ %client @ " " @ %client.getAddress());
|
||||
$HostGamePlayerCount++;
|
||||
|
||||
//set the initial team - Game.assignClientTeam() should be called later on...
|
||||
%client.team = %team;
|
||||
if ( %client.team & 1 )
|
||||
%client.skin = addTaggedString( "basebot" );
|
||||
else
|
||||
%client.skin = addTaggedString( "basebbot" );
|
||||
|
||||
//setup the target for use with the sensor net, etc...
|
||||
%client.target = allocClientTarget(%client, %client.name, "", %client.voiceTag, '_ClientConnection', 0, 0, %client.voicePitch);
|
||||
%client.target = allocClientTarget(%client, %client.name, %client.skin, %client.voiceTag, '_ClientConnection', 0, 0, %client.voicePitch);
|
||||
|
||||
//i need to send a "silent" version of this for single player but still use the callback -jr`
|
||||
if($currentMissionType $= "SinglePlayer")
|
||||
|
|
@ -494,9 +496,6 @@ function AIConnection::onAIConnect(%client, %name, %team, %skill, %offense, %voi
|
|||
else
|
||||
messageAllExcept(%client, -1, 'MsgClientJoin', '\c1%1 joined the game.', %name, %client, %client.target, true);
|
||||
|
||||
//set the initial team - Game.assignClientTeam() should be called later on...
|
||||
%client.team = %team;
|
||||
|
||||
//assign the skill
|
||||
%client.setSkillLevel(%skill);
|
||||
|
||||
|
|
|
|||
|
|
@ -224,8 +224,6 @@ function PlayGui::onWake(%this)
|
|||
// hack city - these controls are floating around and need to be clamped
|
||||
schedule(0, 0, "refreshCenterTextCtrl");
|
||||
schedule(0, 0, "refreshBottomTextCtrl");
|
||||
|
||||
CursorOff();
|
||||
}
|
||||
|
||||
function refreshBottomTextCtrl()
|
||||
|
|
@ -251,8 +249,6 @@ function PlayGui::onSleep(%this)
|
|||
if ( isObject( observerMap ) )
|
||||
observerMap.pop();
|
||||
//flyingCameraMove.pop();
|
||||
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
function onConnectRequestRejected( %msg )
|
||||
|
|
@ -1652,7 +1648,8 @@ function clientCmdMissionStartPhase2(%seq)
|
|||
// clean some stuff up.
|
||||
MessageHud.close();
|
||||
purgeResources();
|
||||
cls();
|
||||
if (!$pref::NoClearConsole)
|
||||
cls();
|
||||
commandToServer('MissionStartPhase2Done', %seq);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,13 +5,18 @@ if ( $platform $= "linux" ) {
|
|||
} else {
|
||||
$pref::Audio::drivers = "Miles";
|
||||
}
|
||||
$pref::Audio::frequency = 22100;
|
||||
$pref::Audio::frequency = 22050;
|
||||
$pref::Audio::sampleBits = 16;
|
||||
$pref::Audio::channels = 2;
|
||||
$pref::Audio::enableVoiceCapture = 1;
|
||||
$pref::Audio::voiceChannels = 1;
|
||||
$pref::Audio::encodingLevel = 0;
|
||||
$pref::Audio::decodingMask = 1;
|
||||
if ( $platform $= "linux" ) {
|
||||
$pref::Audio::encodingLevel = 3;
|
||||
$pref::Audio::decodingMask = 15;
|
||||
} else {
|
||||
$pref::Audio::encodingLevel = 0;
|
||||
$pref::Audio::decodingMask = 1;
|
||||
}
|
||||
$pref::Audio::forceMaxDistanceUpdate = 0;
|
||||
$pref::Audio::environmentEnabled = 0;
|
||||
$pref::Audio::musicEnabled = 1;
|
||||
|
|
|
|||
|
|
@ -171,7 +171,6 @@ function CommanderMapGui::onWake(%this)
|
|||
alxStop( $HudHandle['CommandScreen'] );
|
||||
alxPlay(CommandMapActivateSound, 0, 0, 0);
|
||||
$HudHandle['CommandScreen'] = alxPlay(CommandMapHumSound, 0, 0, 0);
|
||||
CursorOn();
|
||||
|
||||
CMDTextButton.setValue(CommanderMap.renderText);
|
||||
|
||||
|
|
@ -198,7 +197,6 @@ function CommanderMapGui::onSleep(%this)
|
|||
%this.open = false;
|
||||
|
||||
commandToServer('ScopeCommanderMap', false);
|
||||
CursorOff();
|
||||
|
||||
if(CMContextPopup.visible == true)
|
||||
CMContextPopup.reset();
|
||||
|
|
@ -214,6 +212,9 @@ function CommanderMapGui::onSleep(%this)
|
|||
// if this gui is being removed outside of CommanderMapGui::close()
|
||||
if(CommanderTV.open && CommanderTV.attached)
|
||||
commandToServer('AttachCommanderCamera', -1);
|
||||
|
||||
//always set the cursor back to an arrow when you leave...
|
||||
Canvas.setCursor(CMDCursorArrow);
|
||||
}
|
||||
|
||||
function CommanderMapGui::open(%this)
|
||||
|
|
@ -776,6 +777,7 @@ new ActionMap(CommanderTVControl);
|
|||
CommanderTVControl.bind(mouse, xaxis, yaw);
|
||||
CommanderTVControl.bind(mouse, yaxis, pitch);
|
||||
|
||||
|
||||
function CommanderTV_ButtonPress(%val)
|
||||
{
|
||||
if(%val)
|
||||
|
|
|
|||
|
|
@ -18,16 +18,11 @@ function MessageBoxOK( %title, %message, %callback )
|
|||
//------------------------------------------------------------------------------
|
||||
function MessageBoxOKDlg::onWake( %this )
|
||||
{
|
||||
%this.mouseOn = Canvas.isCursorOn();
|
||||
if ( !%this.mouseOn )
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function MessageBoxOKDlg::onSleep( %this )
|
||||
{
|
||||
if ( !%this.mouseOn )
|
||||
CursorOff();
|
||||
%this.callback = "";
|
||||
}
|
||||
|
||||
|
|
@ -46,16 +41,11 @@ function MessageBoxOKCancel( %title, %message, %callback, %cancelCallback )
|
|||
//------------------------------------------------------------------------------
|
||||
function MessageBoxOKCancelDlg::onWake( %this )
|
||||
{
|
||||
%this.mouseOn = Canvas.isCursorOn();
|
||||
if ( !%this.mouseOn )
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function MessageBoxOKCancelDlg::onSleep( %this )
|
||||
{
|
||||
if ( !%this.mouseOn )
|
||||
CursorOff();
|
||||
%this.callback = "";
|
||||
}
|
||||
|
||||
|
|
@ -74,16 +64,11 @@ function MessageBoxYesNo( %title, %message, %yesCallback, %noCallback )
|
|||
//------------------------------------------------------------------------------
|
||||
function MessageBoxYesNoDlg::onWake( %this )
|
||||
{
|
||||
%this.mouseOn = Canvas.isCursorOn();
|
||||
if ( !%this.mouseOn )
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function MessageBoxYesNoDlg::onSleep( %this )
|
||||
{
|
||||
if ( !%this.mouseOn )
|
||||
CursorOff();
|
||||
%this.yesCallback = "";
|
||||
%this.noCallback = "";
|
||||
}
|
||||
|
|
@ -112,16 +97,11 @@ function CloseMessagePopup()
|
|||
//------------------------------------------------------------------------------
|
||||
function PickTeamDlg::onWake( %this )
|
||||
{
|
||||
%this.mouseOn = Canvas.isCursorOn();
|
||||
if ( !%this.mouseOn )
|
||||
CursorOn();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function PickTeamDlg::onSleep( %this )
|
||||
{
|
||||
if ( !%this.mouseOn )
|
||||
CursorOff();
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
@ -159,6 +139,7 @@ function fillLoadSaveList( %ctrl, %fileSpec, %validate, %isSave )
|
|||
%id++;
|
||||
}
|
||||
}
|
||||
%ctrl.sort( 0 );
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -20,10 +20,6 @@ function cancelCredits()
|
|||
|
||||
//delete the contents of the ML ctrl so as to free up memory...
|
||||
Credits_Text.setText("");
|
||||
|
||||
//restore the mouse
|
||||
ConsoleDlg.mouseOn = true;
|
||||
cursorOn();
|
||||
}
|
||||
|
||||
function CreditsGui::onWake(%this)
|
||||
|
|
@ -41,9 +37,6 @@ function CreditsGui::onWake(%this)
|
|||
}
|
||||
CreditsActionMap.push();
|
||||
|
||||
//hide the mouse
|
||||
cursorOff();
|
||||
|
||||
//build the ML text ctrl...
|
||||
exec("scripts/creditsText.cs");
|
||||
|
||||
|
|
|
|||
|
|
@ -1209,9 +1209,15 @@ function DefaultGame::assignClientTeam(%game, %client, %respawn )
|
|||
if ( %client.isAIControlled() )
|
||||
{
|
||||
if ( %leastTeam & 1 )
|
||||
{
|
||||
%client.skin = addTaggedString( "basebot" );
|
||||
setTargetSkin( %client.target, 'basebot' );
|
||||
}
|
||||
else
|
||||
{
|
||||
%client.skin = addTaggedString( "basebbot" );
|
||||
setTargetSkin( %client.target, 'basebbot' );
|
||||
}
|
||||
}
|
||||
else
|
||||
setTargetSkin( %client.target, $teamSkin[%client.team] );
|
||||
|
|
@ -1253,6 +1259,11 @@ function DefaultGame::clientJoinTeam( %game, %client, %team, %respawn )
|
|||
logEcho(%client.nameBase@" (cl "@%client@") joined team "@%client.team);
|
||||
}
|
||||
|
||||
function DefaultGame::AIHasJoined(%game, %client)
|
||||
{
|
||||
//defined to prevent console spam
|
||||
}
|
||||
|
||||
function DefaultGame::AIChangeTeam(%game, %client, %newTeam)
|
||||
{
|
||||
//make sure we're trying to drop an AI
|
||||
|
|
@ -1283,6 +1294,19 @@ function DefaultGame::AIChangeTeam(%game, %client, %newTeam)
|
|||
%client.team = %newTeam;
|
||||
if (%newTeam < 0)
|
||||
Game.assignClientTeam(%client);
|
||||
else
|
||||
{
|
||||
if ( %client.team & 1 )
|
||||
{
|
||||
%client.skin = addTaggedString( "basebot" );
|
||||
setTargetSkin( %client.target, 'basebot' );
|
||||
}
|
||||
else
|
||||
{
|
||||
%client.skin = addTaggedString( "basebbot" );
|
||||
setTargetSkin( %client.target, 'basebbot' );
|
||||
}
|
||||
}
|
||||
|
||||
messageAllExcept( %client, -1, 'MsgClientJoinTeam', '\c1bot %1 has switched to team %2.', %client.name, $teamName[%client.team], %client, %client.team );
|
||||
}
|
||||
|
|
@ -2326,8 +2350,14 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k
|
|||
%outrankTarget = !%targetClient.isAdmin;
|
||||
|
||||
if( ! %targetClient.matchStartReady )
|
||||
return;
|
||||
|
||||
return;
|
||||
|
||||
if( %client.isSuperAdmin )
|
||||
{
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "addAdmin", "", 'Add to Server Admin List', 10);
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "addSuperAdmin", "", 'Add to Server SuperAdmin List', 11);
|
||||
}
|
||||
|
||||
//mute options
|
||||
if ( !%isTargetSelf )
|
||||
{
|
||||
|
|
@ -2355,9 +2385,6 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k
|
|||
if ( !%isTargetSelf )
|
||||
{
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "KickPlayer", "", 'Vote to Kick', 3 );
|
||||
|
||||
if ( !%isTargetBot )
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "BanPlayer", "", 'Vote to Ban', 4 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2373,7 +2400,8 @@ function DefaultGame::sendGamePlayerPopupMenu( %game, %client, %targetClient, %k
|
|||
|
||||
if ( !%isTargetBot )
|
||||
{
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "BanPlayer", "", 'Ban', 4 );
|
||||
if( %client.isSuperAdmin )
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "BanPlayer", "", 'Ban', 4 );
|
||||
|
||||
if ( !%isTargetObserver )
|
||||
messageClient( %client, 'MsgPlayerPopupItem', "", %key, "ToObserver", "", 'Force observer', 5 );
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ $NotDeployableReason::NoTerrainFound = 6;
|
|||
$NotDeployableReason::NoInteriorFound = 7;
|
||||
$NotDeployableReason::TurretTooClose = 8;
|
||||
$NotDeployableReason::TurretSaturation = 9;
|
||||
$NotDeployableReason::SurfaceTooNarrow = 10;
|
||||
|
||||
$MinDeployableDistance = 0.5;
|
||||
$MaxDeployableDistance = 4.0; //meters from body
|
||||
|
|
@ -569,6 +570,20 @@ function ShapeBaseImageData::testNoInteriorFound(%item, %surface)
|
|||
//don't check this for non-Clasping turret deployables
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
function TurretIndoorDeployableImage::testHavePurchase(%item, %xform)
|
||||
{
|
||||
%footprintRadius = 0.34;
|
||||
%collMask = $TypeMasks::InteriorObjectType;
|
||||
return %item.deployed.checkDeployPurchase(%xform, %footprintRadius, %collMask);
|
||||
}
|
||||
|
||||
function ShapeBaseImageData::testHavePurchase(%item, %xform)
|
||||
{
|
||||
//don't check this for non-Clasping turret deployables
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
function TurretIndoorDeployableImage::testTurretTooClose(%item, %plyr)
|
||||
{
|
||||
|
|
@ -767,6 +782,10 @@ function ShapeBaseImageData::testInvalidDeployConditions(%item, %plyr, %slot)
|
|||
{
|
||||
%disqualified = $NotDeployableReason::ObjectTooClose;
|
||||
}
|
||||
else if (!%item.testHavePurchase(%xform))
|
||||
{
|
||||
%disqualified = $NotDeployableReason::SurfaceTooNarrow;
|
||||
}
|
||||
}
|
||||
|
||||
if (%plyr.getMountedImage($BackpackSlot) == %item) //player still have the item?
|
||||
|
|
@ -856,6 +875,9 @@ function Deployables::displayErrorMsg(%item, %plyr, %slot, %error)
|
|||
|
||||
case $NotDeployableReason::TurretSaturation:
|
||||
%msg = '\c2There are too many turrets nearby.%1';
|
||||
|
||||
case $NotDeployableReason::SurfaceTooNarrow:
|
||||
%msg = '\c2There is not adequate surface to clamp to here.%1';
|
||||
|
||||
default:
|
||||
%msg = '\c2Deploy failed.';
|
||||
|
|
|
|||
|
|
@ -1132,27 +1132,16 @@ function clientCmdTogglePlayHuds(%val)
|
|||
mainVoteHud.setVisible(0);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// - check if anything currently up needs the cursor to be enabled
|
||||
function keepCursorOn()
|
||||
{
|
||||
return(CommanderMapGui.open || $ConsoleActive);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function toggleCursorHuds(%tag)
|
||||
{
|
||||
if($Hud[%tag] !$= "" && $Hud[%tag].pushed)
|
||||
{
|
||||
if (Canvas.isCursorOn() && !keepCursorOn())
|
||||
CursorOff();
|
||||
hideHud(%tag);
|
||||
clientCmdTogglePlayHuds(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Canvas.isCursorOn())
|
||||
CursorOn();
|
||||
showHud(%tag);
|
||||
clientCmdTogglePlayHuds(false);
|
||||
}
|
||||
|
|
@ -1243,8 +1232,6 @@ function closeHud(%msgType, %msgString, %tag)
|
|||
$Hud[%tag].setVisible(false);
|
||||
Canvas.popDialog($Hud[%tag]);
|
||||
$Hud[%tag].pushed = 0;
|
||||
if (Canvas.isCursorOn() && !keepCursorOn())
|
||||
CursorOff();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1082,13 +1082,13 @@ datablock DebrisData( PlayerDebris )
|
|||
{
|
||||
explodeOnMaxBounce = false;
|
||||
|
||||
elasticity = 0.15;
|
||||
elasticity = 0.35;
|
||||
friction = 0.5;
|
||||
|
||||
lifetime = 4.0;
|
||||
lifetimeVariance = 0.0;
|
||||
|
||||
minSpinSpeed = 40;
|
||||
minSpinSpeed = 60;
|
||||
maxSpinSpeed = 600;
|
||||
|
||||
numBounces = 5;
|
||||
|
|
@ -1100,7 +1100,7 @@ datablock DebrisData( PlayerDebris )
|
|||
useRadiusMass = true;
|
||||
baseRadius = 1;
|
||||
|
||||
velocity = 20.0;
|
||||
velocity = 18.0;
|
||||
velocityVariance = 12.0;
|
||||
};
|
||||
|
||||
|
|
@ -1892,6 +1892,8 @@ datablock PlayerData(LightMaleBiodermArmor) : LightMaleHumanArmor
|
|||
shapeFile = "bioderm_light.dts";
|
||||
jetEmitter = BiodermArmorJetEmitter;
|
||||
|
||||
debrisShapeName = "bio_player_debris.dts";
|
||||
|
||||
//Foot Prints
|
||||
decalData = LightBiodermFootprint;
|
||||
decalOffset = 0.3;
|
||||
|
|
@ -1912,6 +1914,8 @@ datablock PlayerData(MediumMaleBiodermArmor) : MediumMaleHumanArmor
|
|||
shapeFile = "bioderm_medium.dts";
|
||||
jetEmitter = BiodermArmorJetEmitter;
|
||||
|
||||
debrisShapeName = "bio_player_debris.dts";
|
||||
|
||||
//Foot Prints
|
||||
decalData = MediumBiodermFootprint;
|
||||
decalOffset = 0.35;
|
||||
|
|
@ -1934,6 +1938,8 @@ datablock PlayerData(HeavyMaleBiodermArmor) : HeavyMaleHumanArmor
|
|||
shapeFile = "bioderm_heavy.dts";
|
||||
jetEmitter = BiodermArmorJetEmitter;
|
||||
|
||||
debrisShapeName = "bio_player_debris.dts";
|
||||
|
||||
//Foot Prints
|
||||
decalData = HeavyBiodermFootprint;
|
||||
decalOffset = 0.4;
|
||||
|
|
@ -2522,30 +2528,27 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
|||
// where did this guy get it?
|
||||
%damLoc = %targetObject.getDamageLocation(%position);
|
||||
|
||||
// if(%targetClient.race !$= "Bioderm")
|
||||
// {
|
||||
// // should this guy be blown apart?
|
||||
// if( %damageType == $DamageType::Explosion ||
|
||||
// %damageType == $DamageType::TankMortar ||
|
||||
// %damageType == $DamageType::Mortar ||
|
||||
// %damageType == $DamageType::MortarTurret ||
|
||||
// %damageType == $DamageType::BomberBombs ||
|
||||
// %damageType == $DamageType::SatchelCharge )
|
||||
// {
|
||||
// if( %previousDamage >= 0.35 ) // only if <= 35 percent damage remaining
|
||||
// {
|
||||
// %targetObject.setMomentumVector(%momVec);
|
||||
// %targetObject.blowup();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// should this guy be blown apart?
|
||||
if( %damageType == $DamageType::Explosion ||
|
||||
%damageType == $DamageType::TankMortar ||
|
||||
%damageType == $DamageType::Mortar ||
|
||||
%damageType == $DamageType::MortarTurret ||
|
||||
%damageType == $DamageType::BomberBombs ||
|
||||
%damageType == $DamageType::SatchelCharge )
|
||||
{
|
||||
if( %previousDamage >= 0.35 ) // only if <= 35 percent damage remaining
|
||||
{
|
||||
%targetObject.setMomentumVector(%momVec);
|
||||
%targetObject.blowup();
|
||||
}
|
||||
}
|
||||
|
||||
// this should be funny...
|
||||
// if( %damageType == $DamageType::VehicleSpawn && %targetClient.race !$= "Bioderm" )
|
||||
// {
|
||||
// %targetObject.setMomentumVector("0 0 1");
|
||||
// %targetObject.blowup();
|
||||
// }
|
||||
if( %damageType == $DamageType::VehicleSpawn )
|
||||
{
|
||||
%targetObject.setMomentumVector("0 0 1");
|
||||
%targetObject.blowup();
|
||||
}
|
||||
|
||||
// If we were killed, max out the flash
|
||||
%targetObject.setDamageFlash(0.75);
|
||||
|
|
|
|||
|
|
@ -236,6 +236,10 @@ function DisconnectedCleanup()
|
|||
clearTextureHolds();
|
||||
purgeResources();
|
||||
|
||||
// Restart the email check:
|
||||
if ( !EmailGui.checkingEmail && EmailGui.checkSchedule $= "" )
|
||||
CheckEmail( true );
|
||||
|
||||
IRCClient::onLeaveGame();
|
||||
}
|
||||
|
||||
|
|
@ -884,7 +888,7 @@ function serverSetClientTeamState( %client )
|
|||
}
|
||||
else // let this player join the team he was on last game
|
||||
{
|
||||
if(Game.numTeams > 1)
|
||||
if(Game.numTeams > 1 && %client.lastTeam <= Game.numTeams )
|
||||
{
|
||||
Game.clientJoinTeam( %client, %client.lastTeam, false );
|
||||
}
|
||||
|
|
@ -1444,12 +1448,15 @@ function dumpGameString()
|
|||
|
||||
function isOnAdminList(%client)
|
||||
{
|
||||
if( !%totalRecords = getRecordCount( $Host::adminList ) )
|
||||
if( !%totalRecords = getRecordCount( $Host::AdminList ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for(%i = 0; %i < %totalRecords; %i++)
|
||||
{
|
||||
%record = getField(getRecord( $Host::adminList, %i ), 0 );
|
||||
%record = getField( getRecord( $Host::AdminList, 0 ), %i);
|
||||
echo( "record: " @ %record @ "guid: " @ %client.guid );
|
||||
if(%record == %client.guid)
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1460,11 +1467,14 @@ function isOnAdminList(%client)
|
|||
function isOnSuperAdminList(%client)
|
||||
{
|
||||
if( !%totalRecords = getRecordCount( $Host::superAdminList ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
for(%i = 0; %i < %totalRecords; %i++)
|
||||
{
|
||||
%record = getField( getRecord( $Host::superAdminList, %i ), 0);
|
||||
%record = getField( getRecord( $Host::superAdminList, 0 ), %i);
|
||||
echo( "record: " @ %record @ "guid: " @ %client.guid );
|
||||
if(%record == %client.guid)
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1472,8 +1482,11 @@ function isOnSuperAdminList(%client)
|
|||
return false;
|
||||
}
|
||||
|
||||
function addToAdminList( %client )
|
||||
function ServerCmdAddToAdminList( %admin, %client )
|
||||
{
|
||||
if( !%admin.isSuperAdmin )
|
||||
return;
|
||||
|
||||
%count = getRecordCount( $Host::AdminList );
|
||||
|
||||
for ( %i = 0; %i < %count; %i++ )
|
||||
|
|
@ -1483,11 +1496,17 @@ function addToAdminList( %client )
|
|||
return; // They're already there!
|
||||
}
|
||||
|
||||
$Host::AdminList = $Host::AdminList NL %client.guid;
|
||||
if( %count == 0 )
|
||||
$Host::AdminList = %client.guid;
|
||||
else
|
||||
$Host::AdminList = $Host::AdminList TAB %client.guid;
|
||||
}
|
||||
|
||||
function addToSuperAdminList( %client )
|
||||
function ServerCmdAddToSuperAdminList( %admin, %client )
|
||||
{
|
||||
if( !%admin.isSuperAdmin )
|
||||
return;
|
||||
|
||||
%count = getRecordCount( $Host::SuperAdminList );
|
||||
|
||||
for ( %i = 0; %i < %count; %i++ )
|
||||
|
|
@ -1497,7 +1516,10 @@ function addToSuperAdminList( %client )
|
|||
return; // They're already there!
|
||||
}
|
||||
|
||||
$Host::SuperAdminList = $Host::SuperAdminList NL %client.guid;
|
||||
if( %count == 0 )
|
||||
$Host::SuperAdminList = %client.guid;
|
||||
else
|
||||
$Host::SuperAdminList = $Host::SuperAdminList TAB %client.guid;
|
||||
}
|
||||
|
||||
function resetTournamentPlayers()
|
||||
|
|
|
|||
|
|
@ -55,8 +55,7 @@ $MasterServerAddress = "IP:198.74.40.152:28000";
|
|||
|
||||
// 0: .v12 (1.2 kbits/sec), 1: .v24 (2.4 kbits/sec), 2: .v29 (2.9kbits/sec)
|
||||
// 3: gsm (6.6 kbits/sec)
|
||||
// GSM: $Audio::maxEncodingLevel = 3;
|
||||
$Audio::maxEncodingLevel = 2;
|
||||
$Audio::maxEncodingLevel = 3;
|
||||
$Audio::maxVoiceChannels = 2;
|
||||
|
||||
$Host::MapPlayerLimits["Abominable", "CnH"] = "-1 32";
|
||||
|
|
|
|||
|
|
@ -116,19 +116,13 @@ function clientCmdStationVehicleShowHud()
|
|||
if ( Canvas.getContent() != PlayGui.getId() )
|
||||
return;
|
||||
|
||||
if ( !Canvas.isCursorOn() )
|
||||
CursorOn();
|
||||
showHud( 'vehicleHud' );
|
||||
|
||||
clientCmdTogglePlayHuds(false);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
function clientCmdStationVehicleHideHud()
|
||||
{
|
||||
if ( Canvas.isCursorOn() )
|
||||
CursorOff();
|
||||
hideHud( 'vehicleHud' );
|
||||
|
||||
clientCmdTogglePlayHuds(true);
|
||||
}
|
||||
|
|
@ -158,6 +158,9 @@ datablock FlyingVehicleData(HAPCFlyer) : HavocDamageProfile
|
|||
|
||||
checkRadius = 7.8115;
|
||||
observeParameters = "1 15 15";
|
||||
|
||||
stuckTimerTicks = 32; // If the hapc spends more than 1 sec in contact with something
|
||||
stuckTimerAngle = 80; // with a > 80 deg. pitch, BOOM!
|
||||
};
|
||||
|
||||
function HAPCFlyer::hasDismountOverrides(%data, %obj)
|
||||
|
|
|
|||
|
|
@ -747,7 +747,8 @@ function TribeAdminMemberDlg::onDatabaseQueryResult( %this, %status, %resultStri
|
|||
{
|
||||
case "setMemberProfile":
|
||||
%this.state = "done";
|
||||
messageBoxOK("COMPLETE","Member Profile has been updated","WonUpdateCertificate();TL_Roster.setValue(1);");
|
||||
ForumsTopicsList.refreshFlag = true;
|
||||
messageBoxOK("COMPLETE","Member Profile has been updated","WonUpdateCertificate();TL_Profile.setValue(1);");
|
||||
}
|
||||
}
|
||||
else if (getSubStr(getField(%status,1),0,9) $= "ORA-04061")
|
||||
|
|
@ -1684,7 +1685,25 @@ function PlayerPane::ButtonClick( %this, %senderid )
|
|||
W_MemberList.addColumn( 1, "TITLE", 80, 0, 300 );
|
||||
W_MemberList.addColumn( 2, "RNK", 38, 0, 50, "numeric center" );
|
||||
%playerName = TWBTabView.getTabText(TWBTabView.GetSelectedID());
|
||||
TribeAndWarriorBrowserGui.eid = schedule(500,0,DatabaseQueryArray,13,0,%playerName,%this,%this.key,true);
|
||||
if(%playerName $= getField(getRecord(wonGetAuthInfo(),0),0))
|
||||
{
|
||||
%ai = wonGetAuthInfo();
|
||||
for(%ix=0;%ix<getField(getRecord(%ai,1),0);%ix++)
|
||||
{
|
||||
%row = getRecord(%ai,2+%ix);
|
||||
%wid = getField(%row,2);
|
||||
%name = getField(%row,0);
|
||||
%title = getField(%row,4);
|
||||
if(%title $= "")
|
||||
%title = "Not Shown";
|
||||
%adminLevel = getField(%row,3);
|
||||
%editkick = %adminLevel >= 2;
|
||||
W_MemberList.AddMember(%wid,%name,%adminLevel,%editkick,%row);
|
||||
W_MemberList.AddRow(%wid,%name TAB %title TAB %adminLevel);
|
||||
}
|
||||
}
|
||||
else
|
||||
TribeAndWarriorBrowserGui.eid = schedule(500,0,DatabaseQueryArray,13,0,%playerName,%this,%this.key,true);
|
||||
case 3: //Player Buddylist
|
||||
W_MemberList.Clear();
|
||||
W_MemberList.ClearColumns();
|
||||
|
|
|
|||
|
|
@ -380,6 +380,16 @@ function CheckEmail(%calledFromSched)
|
|||
EmailGui.checkingEmail = true;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function CancelEmailCheck()
|
||||
{
|
||||
if ( EmailGui.checkSchedule )
|
||||
{
|
||||
error( ">> SCHEDULED EMAIL CHECK " @ EmailGui.checkSchedule @ " CANCELED <<" );
|
||||
cancel( EmailGui.checkSchedule );
|
||||
EmailGui.checkSchedule = "";
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function EmailEditBlocks()
|
||||
{
|
||||
Canvas.pushDialog(EmailBlockDlg);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
//------------------------------------------
|
||||
$ForumCacheVersion = 8; //lucky seven...NOT!
|
||||
$ForumCachePath = "webcache/" @ getField(wonGetAuthInfo(),3) @ "/";
|
||||
$currentForumPage = 0;
|
||||
$topicPageLength = 60;
|
||||
|
||||
$ForumsConnecting = "CONNECTING";
|
||||
$ForumsGetForums = "FETCHING FORUM LIST ";
|
||||
$ForumsGetTopics = "FETCHING TOPICS ";
|
||||
|
|
@ -67,6 +70,12 @@ if(!isObject(ForumsMessageVector))
|
|||
new MessageVector(ForumsMessageVector);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function updateTopicPageBtn(%prev,%next)
|
||||
{
|
||||
FTPrevBtn.setActive( %prev );
|
||||
FTNextBtn.setActive( %next );
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function DateStrCompare(%date1,%date2)
|
||||
{
|
||||
%d1 = getSubStr(%date1,0,2);
|
||||
|
|
@ -212,15 +221,13 @@ function ForumsGetTextDisplay(%text, %offSet)
|
|||
//-----------------------------------------------------------------------------
|
||||
function ForumsGoTopics(%direction)
|
||||
{
|
||||
// ForumsTopicsList.direction = %direction;
|
||||
ForumsTopicsList.MaxDate = "";
|
||||
ForumsTopicsList.MinDate = "";
|
||||
ForumShell.setTitle($ForumsConnecting);
|
||||
ForumsThreadPane.setVisible(false);
|
||||
ForumsTopicsPane.setVisible(true);
|
||||
FO_RejectBtn.visible = false;
|
||||
FO_EditBtn.visible = false;
|
||||
FO_AcceptBtn.visible = false;
|
||||
|
||||
if ( ForumsTopicsList.rowCount() == 0 || ForumsTopicsList.refreshFlag )
|
||||
{
|
||||
FM_NewTopic.setActive(true);
|
||||
|
|
@ -235,8 +242,8 @@ function ForumsGoTopics(%direction)
|
|||
function ForumsRefreshTopics()
|
||||
{
|
||||
ForumsTopicsList.refreshFlag = true;
|
||||
// ForumsMessageVector.clear();
|
||||
// ForumsMessageVector.tid = "";
|
||||
$currentForumPage = 0;
|
||||
updateTopicPageBtn(0,0);
|
||||
ForumsGui.eid = schedule(250,ForumsGui,GetTopicsList);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -328,12 +335,11 @@ function ForumsNewTopic()
|
|||
}
|
||||
else
|
||||
{
|
||||
// ForumsGui.LaunchForum = getField(ForumsList.getRowTextById(ForumsList.getSelectedID()),0);
|
||||
$ForumsSubject = "";
|
||||
Canvas.pushDialog( ForumsComposeDlg );
|
||||
ForumsBodyText.setValue( "" );
|
||||
ForumsComposeDlg.parentPost = 0;
|
||||
ForumsComposeDlg.action = "Post";
|
||||
ForumsComposeDlg.action = "Post";
|
||||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -498,15 +504,13 @@ function GetForumsList()
|
|||
//-----------------------------------------------------------------------------
|
||||
function GetTopicsList()
|
||||
{
|
||||
// error("GTL: " @ ForumsComposeDlg.forum);
|
||||
ForumsGui.key = LaunchGui.key++;
|
||||
ForumShell.setTitle($ForumsGetTopics);
|
||||
ForumsGui.state = "getTopicList";
|
||||
ForumsTopicsList.clear();
|
||||
canvas.SetCursor(ArrowWaitCursor);
|
||||
ForumsTopicsList.clearList();
|
||||
// error("DQA:" @ 8 TAB ForumsComposeDlg.forum);
|
||||
DatabaseQueryArray(8,80,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true);
|
||||
DatabaseQueryArray(8,$currentForumPage,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true);
|
||||
ForumsTopicsList.refreshFlag = 0;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -565,9 +569,12 @@ function ForumsGui::onWake(%this)
|
|||
ForumShell.setTitle($ForumsConnecting);
|
||||
ForumsGui.state = "getForumList";
|
||||
canvas.SetCursor(ArrowWaitCursor);
|
||||
$currentForumPage = 0;
|
||||
DatabaseQueryArray(7,100,"",ForumsGui,ForumsGui.key);
|
||||
}
|
||||
// Make these buttons inactive until a message is selected:
|
||||
FTPrevBtn.setActive(false);
|
||||
FTNextBtn.setActive(false);
|
||||
FO_ReplyBtn.setActive( false );
|
||||
FO_NextBtn.setActive( false );
|
||||
FO_PreviousBtn.setActive( false );
|
||||
|
|
@ -615,6 +622,22 @@ function ForumsGui::onDatabaseQueryResult(%this,%status,%resultString,%key)
|
|||
{
|
||||
ForumShell.setTitle($ForumsGetTopics @ ": " @ getField(%resultString,0));
|
||||
%this.state = "TopicList";
|
||||
%recordCount = getField(%resultString,0);
|
||||
if(%recordCount > $topicPageLength)
|
||||
{
|
||||
if($currentForumPage == 0)
|
||||
updateTopicPageBtn(0,1);
|
||||
else if($currentForumPage > 0)
|
||||
updateTopicPageBtn(1,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if($currentForumPage == 0)
|
||||
updateTopicPageBtn(0,0);
|
||||
else if($currentForumPage > 0)
|
||||
updateTopicPageBtn(1,0);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -812,6 +835,36 @@ function ForumsGui::onDatabaseRow(%this,%row,%isLastRow,%key)
|
|||
}
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function ForumsGui::NextThreadPage()
|
||||
{
|
||||
if($currentForumPage >= 5)
|
||||
return;
|
||||
ForumsGui.key = LaunchGui.key++;
|
||||
ForumShell.setTitle($ForumsGetTopics);
|
||||
ForumsGui.state = "getTopicList";
|
||||
ForumsTopicsList.clear();
|
||||
canvas.SetCursor(ArrowWaitCursor);
|
||||
ForumsTopicsList.clearList();
|
||||
$currentForumPage++;
|
||||
DatabaseQueryArray(8,$currentForumPage,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true);
|
||||
ForumsTopicsList.refreshFlag = 0;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function ForumsGui::PreviousThreadPage()
|
||||
{
|
||||
if($currentForumPage == 0)
|
||||
return;
|
||||
ForumsGui.key = LaunchGui.key++;
|
||||
ForumShell.setTitle($ForumsGetTopics);
|
||||
ForumsGui.state = "getTopicList";
|
||||
ForumsTopicsList.clear();
|
||||
canvas.SetCursor(ArrowWaitCursor);
|
||||
ForumsTopicsList.clearList();
|
||||
$currentForumPage--;
|
||||
DatabaseQueryArray(8,80,ForumsComposeDlg.forum,ForumsGui,ForumsGui.key,true);
|
||||
ForumsTopicsList.refreshFlag = 0;
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
//-- ForumsList --------------------------------------------------------------
|
||||
//-----------------------------------------------------------------------------
|
||||
function ForumsList::onSelect(%this)
|
||||
|
|
@ -821,6 +874,7 @@ function ForumsList::onSelect(%this)
|
|||
FM_NewTopic.setActive(true);
|
||||
ForumsComposeDlg.forum = ForumsList.getSelectedID();
|
||||
ForumShell.setTitle("FORUMS: " @ getField(ForumsList.getRowTextbyID(ForumsList.getSelectedID()),0));
|
||||
$currentForumPage = 0;
|
||||
ForumsGui.eid = schedule(250,ForumsGui,GetTopicsList);
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
addWebLink( "Tribes 2 Home Page", "www.tribes2.com" );
|
||||
addWebLink( "T2 Technical Information", "sierrastudios.com/games/tribes2/support" );
|
||||
addWebLink( "5 Assed Monkey", "www.5assedmonkey.com" );
|
||||
addWebLink( "Arc 2055", "www.arc2055.com" );
|
||||
addWebLink( "Atari Secret Society", "www.atarisecretsociety.org" );
|
||||
addWebLink( "BarrysWorld", "www.barrysworld.com" );
|
||||
addWebLink( "Clan Happytyme", "www.happytyme.com" );
|
||||
addWebLink( "ClanBase", "www.clanbase.com" );
|
||||
|
|
@ -14,17 +16,21 @@ addWebLink( "Long Dongles", "www.longdongles.com" );
|
|||
addWebLink( "MaxBaud.Net", "www.maxbaud.net" );
|
||||
addWebLink( "MoreGaming", "www.moregaming.com" );
|
||||
addWebLink( "NetGames UK", "www.nguk.net" );
|
||||
addWebLink( "NGI", "www.ngi.it" );
|
||||
addWebLink( "PlanetTribes", "www.planettribes.com" );
|
||||
addWebLink( "Raging Angels", "www.ragingangels.org" );
|
||||
addWebLink( "Rogue Disciples", "www.roguedisciples.com" );
|
||||
addWebLink( "StrikeForce", "www.strikeforcecenter.com" );
|
||||
addWebLink( "TeamSound", "www.teamsound.com" );
|
||||
addWebLink( "Telepresence Heavy Assault Team", "www.that.co.nz" );
|
||||
addWebLink( "Tribes2 Database", "www.tribes2database.com" );
|
||||
addWebLink( "TribesMaps", "www.tribesmaps.com" );
|
||||
addWebLink( "The Ghostbear Tribe", "www.ghostbear.net" );
|
||||
addWebLink( "TribalWar", "www.tribalwar.com" );
|
||||
addWebLink( "Tribes2 Database", "www.tribes2database.com" );
|
||||
addWebLink( "Tribes Gamers", "www.tribesgamers.com" );
|
||||
addWebLink( "TribesMaps", "www.tribesmaps.com" );
|
||||
addWebLink( "Tribes Worlds", "www.tribesworlds.com" );
|
||||
addWebLink( "Tribes-Universe", "www.tribes-universe.com" );
|
||||
addWebLink( "WirePlay", "www.wireplay.com.au" );
|
||||
addWebLink( "ClanServ", "www.clanserv.com" );
|
||||
//addWebLink( "Z Free", "games13.clear.net.nz" );
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,16 @@
|
|||
$WebLinkCount = 0;
|
||||
|
||||
$currentPage = 0;
|
||||
function LaunchNews()
|
||||
{
|
||||
LaunchTabView.viewTab( "NEWS", NewsGui, 0 );
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function updatePageBtn(%prev,%next)
|
||||
{
|
||||
NewsPrevBtn.setActive( %prev );
|
||||
NewsNextBtn.setActive( %next );
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function NewsGui::onWake(%this)
|
||||
{
|
||||
Canvas.SetCursor(ArrowWaitCursor);
|
||||
|
|
@ -104,39 +110,21 @@ function NewsGui::onDatabaseQueryResult(%this, %status, %RowCount_Result, %key)
|
|||
%this.acl = getField(%status,3);
|
||||
%this.ttlRecords = getField( %status,2 );
|
||||
%this.recordCount = getField( %RowCount_Result,0 );
|
||||
%this.pages = 0;
|
||||
// RecordSet = least of 24 or rows returned
|
||||
if(getField(%RowCount_Result,0) < 24)
|
||||
%this.recordSet = getField(%RowCount_Result,0);
|
||||
else
|
||||
%this.recordSet = 24;
|
||||
|
||||
// Calculate the Number of Pages
|
||||
for( %temprec = %this.ttlRecords; %temprec > 0; %temprec -= 24 )
|
||||
if(%this.recordCount > 23)
|
||||
{
|
||||
%this.pages++;
|
||||
}
|
||||
// SET = which page we are on
|
||||
if( %this.set == 1 && %this.pages >= 2 )
|
||||
{
|
||||
NewsNextBtn.setActive( true );
|
||||
NewsPrevBtn.setActive( false );
|
||||
}
|
||||
else if ( %this.set == %this.pages && %this.pages >= 2 )
|
||||
{
|
||||
NewsNextBtn.setActive( false );
|
||||
NewsPrevBtn.setActive( true );
|
||||
}
|
||||
else if (%this.set == %this.pages && %this.pages <= 1)
|
||||
{
|
||||
NewsNextBtn.setActive( false );
|
||||
NewsPrevBtn.setActive( false );
|
||||
if($currentPage == 0)
|
||||
updatePageBtn(0,1);
|
||||
else if($currentPage > 0)
|
||||
updatePageBtn(1,1);
|
||||
}
|
||||
else
|
||||
{
|
||||
NewsNextBtn.setActive( true );
|
||||
NewsPrevBtn.setActive( true );
|
||||
if($currentPage == 0)
|
||||
updatePageBtn(0,0);
|
||||
else if($currentPage > 0)
|
||||
updatePageBtn(1,0);
|
||||
}
|
||||
|
||||
default: // result string
|
||||
}
|
||||
}
|
||||
|
|
@ -313,14 +301,14 @@ function NewsHeadlines::onSelect( %this, %id, %text )
|
|||
function NewsGui::getPreviousNewsItems( %this )
|
||||
{
|
||||
// Fetch the next batch of newer news items:
|
||||
if ( %this.set == 1 )
|
||||
return;
|
||||
if($currentPage == 0)
|
||||
return;
|
||||
canvas.SetCursor(ArrowWaitCursor);
|
||||
NewsGui.key = LaunchGui.key++;
|
||||
%this.state = "status";
|
||||
%this.articleCount = 0;
|
||||
%this.set--;
|
||||
DatabaseQueryArray(0,0,"1" TAB getField(%this.setList[%this.set],1), NewsGui, NewsGui.key );
|
||||
$currentPage--;
|
||||
DatabaseQueryArray(0,$currentPage,"1" TAB getField(%this.setList[%this.set],1), NewsGui, NewsGui.key );
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function NewsGui::getNextNewsItems( %this )
|
||||
|
|
@ -330,8 +318,8 @@ function NewsGui::getNextNewsItems( %this )
|
|||
NewsGui.key = LaunchGui.key++;
|
||||
%this.state = "status";
|
||||
%this.articleCount = 0;
|
||||
DatabaseQueryArray(0,0,"1" TAB getField(%this.setList[%this.set],0), NewsGui, NewsGui.key );
|
||||
%this.set++;
|
||||
$currentPage++;
|
||||
DatabaseQueryArray(0,$currentPage,"1" TAB getField(%this.setList[%this.set],0), NewsGui, NewsGui.key );
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
function NewsMOTDText::onDatabaseQueryResult(%this, %status, %RowCount_Result, %key)
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
buildVersion.setValue( "APR 15, 2001, 10:42 AM (dmoore)" );
|
||||
buildVersion.setValue( "APR 23, 2001, 6:48 PM (dmoore)" );
|
||||
|
|
|
|||
|
|
@ -1563,21 +1563,6 @@ else
|
|||
helpTag = "0";
|
||||
text = "Confirm Password:";
|
||||
};
|
||||
new ShellTextEditCtrl() {
|
||||
profile = "NewTextEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "133 115";
|
||||
extent = "269 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
variable = "$CreateAccountEmail";
|
||||
helpTag = "0";
|
||||
historySize = "0";
|
||||
maxLength = "128";
|
||||
password = "0";
|
||||
glowOffset = "9 9";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
profile = "ShellTextRightProfile";
|
||||
horizSizing = "right";
|
||||
|
|
@ -1589,17 +1574,20 @@ else
|
|||
helpTag = "0";
|
||||
text = "Email:";
|
||||
};
|
||||
new ShellToggleButton() {
|
||||
profile = "ShellRadioProfile";
|
||||
new GuiLoginPasswordCtrl(EditAccountPasswordBox) {
|
||||
profile = "NewTextEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "63 156";
|
||||
extent = "366 30";
|
||||
minExtent = "26 27";
|
||||
position = "222 43";
|
||||
extent = "180 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
variable = "$CreateAccountSendInfo";
|
||||
variable = "$CreateAccountPassword";
|
||||
helpTag = "0";
|
||||
text = "SEND ME INFORMATION ABOUT TRIBES 2 AND OTHER PRODUCTS";
|
||||
historySize = "0";
|
||||
maxLength = "16";
|
||||
password = "1";
|
||||
glowOffset = "9 9";
|
||||
};
|
||||
new ShellTextEditCtrl() {
|
||||
profile = "NewTextEditProfile";
|
||||
|
|
@ -1616,21 +1604,33 @@ else
|
|||
password = "1";
|
||||
glowOffset = "9 9";
|
||||
};
|
||||
new GuiLoginPasswordCtrl(EditAccountPasswordBox) {
|
||||
new ShellTextEditCtrl() {
|
||||
profile = "NewTextEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "222 43";
|
||||
extent = "180 38";
|
||||
position = "133 115";
|
||||
extent = "269 38";
|
||||
minExtent = "32 38";
|
||||
visible = "1";
|
||||
variable = "$CreateAccountPassword";
|
||||
variable = "$CreateAccountEmail";
|
||||
helpTag = "0";
|
||||
historySize = "0";
|
||||
maxLength = "16";
|
||||
password = "1";
|
||||
maxLength = "128";
|
||||
password = "0";
|
||||
glowOffset = "9 9";
|
||||
};
|
||||
new ShellToggleButton() {
|
||||
profile = "ShellRadioProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "63 156";
|
||||
extent = "366 30";
|
||||
minExtent = "26 27";
|
||||
visible = "1";
|
||||
variable = "$CreateAccountSendInfo";
|
||||
helpTag = "0";
|
||||
text = "SEND ME INFORMATION ABOUT TRIBES 2 AND OTHER PRODUCTS";
|
||||
};
|
||||
new ShellBitmapButton() {
|
||||
profile = "ShellButtonProfile";
|
||||
horizSizing = "right";
|
||||
|
|
|
|||
Loading…
Reference in a new issue