Merge branch 'feature/0018_mise_a_jour_ryzomcore' into 'master'

Feature/0018 mise a jour ryzomcore

See merge request !6
This commit is contained in:
deed 2017-03-24 18:28:03 +01:00
commit 906954e638
33 changed files with 4728 additions and 1789 deletions

View file

@ -41,7 +41,7 @@ Gamma_max = 1.0;
Application = { "Lirria", "./client_ryzom_r.exe", "./" };
BackgroundDownloader = 0;
PatchWanted = 1;
PatchWanted = 0;
PatchUrl = "http://lirria.khaganat.net:43435";
RingReleaseNotePath = "http://lirria.khaganat.net/patch/index.php";
StartupHost = "lirria.khaganat.net:40916";
@ -123,6 +123,7 @@ FreeLookAcceleration_min = 20;
FreeLookAcceleration_max = 80;
FreeLookInverted = 0;
FreeLookTablet = 0;
AutomaticCamera = 0;
DblClickMode = 1;
AutoEquipTool = 1;
@ -318,7 +319,7 @@ CameraHeight = 2.2; // Camera Height (in meter) from the g
CameraDistance = 3.0; // Camera Distance(in meter) from the user (for the Third Person View).
CameraDistStep = 1.0;
CameraDistMin = 1.0;
CameraDistMax = 25.0;
CameraDistMax = 250.0;
CameraAccel = 5.0;
CameraSpeedMin = 2.0;
CameraSpeedMax = 100.0;
@ -464,24 +465,25 @@ R2EDReloadFiles = {
XMLInterfaceFiles = {
"config.xml",
"widgets.xml",
"webig_widgets.xml",
"webig_widgets.xml",
"appzone.xml",
"player.xml",
"inventory.xml",
"interaction.xml",
"phrase.xml",
"phrase.xml",
"harvest.xml",
"macros.xml",
"info_player.xml",
"outpost.xml",
"guild.xml",
"taskbar.xml",
"game_config.xml",
"game_config.xml",
"game_context_menu.xml",
"player_trade.xml",
"bot_chat_v4.xml",
"compass.xml",
"map.xml",
"hierarchy.xml",
"hierarchy.xml",
"reset.xml",
"actions.xml",
"help.xml",
@ -490,7 +492,7 @@ XMLInterfaceFiles = {
"commands2.xml",
"ring_access_point_filter.xml",
"ring_window.xml",
"bg_downloader.xml"
"bg_downloader.xml",
};
XMLR2EDInterfaceFiles =

View file

@ -41,7 +41,7 @@ Gamma_max = 1.0;
Application = { "Lirria", "./client_ryzom_r.exe", "./" };
BackgroundDownloader = 0;
PatchWanted = 1;
PatchWanted = 0;
PatchUrl = "http://lirria.khaganat.net:43435";
RingReleaseNotePath = "http://lirria.khaganat.net/patch/index.php";
StartupHost = "lirria.khaganat.net:40916";
@ -123,6 +123,7 @@ FreeLookAcceleration_min = 20;
FreeLookAcceleration_max = 80;
FreeLookInverted = 0;
FreeLookTablet = 0;
AutomaticCamera = 0;
DblClickMode = 1;
AutoEquipTool = 1;
@ -318,7 +319,7 @@ CameraHeight = 2.2; // Camera Height (in meter) from the g
CameraDistance = 3.0; // Camera Distance(in meter) from the user (for the Third Person View).
CameraDistStep = 1.0;
CameraDistMin = 1.0;
CameraDistMax = 25.0;
CameraDistMax = 250.0;
CameraAccel = 5.0;
CameraSpeedMin = 2.0;
CameraSpeedMax = 100.0;
@ -464,24 +465,25 @@ R2EDReloadFiles = {
XMLInterfaceFiles = {
"config.xml",
"widgets.xml",
"webig_widgets.xml",
"webig_widgets.xml",
"appzone.xml",
"player.xml",
"inventory.xml",
"interaction.xml",
"phrase.xml",
"phrase.xml",
"harvest.xml",
"macros.xml",
"info_player.xml",
"outpost.xml",
"guild.xml",
"taskbar.xml",
"game_config.xml",
"game_config.xml",
"game_context_menu.xml",
"player_trade.xml",
"bot_chat_v4.xml",
"compass.xml",
"map.xml",
"hierarchy.xml",
"hierarchy.xml",
"reset.xml",
"actions.xml",
"help.xml",
@ -490,7 +492,7 @@ XMLInterfaceFiles = {
"commands2.xml",
"ring_access_point_filter.xml",
"ring_window.xml",
"bg_downloader.xml"
"bg_downloader.xml",
};
XMLR2EDInterfaceFiles =

View file

@ -41,7 +41,7 @@ Gamma_max = 1.0;
Application = { "Lirria", "./client_ryzom_r.exe", "./" };
BackgroundDownloader = 0;
PatchWanted = 1;
PatchWanted = 0;
PatchUrl = "http://lirria.khaganat.net:43435";
RingReleaseNotePath = "http://lirria.khaganat.net/patch/index.php";
StartupHost = "lirria.khaganat.net:40916";
@ -123,6 +123,7 @@ FreeLookAcceleration_min = 20;
FreeLookAcceleration_max = 80;
FreeLookInverted = 0;
FreeLookTablet = 0;
AutomaticCamera = 0;
DblClickMode = 1;
AutoEquipTool = 1;
@ -318,7 +319,7 @@ CameraHeight = 2.2; // Camera Height (in meter) from the g
CameraDistance = 3.0; // Camera Distance(in meter) from the user (for the Third Person View).
CameraDistStep = 1.0;
CameraDistMin = 1.0;
CameraDistMax = 25.0;
CameraDistMax = 250.0;
CameraAccel = 5.0;
CameraSpeedMin = 2.0;
CameraSpeedMax = 100.0;
@ -464,24 +465,25 @@ R2EDReloadFiles = {
XMLInterfaceFiles = {
"config.xml",
"widgets.xml",
"webig_widgets.xml",
"webig_widgets.xml",
"appzone.xml",
"player.xml",
"inventory.xml",
"interaction.xml",
"phrase.xml",
"phrase.xml",
"harvest.xml",
"macros.xml",
"info_player.xml",
"outpost.xml",
"guild.xml",
"taskbar.xml",
"game_config.xml",
"game_config.xml",
"game_context_menu.xml",
"player_trade.xml",
"bot_chat_v4.xml",
"compass.xml",
"map.xml",
"hierarchy.xml",
"hierarchy.xml",
"reset.xml",
"actions.xml",
"help.xml",
@ -490,7 +492,7 @@ XMLInterfaceFiles = {
"commands2.xml",
"ring_access_point_filter.xml",
"ring_window.xml",
"bg_downloader.xml"
"bg_downloader.xml",
};
XMLR2EDInterfaceFiles =

View file

@ -41,7 +41,7 @@ Gamma_max = 1.0;
Application = { "Lirria", "./client_ryzom_r.exe", "./" };
BackgroundDownloader = 0;
PatchWanted = 1;
PatchWanted = 0;
PatchUrl = "http://lirria.khaganat.net:43435";
RingReleaseNotePath = "http://lirria.khaganat.net/patch/index.php";
StartupHost = "lirria.khaganat.net:40916";
@ -123,6 +123,7 @@ FreeLookAcceleration_min = 20;
FreeLookAcceleration_max = 80;
FreeLookInverted = 0;
FreeLookTablet = 0;
AutomaticCamera = 0;
DblClickMode = 1;
AutoEquipTool = 1;
@ -318,7 +319,7 @@ CameraHeight = 2.2; // Camera Height (in meter) from the g
CameraDistance = 3.0; // Camera Distance(in meter) from the user (for the Third Person View).
CameraDistStep = 1.0;
CameraDistMin = 1.0;
CameraDistMax = 25.0;
CameraDistMax = 250.0;
CameraAccel = 5.0;
CameraSpeedMin = 2.0;
CameraSpeedMax = 100.0;
@ -464,24 +465,25 @@ R2EDReloadFiles = {
XMLInterfaceFiles = {
"config.xml",
"widgets.xml",
"webig_widgets.xml",
"webig_widgets.xml",
"appzone.xml",
"player.xml",
"inventory.xml",
"interaction.xml",
"phrase.xml",
"phrase.xml",
"harvest.xml",
"macros.xml",
"info_player.xml",
"outpost.xml",
"guild.xml",
"taskbar.xml",
"game_config.xml",
"game_config.xml",
"game_context_menu.xml",
"player_trade.xml",
"bot_chat_v4.xml",
"compass.xml",
"map.xml",
"hierarchy.xml",
"hierarchy.xml",
"reset.xml",
"actions.xml",
"help.xml",
@ -490,7 +492,7 @@ XMLInterfaceFiles = {
"commands2.xml",
"ring_access_point_filter.xml",
"ring_window.xml",
"bg_downloader.xml"
"bg_downloader.xml",
};
XMLR2EDInterfaceFiles =

View file

@ -41,7 +41,7 @@ Gamma_max = 1.0;
Application = { "Lirria", "./client_ryzom_r.exe", "./" };
BackgroundDownloader = 0;
PatchWanted = 1;
PatchWanted = 0;
PatchUrl = "http://lirria.khaganat.net:43435";
RingReleaseNotePath = "http://lirria.khaganat.net/patch/index.php";
StartupHost = "lirria.khaganat.net:40916";
@ -123,6 +123,7 @@ FreeLookAcceleration_min = 20;
FreeLookAcceleration_max = 80;
FreeLookInverted = 0;
FreeLookTablet = 0;
AutomaticCamera = 0;
DblClickMode = 1;
AutoEquipTool = 1;
@ -318,7 +319,7 @@ CameraHeight = 2.2; // Camera Height (in meter) from the g
CameraDistance = 3.0; // Camera Distance(in meter) from the user (for the Third Person View).
CameraDistStep = 1.0;
CameraDistMin = 1.0;
CameraDistMax = 25.0;
CameraDistMax = 250.0;
CameraAccel = 5.0;
CameraSpeedMin = 2.0;
CameraSpeedMax = 100.0;
@ -464,24 +465,25 @@ R2EDReloadFiles = {
XMLInterfaceFiles = {
"config.xml",
"widgets.xml",
"webig_widgets.xml",
"webig_widgets.xml",
"appzone.xml",
"player.xml",
"inventory.xml",
"interaction.xml",
"phrase.xml",
"phrase.xml",
"harvest.xml",
"macros.xml",
"info_player.xml",
"outpost.xml",
"guild.xml",
"taskbar.xml",
"game_config.xml",
"game_config.xml",
"game_context_menu.xml",
"player_trade.xml",
"bot_chat_v4.xml",
"compass.xml",
"map.xml",
"hierarchy.xml",
"hierarchy.xml",
"reset.xml",
"actions.xml",
"help.xml",
@ -490,7 +492,7 @@ XMLInterfaceFiles = {
"commands2.xml",
"ring_access_point_filter.xml",
"ring_window.xml",
"bg_downloader.xml"
"bg_downloader.xml",
};
XMLR2EDInterfaceFiles =

View file

@ -2672,9 +2672,9 @@
<instance template="tgcw_checkbox"
id="hard"
text="uiMouseHardware"
posref="TR TR"
x="-55"
y="-20" />
posref="TM TL"
x="0"
y="-35" />
<instance template="tgcw_checkbox"
id="inverted"
text="uiMouseInverted"
@ -2689,6 +2689,13 @@
posref="BL TL"
x="0"
y="-2" />
<instance template="tgcw_checkbox"
id="tablet"
text="uiMouseTablet"
posparent="dbl"
posref="BL TL"
x="0"
y="-2" />
<view style="sgc_title2"
type="text"
id="inter"
@ -3833,6 +3840,11 @@
widget="boolbut"
link="DblClickMode"
realtime="true" />
<param ui="mouse:tablet:c"
type="cfg"
widget="boolbut"
link="FreeLookTablet"
realtime="true" />
<param ui="mouse:dcspeed:c"
type="db"
widget="sbint"

View file

@ -1050,7 +1050,7 @@
id="html"
posref="TL TL"
url=""
home="https://app.lirria.khaganat.net/"
home="http://app.khaganat.net/"
sizeref="wh"
x="0"
y="0"
@ -1216,7 +1216,7 @@
id="html"
posref="TL TL"
url=""
home="https://app.lirria.khaganat.net/"
home="http://app.khaganat.net/"
sizeref="wh"
x="0"
y="0"

View file

@ -138,7 +138,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="welcome_close"
hardtext="uittOK" />
@ -199,7 +199,7 @@
x="-15"
y="10"
posref="BM BM"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="active_hardware_cursor"
hardtext="uiYes" />
@ -208,7 +208,7 @@
y="0"
posparent="active_ok"
posref="BR BL"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="close_hardware_cursor"
hardtext="uiNo" />
@ -316,7 +316,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="universe_chanel_warning_close"
hardtext="uittOK" />
@ -425,7 +425,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="death_warning_close"
hardtext="uittOK" />
@ -532,7 +532,7 @@
x="0"
y="6"
posref="BM BM"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="night_warning_close"
hardtext="uittOK" />
@ -865,7 +865,7 @@
</group>
</group>
<define id="cs_url"
value="https://www.khaganat.net/" />
value="https://app.khaganat.net/ams/" />
<group type="container"
id="cs_browser"
w="410"
@ -2889,21 +2889,21 @@
x="4"
y="0"
posref="TL TL"
text_y="-0"
text_y="0"
onclick_l="proc"
params_l="proc_stat_report_yes"
hardtext="uiYes" />
<ctrl style="button_cancel"
x="4"
posparent="ok"
text_y="-0"
text_y="0"
posref="TR TL"
onclick_l="leave_modal"
hardtext="uiNo" />
<ctrl style="button_always"
x="4"
posparent="cancel"
text_y="-0"
text_y="0"
posref="TR TL"
onclick_l="proc"
params_l="proc_stat_report_always"

View file

@ -267,27 +267,27 @@ function game:onDrawNpcWebPage()
local available
if config.Local == 1 then
available = (NicoMagicURL ~= "")
else
available = isDynStringAvailable(self.NpcWebPage.UrlTextId)
else
available = isDynStringAvailable(self.NpcWebPage.UrlTextId)
end
if(available) then
if(available) then
local ucUrl
if config.Local == 1 then
ucUrl = ucstring(NicoMagicURL) -- for test in local mode
ucUrl = ucstring(NicoMagicURL) -- for test in local mode
else
ucUrl = getDynString(self.NpcWebPage.UrlTextId);
end
-- browse
local uiStr= getUIId(getUICaller());
-- if the url
-- if the url
local utf8Url = ucUrl:toUtf8()
local isRing = string.find(utf8Url, "ring_access_point=1") ~= nil
local isRing = string.find(utf8Url, "ring_access_point=1") ~= nil
if isRing then
getUI("ui:interface:npc_web_browser").active = false
runAH(nil, "context_ring_sessions", "")
return
else
local hideWindow = string.find(utf8Url, "_hideWindow=1") ~= nil
local hideWindow = string.find(utf8Url, "_hideWindow=1") ~= nil
if hideWindow then
getUI("ui:interface:npc_web_browser").active = false
end
@ -336,14 +336,14 @@ function game:startNpcWebPage()
end
------------------------------------------------------------------------------------------------------------
--
--
function game:closeNpcWebBrowserHeader()
local ui = getUI('ui:interface:npc_web_browser');
-- save size
ui_npc_web_browser_h = ui.h;
ui_npc_web_browser_w = ui.w;
-- reduce window size
ui.pop_min_h = 32;
ui.h = 0;
@ -351,7 +351,7 @@ function game:closeNpcWebBrowserHeader()
end
------------------------------------------------------------------------------------------------------------
--
--
function game:openNpcWebBrowserHeader()
local ui = getUI('ui:interface:npc_web_browser');
ui.pop_min_h = 96;
@ -360,7 +360,7 @@ function game:openNpcWebBrowserHeader()
if (ui_npc_web_browser_h ~= nil) then
ui.h = ui_npc_web_browser_h;
end
if (ui_npc_web_browser_w ~= nil) then
ui.w = ui_npc_web_browser_w;
end
@ -538,7 +538,7 @@ function game:updateFameBar(path)
uiMaxLimit.x = barX + barW * (fameMax + 100) / 200;
-- init bar3d
if (bar3dStart < bar3dLimit) then
if (bar3dStart < bar3dLimit) then
uiBar3d.x= bar3dStart;
uiBar3d.w= bar3dLimit-bar3dStart;
else
@ -553,7 +553,7 @@ function game:updateFameBarTT(path)
local fameMax = getDbProp(path .. ':THRESHOLD');
local text = i18n.get('uittFameMaxPossible');
text = findReplaceAll(text, '%famemax', tostring(fameMax));
text = findReplaceAll(text, '%famemax', tostring(fameMax));
setContextHelpText(text);
end
@ -564,12 +564,12 @@ function game:getPvpEffects()
local i;
local hasBonus = false;
local hasMalus = false;
local text = ''
local textBonus = '';
local textMalus = '';
local fmt;
-- check every malus and bonus
for i=0, n do
local path = formatUI('SERVER:PVP_EFFECTS:#1', i);
@ -611,7 +611,7 @@ function game:getPvpEffects()
end
------------------------------------------------------------------------------------------------------------
function game:getFactionName(id)
function game:getFactionName(id)
if (id == self.TPVPClan.Kami) then
return i18n.get('uiFameKami');
elseif (id == self.TPVPClan.Karavan) then
@ -636,10 +636,10 @@ function game:getAllegiancePoints()
local civPoints = getDbProp(path .. ':CIV_POINTS');
local cult = getDbProp(path .. ':CULT');
local cultPoints = getDbProp(path .. ':CULT_POINTS');
local text;
local uiGroup= getUICaller();
-- civ allegiance
if (civ == self.TPVPClan.None or civ == self.TPVPClan.Neutral) then
text = i18n.get('uiPvpFameNoCivAllegiance');
@ -647,9 +647,9 @@ function game:getAllegiancePoints()
text = i18n.get('uiPvpFameAllegiancePoints');
text = findReplaceAll(text, '%faction', self:getFactionName(civ));
text = findReplaceAll(text, '%points', tostring(civPoints));
end
end
uiGroup.civ_allegiance_pts.uc_hardtext_format = text;
-- cult allegiance
if (cult == self.TPVPClan.None or cult == self.TPVPClan.Neutral) then
text = i18n.get('uiPvpFameNoCultAllegiance');
@ -698,11 +698,11 @@ function game:fameAllegianceTooltipCultGuild()
end
------------------------------------------------------------------------------------------------------------
--
--
function game:tooltipDeltaValue(base, max)
-- Calculate delta
local val = max - base;
local text;
if (val == 0) then
text = concatUCString('@{FFFF}', tostring(max));
@ -729,37 +729,37 @@ function game:tooltipDeltaValue(base, max)
text = concatUCString(text, ')');
end
end
return text;
end
------------------------------------------------------------------------------------------------------------
--
--
function game:tooltipScore(dbBase, dbMax, ttFormat)
-- Get DB values
local base = getDbProp(dbBase);
local max = getDbProp(dbMax);
-- Tooltip text
local fmt = i18n.get(ttFormat);
local text = self:tooltipDeltaValue(base, max);
fmt = findReplaceAll(fmt, "%n", text );
-- Set tooltip
setContextHelpText(fmt);
end
------------------------------------------------------------------------------------------------------------
--
--
function game:tooltipScoreEP(dbBase, dbMax, ttFormat, dbLvl, dbMod)
-- Defender level
local defLvl= getDbProp(formatUI(dbLvl));
defLvl = math.max(0, defLvl);
-- Attacker level
local attLvl = getBaseSkillValueMaxChildren(getSkillIdFromName('SF'));
-- Get DB values
local base = getDbProp(dbBase);
local max = getDbProp(dbMax);
@ -774,7 +774,7 @@ function game:tooltipScoreEP(dbBase, dbMax, ttFormat, dbLvl, dbMod)
fmt = findReplaceAll(fmt, "%n", text );
fmt = findReplaceAll(fmt, "%l", tostring(attLvl));
fmt = findReplaceAll(fmt, "%p", textChance);
-- Set tooltip
setContextHelpText(fmt);
end
@ -786,7 +786,7 @@ end
---------------------------------- RING STATS ---------------------------------------------------
-------------------------------------------------------------------------------------------------------------
RingPlayerInfo =
RingPlayerInfo =
{
WaitingInfo = false,
LastRefreshTime = 0,
@ -810,7 +810,7 @@ end
--
function RingPlayerInfo:initRingStatPlayer()
setOnDraw(self:getWindow(), "RingPlayerInfo:onRingRatingPlayerDraw()")
setOnDraw(self:getWindow(), "RingPlayerInfo:onRingRatingPlayerDraw()")
end
--------------------------------------------------------------------------------------------------------------
@ -819,16 +819,16 @@ function RingPlayerInfo:onRingRatingPlayerDraw()
local timeInSec = nltime.getLocalTime() / 1000
if self.WaitingInfo then
if timeInSec - self.LastRefreshTime > self.WaitingPeriod then
if timeInSec - self.LastRefreshTime > self.WaitingPeriod then
self.WaitingInfo = false
self.LastRefreshTime = nltime.getLocalTime() / 1000
else
else
if not self.InfoReceived then
--debugInfo("No received info")
end
end
else
if timeInSec - self.LastRefreshTime > self.RefreshPeriod then
if timeInSec - self.LastRefreshTime > self.RefreshPeriod then
self:refresh()
else
--debugInfo("pas de refresh")
@ -844,7 +844,7 @@ function RingPlayerInfo:updatePendingRefresh()
if self.PendingRefresh then
local currTime = nltime.getLocalTime() / 1000
if currTime - self.LastRefreshQuerryTime > self.MinRefreshPeriod and game.getRingStats then
if currTime - self.LastRefreshQuerryTime > self.MinRefreshPeriod and game.getRingStats then
self.LastRefreshQuerryTime = currTime
self.PendingRefresh = false
game.getRingStats()
@ -924,10 +924,10 @@ end
--
function RingPlayerInfo:refresh()
self.PendingRefresh = true
self.PendingRefresh = true
self.LastRefreshTime = nltime.getLocalTime() / 1000
self.WaitingInfo = true
end
end
--------------------------------------------------------------------------------------------------------------
--
@ -937,7 +937,7 @@ function RingPlayerInfo:tooltipEcosystemPoints(rp, maxRp, ttFormat)
local fmt = i18n.get(ttFormat);
fmt = findReplaceAll(fmt, "%n", rp );
fmt = findReplaceAll(fmt, "%p", maxRp );
-- Set tooltip
return fmt;
end
@ -954,8 +954,8 @@ function RingPlayerInfo:updateRRPSLevel(dbVal, tooltip)
local ui= getUICaller();
local uiText= ui.val;
-- set the text
uiText.uc_hardtext= tostring(val)
-- set the text
uiText.uc_hardtext= tostring(val)
self:tooltipRRPs(dbVal, tooltip)
end
@ -970,7 +970,7 @@ function RingPlayerInfo:tooltipRRPs(dbBase, ttFormat)
local fmt = i18n.get(ttFormat);
local text = tostring(val)
fmt = findReplaceAll(fmt, "%n", text );
-- Set tooltip
setContextHelpText(fmt);
end
@ -1013,7 +1013,7 @@ end
--------------------------------------------------------------------------------------------------------------
--
function game:updateOrganization(path, uiOrgText, uiStatusText, uiPointsText)
local org = getDbProp(path.."1:VALUE")
getUICaller()[uiOrgText].uc_hardtext = i18n.get('uiOrganization_' .. org)
@ -1022,7 +1022,7 @@ function game:updateOrganization(path, uiOrgText, uiStatusText, uiPointsText)
local points = getDbProp(path.."3:VALUE")
getUICaller()[uiPointsText].uc_hardtext= points
end
------------------------------------------------------------------------------------------------------------
@ -1033,10 +1033,10 @@ end
--------------------------------------------------------------------------------------------------------------
function game:popMissionList()
local menu = getUI("ui:interface:mission_cb_menu")
function game:popMissionList()
local menu = getUI("ui:interface:mission_cb_menu")
enableModalWindow(getUICaller(), "ui:interface:mission_cb_menu")
self:updateMissionMenuSize()
self:updateMissionMenuSize()
end
@ -1053,12 +1053,12 @@ function game:getMissionDbPath(missionIndex)
return "SERVER:GROUP:MISSIONS:" .. tostring(missionIndex - numMissions)
else
return "SERVER:MISSIONS:" .. tostring(missionIndex)
end
end
end
--------------------------------------------------------------------------------------------------------------
function game:getCurrMissionIndex()
local result = getDbProp("UI:SAVE:MISSION_SELECTED")
function game:getCurrMissionIndex()
local result = getDbProp("UI:SAVE:MISSION_SELECTED")
return result
end
@ -1071,10 +1071,10 @@ end
function game:updateCurrMissionComboBox()
local numMissions = tonumber(getDefine("ipj_nb_mission"))
local missionFound = false
local cb = getUI("ui:interface:info_player_journal:content:mission_combo")
local missionList = getUI("ui:interface:info_player_journal:content:mission_list")
local cb = getUI("ui:interface:info_player_journal:content:mission_combo")
local missionList = getUI("ui:interface:info_player_journal:content:mission_list")
for i = 0, numMissions - 1 do
if getDbProp("SERVER:MISSIONS:" .. i .. ":TITLE") ~= 0
if getDbProp("SERVER:MISSIONS:" .. i .. ":TITLE") ~= 0
or getDbProp("SERVER:GROUP:MISSIONS:" .. i .. ":TITLE") ~= 0 then
missionFound = true
break
@ -1095,20 +1095,20 @@ function game:updateCurrMissionComboBox()
missionList.no_available_mission.active = false
cb.arrow.active = true
cb.select.active = true
local currMission = self:getCurrMissionIndex()
local currMission = self:getCurrMissionIndex()
local dbPath = self:getMissionDbPath(currMission)
--
local selected = (currMission ~= -1)
local dbPath = self:getMissionDbPath(currMission)
--
local selected = (currMission ~= -1)
if selected then
cb.mission_title.textid_dblink = dbPath .. ":TITLE"
selected = (tile ~= 0)
end
end
cb.mission_ico.active = selected
cb.mission_title.active = selected
cb.no_selected_mission.active = not selected
missionList.no_selected_mission.active = not selected
if selected then
if selected then
if getDbProp(dbPath .. ":FINISHED") == 0 then
cb.mission_ico.texture = runExpr("getMissionSmallIcon(" .. tostring(getDbProp(dbPath .. ":ICON") .. ")"))
elseif getDbProp(dbPath .. ":FINISHED") == 1 then
@ -1116,17 +1116,17 @@ function game:updateCurrMissionComboBox()
else
cb.mission_ico.texture = "Small_Task_Failed.tga"
end
end
end
end
--------------------------------------------------------------------------------------------------------------
function game:onMissionSelected(index)
function game:onMissionSelected(index)
disableModalWindow()
self:updateCurrMissionComboBox()
end
--------------------------------------------------------------------------------------------------------------
function game:onGroupMissionSelected(index)
function game:onGroupMissionSelected(index)
disableModalWindow()
self:updateCurrMissionComboBox()
end
@ -1138,33 +1138,33 @@ function game:onMissionDBIndexChanged()
-- if selection was made from the list, update the other list
if missionIndex >= self:getGroupMissionFirstIndex() then
local groupMissionIndex = missionIndex - self:getGroupMissionFirstIndex()
getUI("ui:interface:info_player_journal:content:mission_list:b_group_title" .. tostring(groupMissionIndex)).pushed = true
getUI("ui:interface:info_player_journal:content:mission_list:b_group_title" .. tostring(groupMissionIndex)).pushed = true
getUI("ui:interface:mission_cb_menu:mission_list:b_group_title" .. tostring(groupMissionIndex)).pushed = true
else
getUI("ui:interface:info_player_journal:content:mission_list:b_title" .. tostring(missionIndex)).pushed = true
getUI("ui:interface:info_player_journal:content:mission_list:b_title" .. tostring(missionIndex)).pushed = true
getUI("ui:interface:mission_cb_menu:mission_list:b_title" .. tostring(missionIndex)).pushed = true
end
end
--------------------------------------------------------------------------------------------------------------
function game:onMissionTitleChanged(index)
function game:onMissionTitleChanged(index)
-- if title is not nil then a new mission has been added -> if db initilization is over, then selected this new mission
if getDbProp(self:getMissionDbPath(index) .. ":TITLE") ~= 0 then
if game.InGameDbInitialized or config.Local then
if getDbProp(self:getMissionDbPath(index) .. ":TITLE") ~= 0 then
if game.InGameDbInitialized or config.Local then
self:setCurrentMission(index)
end
else
else
self:updateCurrMissionComboBox()
self:updateMissionMenuSize()
end
end
--------------------------------------------------------------------------------------------------------------
function game:onGroupMissionTitleChanged(index)
if getDbProp(self:getMissionDbPath(index + 15) .. ":TITLE") ~= 0 then
if game.InGameDbInitialized or config.Local then
function game:onGroupMissionTitleChanged(index)
if getDbProp(self:getMissionDbPath(index + 15) .. ":TITLE") ~= 0 then
if game.InGameDbInitialized or config.Local then
self:setCurrentMission(index + 15)
end
else
else
self:updateCurrMissionComboBox()
self:updateMissionMenuSize()
end
@ -1174,21 +1174,21 @@ end
function game:updateMissionMenuSize()
local parentCB = getUI("ui:interface:info_player_journal:content:mission_combo")
local menu = getUI("ui:interface:mission_cb_menu")
if not menu.active then return end
if not menu.active then return end
local maxNumMissions = 2 * self:getGroupMissionFirstIndex()
local missionCount = 0
local missionCount = 0
for k = 0, maxNumMissions - 1 do
if getDbProp(self:getMissionDbPath(k) .. ":TITLE") ~= 0 then
missionCount = missionCount + 1
missionCount = missionCount + 1
end
end
end
menu.h = 8 + missionCount * 18
menu.y = 0
menu:updateCoords()
local y = parentCB.y_real - menu.h_real - 1
if y < 0 then
y = parentCB.y_real + parentCB.h_real + 1
end
end
local scrW
local scrH
scrW, scrH = getWindowSize()
@ -1197,7 +1197,7 @@ function game:updateMissionMenuSize()
end
menu.w = parentCB.w_real
menu.y = y
menu.x = parentCB.x_real
menu.x = parentCB.x_real
menu.h = 8 + missionCount * 18
menu:invalidateCoords()
end
@ -1205,7 +1205,7 @@ end
--------------------------------------------------------------------------------------------------------------
--function game:updateMissionDescCloseButton(index)
-- local dbPath = self:getMissionDbPath(index)
-- if index == self:getCurrMissionIndex() then
-- if index == self:getCurrMissionIndex() then
-- local closeText = getUI("ui:interface:info_player_journal:content:desc:close")
-- local button = getUI("ui:interface:info_player_journal:content:desc:uppart:over_icon")
-- local finished = getDbProp(dbPath .. ":FINISHED")
@ -1224,29 +1224,29 @@ end
--end
--------------------------------------------------------------------------------------------------------------
function game:onMissionFinished(index)
self:updateCurrMissionComboBox()
function game:onMissionFinished(index)
self:updateCurrMissionComboBox()
--self:updateMissionDescCloseButton(index)
end
--------------------------------------------------------------------------------------------------------------
function game:onGroupMissionFinished(index)
function game:onGroupMissionFinished(index)
self:updateCurrMissionComboBox()
--self:updateMissionDescCloseButton(index + game:getGroupMissionFirstIndex())
end
--------------------------------------------------------------------------------------------------------------
function game:expandMissionList()
local missionCB = getUI("ui:interface:info_player_journal:content:mission_combo")
function game:expandMissionList()
local missionCB = getUI("ui:interface:info_player_journal:content:mission_combo")
missionCB.active = not missionCB.active
self:updateMissionWindowLayout()
end
--------------------------------------------------------------------------------------------------------------
function game:updateMissionWindowLayout()
function game:updateMissionWindowLayout()
if not isInRingMode() then
local missionCB = getUI("ui:interface:info_player_journal:content:mission_combo")
local missionList = getUI("ui:interface:info_player_journal:content:mission_list")
local missionList = getUI("ui:interface:info_player_journal:content:mission_list")
local fake = getUI("ui:interface:info_player_journal:content:fake")
local sepBis = getUI("ui:interface:info_player_journal:content:separator_bis")
local desc = getUI("ui:interface:info_player_journal:content:desc")
@ -1254,18 +1254,18 @@ function game:updateMissionWindowLayout()
local popMinH
local win = getUI("ui:interface:info_player_journal")
if missionCB.active then
sepBis.active = false
if missionCB.active then
sepBis.active = false
missionList.active = false
fake.sizeref=""
fake.y = -32
fake.h = 0
expanded = 0
expanded = 0
desc.max_sizeref ="wh"
desc.max_h= -42
win.pop_min_h = 152 - win.content_y_offset
else
sepBis.active = true
else
sepBis.active = true
missionList.active = true
fake.sizeref="wh5"
fake.y = -8
@ -1274,23 +1274,23 @@ function game:updateMissionWindowLayout()
desc.max_sizeref ="wh5"
desc.max_h=16
win.pop_min_h = 152 - win.content_y_offset
end
end
local fixedEntry = getUI("ui:interface:info_player_journal:content:mission_fixed_entry")
local fixedEntry = getUI("ui:interface:info_player_journal:content:mission_fixed_entry")
fixedEntry:updateCoords()
desc.max_h = desc.max_h - fixedEntry.h
setDbProp("UI:SAVE:EXPAND_MISSION_LIST", expanded)
getUI("ui:interface:info_player_journal"):invalidateCoords()
getUI("ui:interface:info_player_journal"):invalidateCoords()
end
end
--------------------------------------------------------------------------------------------------------------
function game:onMissionJournalOpened()
function game:onMissionJournalOpened()
local missionDesc = getUI("ui:interface:info_player_journal:content:desc")
missionDesc.active = getDbProp("UI:SAVE:MISSION_SELECTED") ~= -1
missionDesc.active = getDbProp("UI:SAVE:MISSION_SELECTED") ~= -1
local expandList = getDbProp("UI:SAVE:EXPAND_MISSION_LIST")
local expandList = getDbProp("UI:SAVE:EXPAND_MISSION_LIST")
self:updateMissionJournalMode()
if not isInRingMode() then
@ -1304,9 +1304,9 @@ function game:onMissionJournalOpened()
self:updateMissionJournalHeader()
self:updateMissionWindowLayout()
self:updateMissionJournalFixedEntry()
self:updateMissionJournalFixedEntry()
end
@ -1315,12 +1315,12 @@ function game:updateMissionJournalHeader()
local win = getUI("ui:interface:info_player_journal")
local headerActive = getDbProp("UI:SAVE:MISSION_JOURNAL_HEADER_ACTIVE") ~= 0
win.header_active = headerActive
win.right_button_enabled = headerActive
win.right_button_enabled = headerActive
if headerActive then
win.uc_title_opened = i18n.get("uiJournalTitle")
win.uc_title_opened = i18n.get("uiJournalTitle")
win.content_y_offset = 0
else
win.uc_title_opened = ucstring("")
win.uc_title_opened = ucstring("")
win.content_y_offset = win.header_opened.h_real + 3
end
end
@ -1329,13 +1329,13 @@ end
--------------------------------------------------------------------------------------------------------------
function game:updateMissionJournalFixedEntry()
-- update fixed entry text
local fixedEntryRing = getUI("ui:interface:info_player_journal:no_available_missions:main:mission_fixed_entry")
local fixedEntryRing = getUI("ui:interface:info_player_journal:no_available_missions:main:mission_fixed_entry")
local fixedEntryMain = getUI("ui:interface:info_player_journal:content:mission_fixed_entry")
fixedEntryRing.active = game.InGameDbInitialized and isInRingMode()
fixedEntryMain.active = game.InGameDbInitialized and not isInRingMode()
fixedEntryMain.active = game.InGameDbInitialized and not isInRingMode()
local id = "uiFixedMissionEntry"
@ -1346,22 +1346,22 @@ function game:updateMissionJournalFixedEntry()
end
if isPlayerFreeTrial() then
id = id .. "_Trial"
end
end
else
if isInRingMode() then
id = id .. "_R2"
else
if isInRingMode() then
id = id .. "_R2"
else
id = id .. "_Mainland_" .. getUserRace()
end
end
end
fixedEntryMain.uc_hardtext = i18n.get(id)
fixedEntryRing.uc_hardtext = i18n.get(id)
self:updateMissionWindowLayout()
end
--------------------------------------------------------------------------------------------------------------
function game:setCurrentMission(index)
function game:setCurrentMission(index)
mw = getMissionWindow()
mw.active = game.InGameDbInitialized
if index < self:getGroupMissionFirstIndex() then
@ -1372,7 +1372,7 @@ function game:setCurrentMission(index)
end
--------------------------------------------------------------------------------------------------------------
function game:onMissionComboWheelUp()
function game:onMissionComboWheelUp()
local currMissionIndex = self:getCurrMissionIndex()
while currMissionIndex > 0 do
currMissionIndex = currMissionIndex - 1
@ -1384,7 +1384,7 @@ function game:onMissionComboWheelUp()
end
--------------------------------------------------------------------------------------------------------------
function game:onMissionComboWheelDown()
function game:onMissionComboWheelDown()
local currMissionIndex = self:getCurrMissionIndex()
local maxNumMission = 2 * self:getGroupMissionFirstIndex()
while currMissionIndex < (maxNumMission - 1) do
@ -1399,37 +1399,37 @@ end
--------------------------------------------------------------------------------------------------------------
function game:toggleMissionJournalCaption()
local dbPath = "UI:SAVE:MISSION_JOURNAL_HEADER_ACTIVE"
function game:toggleMissionJournalCaption()
local dbPath = "UI:SAVE:MISSION_JOURNAL_HEADER_ACTIVE"
setDbProp(dbPath, 1 - getDbProp(dbPath))
local win = getUI("ui:interface:info_player_journal")
local win = getUI("ui:interface:info_player_journal")
self:updateMissionJournalHeader()
self:updateMissionWindowLayout()
end
--------------------------------------------------------------------------------------------------------------
-- handler called by C++ to tell that the main loop is about to begin
function game:onMainLoopBegin()
game.InGameDbInitialized = false
function game:onMainLoopBegin()
game.InGameDbInitialized = false
game.PrevSessionMission = getDbProp("UI:VARIABLES:MISSION_SELECTED_PREV_SESSION")
debugInfo("onMainLoopBegin()")
end
--------------------------------------------------------------------------------------------------------------
-- handler called by C++ to tell that all initial value have been set in the db
function game:onInGameDbInitialized()
function game:onInGameDbInitialized()
game.InGameDbInitialized = true
-- if the journal is opened, force an update for the fixed entry text
-- if the journal is opened, force an update for the fixed entry text
-- (says if we're in start island, paying account ...) need DB flags like
-- IS_NEWBIE & IS_TRIAL to be received
game:updateMissionJournalFixedEntry()
-- If a mission was previously selected, restore it
game:updateMissionJournalFixedEntry()
-- If a mission was previously selected, restore it
if game.PrevSessionMission ~= -1 then
self:setCurrentMission(game.PrevSessionMission)
self:setCurrentMission(game.PrevSessionMission)
end
game:setInfoPlayerCharacterRace()
end
@ -1437,7 +1437,7 @@ function game:onWebIgReady()
-- Call init webig
getUI("ui:interface:web_transactions:content:html"):browse("home")
getUI("ui:interface:webig:content:html"):browse("home")
end
--------------------------------------------------------------------------------------------------------------
@ -1464,7 +1464,7 @@ end
--------------------------------------------------------------------------------------------------------------
-- ring journal on / off
function game:setMissionJournalRingMode(isRing)
function game:setMissionJournalRingMode(isRing)
local journal = getUI("ui:interface:info_player_journal")
if isRing then
journal.content.expand_mission_list.active = false
@ -1480,7 +1480,7 @@ function game:setMissionJournalRingMode(isRing)
journal.no_available_missions.active = true
else
journal.content.expand_mission_list.active = true
journal.no_available_missions.active = false;
journal.no_available_missions.active = false;
journal.content.active = true;
--journal.content.mission_list.active = true;
journal.content.sv.active = true;
@ -1494,8 +1494,8 @@ end
--------------------------------------------------------------------------------------------------------------
-- update mission journal depending on wether we're in the ring or not
function game:updateMissionJournalMode()
--local isRing = r2~=nil and r2.Mode~=nil and r2.Mode=='r2ed_anim_test'
game:setMissionJournalRingMode(isInRingMode())
--local isRing = r2~=nil and r2.Mode~=nil and r2.Mode=='r2ed_anim_test'
game:setMissionJournalRingMode(isInRingMode())
end
@ -1521,22 +1521,22 @@ function game:onNewMissionStepAdded(stepIndex)
end
-- debugInfo("New Step")
if missionIndex < 15 then
if missionIndex < 15 then
dbPath = "SERVER:MISSIONS:" .. tostring(missionIndex) .. ":GOALS:" .. tostring(stepIndex) .. ":TEXT"
else
else
dbPath = "SERVER:GROUP:MISSIONS:" .. tostring(missionIndex - 15) .. ":GOALS:" .. tostring(stepIndex) .. ":TEXT"
end
end
local stringID = getDbProp(dbPath)
if stringID ~= 0 then
-- debugInfo(tostring(stringID))
table.insert(remainingMissionTextIDs, stringID)
setOnDraw(missionWnd, "game:ensureLastMissionStepVisibility0()")
else
setOnDraw(missionWnd, "game:ensureLastMissionStepVisibility0()")
else
end
end
function game:ensureLastMissionStepVisibility0()
local missing = false
for k, v in pairs(remainingMissionTextIDs) do
if not isDynStringAvailable(v) then
@ -1545,54 +1545,54 @@ function game:ensureLastMissionStepVisibility0()
end
end
local missionWnd = getMissionWindow()
if not missing then
if not missing then
remainingMissionTextIDs = {}
-- delay real update to newt frame
setOnDraw(missionWnd, "game:ensureLastMissionStepVisibility1()")
-- delay real update to newt frame
setOnDraw(missionWnd, "game:ensureLastMissionStepVisibility1()")
else
-- for debug : dump the list of remaining "dyn string"
-- for debug : dump the list of remaining "dyn string"
--local stringList = "{"
--for k, v in remainingMissionTextIDs do
-- if not isDynStringAvailable(v) then
-- if not isDynStringAvailable(v) then
-- stringList = stringList .. " " .. tostring(v)
-- end
--end
--stringList = stringList .. "}"
--stringList = stringList .. "}"
end
end
function game:ensureLastMissionStepVisibility1()
function game:ensureLastMissionStepVisibility1()
local missionWnd = getMissionWindow()
local scrollBar = missionWnd:find("sv_desc")
--scrollBar.trackPos = 20000 -- move upward
local scrollBar = missionWnd:find("sv_desc")
--scrollBar.trackPos = 20000 -- move upward
--scrollBar:updateCoords()
--setOnDraw(missionWnd, "")
local descWnd = missionWnd:find("desc")
--setOnDraw(missionWnd, "")
local descWnd = missionWnd:find("desc")
local maxNumSteps = getDefine("ipj_nb_goal")
local topStep
for stepIndex = 0, maxNumSteps -1 do
for stepIndex = 0, maxNumSteps -1 do
local currStep = descWnd["step" .. tostring(stepIndex)]
if currStep.active then
topStep = currStep
end
end
-- debugInfo("Found step : " .. topStep.hardtext)
if topStep == nil then
if topStep == nil then
return
end
end
scrollBar:ensureVisible(topStep, "M", "M")
--local wantedY = topStep.h_real / 2 - (descWnd.y_real - topStep.y_real)
--local wantedY = descWnd.y_real + descWnd.h_real - topStep.y_real
--local offsetY = wantedY - descWnd.max_h_real / 2
--if offsetY < 0 then offsetY = 0 end
--local wantedY = descWnd.y_real + descWnd.h_real - topStep.y_real
--local offsetY = wantedY - descWnd.max_h_real / 2
--if offsetY < 0 then offsetY = 0 end
--descWnd.ofsy = offsetY
--descWnd:invalidateCoords()
--descWnd:updateCoords()
setOnDraw(missionWnd, "")
setOnDraw(missionWnd, "")
end
--------------------------------------------------------------------------------------------------------------
@ -1618,16 +1618,16 @@ function game:addRpJob(jobtype, id, value, rpjobs)
group.active = false
else
group.active = true
local echelon_value = rpjobs[sitem][1]
local quantity = rpjobs[sitem][2]
local maxlevel = (echelon_value*6)-30
if (quantity > maxlevel) then
quantity = maxlevel
end
local base = getUI(base_path..":t")
base.hardtext = i18n.get(name):toUtf8()
local ui = getUI(base_path..":icon")
@ -1657,7 +1657,7 @@ function game:getRPJobs()
rpjobs_elementary = {}
rpjobs_roleplay = {}
rpjobs = {}
for i = 0, 499, 1 do
local sheet = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":SHEET")
if (sheet ~= 0) then
@ -1665,7 +1665,7 @@ function game:getRPJobs()
if (string.sub(name, 0, 6) == "rpjob_") then
local quality = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":QUALITY")
local quantity = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":QUANTITY")
if (name == "rpjob_advanced.sitem") then
table.insert(rpjobs_advanced, quality)
else
@ -1688,7 +1688,7 @@ function game:getRPJobs()
end
end
end
for id=1,2,1 do
game:addRpJob("advanced", id, rpjobs_advanced[id], rpjobs)
end

View file

@ -1467,7 +1467,7 @@
<group type="webig_html"
id="html"
posref="TL TL"
url="https://app.lirria.khaganat.net/"
url="https://app.khaganat.net/"
title_prefix=""
sizeref="wh"
x="0"
@ -1502,7 +1502,7 @@
checkbox_bitmap_pushed="w_opacity_on.tga"
checkbox_bitmap_over=""
background_bitmap_view="black2"
home="https://app.lirria.khaganat.net/"
home="https://app.khaganat.net"
browse_next_time="true"
form_text_area_group="edit_box_widget_multiline">
<group id="black"
@ -1602,7 +1602,7 @@
id="html"
posref="TL TL"
posparent="parent"
url="https://app.lirria.khaganat.net/"
url="https://app.khaganat.net"
title_prefix=""
sizeref="wh"
x="0"
@ -1637,7 +1637,7 @@
checkbox_bitmap_pushed="w_opacity_on.tga"
checkbox_bitmap_over=""
background_bitmap_view="black2"
home="https://app.lirria.khaganat.net/"
home="https://app.khaganat.net"
browse_next_time="true"
form_text_area_group="edit_box_widget_multiline">
<group id="black"

View file

@ -110,7 +110,7 @@
posparent="jauges"
posref="TL TL"
x="0"
y="-1"
y="0"
sizeref="wh3"
w="0"
h="0" />
@ -246,7 +246,7 @@
posref="MM MM"
posparent="slot_force"
x="0"
y="-2"
y="0"
color="255 255 255 255"
fontsize="10"
shadow="true"
@ -364,7 +364,7 @@
id="b_life"
posref="TL TL"
x="0"
y="-2"
y="0"
texture="slot_jauge.tga"
inherit_gc_alpha="false" />
<instance template="jauge_score_target"
@ -521,7 +521,6 @@
<view type="text"
id="text"
case_mode="%case_first_word_letter_up"
posref="TL TL"
x="8"
y="-8"
@ -544,7 +543,7 @@
posparent="add_contact_eb"
posref="BR TR"
x="0"
y="-2"
y="0"
onclick_ok="add_contact"
onclick_ok_param=""
onclick_cancel="leave_modal"
@ -604,7 +603,7 @@
<instance template="edit_box_widget"
id="ebw"
posref="BR TR"
y="-2"
y="0"
posparent="cb"
child_resize_h="true"
sizeref="w"
@ -666,7 +665,7 @@
<instance template="edit_box_widget"
id="ebw"
posref="BR TR"
y="-2"
y="0"
posparent="cb"
child_resize_h="true"
sizeref="w"
@ -807,7 +806,7 @@
<instance template="edit_box_widget"
id="ebw"
posref="BR TR"
y="-2"
y="0"
posparent="cb"
child_resize_h="true"
sizeref="w"
@ -859,7 +858,7 @@
<group type="menu"
id="user_chat_emote_menu"
extends="base_menu"
case_mode="%case_first_word_letter_up"
case_mode="%case_normal"
on_active="lua:game:updateEmoteMenu()">
<action id="uiEM_Wave"
name="uiQuickEmote" />
@ -1078,7 +1077,7 @@
tooltip_parent="win" />
<!-- Yes order is strange, but don't want to modify all the ugly hardcoded code -->
<ctrl style="tab_button_new"
id="tab7"
id="tab6"
posparent="tab3"
group="content:cb:universe"
hardtext="uitabChatUniverse"
@ -1090,7 +1089,7 @@
tooltip_parent="win" />
<ctrl style="tab_button_new"
id="tab4"
posparent="tab7"
posparent="tab6"
group="content:cb:sysinfo"
hardtext="uitabChatSysInfo"
onclick_r="set"
@ -1108,23 +1107,12 @@
params_l="user"
tooltip="uittChatUser"
tooltip_parent="win" />
<ctrl style="tab_button_new"
id="tab6"
posparent="tab5"
group="content:cb:yubo_chat"
hardtext="uitabChatYuboChat"
onclick_r="set"
params_r="dblink=UI:SAVE:ISDETACHED:YUBO_CHAT|value=1"
onclick_l="chat_group_filter"
params_l="yubo_chat"
tooltip="uittChatYubo"
tooltip_parent="win" />
<!-- Fixed number of dynamic chat allowed. force _firstpos and _nextpos to have correctly aligned tab-->
<vector template="temp_tab_dyn_chat"
_size="%max_dyn_chan_per_player"
id="tab_array0_$i"
nb="$i"
posparent="tab6"
posparent="tab5"
_firstpos="TR TL"
_nextpos="TR TL" />
<!-- Show or hide tabs : a tab is visible if it is not filtered into the user chat AND not detached -->
@ -1136,7 +1124,7 @@
target="tab1:active" />
<link expr="and(@UI:SAVE:ISENABLED:UNIVERSE_CHAT,
not(@UI:SAVE:ISDETACHED:UNIVERSE_CHAT))"
target="tab7:active" />
target="tab6:active" />
<link expr="and (and(%is_team_present, @UI:SAVE:ISENABLED:TEAM_CHAT),
not(@UI:SAVE:ISDETACHED:TEAM_CHAT))"
target="tab2:active" />
@ -1148,9 +1136,6 @@
target="tab4:active" />
<link expr="not(@UI:SAVE:ISDETACHED:USER_CHAT)"
target="tab5:active" />
<link expr="and(and(%is_yubo_chat_present, @UI:SAVE:ISENABLED:YUBO_CHAT),
not(@UI:SAVE:ISDETACHED:YUBO_CHAT))"
target="tab6:active" />
<!-- Show individual chat windows if needed -->
<link expr="and (@UI:SAVE:ISENABLED:AROUND_ME,
@UI:SAVE:ISDETACHED:AROUND_ME)"
@ -1172,9 +1157,6 @@
target="ui:interface:system_info:active" />
<link expr="@UI:SAVE:ISDETACHED:USER_CHAT"
target="ui:interface:user_chat:active" />
<link expr="and(and(%is_yubo_chat_present, @UI:SAVE:ISENABLED:YUBO_CHAT),
@UI:SAVE:ISDETACHED:YUBO_CHAT)"
target="ui:interface:yubo_chat:active" />
</group>
<view type="bitmap"
id="sep"
@ -1248,13 +1230,6 @@
y="0"
w="0"
h="0" />
<instance template="chat_box_mainchat"
id="yubo_chat"
posref="TL TL"
sizeref="wh"
y="0"
w="0"
h="0" />
<!-- Fixed number of dynamic chat allowed -->
<vector template="chat_box_mainchat"
id="dyn_chat$i"
@ -1287,7 +1262,7 @@
tooltip_parent="win"
onclick_l="select_chat_target"
params_l="menu=ui:interface:user_chat_target_menu|party_chats=false"
case_mode="%case_first_word_letter_up" />
case_mode="%case_normal" />
<ctrl style="text_button_16"
id="but_emote"
posref="BR TR"
@ -1602,7 +1577,7 @@
</group>
<!--
<group id="header_opened" x="0" y="0" w="160" child_resize_h="true" child_resize_hmargin="4" posref="TL TL" >
<view type="bar3" id="jauges" posref="TR TR" y="-2" mini="true" x="-16"
<view type="bar3" id="jauges" posref="TR TR" y="0" mini="true" x="-16"
color1="%sta_color" value1="UI:VARIABLES:BARS:TEAM:#team_mate_index:STA" range1="UI:CONST:127"
color2="%sap_color" value2="UI:VARIABLES:BARS:TEAM:#team_mate_index:SAP" range2="UI:CONST:127"
color3="%hp_color" color3_negative="%hp_color_neg" value3="UI:VARIABLES:BARS:TEAM:#team_mate_index:HP" range3="UI:CONST:127" />
@ -1614,7 +1589,7 @@
<! - chat box - >
<instance template="chat_box" id="cb" posref="TR TR" sizeref="w" y="-8" w="0" h="64" min_height="64" max_height="1600"/>
<instance template="edit_box_widget" id="ebw" posref="BR TR" y="-2" posparent="cb" child_resize_h="true" sizeref="w" w="-10" onenter="contact_entry" backup_father_container_pos="true"/>
<instance template="edit_box_widget" id="ebw" posref="BR TR" y="0" posparent="cb" child_resize_h="true" sizeref="w" w="-10" onenter="contact_entry" backup_father_container_pos="true"/>
<! - links to display lead or successor - >
<link expr="eq(@SERVER:GROUP:LEADER_INDEX, #team_mate_index)" target="lead:active"/>
@ -1673,7 +1648,7 @@
id="blocked"
posref="MR MR"
x="-20"
y="-2"
y="0"
texture="w_answer_16_cancel.tga"
global_color="false"
active="false" />
@ -1760,7 +1735,7 @@
id="blocked"
posref="MR MR"
x="-50"
y="-2"
y="0"
texture="w_answer_16_cancel.tga"
global_color="false"
active="false" />
@ -1817,7 +1792,7 @@
y="0"
posref="MR MR"
posparent="parent"
text_y="-2"
text_y="0"
onclick_l="lua"
params_l="validMessageBox(i18n.get('uiAddTellerToIgnoreListWarning'), 'add_teller_to_ignore_list', 'id=ui:interface:#id', '', '' ,'ui:interface')"
hardtext="uiAddTellerToIgnoreList"
@ -1831,7 +1806,7 @@
y="0"
posref="ML MR"
posparent="ignore"
text_y="-2"
text_y="0"
onclick_l="add_teller_to_friend_list"
params_l=""
hardtext="uiAddTellerToFriends"
@ -1845,7 +1820,7 @@
y="0"
posref="ML MR"
posparent="new_friend"
text_y="-2"
text_y="0"
onclick_l="invite_to_ring_session"
params_l=""
hardtext="uiInviteToRingSession"
@ -1869,7 +1844,7 @@
<instance template="edit_box_widget"
id="ebw"
posref="BR TR"
y="-2"
y="0"
posparent="cb"
child_resize_h="true"
sizeref="w"
@ -1957,10 +1932,6 @@
name="uiSystemInfo"
usergroup_l="chat_menu_button"
usergroup_params_l="chat_db=SYSTEM_INFO" />
<action id="yubo_chat"
name="uitabChatYuboChat"
usergroup_l="chat_menu_button"
usergroup_params_l="chat_db=YUBO_CHAT" />
<!-- Bit of a hack as vector is not supported inside a submenu -->
<action id="dyn0"
name="0"
@ -2094,7 +2065,7 @@
<instance template="edit_box_widget"
id="ebw"
posref="BR TR"
y="-2"
y="0"
posparent="cb"
child_resize_h="true"
sizeref="w"
@ -3050,7 +3021,7 @@
<group id="header_opened" x="0" y="0" w="160" h="13" posref="TL TL" child_resize_h="true" child_resize_hmargin="8" >
<instance template="chat_box" id="cb" posref="TR TR" sizeref="w" y="-8" w="0" h="64" min_height="64" max_height="1600"/>
<instance template="edit_box_widget" id="ebw" posref="BR TR" y="-2" posparent="cb" child_resize_h="true" sizeref="w" w="-10" onenter="debug_console_entry" backup_father_container_pos="true"/>
<instance template="edit_box_widget" id="ebw" posref="BR TR" y="0" posparent="cb" child_resize_h="true" sizeref="w" w="-10" onenter="debug_console_entry" backup_father_container_pos="true"/>
</group>
<group id="content" x="0" y="0" h="0" posref="TL TL" >
@ -3060,13 +3031,6 @@
<tree node="debug_console">
</tree>
-->
<!-- ************* -->
<!-- * YUBO CHAT * -->
<!-- ************* -->
<proc id="yubo_chat_proc_close">
<action handler="set"
params="dblink=UI:SAVE:ISDETACHED:YUBO_CHAT|value=0" />
</proc>
<!-- **************** -->
<!-- * DYNAMIC CHAT * -->
<!-- **************** -->
@ -3127,7 +3091,7 @@
<instance template="edit_box_widget"
id="ebw"
posref="BR TR"
y="-2"
y="0"
posparent="cb"
child_resize_h="true"
sizeref="w"
@ -3163,4 +3127,19 @@
<action handler="set"
params="dblink=UI:SAVE:ISDETACHED:DYNAMIC_CHAT@0|value=0" />
</proc>
<!-- there seems to be no way to pass url to menu, use lua script for middleman -->
<group type="menu"
id="chat_uri_action_menu"
extends="base_menu">
<action id="copy"
name="uiCopy"
handler="lua"
params="game:chatUrlCopy()" />
<action id="openig"
name="uiBrowse"
handler="lua"
params="game:chatUrlBrowse()" />
</group>
</interface_config>

View file

@ -200,7 +200,7 @@
</group>
<group id="header_opened" x="0" y="0" h="20" posref="TL TL" >
</group>
<group id="content" type="list" x="0" y="0" over="true" posref="TL TL" >
<group id="content" type="list" sizeref="w" x="0" y="0" over="true" posref="TL TL" >
</group>
</group>
</template>

View file

@ -420,7 +420,7 @@
<!-- NAME OF SPELL -->
<instance template="edit_box_widget" id="eb_spell_name" posref="TR BR" x="0" w="216" y="-54" h="20" child_resize="false"
text_x="0" text_y="-2" text_ref="ML ML"
text_x="0" text_y="0" text_ref="ML ML"
fontsize="12" multi_line="false" max_num_chars="20"
enter_loose_focus="true" enter_recover_focus="false" prompt="" reset_focus_on_hide="true" onchange="phrase_change_name" />
<view type="text" id="text_spell_name" posparent="eb_spell_name" posref="TL BL" x="0" y="-2" color="255 255 255 255" fontsize="10" shadow="true" hardtext="uiPhraseEditName" />

File diff suppressed because it is too large Load diff

View file

@ -1,477 +1,477 @@
<!-- ****************************************** -->
<!-- * RESET INTERFACE * -->
<!-- ****************************************** -->
<!-- A container is ALWAYS defined in BL TL hotspot when poped (layer0) else (layer > 0) it is a TL TL -->
<!-- Take care that if the container is not active a getProp of w or h will return 0 -->
<interface_config>
<root id="interface" x="0" y="0" w="800" h="600" active="true" />
<variable entry="UI:TEMP:ACTIVE" type="sint64" value="0" />
<proc id="pri_top_center" >
<action handler="set" params="dblink=UI:TEMP:ACTIVE|value=getprop('@0:active')" />
<action handler="set" params="target='@0:active'|value=1" />
<!--<action handler="set" params="target='@0:x'|value=div(sub(getprop('ui:interface:w'),getprop('@0:w')),2)" />-->
<action handler="set" params="target='@0:y'|value=sub(getprop('ui:interface:h'),48)" />
<action handler="set" params="target='@0:active'|value=@UI:TEMP:ACTIVE" />
</proc>
<proc id="base_desktop" >
<action handler="reset_interface" params="" />
<action handler="unlock_all_container" params="" />
<!-- Player -->
<action handler="set" params="target='ui:interface:player:active'|value=1" />
<action handler="set" params="target='ui:interface:player:x'|value=4" />
<action handler="set" params="target='ui:interface:player:y'|value=sub(getprop('ui:interface:h'),4)" />
<action handler="set_transparent" params="ui:interface:player" />
<!-- BonusMalus -->
<action handler="set" params="target='ui:interface:bonus_malus:active'|value=1" />
<action handler="set" params="target='ui:interface:bonus_malus:x'|value=188" />
<action handler="set" params="target='ui:interface:bonus_malus:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Target -->
<action handler="set" params="target='ui:interface:target:active'|value=1" />
<action handler="set" params="target='ui:interface:target:x'|value=4" />
<action handler="set" params="target='ui:interface:target:y'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:player:h')),8)" />
<action handler="set_transparent" params="ui:interface:target" />
<!-- Team -->
<action handler="set" params="target='ui:interface:team_list:x'|value=4" />
<action handler="set" params="target='ui:interface:team_list:y'|value=sub(sub(sub(getprop('ui:interface:h'),getprop('ui:interface:player:h')),getprop('ui:interface:target:h')),12)" />
<!-- Compass -->
<action handler="set" params="target='ui:interface:compass:active'|value=1" />
<action handler="set" params="target='ui:interface:compass:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),4)" />
<action handler="set" params="target='ui:interface:compass:y'|value=sub(getprop('ui:interface:h'),4)" />
<action handler="set_transparent" params="ui:interface:compass" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:active'|value=1" />
<action handler="set_alpha" params="target=ui:interface:main_chat|alpha=100" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=0" />
<!-- Info Player Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:x'|value=4" />
<action handler="set" params="target='ui:interface:info_player_journal:y'|value=sub(getprop('ui:interface:h'),113)" />
<action handler="set_alpha" params="target=ui:interface:info_player_journal|alpha=100" />
<!-- Milko -->
<action handler="set" params="target='ui:interface:milko_pad:active'|value=1" />
<action handler="set" params="target='ui:interface:milko_pad:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:milko_pad:w')),4)" />
<action handler="set" params="target='ui:interface:milko_pad:y'|value=add(getprop('ui:interface:milko_pad:h'),4)" />
<action handler="set_alpha" params="target=ui:interface:milko_pad|alpha=200" />
<!-- Map -->
<action handler="set" params="target='ui:interface:map:active'|value=1" />
<action handler="set" params="target='ui:interface:map:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:map:w')),4)" />
<action handler="set" params="target='ui:interface:map:y'|value=sub(sub(getprop('ui:interface:h'), getprop('ui:interface:compass:h')), 8)" />
<action handler="set" params="target='ui:interface:map:active'|value=0" />
<!-- Contacts -->
<action handler="set" params="target='ui:interface:contact_list:active'|value=1" />
<action handler="set" params="target='ui:interface:contact_list:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:contact_list:w')),4)" />
<action handler="set" params="target='ui:interface:contact_list:y'|value=sub(sub(getprop('ui:interface:h'), getprop('ui:interface:compass:h')), 12)" />
<action handler="set" params="target='ui:interface:contact_list:active'|value=0" />
<!-- Mailbox -->
<action handler="set" params="target='ui:interface:mailbox:w'|value=480" />
<action handler="set" params="target='ui:interface:mailbox:h'|value=360" />
<!-- Gestion Windows (the popup in middle of the screen) -->
<action handler="set" params="dblink=UI:TEMP:ACTIVE|value=getprop('ui:interface:gestion_windows:active')" />
<action handler="set" params="target='ui:interface:gestion_windows:active'|value=1" />
<action handler="set" params="target='ui:interface:gestion_windows:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:gestion_windows:w')),2)" />
<action handler="set" params="target='ui:interface:gestion_windows:y'|value=add(getprop('ui:interface:gestion_windows:h'),div(sub(getprop('ui:interface:h'),getprop('ui:interface:gestion_windows:h')),2))" />
<action handler="set" params="target='ui:interface:gestion_windows:active'|value=@UI:TEMP:ACTIVE" />
<!-- AppZone -->
<action handler="set" params="target='ui:interface:appzone:active'|value=1" />
<action handler="set" params="target='ui:interface:appzone:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:appzone:w')),2)" />
<action handler="set" params="target='ui:interface:appzone:y'|value=add(getprop('ui:interface:appzone:h'),2)" />
</proc>
<proc id="proc_reset_interface">
<action handler="set" params="dblink=UI:SAVE:DAY_COLOR|value=makeRGB(219,254,174)" />
<action handler="set" params="dblink=UI:SAVE:DAY_COLOR|value=makeRGB(219,254,174)" />
<action handler="set" params="dblink=UI:SAVE:NIGHT_COLOR|value=makeRGB(127,190,254)" />
<!-- Reset all the items that are trivial -->
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:PLA|value=makeRGB(167,205,107)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:ANI|value=makeRGB(189,154,123)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:COM|value=makeRGB(255,237,89)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:INV|value=makeRGB(74,162,243)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:OPT|value=makeRGB(255,79,69)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:LAB|value=makeRGB(251,163,60)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:MEM|value=makeRGB(237,112,200)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:MAP|value=makeRGB(237,200,30)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:HELP|value=makeRGB(255,96,16)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:INFOS|value=makeRGB(255,0,0)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:TRADE|value=makeRGB(204,177,107)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:BOT|value=makeRGB(0,251,222)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_PALETTE|value=makeRGB(255,255,66)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_SCENARIO|value=makeRGB(117,217,255)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_PROP_WINDOW|value=makeRGB(26,251,142)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_FORM|value=makeRGB(24,142,249)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_CUSTOM_LOOK|value=makeRGB(239,170,33)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_DIALOGS|value=makeRGB(117,163,255)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_EVENTS|value=makeRGB(252,255,162)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_ACTIVITIES|value=makeRGB(228,118,255)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_FEATURE_HELP|value=makeRGB(117,255,189)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_CONNECT|value=makeRGB(162,255,173)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_SESSION_BROWSER|value=makeRGB(255,113,66)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_SCENARIO_CONTROL|value=makeRGB(255,12,89)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_PLAYER_TRACKING|value=makeRGB(240,255,89)" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:CONTAINER_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:CONTENT_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:ROLLOVER_CONTENT_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:ROLLOVER_CONTAINER_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:USE_GLOBAL_ALPHA_SETTINGS|value=1" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:CONTAINER_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:CONTENT_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:ROLLOVER_CONTENT_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:ROLLOVER_CONTAINER_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:USE_GLOBAL_ALPHA_SETTINGS|value=1" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:DEAD|value=makeRGB(255,255,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:USER|value=makeRGB(255,112,249)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PLAYER|value=makeRGB(77,144,255)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:GROUP|value=makeRGB(185,76,255)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:GUILD|value=makeRGB(120,0,200)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:NPC|value=makeRGB(192,192,192)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:FAUNA|value=makeRGB(249,179,29)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:TARGET|value=makeRGB(255,255,255)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:SOURCE|value=makeRGB(65,255,112)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:MOUNT|value=makeRGB(217,255,114)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:BEAST|value=makeRGB(158,216,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPENEMY|value=makeRGB(185,0,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPALLY|value=makeRGB(0,200,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPALLYINTEAM|value=makeRGB(140,200,140)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPALLYINGUILD|value=makeRGB(100,150,100)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPNEUTRAL|value=makeRGB(64,128,128)" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:GUILD_SYMBOL|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:NAME|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:TITLE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:GUILD_NAME|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore1|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore2|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore3|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore4|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ACTION|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:MESSAGES|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:GUILD_SYMBOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:TITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:GUILD_NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore1|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore3|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore2|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore4|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MESSAGES|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NPCNAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NPCTITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MISSION_ICON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MINI_MISSION_ICON|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:GUILD_SYMBOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:TITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:GUILD_NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:ChaScore1|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:MESSAGES|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:MISC|value=makeRGB(255,0,255)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:TRIBE|value=makeRGB(180,180,180)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:BANDIT|value=makeRGB(110,110,110)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:CITIZEN|value=makeRGB(255,255,255)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FAUNA|value=makeRGB(255,100,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FAUNAEXCEL|value=makeRGB(255,50,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FAUNASUP|value=makeRGB(200,0,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FORAGE|value=makeRGB(150,200,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FORAGEEXCEL|value=makeRGB(50,200,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FORAGESUP|value=makeRGB(0,150,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:SAP|value=makeRGB(150,200,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:AMBER|value=makeRGB(255,150,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:NODE|value=makeRGB(200,100,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FIBER|value=makeRGB(255,255,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:BARK|value=makeRGB(150,100,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:SEED|value=makeRGB(100,50,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:SHELL|value=makeRGB(200,150,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:RESIN|value=makeRGB(50,100,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:WOOD|value=makeRGB(100,100,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:OIL|value=makeRGB(200,200,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:MISSION|value=makeRGB(200,50,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FOOD|value=makeRGB(200,50,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:CONSTRUCTION|value=makeRGB(255,0,100)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:GOO|value=makeRGB(100,0,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:INSECT|value=makeRGB(50,100,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:KITIN|value=makeRGB(50,0,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:NOCIVE|value=makeRGB(50,0,100)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:PRESERVATIVE|value=makeRGB(50,0,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:PASSAGE|value=makeRGB(100,255,255)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:TELEPORTER|value=makeRGB(0,200,200)" />
<action handler="set" params="dblink=UI:SAVE:EXPAND_MISSION_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:MISSION_JOURNAL_HEADER_ACTIVE|value=1" />
<action handler="set" params="dblink=UI:SAVE:CONTENT_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:CONTAINER_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:CONTENT_ROLLOVER_FACTOR|value=255" />
<action handler="set" params="dblink=UI:SAVE:CONTAINER_ROLLOVER_FACTOR|value=255" />
<action handler="set" params="dblink=UI:SAVE:ALPHA_ROLLOVER_SPEED|value=5" />
<action handler="set" params="dblink=UI:SAVE:DOUBLE_CLICK_SPEED|value=50" />
<action handler="set" params="dblink=UI:SAVE:KEY_REPEAT_SPEED|value=50" />
<action handler="set" params="dblink=UI:SAVE:USER_CHAR_FADE|value=0" />
<action handler="set" params="dblink=UI:SAVE:USER_CHAR_OPA_MIN|value=160" />
<action handler="set" params="dblink=UI:SAVE:DAY_COLOR|value=makeRGB(219,254,174)" />
<action handler="set" params="dblink=UI:SAVE:NIGHT_COLOR|value=makeRGB(127,190,254)" />
<action handler="set" params="dblink=UI:SAVE:SHOW_3D_ITEM_PREVIEW|value=1" />
<action handler="set" params="dblink=UI:SAVE:PLAYER:DISP_ChaScore3|value=1" />
<action handler="set" params="dblink=UI:SAVE:PLAYER:DISP_ChaScore2|value=1" />
<action handler="set" params="dblink=UI:SAVE:PLAYER:DISP_ChaScore4|value=1" />
<action handler="set" params="dblink=UI:SAVE:ACT_BAR_OUT|value=1" />
<action handler="set" params="dblink=UI:SAVE:CHAT:FONT_SIZE|value=10" />
<action handler="set" params="dblink=UI:SAVE:CHAT:MULTI_LINE_SPACE|value=0" />
<action handler="set" params="dblink=UI:SAVE:CHAT:SHADOWED_TEXT|value=1" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:SPEAKER|value=makeRGB(220,220,50)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:SAY|value=makeRGB(255,255,255)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:SHOUT|value=makeRGB(255,70,70)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:GROUP|value=makeRGB(170,170,255)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:CLADE|value=makeRGB(70,255,70)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:CIVILIZATION|value=makeRGB(128,128,128)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:TERRITORY|value=makeRGB(128,128,128)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:UNIVERSE_NEW|value=makeRGB(255,127,0)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:REGION|value=makeRGB(255,200,200)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:TELL|value=makeRGB(170,170,170)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:DYN|value=makeRGB(162,255,173)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:ENTER_DONT_QUIT_CB|value=0" />
<action handler="set" params="dblink=UI:SAVE:CHAT:SHOW_TIMES_IN_CHAT_CB|value=0" />
<action handler="set" params="dblink=UI:SAVE:CHAT:SHOW_DYN_CHANNEL_NAME_IN_CHAT_CB|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:SORT_TYPE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:SORT_TYPE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:MAIN_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:GUILD_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:TEAM_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:SYSTEM_INFO|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:AROUND_ME|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:CHAT_GROUP|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:USER_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:UNIVERSE_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:REGION_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:AROUND_ME|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:REGION_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:TEAM_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:GUILD_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:UNIVERSE_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:SYSTEM_INFO|value=1" />
<action handler="reset_virtual_desktop" params="vdesk=0" />
<action handler="reset_virtual_desktop" params="vdesk=1" />
<action handler="reset_virtual_desktop" params="vdesk=2" />
<action handler="reset_virtual_desktop" params="vdesk=3" />
<!-- ********* -->
<!-- DESKTOP 1 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=0" />
<action handler="proc" params="base_desktop" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=1" />
<action handler="set" params="target='ui:interface:gestionsets:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:gestionsets:w')),2)" />
<action handler="set" params="target='ui:interface:gestionsets:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:w'|value=383" />
<action handler="set" params="target='ui:interface:main_chat:h'|value=237" />
<action handler="set" params="target='ui:interface:main_chat:x'|value=4" />
<action handler="set" params="target='ui:interface:main_chat:y'|value=add(getprop('ui:interface:main_chat:h'),4)" />
<!-- Mission Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:active'|value=1" />
<action handler="set" params="target='ui:interface:info_player_journal:locked'|value=0" />
<action handler="set" params="target='ui:interface:info_player_journal:h'|value=182" />
<action handler="set" params="target='ui:interface:info_player_journal:w'|value=280" />
<action handler="set" params="target='ui:interface:info_player_journal:x'|value=4" />
<action handler="set" params="target='ui:interface:info_player_journal:y'|value=add(add(getprop('ui:interface:main_chat:h'),getprop('ui:interface:info_player_journal:h')),8)" />
<!-- ********* -->
<!-- DESKTOP 2 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=1" />
<action handler="proc" params="base_desktop" />
<!-- Compass -->
<action handler="set" params="target='ui:interface:compass:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),4)" />
<action handler="set" params="target='ui:interface:compass:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Player -->
<action handler="set" params="target='ui:interface:player:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:player:w')),4)" />
<action handler="set" params="target='ui:interface:player:y'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:compass:h')),8)" />
<!-- Target -->
<action handler="set" params="target='ui:interface:target:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:target:w')),4)" />
<action handler="set" params="target='ui:interface:target:y'|value=sub(sub(sub(getprop('ui:interface:h'),getprop('ui:interface:player:h')), getprop('ui:interface:compass:h')), 12)" />
<!-- BonusMalus -->
<action handler="set" params="target='ui:interface:bonus_malus:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:bonus_malus:w')),4)" />
<action handler="set" params="target='ui:interface:bonus_malus:y'|value=sub(sub(sub(sub(getprop('ui:interface:h'), getprop('ui:interface:target:h')), getprop('ui:interface:compass:h')), getprop('ui:interface:player:h')), 16)" />
<!-- Mission Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:active'|value=0" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=0" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:w'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),8)" />
<action handler="set" params="target='ui:interface:main_chat:h'|value=132" />
<action handler="set" params="target='ui:interface:main_chat:x'|value=4" />
<action handler="set" params="target='ui:interface:main_chat:y'|value=add(getprop('ui:interface:main_chat:h'),4)" />
<!-- Map -->
<action handler="set" params="target='ui:interface:map:w'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),8)" />
<action handler="set" params="target='ui:interface:map:h'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:main_chat:h')),8)" />
<action handler="set" params="target='ui:interface:map:x'|value=4" />
<action handler="set" params="target='ui:interface:map:y'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:map:h')),4)" />
<action handler="set" params="target='ui:interface:map:locked'|value=0" />
<action handler="set" params="target='ui:interface:map:active'|value=1" />
<!-- ********* -->
<!-- DESKTOP 3 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=2" />
<action handler="reset_interface" params="" />
<!-- ********* -->
<!-- DESKTOP 4 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=3" />
<action handler="proc" params="base_desktop" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=1" />
<action handler="set" params="target='ui:interface:gestionsets:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:gestionsets:w')),2)" />
<action handler="set" params="target='ui:interface:gestionsets:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:w'|value=383" />
<action handler="set" params="target='ui:interface:main_chat:h'|value=237" />
<action handler="set" params="target='ui:interface:main_chat:x'|value=4" />
<action handler="set" params="target='ui:interface:main_chat:y'|value=add(getprop('ui:interface:main_chat:h'),4)" />
<!-- Mission Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:active'|value=1" />
<action handler="set" params="target='ui:interface:info_player_journal:locked'|value=0" />
<action handler="set" params="target='ui:interface:info_player_journal:h'|value=182" />
<action handler="set" params="target='ui:interface:info_player_journal:w'|value=280" />
<action handler="set" params="target='ui:interface:info_player_journal:x'|value=4" />
<action handler="set" params="target='ui:interface:info_player_journal:y'|value=add(add(getprop('ui:interface:main_chat:h'),getprop('ui:interface:info_player_journal:h')),8)" />
<!-- SAUVEGARDE DU DESKTOP 4 ET RETOUR AU DESKTOP 0 -->
<action handler="set_virtual_desktop" params="vdesk=0" />
<!-- ************ -->
<!-- INFO WINDOWS -->
<!-- ************ -->
<action handler="help_reset_pos" params="y=-100" />
<action handler="lua" params="local tbw = getUI('ui:interface:r2ed_toolbar_window', false) if tbw then tbw.active = (r2~=nil and r2.Mode~=nil and r2.Mode=='Test') end" />
<!-- ************ -->
<!-- MISC -->
<!-- ************ -->
<action handler="lua" params="getUI('ui:interface:keys').uc_title = i18n.get('uiKeysTitle')"/>
<action handler="lua" params="local w = getUI('ui:interface:r2ed_toolbar_window', false) if w then w.active = (r2~=nil and r2.Mode~=nil and r2.Mode=='Test') end"/>
<!-- reenable missions, possibly hidden after a ring session -->
<action handler="lua:game:updateMissionJournalMode()"/>
<action handler="lua" params="local animals = getUI('ui:interface:animal_global');
if animals then
animals.content.no_available_animals.active = false;
animals.header_opened.active = true;
animals.header_closed.active = false;
if animals.list then
animals.list.active = true;
end;
end"/>
<action handler="lua" params="if r2 and r2.initDMToolbarWindowPos then r2:initDMToolbarWindowPos() end" />
</proc>
<proc id="proc_reset_r2ed_interface">
</proc>
</interface_config>
<!-- ****************************************** -->
<!-- * RESET INTERFACE * -->
<!-- ****************************************** -->
<!-- A container is ALWAYS defined in BL TL hotspot when poped (layer0) else (layer > 0) it is a TL TL -->
<!-- Take care that if the container is not active a getProp of w or h will return 0 -->
<interface_config>
<root id="interface" x="0" y="0" w="800" h="600" active="true" />
<variable entry="UI:TEMP:ACTIVE" type="sint64" value="0" />
<proc id="pri_top_center" >
<action handler="set" params="dblink=UI:TEMP:ACTIVE|value=getprop('@0:active')" />
<action handler="set" params="target='@0:active'|value=1" />
<!--<action handler="set" params="target='@0:x'|value=div(sub(getprop('ui:interface:w'),getprop('@0:w')),2)" />-->
<action handler="set" params="target='@0:y'|value=sub(getprop('ui:interface:h'),48)" />
<action handler="set" params="target='@0:active'|value=@UI:TEMP:ACTIVE" />
</proc>
<proc id="base_desktop" >
<action handler="reset_interface" params="" />
<action handler="unlock_all_container" params="" />
<!-- Player -->
<action handler="set" params="target='ui:interface:player:active'|value=1" />
<action handler="set" params="target='ui:interface:player:x'|value=4" />
<action handler="set" params="target='ui:interface:player:y'|value=sub(getprop('ui:interface:h'),4)" />
<action handler="set_transparent" params="ui:interface:player" />
<!-- BonusMalus -->
<action handler="set" params="target='ui:interface:bonus_malus:active'|value=1" />
<action handler="set" params="target='ui:interface:bonus_malus:x'|value=188" />
<action handler="set" params="target='ui:interface:bonus_malus:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Target -->
<action handler="set" params="target='ui:interface:target:active'|value=1" />
<action handler="set" params="target='ui:interface:target:x'|value=4" />
<action handler="set" params="target='ui:interface:target:y'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:player:h')),8)" />
<action handler="set_transparent" params="ui:interface:target" />
<!-- Team -->
<action handler="set" params="target='ui:interface:team_list:x'|value=4" />
<action handler="set" params="target='ui:interface:team_list:y'|value=sub(sub(sub(getprop('ui:interface:h'),getprop('ui:interface:player:h')),getprop('ui:interface:target:h')),12)" />
<!-- Compass -->
<action handler="set" params="target='ui:interface:compass:active'|value=1" />
<action handler="set" params="target='ui:interface:compass:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),4)" />
<action handler="set" params="target='ui:interface:compass:y'|value=sub(getprop('ui:interface:h'),4)" />
<action handler="set_transparent" params="ui:interface:compass" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:active'|value=1" />
<action handler="set_alpha" params="target=ui:interface:main_chat|alpha=100" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=0" />
<!-- Info Player Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:x'|value=4" />
<action handler="set" params="target='ui:interface:info_player_journal:y'|value=sub(getprop('ui:interface:h'),113)" />
<action handler="set_alpha" params="target=ui:interface:info_player_journal|alpha=100" />
<!-- Milko -->
<action handler="set" params="target='ui:interface:milko_pad:active'|value=1" />
<action handler="set" params="target='ui:interface:milko_pad:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:milko_pad:w')),4)" />
<action handler="set" params="target='ui:interface:milko_pad:y'|value=add(getprop('ui:interface:milko_pad:h'),4)" />
<action handler="set_alpha" params="target=ui:interface:milko_pad|alpha=200" />
<!-- Map -->
<action handler="set" params="target='ui:interface:map:active'|value=1" />
<action handler="set" params="target='ui:interface:map:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:map:w')),4)" />
<action handler="set" params="target='ui:interface:map:y'|value=sub(sub(getprop('ui:interface:h'), getprop('ui:interface:compass:h')), 8)" />
<action handler="set" params="target='ui:interface:map:active'|value=0" />
<!-- Contacts -->
<action handler="set" params="target='ui:interface:contact_list:active'|value=1" />
<action handler="set" params="target='ui:interface:contact_list:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:contact_list:w')),4)" />
<action handler="set" params="target='ui:interface:contact_list:y'|value=sub(sub(getprop('ui:interface:h'), getprop('ui:interface:compass:h')), 12)" />
<action handler="set" params="target='ui:interface:contact_list:active'|value=0" />
<!-- Mailbox -->
<action handler="set" params="target='ui:interface:mailbox:w'|value=480" />
<action handler="set" params="target='ui:interface:mailbox:h'|value=360" />
<!-- Gestion Windows (the popup in middle of the screen) -->
<action handler="set" params="dblink=UI:TEMP:ACTIVE|value=getprop('ui:interface:gestion_windows:active')" />
<action handler="set" params="target='ui:interface:gestion_windows:active'|value=1" />
<action handler="set" params="target='ui:interface:gestion_windows:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:gestion_windows:w')),2)" />
<action handler="set" params="target='ui:interface:gestion_windows:y'|value=add(getprop('ui:interface:gestion_windows:h'),div(sub(getprop('ui:interface:h'),getprop('ui:interface:gestion_windows:h')),2))" />
<action handler="set" params="target='ui:interface:gestion_windows:active'|value=@UI:TEMP:ACTIVE" />
<!-- AppZone -->
<action handler="set" params="target='ui:interface:appzone:active'|value=1" />
<action handler="set" params="target='ui:interface:appzone:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:appzone:w')),2)" />
<action handler="set" params="target='ui:interface:appzone:y'|value=add(getprop('ui:interface:appzone:h'),2)" />
</proc>
<proc id="proc_reset_interface">
<action handler="set" params="dblink=UI:SAVE:DAY_COLOR|value=makeRGB(219,254,174)" />
<action handler="set" params="dblink=UI:SAVE:DAY_COLOR|value=makeRGB(219,254,174)" />
<action handler="set" params="dblink=UI:SAVE:NIGHT_COLOR|value=makeRGB(127,190,254)" />
<!-- Reset all the items that are trivial -->
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:PLA|value=makeRGB(167,205,107)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:ANI|value=makeRGB(189,154,123)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:COM|value=makeRGB(255,237,89)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:INV|value=makeRGB(74,162,243)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:OPT|value=makeRGB(255,79,69)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:LAB|value=makeRGB(251,163,60)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:MEM|value=makeRGB(237,112,200)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:MAP|value=makeRGB(237,200,30)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:HELP|value=makeRGB(255,96,16)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:INFOS|value=makeRGB(255,0,0)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:TRADE|value=makeRGB(204,177,107)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:BOT|value=makeRGB(0,251,222)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_PALETTE|value=makeRGB(255,255,66)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_SCENARIO|value=makeRGB(117,217,255)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_PROP_WINDOW|value=makeRGB(26,251,142)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_FORM|value=makeRGB(24,142,249)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_CUSTOM_LOOK|value=makeRGB(239,170,33)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_DIALOGS|value=makeRGB(117,163,255)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_EVENTS|value=makeRGB(252,255,162)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_ACTIVITIES|value=makeRGB(228,118,255)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_FEATURE_HELP|value=makeRGB(117,255,189)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_CONNECT|value=makeRGB(162,255,173)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_SESSION_BROWSER|value=makeRGB(255,113,66)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_SCENARIO_CONTROL|value=makeRGB(255,12,89)" />
<action handler="set" params="dblink=UI:SAVE:WIN:COLORS:R2_PLAYER_TRACKING|value=makeRGB(240,255,89)" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:CONTAINER_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:CONTENT_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:ROLLOVER_CONTENT_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:ROLLOVER_CONTAINER_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_PROP_SHEET:USE_GLOBAL_ALPHA_SETTINGS|value=1" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:CONTAINER_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:CONTENT_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:ROLLOVER_CONTENT_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:ROLLOVER_CONTAINER_ALPHA|value=0" />
<action handler="set" params="dblink=UI:SAVE:R2_FORM:USE_GLOBAL_ALPHA_SETTINGS|value=1" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:DEAD|value=makeRGB(255,255,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:USER|value=makeRGB(255,112,249)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PLAYER|value=makeRGB(77,144,255)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:GROUP|value=makeRGB(185,76,255)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:GUILD|value=makeRGB(120,0,200)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:NPC|value=makeRGB(192,192,192)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:FAUNA|value=makeRGB(249,179,29)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:TARGET|value=makeRGB(255,255,255)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:SOURCE|value=makeRGB(65,255,112)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:MOUNT|value=makeRGB(217,255,114)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:BEAST|value=makeRGB(158,216,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPENEMY|value=makeRGB(185,0,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPALLY|value=makeRGB(0,200,0)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPALLYINTEAM|value=makeRGB(140,200,140)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPALLYINGUILD|value=makeRGB(100,150,100)" />
<action handler="set" params="dblink=UI:SAVE:ENTITY:COLORS:PVPNEUTRAL|value=makeRGB(64,128,128)" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:GUILD_SYMBOL|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:NAME|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:TITLE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:GUILD_NAME|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore1|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore2|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore3|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ChaScore4|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:ACTION|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:MESSAGES|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:USER:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:GUILD_SYMBOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:TITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:GUILD_NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore1|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore3|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore2|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:ChaScore4|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MESSAGES|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NPCNAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:NPCTITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MISSION_ICON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:FRIEND:MINI_MISSION_ICON|value=0" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:GUILD_SYMBOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:TITLE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:GUILD_NAME|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:ChaScore1|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:MESSAGES|value=1" />
<action handler="set" params="dblink=UI:SAVE:INSCENE:ENEMY:PVP_LOGO|value=1" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:MISC|value=makeRGB(255,0,255)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:TRIBE|value=makeRGB(180,180,180)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:BANDIT|value=makeRGB(110,110,110)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:CITIZEN|value=makeRGB(255,255,255)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FAUNA|value=makeRGB(255,100,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FAUNAEXCEL|value=makeRGB(255,50,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FAUNASUP|value=makeRGB(200,0,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FORAGE|value=makeRGB(150,200,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FORAGEEXCEL|value=makeRGB(50,200,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FORAGESUP|value=makeRGB(0,150,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:SAP|value=makeRGB(150,200,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:AMBER|value=makeRGB(255,150,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:NODE|value=makeRGB(200,100,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FIBER|value=makeRGB(255,255,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:BARK|value=makeRGB(150,100,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:SEED|value=makeRGB(100,50,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:SHELL|value=makeRGB(200,150,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:RESIN|value=makeRGB(50,100,0)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:WOOD|value=makeRGB(100,100,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:OIL|value=makeRGB(200,200,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:MISSION|value=makeRGB(200,50,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:FOOD|value=makeRGB(200,50,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:CONSTRUCTION|value=makeRGB(255,0,100)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:GOO|value=makeRGB(100,0,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:INSECT|value=makeRGB(50,100,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:KITIN|value=makeRGB(50,0,150)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:NOCIVE|value=makeRGB(50,0,100)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:PRESERVATIVE|value=makeRGB(50,0,50)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:PASSAGE|value=makeRGB(100,255,255)" />
<action handler="set" params="dblink=UI:SAVE:LANDMARK:COLORS:TELEPORTER|value=makeRGB(0,200,200)" />
<action handler="set" params="dblink=UI:SAVE:EXPAND_MISSION_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:MISSION_JOURNAL_HEADER_ACTIVE|value=1" />
<action handler="set" params="dblink=UI:SAVE:CONTENT_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:CONTAINER_ALPHA|value=255" />
<action handler="set" params="dblink=UI:SAVE:CONTENT_ROLLOVER_FACTOR|value=255" />
<action handler="set" params="dblink=UI:SAVE:CONTAINER_ROLLOVER_FACTOR|value=255" />
<action handler="set" params="dblink=UI:SAVE:ALPHA_ROLLOVER_SPEED|value=5" />
<action handler="set" params="dblink=UI:SAVE:DOUBLE_CLICK_SPEED|value=50" />
<action handler="set" params="dblink=UI:SAVE:KEY_REPEAT_SPEED|value=50" />
<action handler="set" params="dblink=UI:SAVE:USER_CHAR_FADE|value=0" />
<action handler="set" params="dblink=UI:SAVE:USER_CHAR_OPA_MIN|value=160" />
<action handler="set" params="dblink=UI:SAVE:DAY_COLOR|value=makeRGB(219,254,174)" />
<action handler="set" params="dblink=UI:SAVE:NIGHT_COLOR|value=makeRGB(127,190,254)" />
<action handler="set" params="dblink=UI:SAVE:SHOW_3D_ITEM_PREVIEW|value=1" />
<action handler="set" params="dblink=UI:SAVE:PLAYER:DISP_ChaScore3|value=1" />
<action handler="set" params="dblink=UI:SAVE:PLAYER:DISP_ChaScore2|value=1" />
<action handler="set" params="dblink=UI:SAVE:PLAYER:DISP_ChaScore4|value=1" />
<action handler="set" params="dblink=UI:SAVE:ACT_BAR_OUT|value=1" />
<action handler="set" params="dblink=UI:SAVE:CHAT:FONT_SIZE|value=10" />
<action handler="set" params="dblink=UI:SAVE:CHAT:MULTI_LINE_SPACE|value=0" />
<action handler="set" params="dblink=UI:SAVE:CHAT:SHADOWED_TEXT|value=1" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:SPEAKER|value=makeRGB(220,220,50)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:SAY|value=makeRGB(255,255,255)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:SHOUT|value=makeRGB(255,70,70)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:GROUP|value=makeRGB(170,170,255)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:CLADE|value=makeRGB(70,255,70)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:CIVILIZATION|value=makeRGB(128,128,128)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:TERRITORY|value=makeRGB(128,128,128)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:UNIVERSE_NEW|value=makeRGB(255,127,0)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:REGION|value=makeRGB(255,200,200)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:TELL|value=makeRGB(170,170,170)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:COLORS:DYN|value=makeRGB(162,255,173)" />
<action handler="set" params="dblink=UI:SAVE:CHAT:ENTER_DONT_QUIT_CB|value=0" />
<action handler="set" params="dblink=UI:SAVE:CHAT:SHOW_TIMES_IN_CHAT_CB|value=0" />
<action handler="set" params="dblink=UI:SAVE:CHAT:SHOW_DYN_CHANNEL_NAME_IN_CHAT_CB|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_BAG:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA0:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA1:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA2:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:SORT_TYPE|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_PA3:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:SORT_TYPE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_GUILD:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:SORT_TYPE|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:ICON_LIST|value=0" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_ARMOR|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_WEAPON|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_TOOL|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_MP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_MISSMP|value=1" />
<action handler="set" params="dblink=UI:SAVE:INV_ROOM:FILTER_TP|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:MAIN_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:GUILD_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:TEAM_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:SYSTEM_INFO|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:AROUND_ME|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:CHAT_GROUP|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:USER_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:UNIVERSE_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISDETACHED:REGION_CHAT|value=0" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:AROUND_ME|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:REGION_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:TEAM_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:GUILD_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:UNIVERSE_CHAT|value=1" />
<action handler="set" params="dblink=UI:SAVE:ISENABLED:SYSTEM_INFO|value=1" />
<action handler="reset_virtual_desktop" params="vdesk=0" />
<action handler="reset_virtual_desktop" params="vdesk=1" />
<action handler="reset_virtual_desktop" params="vdesk=2" />
<action handler="reset_virtual_desktop" params="vdesk=3" />
<!-- ********* -->
<!-- DESKTOP 1 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=0" />
<action handler="proc" params="base_desktop" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=1" />
<action handler="set" params="target='ui:interface:gestionsets:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:gestionsets:w')),2)" />
<action handler="set" params="target='ui:interface:gestionsets:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:w'|value=383" />
<action handler="set" params="target='ui:interface:main_chat:h'|value=237" />
<action handler="set" params="target='ui:interface:main_chat:x'|value=4" />
<action handler="set" params="target='ui:interface:main_chat:y'|value=add(getprop('ui:interface:main_chat:h'),4)" />
<!-- Mission Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:active'|value=1" />
<action handler="set" params="target='ui:interface:info_player_journal:locked'|value=0" />
<action handler="set" params="target='ui:interface:info_player_journal:h'|value=182" />
<action handler="set" params="target='ui:interface:info_player_journal:w'|value=280" />
<action handler="set" params="target='ui:interface:info_player_journal:x'|value=4" />
<action handler="set" params="target='ui:interface:info_player_journal:y'|value=add(add(getprop('ui:interface:main_chat:h'),getprop('ui:interface:info_player_journal:h')),8)" />
<!-- ********* -->
<!-- DESKTOP 2 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=1" />
<action handler="proc" params="base_desktop" />
<!-- Compass -->
<action handler="set" params="target='ui:interface:compass:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),4)" />
<action handler="set" params="target='ui:interface:compass:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Player -->
<action handler="set" params="target='ui:interface:player:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:player:w')),4)" />
<action handler="set" params="target='ui:interface:player:y'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:compass:h')),8)" />
<!-- Target -->
<action handler="set" params="target='ui:interface:target:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:target:w')),4)" />
<action handler="set" params="target='ui:interface:target:y'|value=sub(sub(sub(getprop('ui:interface:h'),getprop('ui:interface:player:h')), getprop('ui:interface:compass:h')), 12)" />
<!-- BonusMalus -->
<action handler="set" params="target='ui:interface:bonus_malus:x'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:bonus_malus:w')),4)" />
<action handler="set" params="target='ui:interface:bonus_malus:y'|value=sub(sub(sub(sub(getprop('ui:interface:h'), getprop('ui:interface:target:h')), getprop('ui:interface:compass:h')), getprop('ui:interface:player:h')), 16)" />
<!-- Mission Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:active'|value=0" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=0" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:w'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),8)" />
<action handler="set" params="target='ui:interface:main_chat:h'|value=132" />
<action handler="set" params="target='ui:interface:main_chat:x'|value=4" />
<action handler="set" params="target='ui:interface:main_chat:y'|value=add(getprop('ui:interface:main_chat:h'),4)" />
<!-- Map -->
<action handler="set" params="target='ui:interface:map:w'|value=sub(sub(getprop('ui:interface:w'),getprop('ui:interface:compass:w')),8)" />
<action handler="set" params="target='ui:interface:map:h'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:main_chat:h')),8)" />
<action handler="set" params="target='ui:interface:map:x'|value=4" />
<action handler="set" params="target='ui:interface:map:y'|value=sub(sub(getprop('ui:interface:h'),getprop('ui:interface:map:h')),4)" />
<action handler="set" params="target='ui:interface:map:locked'|value=0" />
<action handler="set" params="target='ui:interface:map:active'|value=1" />
<!-- ********* -->
<!-- DESKTOP 3 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=2" />
<action handler="reset_interface" params="" />
<!-- ********* -->
<!-- DESKTOP 4 -->
<!-- ********* -->
<action handler="set_virtual_desktop" params="vdesk=3" />
<action handler="proc" params="base_desktop" />
<!-- Actions -->
<action handler="set" params="target='ui:interface:gestionsets:active'|value=1" />
<action handler="set" params="target='ui:interface:gestionsets:x'|value=div(sub(getprop('ui:interface:w'),getprop('ui:interface:gestionsets:w')),2)" />
<action handler="set" params="target='ui:interface:gestionsets:y'|value=sub(getprop('ui:interface:h'),4)" />
<!-- Main Chat -->
<action handler="set" params="target='ui:interface:main_chat:w'|value=383" />
<action handler="set" params="target='ui:interface:main_chat:h'|value=237" />
<action handler="set" params="target='ui:interface:main_chat:x'|value=4" />
<action handler="set" params="target='ui:interface:main_chat:y'|value=add(getprop('ui:interface:main_chat:h'),4)" />
<!-- Mission Journal -->
<action handler="set" params="target='ui:interface:info_player_journal:active'|value=1" />
<action handler="set" params="target='ui:interface:info_player_journal:locked'|value=0" />
<action handler="set" params="target='ui:interface:info_player_journal:h'|value=182" />
<action handler="set" params="target='ui:interface:info_player_journal:w'|value=280" />
<action handler="set" params="target='ui:interface:info_player_journal:x'|value=4" />
<action handler="set" params="target='ui:interface:info_player_journal:y'|value=add(add(getprop('ui:interface:main_chat:h'),getprop('ui:interface:info_player_journal:h')),8)" />
<!-- SAUVEGARDE DU DESKTOP 4 ET RETOUR AU DESKTOP 0 -->
<action handler="set_virtual_desktop" params="vdesk=0" />
<!-- ************ -->
<!-- INFO WINDOWS -->
<!-- ************ -->
<action handler="help_reset_pos" params="y=-100" />
<action handler="lua" params="local tbw = getUI('ui:interface:r2ed_toolbar_window', false) if tbw then tbw.active = (r2~=nil and r2.Mode~=nil and r2.Mode=='Test') end" />
<!-- ************ -->
<!-- MISC -->
<!-- ************ -->
<action handler="lua" params="getUI('ui:interface:keys').uc_title = i18n.get('uiKeysTitle')"/>
<action handler="lua" params="local w = getUI('ui:interface:r2ed_toolbar_window', false) if w then w.active = (r2~=nil and r2.Mode~=nil and r2.Mode=='Test') end"/>
<!-- reenable missions, possibly hidden after a ring session -->
<action handler="lua:game:updateMissionJournalMode()"/>
<action handler="lua" params="local animals = getUI('ui:interface:animal_global');
if animals then
animals.content.no_available_animals.active = false;
animals.header_opened.active = true;
animals.header_closed.active = false;
if animals.list then
animals.list.active = true;
end;
end"/>
<action handler="lua" params="if r2 and r2.initDMToolbarWindowPos then r2:initDMToolbarWindowPos() end" />
</proc>
<proc id="proc_reset_r2ed_interface">
</proc>
</interface_config>

View file

@ -1029,7 +1029,7 @@
<template name="3dbulle_R" id="" >
<group id="#id" type="container" header_active="false" options="no_bordure" openable="false" savable="false" resizer="true" movable="false" right_button="false" opened="true" child_resize_w="true" w="0" max_w="256" min_w="48" h="48" >
<group id="header_opened" x="0" y="0" child_resize_w="true" w="0" child_resize_h="true" h="0" max_w="256" min_w="48" max_h="256" min_h="48" posref="TL TL" >
<group id="header_opened" x="0" y="0" child_resize_w="true" w="0" child_resize_h="true" h="0" max_w="256" min_w="48" max_h="512" min_h="48" posref="TL TL" >
<group id="window" x="0" y="0" child_resize_w="true" w="0" child_resize_h="true" h="0" posref="TL TL" >
<view type="bitmap" id="win_M" posref="MM MM" scale="true" sizeref="wh" w="-10" h="-10" texture="Bulle_M.tga" global_color="false"/>
@ -1090,7 +1090,7 @@
h="0"
max_w="512"
min_w="48"
max_h="256"
max_h="512"
min_h="48"
posref="TL TL">
<group id="window"
@ -1314,7 +1314,7 @@
h="0"
max_w="512"
min_w="48"
max_h="256"
max_h="512"
min_h="48"
posref="TL TL">
<group id="window"
@ -2793,6 +2793,7 @@
text_ref="BL BL"
child_resize_h="true"
multi_line="true"
multi_min_line="0"
x="0"
y="0"
w="0"
@ -4519,7 +4520,7 @@
entry_type="positive_integer"
id="edit"
text_ref="TR TR"
text_y="-1"
text_y="0"
fontsize="12"
posparent="sheet"
posref="MR ML"
@ -5055,7 +5056,7 @@
color="255 255 255 128"
col_over="255 255 255 0"
col_pushed="255 190 0 192"
text_y="-3"
text_y="0"
fontsize="12"
shadow="true"
text_color_normal="255 255 255 160"
@ -5092,7 +5093,7 @@
color="255 255 255 255"
col_over="255 255 255 255"
col_pushed="255 255 255 255"
text_y="-3"
text_y="0"
fontsize="14"
shadow="true"
text_color_pushed="255 255 255 255"
@ -7124,28 +7125,29 @@
</group>
</template>
<!-- html <hr> element -->
<template name="html_hr"
keep="true">
<group id="sep_gr"
posref="ML ML"
<!-- html <hr> element -->
<template name="html_hr"
keep="true">
<group id="sep_gr"
posref="ML ML"
sizeref="w"
w="0"
h="0"
child_resize_h="true"
child_resize_hmargin="12">
<view type="bitmap"
id="hr"
posref="MM MM"
sizeref="w"
w="0"
h="0"
child_resize_h="true"
child_resize_hmargin="12">
<view type="bitmap"
id="hr"
posref="MM MM"
sizeref="w"
w="-2"
h="2"
inherit_gc_alpha="true"
scale="true"
texture="blank.tga"
global_color="false" />
</group>
</template>
w="-2"
h="2"
inherit_gc_alpha="true"
scale="true"
texture="blank.tga"
global_color="false" />
</group>
</template>
<template name="html_form_select_box_menu_widget"
keep="true"
id="sb">

View file

@ -0,0 +1,161 @@
-- global
WebBrowser = {
template = "webig_browser",
apps = {}
}
function WebBrowser:openWindow(id, url)
-- default value if url is not set
url = url or "http://app.ryzom.com/"
local newWindow = false
local app = self:findAppById(id)
if not app then
app = {}
app.id = id
app.title = ""
app.url = url
-- getUI() object
app.uiWindow = nil
app.winid = "ui:interface:" .. id
app.winw = 780
app.winh = 500
app.minimized = true
app.activeUrl = ""
table.insert(self.apps, app)
end
if not app.uiWindow then
-- if there is window present (eg, 'webig'), then reuse it
app.uiWindow = getUI(app.winid, false)
if not app.uiWindow then
app.uiWindow = createRootGroupInstance(self.template, app.id, {
x = 0, y = 0, w = app.winw, h = app.winh, home = app.url,
browse_redo = "ui:interface:" .. app.id .. ":browser:header_opened:browse_redo",
browse_undo = "ui:interface:" .. app.id .. ":browser:header_opened:browse_undo",
browse_refresh = "ui:interface:" .. app.id .. ":browser:header_opened:browse_refresh"
})
if not app.uiWindow then
return
end
app.uiWindow:center()
end
newWindow = true
end
app.activeUrl = url
-- trigger on_open event
if not app.uiWindow.opened then
app.uiWindow.opened = true
end
-- trigger on_active event
if not app.uiWindow.active then
app.uiWindow.active = true
end
local html = app.uiWindow:find("html")
html:browse(url)
setTopWindow(app.uiWindow)
end
function WebBrowser:findAppById(id)
for k,app in pairs(self.apps) do
if app.id == id then
return app
end
end
return nil
end
function WebBrowser:findAppFromUiCaller()
-- id = app123
local id = getUICaller().id:match("ui:interface:([^:]*):?")
local app = self:findAppById(id)
if app then
return app
end
end
function WebBrowser:onActive()
if app then
self:restoreWindow(app)
end
end
function WebBrowser:onClickHeaderClose()
local app = self:findAppFromUiCaller()
if app then
self:saveWindow(app)
end
end
function WebBrowser:onClickHeaderOpen()
local app = self:findAppFromUiCaller()
if app then
self:restoreWindow(app)
end
end
-- save current window dimension and minimize window
function WebBrowser:saveWindow(app)
app.minimized = true
app.winw = app.uiWindow.w
app.winh = app.uiWindow.h
-- minimize
app.uiWindow.w = 150
app.uiWindow.h = 0
end
function WebBrowser:restoreWindow(app)
if app.minimized then
app.uiWindow.w = app.winw
app.uiWindow.h = app.winh
app.minimized = false
end
end
function WebBrowser:onClickRedo()
-- caller is :header_opened:browse_redo
local uiWindow = getUICaller().parent.parent
local html = uiWindow:find("html")
if html ~= nil then
runAH(nil, "browse_redo", "name=" .. html.id)
end
end
function WebBrowser:onClickUndo()
-- caller is :header_opened:browse_undo
local uiWindow = getUICaller().parent.parent
local html = uiWindow:find("html")
if html ~= nil then
runAH(nil, "browse_undo", "name=" .. html.id)
end
end
function WebBrowser:onClickRefresh()
-- caller is :header_opened:browse_refresh
local uiWindow = getUICaller().parent.parent
local html = uiWindow:find("html")
if html ~= nil then
html:refresh()
end
end
function WebBrowser:onClickHome()
-- caller is :header_opened:browse_home
local uiWindow = getUICaller().parent.parent
local html = uiWindow:find("html")
if html ~= nil then
html:browse("home")
end
end

File diff suppressed because it is too large Load diff

View file

@ -109,7 +109,7 @@ function game.RingAccessPointFilter:validate()
if config.Local == 1 then
ucUrl = ucstring(NicoMagicURL) -- for test in local mode
else
ucUrl = getDynString(game.NpcWebPage.UrlTextId);
ucUrl = getDynString(game.NpcWebPage.UrlTextId)
end
debugInfo(tostring(ucUrl))
local utf8Url = ucUrl:toUtf8()

View file

@ -49,7 +49,7 @@
<ctrl style="button_ok" id="ok" active="true" x="0" y="-10" posref="BR TR" posparent="label_gr"
text_y="-2" onclick_l="lua" params_l="game.RingAccessPointFilter:validate()" hardtext="OK" fontsize="10" />
text_y="0" onclick_l="lua" params_l="game.RingAccessPointFilter:validate()" hardtext="OK" fontsize="10" />
</group>
</group>

View file

@ -1077,15 +1077,15 @@
<group id="valid_scenario_control" sizeref="w" child_resize_h="true" w="0" posparent="invite_team"
posref="BL TL" x="0" y="-5" >
<ctrl style="button_ok" id="ok_button" x="-50" y="0" posref="TM TM" text_y="-2"
<ctrl style="button_ok" id="ok_button" x="-50" y="0" posref="TM TM" text_y="0"
onclick_l="load_scenario" params_l="" hardtext="uittOK" wmin="100"
tooltip="uiRingLaunchScenarioTooltip"
tooltip_parent="win" />
<ctrl style="button_ok" id="cancel_button" x="10" y="0" posparent="ok_button" posref="BR BL" text_y="-2"
<ctrl style="button_ok" id="cancel_button" x="10" y="0" posparent="ok_button" posref="BR BL" text_y="0"
onclick_l="proc" params_l="scenario_control_close" hardtext="uittCancel" wmin="100" />
<ctrl style="button_ok" id="load_button" x="10" y="0" posref="TL TL" text_y="-2"
<ctrl style="button_ok" id="load_button" x="10" y="0" posref="TL TL" text_y="0"
onclick_l="lua" params_l="GameR2Loading:displayLoadingWindow()" hardtext="uiR2EDChooseScenario" wmin="100" />
</group>
@ -1650,10 +1650,10 @@
<instance template="score_template" id="direction_rate" x="0" y="-13" posref="BL TL" posparent="originality_rate"
hardtext="uiRAP_RateDirection" />
<ctrl style="button_ok" id="ok" x="30" y="15" posref="BM BM" posparent="parent" text_y="-2"
<ctrl style="button_ok" id="ok" x="30" y="15" posref="BM BM" posparent="parent" text_y="0"
onclick_l="lua" params_l="ScenarioScores:updateScores()" hardtext="uittOK" wmin="50" />
<ctrl style="button_ok" id="cancel" x="-30" y="15" posref="BM BM" posparent="parent" text_y="-2"
<ctrl style="button_ok" id="cancel" x="-30" y="15" posref="BM BM" posparent="parent" text_y="0"
onclick_l="lua" params_l="ScenarioScores:getWindow().active=false" hardtext="uittCancel" wmin="50" />
</group>
@ -1679,7 +1679,7 @@
<instance template="average_score_template" id="direction_rate" x="0" y="-13" posref="BL TL" posparent="originality_rate"
hardtext="uiRAP_RateDirection" />
<ctrl style="button_ok" id="ok" x="30" y="15" posref="BM BM" posparent="parent" text_y="-2"
<ctrl style="button_ok" id="ok" x="30" y="15" posref="BM BM" posparent="parent" text_y="0"
onclick_l="lua" params_l="getUI('ui:interface:r2ed_scenario_scores').active=false" hardtext="uittOK" wmin="50" />
</group>

View file

@ -50,6 +50,24 @@
<command name="re" action="talk" params="mode=11|text=+" ctrlchar="false" />
<command name="r" action="talk" params="mode=11|text=+" ctrlchar="false" />
<command name="0" action="enter_talk" params="mode=12|channel=0" />
<command name="1" action="enter_talk" params="mode=12|channel=1" />
<command name="2" action="enter_talk" params="mode=12|channel=2" />
<command name="3" action="enter_talk" params="mode=12|channel=3" />
<command name="4" action="enter_talk" params="mode=12|channel=4" />
<command name="5" action="enter_talk" params="mode=12|channel=5" />
<command name="6" action="enter_talk" params="mode=12|channel=6" />
<command name="7" action="enter_talk" params="mode=12|channel=7" />
<command name="0" action="talk" params="mode=12|channel=0|text=+" ctrlchar="false" />
<command name="1" action="talk" params="mode=12|channel=1|text=+" ctrlchar="false" />
<command name="2" action="talk" params="mode=12|channel=2|text=+" ctrlchar="false" />
<command name="3" action="talk" params="mode=12|channel=3|text=+" ctrlchar="false" />
<command name="4" action="talk" params="mode=12|channel=4|text=+" ctrlchar="false" />
<command name="5" action="talk" params="mode=12|channel=5|text=+" ctrlchar="false" />
<command name="6" action="talk" params="mode=12|channel=6|text=+" ctrlchar="false" />
<command name="7" action="talk" params="mode=12|channel=7|text=+" ctrlchar="false" />
<command name="guild" action="enter_talk" params="mode=3" />
<command name="gu" action="enter_talk" params="mode=3" />
<command name="g" action="enter_talk" params="mode=3" />
@ -63,9 +81,15 @@
<command name="target" action="target" params="entity=$" />
<command name="tar" action="target" params="entity=$" />
<command name="target_quiet" action="target" params="entity=$|quiet=true" />
<command name="tarq" action="target" params="entity=$|quiet=true" />
<command name="target" action="target" params="entity=$|prefer_complete_match=$" />
<command name="tar" action="target" params="entity=$|prefer_complete_match=$" />
<command name="target_quiet" action="target" params="entity=$|prefer_complete_match=$|quiet=true" />
<command name="tarq" action="target" params="entity=$|prefer_complete_match=$|quiet=true" />
<command name="target" action="no_target" params="" />
<command name="tar" action="no_target" params="" />

View file

@ -19,7 +19,7 @@ end
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
-- WIDGET TO CHOOSE A COLOR
-- WIDGET TO CHOOSE A COLOR
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
@ -29,14 +29,14 @@ function game:mcwChooseColor(title, pal)
local ui = getUICaller();
-- get the color of the button and store it in temporary db location
-- get the color of the button and store it in temporary db location
local rgba = ui.col_normal_rgba;
game.ColorPicker.r = rgba.R;
game.ColorPicker.g = rgba.G;
game.ColorPicker.b = rgba.B;
game.ColorPicker.button = ui;
game.ColorPicker.pal = pal;
-- setup the color picker window
local uiModalWin = getUI('ui:interface:define_mcw_color');
if (game.ColorPicker.pal == 0) then
@ -64,8 +64,8 @@ end
-- called when we have finished choosing the color in the modal window and the chosen color is valid
function game:mcwValidateColor()
if (game.ColorPicker.button == nil) then
return;
if (game.ColorPicker.button == nil) then
return;
end
game.ColorPicker.button.col_normal = game.ColorPicker.r .. ' ' .. game.ColorPicker.g .. ' ' .. game.ColorPicker.b;
--debugInfo(game.ColorPicker.button.col_normal)
@ -85,6 +85,7 @@ function game:mcwOnColorChanged()
else
uiPath = uiPath .. 'pick2';
end
local ui = getUI(uiPath);
game.ColorPicker.r = ui.r;
game.ColorPicker.g = ui.g;
@ -108,10 +109,10 @@ end
-- hide all the pages of the config window
function game:configHideAll()
local uiList = {
local uiList = {
'explanation', 'general', 'landscape', 'fx', 'char', 'hud', 'language', 'alpha_colors',
'chat_colors', 'entity_colors', 'in_scene_user', 'in_scene_friend', 'in_scene_enemy',
'in_scene_chat_messages', 'win_colors', 'win_colors_r2', 'mouse', 'keyb', 'sound', 'landmark_colors', 'help'
'chat_colors', 'entity_colors', 'in_scene_user', 'in_scene_friend', 'in_scene_enemy',
'in_scene_chat_messages', 'win_colors', 'win_colors_r2', 'mouse', 'keyb', 'vr', 'sound', 'landmark_colors', 'help'
};
for k,v in pairs(uiList) do
@ -127,19 +128,19 @@ function game:configShowOne(strUIToShow)
game:configHideAll();
-- special case : if the display tab was shown, update the aspect ratio if needed
local generalGrp = getUI('ui:interface:game_config:content:general');
local uiGrp = getUI('ui:interface:game_config:content:' .. strUIToShow);
local uiGrp = getUI('ui:interface:game_config:content:' .. strUIToShow);
-- Removed the following code to solve RT n°14720
-- The 'game_config_change_screen_ratio_custom' action handler
-- should only be called if the user changed the apect ratio himself
-- The 'game_config_change_screen_ratio_custom' action handler
-- should only be called if the user changed the apect ratio himself
-- (else the edit box containing the aspect ratio may not have been initiliazed here)
--if uiGrp ~= generalGrp then
--if uiGrp ~= generalGrp then
-- runAH(nil, 'game_config_change_screen_ratio_custom', '')
--end
uiGrp.active = true;
end
------------------------------------------------------------------------------------------------------------
--
--
function game:configInit()
-- init language
@ -150,6 +151,10 @@ function game:configInit()
langNb = 2;
elseif (lang == 'fr') then
langNb = 1;
elseif (lang == 'ru') then
langNb = 3;
elseif (lang == 'es') then
langNb = 4;
end
-- force observers call
@ -187,9 +192,9 @@ function game:configInit()
winActive("wc_r2_dialogs", r2WinOn)
winActive("wc_r2_events", r2WinOn)
winActive("wc_r2_activities", r2WinOn)
winActive("wc_r2_feature_help", r2WinOn)
winActive("wc_r2_connect", not r2WinOn)
winActive("wc_r2_session_browser", not r2WinOn)
winActive("wc_r2_scenario_control", true)
winActive("wc_r2_feature_help", r2WinOn)
winActive("wc_r2_connect", not r2WinOn)
winActive("wc_r2_session_browser", not r2WinOn)
winActive("wc_r2_scenario_control", true)
winActive("wc_r2_player_tracking", r2WinOn)
end

View file

@ -537,3 +537,17 @@ function game:openWebIGBrowserHeader()
ui.w = ui_webig_browser_w;
end
end
------------------------------------------------------------------------------------------------------------
local SavedUrl = "";
function game:chatUrl(url)
SavedUrl = url
runAH(nil, "active_menu", "menu=ui:interface:chat_uri_action_menu");
end
function game:chatUrlCopy()
runAH(nil, "copy_to_clipboard", SavedUrl)
end
function game:chatUrlBrowse()
runAH(nil, "browse", "name=ui:interface:webig:content:html|url=" .. SavedUrl)
end

View file

@ -0,0 +1,376 @@
--
-- json.lua
--
-- Copyright (c) 2015 rxi
--
-- This library is free software; you can redistribute it and/or modify it
-- under the terms of the MIT license. See LICENSE for details.
--
Json = { _version = "0.1.0" }
-------------------------------------------------------------------------------
-- Encode
-------------------------------------------------------------------------------
local encode
local escape_char_map = {
[ "\\" ] = "\\\\",
[ "\"" ] = "\\\"",
[ "\b" ] = "\\b",
[ "\f" ] = "\\f",
[ "\n" ] = "\\n",
[ "\r" ] = "\\r",
[ "\t" ] = "\\t",
}
local escape_char_map_inv = { [ "\\/" ] = "/" }
for k, v in pairs(escape_char_map) do
escape_char_map_inv[v] = k
end
local function escape_char(c)
return escape_char_map[c] or string.format("\\u%04x", c:byte())
end
local function encode_nil(val)
return "null"
end
local function encode_table(val, stack)
local res = {}
stack = stack or {}
-- Circular reference?
if stack[val] then error("circular reference") end
stack[val] = true
if val[1] ~= nil or next(val) == nil then
-- Treat as array -- check keys are valid and it is not sparse
local n = 0
for k in pairs(val) do
if type(k) ~= "number" then
error("invalid table: mixed or invalid key types")
end
n = n + 1
end
if n ~= #val then
error("invalid table: sparse array")
end
-- Encode
for i, v in ipairs(val) do
table.insert(res, encode(v, stack))
end
stack[val] = nil
return "[" .. table.concat(res, ",") .. "]"
else
-- Treat as an object
for k, v in pairs(val) do
if type(k) ~= "string" then
error("invalid table: mixed or invalid key types")
end
table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
end
stack[val] = nil
return "{" .. table.concat(res, ",") .. "}"
end
end
local function encode_string(val)
return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
end
local function encode_number(val)
-- Check for NaN, -inf and inf
if val ~= val or val <= -math.huge or val >= math.huge then
error("unexpected number value '" .. tostring(val) .. "'")
end
return string.format("%.3f", val)
end
local type_func_map = {
[ "nil" ] = encode_nil,
[ "table" ] = encode_table,
[ "string" ] = encode_string,
[ "number" ] = encode_number,
[ "boolean" ] = tostring,
}
encode = function(val, stack)
local t = type(val)
local f = type_func_map[t]
if f then
return f(val, stack)
end
error("unexpected type '" .. t .. "'")
end
function Json.encode(val)
return ( encode(val) )
end
-------------------------------------------------------------------------------
-- Decode
-------------------------------------------------------------------------------
local parse
local function create_set(...)
local res = {}
for i = 1, select("#", ...) do
res[ select(i, ...) ] = true
end
return res
end
local space_chars = create_set(" ", "\t", "\r", "\n")
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
local literals = create_set("true", "false", "null")
local literal_map = {
[ "true" ] = true,
[ "false" ] = false,
[ "null" ] = nil,
}
local function next_char(str, idx, set, negate)
for i = idx, #str do
if set[str:sub(i, i)] ~= negate then
return i
end
end
return #str + 1
end
local function decode_error(str, idx, msg)
local line_count = 1
local col_count = 1
for i = 1, idx - 1 do
col_count = col_count + 1
if str:sub(i, i) == "\n" then
line_count = line_count + 1
col_count = 1
end
end
error( string.format("%s at line %d col %d", msg, line_count, col_count) )
end
local function codepoint_to_utf8(n)
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
local f = math.floor
if n <= 0x7f then
return string.char(n)
elseif n <= 0x7ff then
return string.char(f(n / 64) + 192, n % 64 + 128)
elseif n <= 0xffff then
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
elseif n <= 0x10ffff then
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
f(n % 4096 / 64) + 128, n % 64 + 128)
end
error( string.format("invalid unicode codepoint '%x'", n) )
end
local function parse_unicode_escape(s)
local n1 = tonumber( s:sub(3, 6), 16 )
local n2 = tonumber( s:sub(9, 12), 16 )
-- Surrogate pair?
if n2 then
return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
else
return codepoint_to_utf8(n1)
end
end
local function parse_string(str, i)
local has_unicode_escape = false
local has_surrogate_escape = false
local has_escape = false
local last
for j = i + 1, #str do
local x = str:byte(j)
if x < 32 then
decode_error(str, j, "control character in string")
end
if last == 92 then -- "\\" (escape char)
if x == 117 then -- "u" (unicode escape sequence)
local hex = str:sub(j + 1, j + 5)
if not hex:find("%x%x%x%x") then
decode_error(str, j, "invalid unicode escape in string")
end
if hex:find("^[dD][89aAbB]") then
has_surrogate_escape = true
else
has_unicode_escape = true
end
else
local c = string.char(x)
if not escape_chars[c] then
decode_error(str, j, "invalid escape char '" .. c .. "' in string")
end
has_escape = true
end
last = nil
elseif x == 34 then -- '"' (end of string)
local s = str:sub(i + 1, j - 1)
if has_surrogate_escape then
s = s:gsub("\\u[dD][89aAbB]..\\u....", parse_unicode_escape)
end
if has_unicode_escape then
s = s:gsub("\\u....", parse_unicode_escape)
end
if has_escape then
s = s:gsub("\\.", escape_char_map_inv)
end
return s, j + 1
else
last = x
end
end
decode_error(str, i, "expected closing quote for string")
end
local function parse_number(str, i)
local x = next_char(str, i, delim_chars)
local s = str:sub(i, x - 1)
local n = tonumber(s)
if not n then
decode_error(str, i, "invalid number '" .. s .. "'")
end
return n, x
end
local function parse_literal(str, i)
local x = next_char(str, i, delim_chars)
local word = str:sub(i, x - 1)
if not literals[word] then
decode_error(str, i, "invalid literal '" .. word .. "'")
end
return literal_map[word], x
end
local function parse_array(str, i)
local res = {}
local n = 1
i = i + 1
while 1 do
local x
i = next_char(str, i, space_chars, true)
-- Empty / end of array?
if str:sub(i, i) == "]" then
i = i + 1
break
end
-- Read token
x, i = parse(str, i)
res[n] = x
n = n + 1
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "]" then break end
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
end
return res, i
end
local function parse_object(str, i)
local res = {}
i = i + 1
while 1 do
local key, val
i = next_char(str, i, space_chars, true)
-- Empty / end of object?
if str:sub(i, i) == "}" then
i = i + 1
break
end
-- Read key
if str:sub(i, i) ~= '"' then
decode_error(str, i, "expected string for key")
end
key, i = parse(str, i)
-- Read ':' delimiter
i = next_char(str, i, space_chars, true)
if str:sub(i, i) ~= ":" then
decode_error(str, i, "expected ':' after key")
end
i = next_char(str, i + 1, space_chars, true)
-- Read value
val, i = parse(str, i)
-- Set
res[key] = val
-- Next token
i = next_char(str, i, space_chars, true)
local chr = str:sub(i, i)
i = i + 1
if chr == "}" then break end
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
end
return res, i
end
local char_func_map = {
[ '"' ] = parse_string,
[ "0" ] = parse_number,
[ "1" ] = parse_number,
[ "2" ] = parse_number,
[ "3" ] = parse_number,
[ "4" ] = parse_number,
[ "5" ] = parse_number,
[ "6" ] = parse_number,
[ "7" ] = parse_number,
[ "8" ] = parse_number,
[ "9" ] = parse_number,
[ "-" ] = parse_number,
[ "t" ] = parse_literal,
[ "f" ] = parse_literal,
[ "n" ] = parse_literal,
[ "[" ] = parse_array,
[ "{" ] = parse_object,
}
parse = function(str, idx)
local chr = str:sub(idx, idx)
local f = char_func_map[chr]
if f then
return f(str, idx)
end
decode_error(str, idx, "unexpected character '" .. chr .. "'")
end
function Json.decode(str)
if type(str) ~= "string" then
error("expected argument of type string, got " .. type(str))
end
return ( parse(str, next_char(str, 1, space_chars, true)) )
end

View file

@ -29,7 +29,7 @@
</branch>
<branch name="BAG">
<branch name=""
count="1500">
count="500">
<!-- Common Item Data -->
<leaf name="SHEET"
type="I32" />

View file

@ -83,7 +83,7 @@
tx_normal="qh_off" tx_pushed="qh_on" tx_over="qh_off" wmin="80" wmargin="40"
global_color_normal="false" global_color_over="false" global_color_pushed="false"
color="255 255 255 255" col_over="255 255 255 0" col_pushed="255 255 255 255"
text_y="-1" fontsize="13" shadow="true"
text_y="1" fontsize="13" shadow="true"
text_color_normal="222 201 182 255"
text_color_pushed="222 201 182 255"
text_color_over="255 255 255 255"

View file

@ -62,17 +62,10 @@ end
------------------------------------------------------------------------------------------------------------
function game:outpostUpdateTimeZone()
-- update time zone auto?
local tzAuto= getDbProp('UI:SAVE:OUTPOST:TIME_ZONE_AUTO');
if(tzAuto==0) then
return;
end
-- every 5 seconds?
local curTick= getDbProp('UI:VARIABLES:CURRENT_SERVER_TICK');
if(curTick - game.Outpost.LastTimeZoneUpdate > 50) then
game.Outpost.LastTimeZoneUpdate= curTick;
runAH(nil,'outpost_update_time_zone_auto','');
end
local curTick = getDbProp('UI:VARIABLES:CURRENT_SERVER_TICK');
setDbProp('UI:TEMP:OUTPOST:TIME_ZONE_NEXT_UPDATE', curTick + 50);
game.Outpost.LastTimeZoneUpdate = curTick;
runAH(nil,'outpost_update_time_zone_auto','');
end
------------------------------------------------------------------------------------------------------------

View file

@ -21,8 +21,9 @@
<!-- Save the Time Zone config -->
<variable entry="UI:SAVE:OUTPOST:TIME_ZONE" type="sint32" value="0" />
<variable entry="UI:SAVE:OUTPOST:TIME_ZONE_AUTO" type="sint32" value="1" />
<variable entry="UI:TEMP:OUTPOST:TIME_ZONE_NEXT_UPDATE" type="sint32" value="0" />
<!-- just a script called at init and every 5 seconds, to setup TIME_ZONE, if time_zone is auto-->
<link expr="depends(@UI:SAVE:OUTPOST:TIME_ZONE_AUTO, @UI:VARIABLES:CURRENT_SERVER_TICK)" action="lua:game:outpostUpdateTimeZone()" />
<link expr="depends(@UI:SAVE:OUTPOST:TIME_ZONE_AUTO, @UI:VARIABLES:CURRENT_SERVER_TICK)" cond="and(eq(@UI:SAVE:OUTPOST:TIME_ZONE_AUTO, 1), ge(@UI:VARIABLES:CURRENT_SERVER_TICK, @UI:TEMP:OUTPOST:TIME_ZONE_NEXT_UPDATE))" action="lua:game:outpostUpdateTimeZone()" />
<!-- Temp Variables -->

View file

@ -0,0 +1,242 @@
RyzhomeBar = {
id = "ui:interface:webig_ryzhome_toolbar",
saveuri = "http://app.ryzom.com/app_ryzhome/index.php?action=toolbar_save",
selectedPage = 1
}
function RyzhomeBar:close()
getUI("ui:interface:webig_ryzhome_toolbar").active=false
self:saveConfig()
end
function RyzhomeBar:addItems()
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_LuaListItems&command=add"
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:moveItems()
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_LuaListItems&command=move"
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:removeItems()
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_LuaListItems&command=remove"
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:inviteFriend()
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_InviteFriend"
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:listFriends()
getUI("ui:interface:web_transactions:content:html"):browse(RyzhomeBar.listFriendsUrl)
getUI("ui:interface:web_transactions:header_opened:browse_undo").active=false
getUI("ui:interface:web_transactions:header_opened:browse_redo").active=false
getUI("ui:interface:web_transactions:header_opened:browse_refresh").active=false
getUI("ui:interface:web_transactions:header_opened:browse_home").active=false
local wt = getUI("ui:interface:web_transactions")
wt.w=316
wt.h=420
wt.pop_min_w=316
wt.pop_max_w=316
wt.pop_min_h=420
wt.pop_max_h=420
local framewin = getUI("ui:interface:webig_ryzhome_list_item")
if framewin ~= nil then
framewin.active=false
wt.x = framewin.x
wt.y = framewin.y
end
getUI("ui:interface:web_transactions").active=true
setOnDraw(getUI("ui:interface:web_transactions"), "RyzhomeBar:autocloseWebTransactions()")
end
function RyzhomeBar:autocloseWebTransactions()
local current_url = getUI("ui:interface:web_transactions:content:html").url
if (current_url ~= RyzhomeBar.listFriendsUrl and current_url ~= inviteFriendsUrl) then
local framewin = getUI("ui:interface:webig_ryzhome_list_item")
framewin.x = getUI("ui:interface:web_transactions").x
framewin.y = getUI("ui:interface:web_transactions").y
getUI("ui:interface:web_transactions").active=false
setOnDraw(getUI("ui:interface:web_transactions"), "")
end
end
function RyzhomeBar:serialize()
local ui = getUI(self.id)
local url = "&posx=" .. tostring(ui.x) .. "&posy=" .. tostring(ui.y)
return url
end
function RyzhomeBar:updateNbrItems(offset)
RyzhomeBar.nbrItems = RyzhomeBar.nbrItems + offset
if RyzhomeBar.nbrItems == 0 then
getUI("ui:interface:webig_ryzhome_toolbar:content:new_items_quantity").hardtext=""
else
getUI("ui:interface:webig_ryzhome_toolbar:content:new_items_quantity").hardtext=tostring(RyzhomeBar.nbrItems)
end
end
function RyzhomeBar:saveConfig()
local url = self.saveuri .. self:serialize()
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:movePage(offset)
RyzhomeBar.selectedPage = RyzhomeBar.selectedPage + offset
if RyzhomeBar.selectedPage <= 0 then
RyzhomeBar.selectedPage = 1
elseif RyzhomeBar.selectedPage > RyzhomeBar.nbrPages then
RyzhomeBar.selectedPage = RyzhomeBar.nbrPages
end
getUI("ui:interface:webig_ryzhome_list_item:header_opened:page").hardtext=tostring(RyzhomeBar.selectedPage).." / "..tostring(RyzhomeBar.nbrPages)
RyzhomeBar:setupItems()
end
function RyzhomeBar:listItems()
RyzhomeBar.recently_removed_item = false
local framewin = getUI("ui:interface:webig_ryzhome_list_item")
--framewin.opened=true
framewin.active=true
if framewin.x == 0 and framewin.y == 0 then
local ui = getUI("ui:interface")
framewin.x = (ui.w - framewin.w) / 2
framewin.y = (ui.h + framewin.h) / 2
end
if RyzhomeBar.Items == nil then
RyzhomeBar.Items = {}
end
end
function RyzhomeBar:useItem(id)
id = tostring(RyzhomeBar.Items[RyzhomeBar.selectedPage][id][1])
if RyzhomeBar.itemCommand == "add" then
RyzhomeBar:addItem(id)
elseif RyzhomeBar.itemCommand == "remove" then
RyzhomeBar:removeItem(id)
elseif RyzhomeBar.itemCommand == "move" then
RyzhomeBar:moveItem(id)
end
end
function RyzhomeBar:addItem(id)
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_Place&command=add&id="..id
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:removeItem(id)
RyzhomeBar.recently_removed_item = true
RyzhomeBar:spawnItems()
local v = RyzhomeBar.spawnedItems[id]
runAH(nil,"add_shape", "shape=sp_mort.ps|x="..v[2].."|y="..v[3].."|z="..v[4].."|angle="..v[5].."|scale="..tostring(tonumber(v[6])*4)..v[7]..v[8]..v[9])
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_Remove&id="..id
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:moveItem(id)
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_Place&command=move&id="..id
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:highlightItem(id)
if RyzhomeBar.itemCommand == "add" then
return
end
if RyzhomeBar.recently_removed_item then
RyzhomeBar.recently_removed_item = false
else
RyzhomeBar:spawnItems()
local v = RyzhomeBar.spawnedItems[tostring(RyzhomeBar.Items[RyzhomeBar.selectedPage][id][1])]
if v then
runAH(nil, "add_shape", "shape=ma_acc_ascenseur.ps|x="..v[2].."|y="..v[3].."|z="..v[4].."|angle="..v[5].."|scale="..tostring(tonumber(v[6])*2)..v[7]..v[8]..v[9])
end
end
end
function RyzhomeBar:callFriendUrl(action, target)
local url = "http://app.ryzom.com/app_arcc/index.php?action=player_ryzhome_"..action.."&amp;target="..target
getUI("ui:interface:web_transactions:content:html"):browse(url)
end
function RyzhomeBar:spawnItems()
runAH(nil, "remove_shapes", "")
for k,v in pairs(RyzhomeBar.spawnedItems) do
runAH(nil, "add_shape", "shape="..v[1].."|x="..v[2].."|y="..v[3].."|z="..v[4].."|angle="..v[5].."|scale="..v[6]..v[7]..v[8]..v[9])
end
end
function RyzhomeBar:setupItems()
for k = 1, 8 do
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":but"..tostring(k)).active=false
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":icon"..tostring(k)).active=false
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":text"..tostring(k)).uc_hardtext=""
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":info"..tostring(k)).uc_hardtext=""
end
for k,v in pairs(RyzhomeBar.Items[RyzhomeBar.selectedPage]) do
if k ~= nil then
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":icon"..tostring(k)).active=true
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":but"..tostring(k)).active=true
local text = ucstring()
text:fromUtf8(v[3])
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":text"..tostring(k)).uc_hardtext=text
text:fromUtf8(v[4])
getUI("ui:interface:webig_ryzhome_list_item:header_opened"):find(":info"..tostring(k)).uc_hardtext=text
end
end
end
if RyzhomePlace == nil then
RyzhomePlace = {
saveuri = "",
}
end
function RyzhomePlace:move(x, y, z)
pos_x=pos_x+x
pos_y=pos_y+y
pos_z=pos_z+z
RyzhomePlace:update()
end
function RyzhomePlace:rot(a)
pos_a=pos_a+a
RyzhomePlace:update()
end
function RyzhomePlace:reset()
--Ryzhome:addShapes()
pos_x, pos_y, pos_z = getPlayerPos()
pos_a = (3.14*getUI("ui:interface:compass:arrow3d:arrow").rotz)/18
RyzhomePlace:addShape()
RyzhomeBar:spawnItems()
end
function RyzhomePlace:update()
RyzhomePlace:addShapes()
RyzhomePlace:addShape()
RyzhomeBar:spawnItems()
end
function RyzhomePlace:apply()
getUI("ui:interface:web_transactions:content:html"):browse(RyzhomePlace.saveuri.."&pos_x="..pos_x.."&pos_y="..pos_y.."&pos_z="..pos_z.."&pos_a="..pos_a)
end
function RyzhomePlace:close()
--runAH(nil, "remove_shapes", "")
getUI("ui:interface:webig_ryzhome_place_item").active=false
end
function debug(text)
local uc = ucstring()
uc:fromUtf8(tostring(text))
displaySystemInfo(ucstring(uc), "sys")
end

View file

@ -0,0 +1,445 @@
<interface_config>
<root id="interface" x="0" y="0" w="800" h="600" active="true" />
<lua file="ryzhome_toolbar.lua" />
<style style="button_over"
type="button"
id="button_over"
button_type="push_button"
posref="TR TR"
x="0"
y="0"
h="39"
w="44"
scale="true"
tx_over="W_button_32_over.tga"
global_color_normal="false"
global_color_pushed="false" />
<group type="container"
id="webig_ryzhome_toolbar"
x="0" y="0" w="200" h="56" posref="MM MM"
max_w="1600" pop_max_w="1600"
max_h="1600" pop_max_h="1600"
min_w="26" pop_min_w="26"
min_h="26" pop_min_h="26"
title=""
global_color="true"
global_color_over="true"
header_active="false"
right_button="false"
options="layer0_pad"
movable="true"
active="true"
opened="true"
openable="false"
resizer="false">
<group id="header_closed" x="0" y="0" w="0" h="0" posref="TL TL"></group>
<group id="header_opened" x="0" y="0" w="0" h="0" wmin="5" sizeref="w" posref="TL TL"></group>
<group id="content" x="0#" y="0#" w="200" h="56" posref="TL TL">
<view id="action_title"
type="text"
posref="TL TL"
x="2"
y="-2"
color="255 255 255 255"
fontsize="12"
shadow="true"
global_color="false"
hardtext="Ryzhome" />
<ctrl id="close"
type="button"
style="button_close"
button_type="push_button"
posref="TR TR"
x="1"
y="1"
tx_normal="w_win_close.tga"
tx_pushed="w_win_close.tga"
tooltip="uiNoteClose"
onclick_l="lua"
params_l="RyzhomeBar:close()"/>
<ctrl id="config"
type="button"
style="button_close"
button_type="push_button"
posref="TL TR"
posparent="close"
x="-2"
y="-1"
tx_normal="r2ed_permanent_pins.tga"
tx_pushed="r2ed_permanent_pins.tga"
tooltip="uiCreateUserLM"
onclick_l="lua"
params_l="RyzhomeBar:saveConfig()"/>
<ctrl id="add"
type="button"
style="button_over"
button_type="toggle_button"
posref="BL BL"
x="3"
y="0"
tx_normal="ryzhome_add_item.png"
tx_pushed="ryzhome_add_item.png"
tx_over="W_button_32_over.tga"
tooltip="uiPeopleAdd"
onclick_l="lua"
params_l="RyzhomeBar:addItems()"/>
<view id="new_items_quantity"
type="text"
posref="BL BL"
posparent="add"
x="-1"
y="-1"
color="255 200 0 255"
global_color="false"
fontsize="16"
shadow="true"
hardtext="" />
<ctrl id="move"
type="button"
style="button_over"
button_type="toggle_button"
posref="BR BL"
posparent="add"
x="3"
y="0"
tx_normal="ryzhome_move_item.png"
tx_pushed="ryzhome_move_item.png"
tx_over="W_button_32_over.tga"
tooltip="uimMoveTo"
onclick_l="lua"
params_l="RyzhomeBar:moveItems()"/>
<ctrl id="remove"
type="button"
style="button_over"
posref="BR BL"
posparent="move"
x="3"
tx_normal="ryzhome_remove_item.png"
tx_pushed="ryzhome_remove_item.png"
tx_over="W_button_32_over.tga"
tooltip="uimRemove"
onclick_l="lua"
params_l="RyzhomeBar:removeItems()"/>
<ctrl id="invite"
type="button"
style="button_over"
posref="BR BL"
posparent="remove"
x="3"
tx_normal="ryzhome_invite.png"
tx_pushed="ryzhome_invite.png"
tx_over="W_button_32_over.tga"
tooltip="uiRAP_Invite"
onclick_l="lua"
params_l="RyzhomeBar:inviteFriend()"/>
</group>
</group>
<tree node="webig_ryzhome_toolbar"></tree>
<style style="button_over"
id="over"
posref="TL TL"
render_layer="-1"
y="1" w="600" h="44" scale="true"
button_type="push_button"
tx_normal="blank.tga"
tx_pushed="blank.tga"
tx_over="blank.tga"
color="255 255 255 0"
col_over="255 255 255 64"
col_pushed="255 255 255 128"
global_color_over="false" />
<group id="webig_ryzhome_list_item"
style="bot_chat_window"
posref="MM MM"
min_w="316"
max_w="316"
max_h="420"
min_h="420"
w="316"
h="420"
x="0"
y="0"
pop_max_h="700"
active="false"
title=""
modal_parent="gestionsets">
<group id="header_opened"
child_resize_hmargin="24"
w="600"
h="420"
x="0"
y="0"
posref="TL TL">
<view id="action_title"
type="text"
posref="TL TL"
x="2"
y="-25"
color="255 255 255 255"
fontsize="12"
shadow="true"
hardtext="uiSelectMission" />
<ctrl id="page_next"
type="button"
posref="TR TR"
x="-2"
y="-20"
tx_normal="W_arrow_right_0.tga"
tx_pushed="W_arrow_right_0.tga"
tooltip="uiKeyNEXT"
onclick_l="lua"
params_l="RyzhomeBar:movePage(1)" />
<view id="page"
type="text"
posref="TL TR"
posparent="page_next"
x="-2"
y="0"
color="255 255 255 255"
fontsize="12"
shadow="true"
hardtext="1/1" />
<ctrl id="page_previous"
type="button"
posref="TL TR"
posparent="page"
x="-2"
y="0"
tx_normal="w_arrow_left_0.tga"
tx_pushed="w_arrow_left_0.tga"
tooltip="uiKeyPRIOR"
onclick_l="lua"
params_l="RyzhomeBar:movePage(-1)" />
<group id="scroll_text"
sizeref="w"
posref="TL TL"
w="0"
y="-40"
child_resize_h="false"
child_resize_hmargin="8">
<instance template="inner_thin_border_group" />
<group id="text_list"
posref="TL TL"
x="12"
y="-4"
sizeref="w"
max_h="380"
child_resize_h="true" >
<view type="bitmap" id="icon1" posref="TL TL" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text1" posref="TR TL" posparent="icon1" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info1" posref="BL TL" color="55 205 55 205" posparent="text1" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but1" posparent="icon1" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(1)" onclick_l="lua" params_l="RyzhomeBar:useItem(1)" />
<view type="bitmap" id="icon2" posparent="but1" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text2" posref="TR TL" posparent="icon2" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info2" posref="BL TL" color="55 205 55 205" posparent="text2" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but2" posparent="icon2" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(2)" onclick_l="lua" params_l="RyzhomeBar:useItem(2)" />
<view type="bitmap" id="icon3" posparent="but2" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text3" posref="TR TL" posparent="icon3" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info3" posref="BL TL" color="55 205 55 205" posparent="text3" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but3" posparent="icon3" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(3)" onclick_l="lua" params_l="RyzhomeBar:useItem(3)" />
<view type="bitmap" id="icon4" posparent="but3" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text4" posref="TR TL" posparent="icon4" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info4" posref="BL TL" color="55 205 55 205" posparent="text4" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but4" posparent="icon4" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(4)" onclick_l="lua" params_l="RyzhomeBar:useItem(4)" />
<view type="bitmap" id="icon5" posparent="but4" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text5" posref="TR TL" posparent="icon5" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info5" posref="BL TL" color="55 205 55 205" posparent="text5" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but5" posparent="icon5" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(5)" onclick_l="lua" params_l="RyzhomeBar:useItem(5)" />
<view type="bitmap" id="icon6" posparent="but5" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text6" posref="TR TL" posparent="icon6" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info6" posref="BL TL" color="55 205 55 205" posparent="text6" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but6" posparent="icon6" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(6)" onclick_l="lua" params_l="RyzhomeBar:useItem(6)" />
<view type="bitmap" id="icon7" posparent="but6" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text7" posref="TR TL" posparent="icon7" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info7" posref="BL TL" color="55 205 55 205" posparent="text7" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but7" posparent="icon7" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(7)" onclick_l="lua" params_l="RyzhomeBar:useItem(7)" />
<view type="bitmap" id="icon8" posparent="but7" posref="BL TL" y="-4" texture="r2ed_toolbar_freeze.tga" global_color="false" />
<view type="text" id="text8" posref="TR TL" posparent="icon8" fontsize="10" x="5" y="-5" hardtext="" />
<view type="text" id="info8" posref="BL TL" color="55 205 55 205" posparent="text8" fontsize="10" x="10" y="-5" hardtext="" />
<ctrl type="button" id="but8" posparent="icon8" style="button_over" onover="lua" params_over="RyzhomeBar:highlightItem(8)" onclick_l="lua" params_l="RyzhomeBar:useItem(8)" />
</group>
<ctrl style="skin_scroll"
id="scroll_row"
posref="TL TL"
target_stepy="44"
target="text_list" />
<group id="list"
max_sizeref="h"
max_sizeparent="parent"
max_h="0"
sizeref="w"
posref="TL TL"
x="8"
y="0"
w="-16" />
</group>
</group>
</group>
<tree node="webig_ryzhome_list_item"></tree>
<template name="t_webig_ryzhome_button">
<ctrl type="button"
button_type="push_button"
id="#id"
posref="TL TL"
x="#x"
y="#y"
tx_normal="#tx_normal"
global_color="false"
tooltip="#tooltip"
onclick_l="lua"
params_l="#params_l"/>
<view type="bitmap"
id="i_#id"
posref="TL TL"
x="#x"
y="#y"
rot="#rot"
texture="#texture"
global_color="false"/>
</template>
<group type="container"
id="webig_ryzhome_place_item"
x="0" y="0" w="200" h="140" posref="TL TL"
title=""
global_color="true"
global_color_over="true"
header_active="false"
right_button="false"
options="layer0_pad"
movable="true"
active="true"
opened="true"
openable="false"
resizer="false">
<group id="header_closed" x="0" y="0" w="0" h="0" posref="TL TL"></group>
<group id="header_opened" x="0" y="0" w="0" h="0" wmin="5" sizeref="w" posref="TL TL"></group>
<group id="content" x="0" y="0" w="400" h="140" posref="TL TL">
<view type="text"
id="item"
posref="TL TL"
x="2"
y="-4"
color="255 255 255 255"
shadow="true"
global_color="false"
fontsize="10"
hardtext="" />
<ctrl style="text_button_16"
id="quit"
posref="TR TR"
x="-2"
y="-2"
hardtext="uiClose"
onclick_l="lua"
params_l="RyzhomePlace:close()" />
<!--
<view type="bitmap" id="black" x="2" y="0" w="200" h="150" posref="ML ML" inherit_gc_alpha="true" scale="true" texture="blank.tga" color="0 0 0 240"/>
<scene3d id="scene3d" x="2" y="0" w="200" h="150" posref="ML ML" curcam="cam" curcs="env" render_layer="-2" active="false"
user_interaction="true" rotz_factor="0.017"
roty_factor="0.005" roty_limit_min="-80" roty_limit_max="90"
dist_factor="0.05" dist_limit_min="1" dist_limit_max="20.0"
ambient="128 96 64" sun_ambient="0 0 0" sun_diffuse="255 255 196" sun_specular="0 0 0" sun_direction="-1.0 1.0 -1.0" >
<camera id="cam" fov="80" pos="0.0 20.0 0" target="0.0 26.5 2" roll="0" />
<light id="back" pos="0.0 28.2 1.6" color="255 255 255" near="2.5" far="4.0" />
<light id="lgt" pos="0.0 25.3 2.48" color="255 255 255" near="3.0" far="4.0" />
<shape id="shape" name="" pos="0.0 26.5 0.0" rot="0.0 0.0 0.0" />
</scene3d>
-->
<group id="movers" x="0" y="-4" w="182" h="140" posref="MM MM">
<instance template="t_webig_ryzhome_button" id="previous_x2" rot="2" x="2" y="-16" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(-0.1, 0, 0)" />
<instance template="t_webig_ryzhome_button" id="previous_x" rot="2" x="32" y="-16" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(-0.01, 0, 0)" />
<view type="text" id="x" posref="TL TL" x="76" y="-20" color="255 255 255 255" shadow="true" global_color="false" fontsize="10" hardtext="Axe X" />
<instance template="t_webig_ryzhome_button" id="next_x" rot="0" x="130" y="-16" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0.01, 0, 0)" />
<instance template="t_webig_ryzhome_button" id="next_x2" rot="0" x="160" y="-16" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0.1, 0, 0)" />
<instance template="t_webig_ryzhome_button" id="previous_y2" rot="2" x="2" y="-34" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, -0.1, 0)" />
<instance template="t_webig_ryzhome_button" id="previous_y" rot="2" x="32" y="-34" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, -0.01, 0)" />
<view type="text" id="y" posref="TL TL" x="76" y="-38" color="255 255 255 255" shadow="true" global_color="false" fontsize="10" hardtext="Axe Y" />
<instance template="t_webig_ryzhome_button" id="next_y" rot="0" x="130" y="-34" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, 0.01, 0)" />
<instance template="t_webig_ryzhome_button" id="next_y2" rot="0" x="160" y="-34" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, 0.1, 0)" />
<instance template="t_webig_ryzhome_button" id="previous_z2" rot="2" x="2" y="-52" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, 0, -0.1, 0)" />
<instance template="t_webig_ryzhome_button" id="previous_z" rot="2" x="32" y="-52" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, 0, -0.01, 0)" />
<view type="text" id="z" posref="TL TL" x="76" y="-58" color="255 255 255 255" shadow="true" global_color="false" fontsize="10" hardtext="Axe Z" />
<instance template="t_webig_ryzhome_button" id="next_z" rot="0" x="130" y="-52" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, 0, 0.01, 0)" />
<instance template="t_webig_ryzhome_button" id="next_z2" rot="0" x="160" y="-52" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:move(0, 0, 0.1, 0)" />
<instance template="t_webig_ryzhome_button" id="previous_a2" rot="2" x="2" y="-70" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:rot(-0.1)" />
<instance template="t_webig_ryzhome_button" id="previous_a" rot="2" x="32" y="-70" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:rot(-0.01)" />
<view type="text" id="a" posref="TL TL" x="76" y="-76" color="255 255 255 255" shadow="true" global_color="false" fontsize="10" hardtext="Angle" />
<instance template="t_webig_ryzhome_button" id="next_a" rot="0" x="130" y="-70" tooltip="ll" texture="mp3_button_play.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:rot(0.01)" />
<instance template="t_webig_ryzhome_button" id="next_a2" rot="0" x="160" y="-70" tooltip="ll" texture="mp3_button_next.tga" tx_normal="mp3_button_play.tga" params_l="RyzhomePlace:rot(0.1)" />
</group>
<ctrl style="text_button_16"
id="validate"
posref="BR BR"
x="-2"
y="2"
hardtext="reset"
onclick_l="lua"
params_l="RyzhomePlace:apply()" />
<ctrl style="text_button_16"
id="reset"
posref="ML MR"
posparent="validate"
x="-2"
y="0"
hardtext="reset"
onclick_l="lua"
params_l="RyzhomePlace:reset()" />
</group>
</group>
<tree node="webig_ryzhome_place_item"></tree>
</interface_config>

View file

@ -0,0 +1,604 @@
--- Parse interface of ark_scene_editor_edit_menu ---
local script = [[<interface_config>
<root id="interface" x="0" y="0" w="800" h="600" active="true"/>
<group type="menu" id="ark_scene_editor_edit_menu" extends="base_menu" mouse_pos="true">
</group>
</interface_config>]]
parseInterfaceFromString(script)
if SceneEditor == nil then
SceneEditor = {
Shapes = {},
Groups = {},
LastEditedGroup = nil,
HaveUpdate = nil
};
end
function debug(text)
local message = ucstring()
message:fromUtf8(tostring(text))
displaySystemInfo(message, "SYS")
end
function SceneEditor:init(scene_id, form_url, translations, icons_url)
self.sceneId = scene_id
self.baseUrl = form_url
self.iconsUrl = icons_url
self.T = translations
end
function SceneEditor:reset(no_get_html)
self.Shapes = {}
self.Groups = {}
self.LastEditedGroup = nil
self.HaveUpdate = nil
runAH(nil, "remove_shapes", "")
if no_get_html == true then
self:get_html("Reseted")
end
end
function SceneEditor:show_menu()
if (rightClick) then
SceneEditor:launch_menu()
end
end
function SceneEditor:launch_menu(id)
-- SelectedInstanceId can be set by client application
if id ~= nil then
SelectedInstanceId = id
end
local menu = getUI("ui:interface:ark_scene_editor_edit_menu")
menu:setMinW(85)
menu:updateCoords()
menu = menu:getRootMenu()
menu:reset()
menu:addLine(ucstring("-- SHAPE EDITION --"), "", "", "shape_header")
menu:addLine(ucstring("Move"), "", "", "shape_move")
menu:addSubMenu(1)
local subMenu = menu:getSubMenu(1)
subMenu:addIconLine(ucstring("Axe X"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_x()')", "shape_move_x", "ark_move_x.tga")
subMenu:addIconLine(ucstring("Axe Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_y()')", "shape_move_y", "ark_move_y.tga")
subMenu:addIconLine(ucstring("Axe Z"), "lua", "x, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_z()')", "shape_move_z", "ark_move_z.tga")
subMenu:addIconLine(ucstring("Axes X & Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_xy()')", "shape_move_xy", "ark_move_xy.tga")
subMenu:addIconLine(ucstring("Axes X & Y Snap to ground"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_xysnap()')", "shape_move_xy_snap", "ark_move_xysnap.tga")
subMenu:addSeparator()
subMenu:addIconLine(ucstring("Move to player"), "lua", "SceneEditor:move_player()", "shape_move_player", "ark_move_player.tga")
menu:addLine(ucstring("Rotate"), "", "", "shape_rotate")
menu:addSubMenu(2)
subMenu = menu:getSubMenu(2)
subMenu:addIconLine(ucstring("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:rotate(SelectedInstanceId, \"x\")')", "shape_rotate_x", "ark_rotate_x.tga")
subMenu:addIconLine(ucstring("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:rotate(SelectedInstanceId, \"y\")')", "shape_rotate_y", "ark_rotate_y.tga")
subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:rotate(SelectedInstanceId, \"z\")')", "shape_rotate_z", "ark_rotate_z.tga")
menu:addLine(ucstring("Scale"), "", "", "shape_scale")
menu:addSubMenu(3)
subMenu = menu:getSubMenu(3)
subMenu:addIconLine(ucstring("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"x\")')", "shape_scale_x", "ark_scale_x.tga")
subMenu:addIconLine(ucstring("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"y\")')", "shape_scale_y", "ark_scale_y.tga")
subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"z\")')", "shape_scale_z", "ark_scale_z.tga")
menu:addLine(ucstring("-- COLLISION EDITION --"), "", "", "col_header")
menu:addLine(ucstring("Move"), "", "", "col_move")
menu:addSubMenu(5)
subMenu = menu:getSubMenu(5)
subMenu:addIconLine(ucstring("Axe X"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_x()')", "col_move_x", "ark_move_x.tga")
subMenu:addIconLine(ucstring("Axe Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_y()')", "col_move_y", "ark_move_y.tga")
subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_z()')", "col_move_z", "ark_move_xy.tga")
subMenu:addIconLine(ucstring("Axe X & Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_xy()')", "col_move_xy", "ark_move_xy.tga")
subMenu:addSeparator()
subMenu:addIconLine(ucstring("Move to Shape"), "lua", "SceneEditor:col_move_to_shape()", "col_move_to_shape", "ark_move_player.tga")
menu:addIconLine(ucstring("Rotate"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_rotate(SelectedInstanceId, \"x\")')", "col_rotate_x", "ark_rotate_x.tga")
menu:addLine(ucstring("Scale"), "", "", "col_scale")
menu:addSubMenu(7)
subMenu = menu:getSubMenu(7)
subMenu:addIconLine(ucstring("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_scale(SelectedInstanceId, \"x\")')", "col_scale_x", "ark_scale_x.tga")
subMenu:addIconLine(ucstring("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_scale(SelectedInstanceId, \"y\")')", "col_scale_y", "ark_scale_y.tga")
subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_scale(SelectedInstanceId, \"z\")')", "col_scale_z", "ark_scale_z.tga")
launchContextMenuInGame("ui:interface:ark_scene_editor_edit_menu")
end
function arcc_tools_check_rclick()
root = getUI("ui:interface")
local rx, ry = getMousePos()
i_id = getShapeIdAt(rx, ry)
if i_id >= 0 then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
end
end
function SceneEditor:move(id, axe)
local d, mx, my = getMouseDown()
if d then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
SceneEditor:set_modified(id)
self:get_html("Moved")
else
local x,y,z = getGroundAtMouse()
if axe == "x" then moveShape(id, tostring(x), "+0", "+0") end
if axe == "y" then moveShape(id, "+0", tostring(y), "+0") end
if axe == "z" then
mx, my = getMousePos()
moveShape(id, "+0", "+0", "+"..tostring((my-ARK_SHAPE_LATEST_Y)/100))
ARK_SHAPE_LATEST_Y = my
end
if axe == "xysnap" then moveShape(id, tostring(x), tostring(y), tostring(z)) end
if axe == "xy" then moveShape(id, tostring(x), tostring(y), "+0") end
if axe == "player" then
x, y, z = getPlayerPos()
moveShape(id, tostring(x), tostring(y), tostring(z))
SceneEditor:set_modified(id)
self:get_html("Moved to player")
end
end
end
function SceneEditor:rotate(id, axe)
local d, mx, my = getMouseDown()
if d then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
SceneEditor:set_modified(id)
self:get_html("Rotate")
else
mx, my = getMousePos()
if axe == "x" then rotateShape(id, "+"..tostring((my-ARK_SHAPE_LATEST_Y)/100), "+0", "+0") end
if axe == "y" then rotateShape(id, "+0", "+"..tostring((my-ARK_SHAPE_LATEST_Y)/100), "+0") end
if axe == "z" then rotateShape(id, "+0", "+0", "+"..tostring((mx-ARK_SHAPE_LATEST_X)/100)) end
ARK_SHAPE_LATEST_X = mx
ARK_SHAPE_LATEST_Y = my
end
end
function SceneEditor:scale(id, axe)
local d, mx, my = getMouseDown()
if d then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
SceneEditor:set_modified(id)
self:get_html("Rotate")
else
mx, my = getMousePos()
local setup = {}
if axe == "x" then setup["scale x"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
if axe == "y" then setup["scale y"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
if axe == "z" then setup["scale z"]="+"..tostring((my-ARK_SHAPE_LATEST_Y)/100) end
setupShape(id, setup)
ARK_SHAPE_LATEST_X = mx
ARK_SHAPE_LATEST_Y = my
end
end
function SceneEditor:move_x()
self:move(SelectedInstanceId, "x")
end
function SceneEditor:move_y()
self:move(SelectedInstanceId, "y")
end
function SceneEditor:move_xy()
self:move(SelectedInstanceId, "xy")
end
function SceneEditor:move_xysnap()
self:move(SelectedInstanceId, "xysnap")
end
function SceneEditor:move_z()
self:move(SelectedInstanceId, "z")
end
function SceneEditor:move_player()
self:move(SelectedInstanceId, "player")
end
function SceneEditor:col_move(id, axe)
local d, mx, my = getMouseDown()
if d then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
self:set_modified(id)
self:get_html("Updated")
else
local x,y,z = getGroundAtMouse()
local setup = {}
if axe == "x" then setup["col pos x"]=tostring(x) end
if axe == "y" then setup["col pos y"]=tostring(y) end
if axe == "z" then
mx, my = getMousePos()
setup["col pos z"]="+"..tostring((my-ARK_SHAPE_LATEST_Y)/100)
ARK_SHAPE_LATEST_X = mx
ARK_SHAPE_LATEST_Y = my
end
if axe == "xy" then setup["col pos x"]=tostring(x); setup["col pos y"]=tostring(y) end
if axe == "shape" then
x, y, z = getShapePos(id)
setup["col pos x"]=tostring(x)
setup["col pos y"]=tostring(y)
self:set_modified(id)
setupShape(id, setup)
self:get_html("Updated")
else
setupShape(id, setup)
end
end
end
function SceneEditor:col_rotate(id, axe)
local d, mx, my = getMouseDown()
if d then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
SceneEditor:set_modified(id)
self:get_html("Rotate")
else
mx, my = getMousePos()
local setup = {}
setup["col orientation"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100)
setupShape(id, setup)
ARK_SHAPE_LATEST_X = mx
ARK_SHAPE_LATEST_Y = my
end
end
function SceneEditor:col_scale(id, axe)
local d, mx, my = getMouseDown()
if d then
setOnDraw(getUI("ui:interface:ark_scene_editor"), "")
SceneEditor:set_modified(id)
self:get_html("Rotate")
else
mx, my = getMousePos()
local setup = {}
if axe == "x" then setup["col size x"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
if axe == "y" then setup["col size y"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
if axe == "z" then setup["col size z"]="+"..tostring((my-ARK_SHAPE_LATEST_Y)/100) end
setupShape(id, setup)
ARK_SHAPE_LATEST_X = mx
ARK_SHAPE_LATEST_Y = my
end
end
function SceneEditor:set_modified(id)
self.Groups[self.Shapes[id].group].props.modified=true
self.Shapes[id].modified = "modified"
self.HaveUpdate = true
end
function SceneEditor:col_move_x()
self:col_move(SelectedInstanceId, "x")
end
function SceneEditor:col_move_y()
self:col_move(SelectedInstanceId, "y")
end
function SceneEditor:col_move_z()
self:col_move(SelectedInstanceId, "z")
end
function SceneEditor:col_move_xy()
self:col_move(SelectedInstanceId, "xy")
end
function SceneEditor:col_move_to_shape()
self:col_move(SelectedInstanceId, "shape")
end
function SceneEditor:setup_shape(shape_id, setup)
final_setup = self.Shapes[new_shape.id].setup
if final_setup == nil then
final_setup = {}
end
for k,v in pairs(setup) do
final_setup[k] = v
end
self.Shapes[new_shape.id].setup = final_setup
setupShape(shape_id, setup)
end
function SceneEditor:add(shape)
if self.LastEditedGroup == nil then
self:get_html('<font color="#aa00000">'..self.T["no_selected_group"]..'</font>', '000000')
end
local new_shape = {}
new_shape.file = shape
new_shape.group = self.LastEditedGroup
self.Groups[new_shape.group].props.modified=true
new_shape.db_id = self.Groups[new_shape.group].props.count + 1
new_shape.modified = "added"
new_shape_id = addShape(shape, 0, 0, 0, "user", 1, true, "", "SceneEditor:show_menu()")
table.insert(self.Groups[new_shape.group], new_shape_id)
self.Groups[new_shape.group].props.count = self.Groups[new_shape.group].props.count + 1
self.Shapes[new_shape_id] = new_shape
self:get_html("Added")
end
function SceneEditor:removeShape(shape_id)
deleteShape(shape_id)
local group = self.Shapes[shape_id].group
for k,g_shape_id in pairs(self.Groups[group]) do
if shape_id == g_shape_id then
self.Groups[group][k] = nil
end
end
self:set_modified(shape_id)
self.Shapes[shape_id] = nil
self:get_html("Removed")
end
function SceneEditor:addGroup(name, count, show, edit)
if name == nil then
return
end
if self.Groups[name] == nil then
self.Groups[name] = {}
self.Groups[name].props = {}
self.Groups[name].props.count = count
self.Groups[name].props.show = show
self.Groups[name].props.edit = edit
self.Groups[name].props.modified = false
else
self.Groups[name].props.show = show
self.Groups[name].props.edit = edit
end
end
function SceneEditor:editGroup(group)
if self.LastEditedGroup then
self:removeGroup(self.LastEditedGroup, true)
self:addGroup(self.LastEditedGroup, 0, true, false)
end
self:removeGroup(group, true);
self:addGroup(group, 0, true, true)
self.LastEditedGroup = group
end
function SceneEditor:addFromDb(group, db_id, json_shape, edit)
shape = Json.decode(json_shape)
shape.db_id = db_id
shape.group = group
shape.modified = ""
if edit then
shape_id = addShape(shape.file, shape.pos[1], shape.pos[2], shape.pos[3], "user", 1, true, "", "SceneEditor:show_menu()")
else
shape_id = addShape(shape.file, shape.pos[1], shape.pos[2], shape.pos[3], "user", 1, true, "", "")
end
rotateShape(shape_id, tostring(shape.rot[1]), tostring(shape.rot[2]), tostring(shape.rot[3]))
setupShape(shape_id, shape.setup)
self.Shapes[shape_id] = shape
table.insert(self.Groups[group], shape_id)
if db_id > self.Groups[group].props.count then
self.Groups[group].props.count = db_id
end
end
function SceneEditor:removeGroup(group, no_get_html)
if self.Groups[group] == nil then
return
end
for k,shape_id in pairs(self.Groups[group]) do
if k ~= "props" then
self.Shapes[shape_id] = nil
deleteShape(shape_id)
end
end
self.Groups[group] = nil
if self.LastEditedGroup == group then
self.LastEditedGroup = nil
local ui = getUI("ui:interface:ark_list_of_shapes")
if ui then
ui.active=false
end
end
if no_get_html == nil then
self:get_html("Group Removed")
end
end
function SceneEditor:enc64(data)
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
return ((data:gsub('.', function(x)
local r,b='',x:byte()
for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end
return r;
end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
if (#x < 6) then return '' end
local c=0
for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end
return b:sub(c+1,c+1)
end)..({ '', '==', '=' })[#data%3+1])
end
function SceneEditor:get_vector(x, y, z)
local vector = {}
table.insert(vector, x)
table.insert(vector, y)
table.insert(vector, z)
return vector
end
function SceneEditor:get_random_color()
local r = math.random(44, 66);
local g = math.random(44, 66);
local b = math.random(44, 66);
return '#'..tostring(r)..tostring(g)..tostring(b)
end
function pairsByKeys(t, f)
local a = {}
for n in pairs(t) do table.insert(a, n) end
table.sort(a, f)
local i = 0 -- iterator variable
local iter = function () -- iterator function
i = i + 1
if a[i] == nil then
return nil
else
return a[i], t[a[i]]
end
end
return iter
end
function SceneEditor:show_shape_list()
local ui = getUI("ui:interface:ark_list_of_shapes")
local need_setup = ui == nil
if need_setup then
WebBrowser:openWindow("ark_list_of_shapes", self.baseUrl..'_ListShapes')
ui = getUI("ui:interface:ark_list_of_shapes")
ui.pop_min_w = 400
ui.w = 400
getUI("ui:interface:ark_list_of_shapes:browser:header_opened:browse_redo").active=false
getUI("ui:interface:ark_list_of_shapes:browser:header_opened:browse_undo").active=false
getUI("ui:interface:ark_list_of_shapes:browser:header_opened:browse_refresh").active=false
getUI("ui:interface:ark_list_of_shapes:browser:header_opened:browse_home").active=false
else
ui.active = true
end
end
function SceneEditor:getShapesByGroups()
local groups = {}
for shape_id, shape in pairs(self.Shapes) do
if shape.group == nil then
shape.group = ""
end
if groups[shape.group] == nil then
groups[shape.group] = {}
end
table.insert(groups[shape.group], shape_id)
end
return groups
end
function SceneEditor:get_html_section(message, color)
return '<table width="100%" cellspacing="0" cellpadding="0"><tr bgcolor="'..color..'"><td align="center" valign="middle"><font color="#FFFFFF" size="12">'..message..'</font></td></tr></table>'
end
function SceneEditor:get_html(message, message_bg)
debug("get_html :"..message)
local new_group = '&nbsp;&nbsp;<a class="ryzom-ui-button" href="'..self.baseUrl..'_AddGroup&amp;add_new_group=1&amp;scene_id='..self.sceneId..'"><img src="'..self.iconsUrl..'/32/chart_organisation_add.png" alt="'..self.T["add_new_group"]..'" /></a>'
local show_hide_cols = '&nbsp;&nbsp;<a class="ryzom-ui-button" href="ah:ark_pacs_borders"><img src="'..self.iconsUrl..'/32/show_hide_cols.png" alt="'..self.T["show_hide_cols"]..'" /></a>'
local reset_scene = '</td><td align="center" bgcolor="#502020" width="40px"><a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;reset_scene=1&amp;scene_id='..self.sceneId..'"><img src="'..self.iconsUrl..'/32/bin.png" alt="'..self.T["reset_scene"]..'" /></a>'
local html = '<header><title>'..self.T["sceno_editor"]..'</title></header>'..self:get_html_section(message..'</td><td bgcolor="#202020" align="center" height="40px" width="140px" valign="middle">'..new_group..show_hide_cols..reset_scene, (message_bg or SceneEditor:get_random_color()))
html = html .. '<form action="'..self.baseUrl..'_SaveShapes" method="POST"><input type="hidden" name="group" value="'..(self.LastEditedGroup or "")..'" /><input type="hidden" name="scene_id" value="'..self.sceneId..'" />\
<table width="100%" cellspacing="0" cellpadding="0">'
local groups = self:getShapesByGroups()
for group, shapes in pairsByKeys(self.Groups) do
debug("Group : "..group)
local groupname = group
html = html .. '<tr bgcolor="#444444"><td height="20px"><table width="100%"><tr><td>&nbsp;'..groupname..' ('..(self.Groups[group].props.count or '0')..') </td><td align="right"><input type="hidden" name="shape[]", value="#"/>'
if self.Groups[group].props.show then
debug("Group : show")
if self.Groups[group].props.edit then
html = html .. '<a href="ah:lua:SceneEditor:show_shape_list()"><img src="'..self.iconsUrl..'/16/box_add.png" alt="'..self.T["add_shape"]..'"/></a></td><td align="right">'
if self.HaveUpdate then
html = html .. '<a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;hide_group='..group..'&amp;edit_group='..group..'">'..self.T["cancel"]..'</a>'
else
html = html .. '<a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;hide_group='..group..'">'..self.T["hide"]..'</a>'
end
else
html = html .. '<a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;hide_group='..group..'">'..self.T["hide"]..'</a>'
end
else
html = html .. '<a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;show_group='..group..'">'..self.T["show"]..'</a>'
end
local shapes_html = ""
local show = self.Groups[group].props.show
if self.Groups[group].props.edit then
shapes_id = groups[group]
if shapes_id then
for k,shape_id in pairs(shapes_id) do
shape = {}
if self.Shapes[shape_id] then
shape["db_id"] = self.Shapes[shape_id].db_id
shape["file"] = self.Shapes[shape_id].file
shape["pos"] = self:get_vector(getShapePos(shape_id))
scale_x, scale_y, scale_z = getShapeScale(shape_id)
shape["rot"] = self:get_vector(getShapeRot(shape_id))
colpos_x, colpos_y, colpos_z = getShapeColPos(shape_id)
colscale_x, colscale_y, colscale_z = getShapeColScale(shape_id)
shape["setup"] = {}
shape["setup"]["scale x"] = scale_x
shape["setup"]["scale y"] = scale_y
shape["setup"]["scale z"] = scale_z
shape["setup"]["col pos x"] = shape["pos"][1]+colpos_x
shape["setup"]["col pos y"] = shape["pos"][2]+colpos_y
shape["setup"]["col size x"] = colscale_x
shape["setup"]["col size y"] = colscale_y
shape["setup"]["col size z"] = colscale_z
local color = "202020"
if k % 2 == 0 then
color = "101010"
end
local text_color = "ef9b64"
if self.Shapes[shape_id].modified == "modified" then
text_color = "aa5555"
else
if self.Shapes[shape_id].modified == "added" then
text_color = "55aa55"
end
end
shapes_html = shapes_html .. "<tr bgcolor='#"..color.."'><td height='20px'>&nbsp;<input type='hidden' name='shape[]', value='"..SceneEditor:enc64((shape.db_id or '')..":"..Json.encode(shape)).."' />"..'#'..(shape.db_id or '0').." <a href='ah:lua:SceneEditor:launch_menu("..tostring(shape_id)..")'><font color='#"..text_color.."'>"..shape.file.."</font></a></td>\
<td width='16px'><a href='ah:lua:SceneEditor:removeShape("..tostring(shape_id)..")'><img src='"..self.iconsUrl.."/16/cross.png' /></a></td>\
</tr>"
end
end
end
else
if self.HaveUpdate == nil then
html = html .. '&nbsp;&nbsp;<a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;edit_group='..group..'">'..self.T["edit"]..'</a>'
html = html .. '</td><td align="right"><a class="ryzom-ui-button" href="'..self.baseUrl..'_SaveShapes&amp;reset_scene=1&amp;del_group='..group..'">'..self.T["remove"]..'</a>'
end
end
if self.Groups[group].props.modified then
html = html .. '&nbsp;&nbsp;<input type="submit" value="'..self.T["save"]..'" />'
end
html = html .. '</td></tr></table></td><td></td></tr>'..shapes_html
end
html = html .. '</table></form>'
ui = getUI("ui:interface:ark_scene_editor:browser:content:html", false)
if ui then
ui:renderHtml(html)
end
end

View file

@ -4,6 +4,8 @@
<interface_config>
<root id="interface" x="0" y="0" w="800" h="600" active="true" />
<lua file="webig.lua" />
<lua file="json.lua" />
<lua file="sceneedit.lua" />
<!-- //////////// STYLE : webigchat_desc /////////// -->
<style style="webigchat_desc" type="text" fontsize="12" justification="dont_clip_word" color="0 0 0 255" global_color="false" multi_line="true" multi_line_space="0" line_maxw="320" multi_line_maxw_only="true" />