diff --git a/data/kh/kh_interfaces/bot_chat_v4.xml b/data/kh/kh_interfaces/bot_chat_v4.xml
index b9c358f9..f98c3851 100644
--- a/data/kh/kh_interfaces/bot_chat_v4.xml
+++ b/data/kh/kh_interfaces/bot_chat_v4.xml
@@ -436,6 +436,9 @@
+
+
-
-
-
+ w="380"
+ onenter=""
+ title="uiGuildDescWarning"
+ tooltip="uiGuildDescWarning" />
+
+
+
+
-
+ posref="BL BL"
+ x="150"
+ y="15" />
+
-
+
@@ -3093,6 +3098,13 @@
realtime="true"
widget="sbfloat"
link="Gamma" />
+
+ value="https://app.khaganat.net/ams/" />
-
-
-
-
-
+
+
+
-
+
-
-
+
+
+
diff --git a/data/kh/kh_interfaces/info_player.lua b/data/kh/kh_interfaces/info_player.lua
index 8768f3fe..64858c69 100644
--- a/data/kh/kh_interfaces/info_player.lua
+++ b/data/kh/kh_interfaces/info_player.lua
@@ -1431,6 +1431,8 @@ function game:onInGameDbInitialized()
end
game:setInfoPlayerCharacterRace()
+
+ runAH(nil, "sort_tribefame", "")
end
function game:onWebIgReady()
@@ -1606,9 +1608,9 @@ end
function game:addRpJob(jobtype, id, value, rpjobs)
local base_path = "ui:interface:info_player_skills:content:rpjobs:rpjob_"..jobtype.."_"..id..":rpjob_"..jobtype.."_infos_"..id
-
+
local group = getUI("ui:interface:info_player_skills:content:rpjobs:rpjob_"..jobtype.."_"..id)
-
+
if (value == nil) then
group.active = false
else
diff --git a/data/kh/kh_interfaces/interaction.xml b/data/kh/kh_interfaces/interaction.xml
index 160c924a..56893e56 100644
--- a/data/kh/kh_interfaces/interaction.xml
+++ b/data/kh/kh_interfaces/interaction.xml
@@ -277,6 +277,19 @@
global_color="false"
render_layer="1"
active="true" />
+
+ y="-4"
+ max_w="0"
+ max_sizeref="w">
+
+
+
+
+
+
diff --git a/data/kh/kh_interfaces/keys.xml b/data/kh/kh_interfaces/keys.xml
index ae212a58..40ecd1c7 100644
--- a/data/kh/kh_interfaces/keys.xml
+++ b/data/kh/kh_interfaces/keys.xml
@@ -278,6 +278,7 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/kh/kh_interfaces/login_widgets.xml b/data/kh/kh_interfaces/login_widgets.xml
index bff52b12..6d7ac1fa 100644
--- a/data/kh/kh_interfaces/login_widgets.xml
+++ b/data/kh/kh_interfaces/login_widgets.xml
@@ -63,7 +63,7 @@
-
-
+
-
-
+
@@ -138,7 +151,7 @@
-
-
+
@@ -179,7 +197,7 @@
@@ -241,7 +259,7 @@
+ color="135 243 28 255" fontsize="12" shadow="true" multi_line="true" multi_line_space="0" case_mode="%case_first_sentence_letter_up"/>
@@ -276,7 +294,7 @@
+ color="135 243 28 255" fontsize="12" shadow="true" multi_line="true" multi_line_space="0" case_mode="%case_first_sentence_letter_up"/>
@@ -382,7 +400,7 @@
-
-
+
@@ -420,7 +443,7 @@
-
-
+
@@ -595,8 +623,8 @@
-
-
+
+
@@ -611,7 +639,7 @@
-
+
@@ -620,7 +648,7 @@
-
+
@@ -629,7 +657,7 @@
-
+
@@ -826,7 +854,7 @@
>
-
+
+
+
+
+
+
+
+
+
+
diff --git a/data/kh/kh_interfaces/macros.xml b/data/kh/kh_interfaces/macros.xml
index 5f5f108e..c4f46f24 100644
--- a/data/kh/kh_interfaces/macros.xml
+++ b/data/kh/kh_interfaces/macros.xml
@@ -200,7 +200,7 @@
-
+
@@ -232,6 +232,8 @@
+
+
@@ -322,6 +324,8 @@
+
+
diff --git a/data/kh/kh_interfaces/map.xml b/data/kh/kh_interfaces/map.xml
index f09c375f..f77e444e 100644
--- a/data/kh/kh_interfaces/map.xml
+++ b/data/kh/kh_interfaces/map.xml
@@ -2,6 +2,10 @@
+
+
+
+
@@ -25,6 +29,8 @@
+
+
@@ -144,6 +150,7 @@
+
@@ -155,10 +162,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -315,11 +391,53 @@
selection_axis_color = "0 0 0 127"
compass="ui:interface:compass"
- scale_max="2"
- scale_max_r2="8"
- />
-
-
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -408,8 +526,7 @@
player_pos_tex="player_pos.tga"
- scale_max="2"
- />
+ />
diff --git a/data/kh/kh_interfaces/out_v2_appear.lua b/data/kh/kh_interfaces/out_v2_appear.lua
index 2bd2767d..58a1ffda 100644
--- a/data/kh/kh_interfaces/out_v2_appear.lua
+++ b/data/kh/kh_interfaces/out_v2_appear.lua
@@ -3,69 +3,256 @@
------------------------------------------------------------------------------------------------------------
-- create the game namespace without reseting if already created in an other file.
-if (outgame==nil) then
- outgame= {};
+if (outgame == nil) then
+ outgame = {}
end
+
+
------------------------------------------------------------------------------------------------------------
-- Name generator.
+--nb noms:
+-- matis: male 621 - female 621 - FirstName 621
+-- fyros: given name 14269, FirstName 841
+-- zorai: given name one 318, given name two 644, FirstName 1287
+-- tryker: given name 4500, FirstName 4335
+
+-- Fyros
+function outgame:getFyrosFirstName()
+ local nbFyrosFirstNames = #fyrosFirstNames
+
+ return fyrosFirstNames[math.random(nbFyrosFirstNames)]
+end
+
+function outgame:getFyrosLastName()
+ local nbFyrosLastNames = #fyrosLastNames
+
+ return fyrosLastNames[math.random(nbFyrosLastNames)]
+end
+
+-- Matis
+function outgame:getMatisFirstName(sex)
+ -- 1 = male, 2 = female
+ local dbNameSex = getDbProp("UI:TEMP:NAME_SEX")
+
+ if sex ~= nil then
+ dbNameSex = sex
+ end
+
+ local FirstName = ""
+ if tonumber(dbNameSex) == 1 then
+ local nbMatisMaleFirstNames = #matisMaleFirstNames
+ FirstName = matisMaleFirstNames[math.random(nbMatisMaleFirstNames)]
+ else
+ local nbMatisFemaleFirstNames = #matisFemaleFirstNames
+ FirstName = matisFemaleFirstNames[math.random(nbMatisFemaleFirstNames)]
+ end
+
+ return FirstName
+end
+
+function outgame:getMatisLastName()
+ local nbMatisLastNames = #matisLastNames
+
+ return matisLastNames[math.random(nbMatisLastNames)]
+end
+
+-- Tryker
+function outgame:getTrykerFirstName()
+ local nbTrykerFirstNames = #trykerFirstNames
+
+ return trykerFirstNames[math.random(nbTrykerFirstNames)]
+end
+
+function outgame:getTrykerLastName()
+ local nbTrykerLastNames = #trykerLastNames
+
+ return trykerLastNames[math.random(nbTrykerLastNames)]
+end
+
+-- Zora�
+function outgame:getZoraiFirstName()
+ local nbFirstNamesOne = #zoraiFirstNamesOne
+ local FirstNameOne = zoraiFirstNamesOne[math.random(nbFirstNamesOne)]
+
+ local nbFirstNamesTwo = #zoraiFirstNamesTwo
+ local FirstNameTwo = zoraiFirstNamesTwo[math.random(nbFirstNamesTwo)]
+
+ return FirstNameOne .. "-" .. FirstNameTwo
+end
+
+function outgame:getZoraiLastName()
+ local nbLastNames = #zoraiLastNames
+
+ return zoraiLastNames[math.random(nbLastNames)]
+end
function outgame:procGenerateName()
- local uiNameFull = getUI("ui:outgame:appear_name:name_full");
- local uiNameDef = getUI("ui:outgame:appear_name:name_def");
- local uiGenText = getUI("ui:outgame:appear_name:eb");
- local dbNameSyllabe = getDbProp("UI:TEMP:NAME_SYLLABE");
- local dbNameRace = getDbProp("UI:TEMP:NAME_RACE");
- local dbNameSyllabeMax = getDbProp("UI:TEMP:NAME_SYLLABE_MAX");
+ local uiNameFull = getUI("ui:outgame:appear_name:name_full")
+ local uiGenText = getUI("ui:outgame:appear_name:eb")
+ local dbNameRace = getDbProp("UI:TEMP:NAME_RACE")
+ local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME")
+ local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME")
- local nameResult = "";
- local fullnameResult = "";
- local defResult = "";
-
- local nbRafsi = 0;
- for _ in pairs(rafsi) do nbRafsi = nbRafsi + 1 end
-
-
- index = math.random(nbRafsi);
- nameResult = rafsi[index];
- fullnameResult = gismu[index];
- defResult = def[index];
-
- imax = tonumber(dbNameSyllabe);
- for i=2,imax,1 do
- index = math.random(nbRafsi);
- nameResult = nameResult .. rafsi[index];
- fullnameResult = fullnameResult .. " " .. gismu[index];
- defResult = defResult .. " | " .. def[index];
- end
-
- uiNameFull.hardtext = fullnameResult;
- uiNameDef.hardtext = defResult;
-
- nameResult = string.gsub(nameResult, "'", "");
- nameResult = string.gsub(nameResult, " ", "");
- nameResult = string.gsub(nameResult, "-", "");
- nameResult = string.lower( nameResult );
- nameResult = nameResult:gsub("^%l", string.upper);
- uiGenText.input_string = nameResult;
-
+ local nameResult = ""
+ local fullnameResult = ""
+
+ -- Look at outgame:procUpdateNameRaceLabel() for the "race" list.
+ -- fy ma try zo -->
+ local firstName = "test2"
+ local lastName = "test"
+
+ -- Fyros and Matis are using "first name, last name" order
+ -- Trykers and Zora�s are using "last name, first name" order
+ if tonumber(dbNameRace) == 1 then
+ -- Fyros
+ firstName = self:getFyrosFirstName()
+ lastName = self:getFyrosLastName()
+ fullnameResult = firstName .. " " .. lastName
+ elseif tonumber(dbNameRace) == 2 then
+ -- Matis
+ firstName = self:getMatisFirstName()
+ lastName = self:getMatisLastName()
+ fullnameResult = firstName .. " " .. lastName
+ elseif tonumber(dbNameRace) == 3 then
+ -- Tryker
+ firstName = self:getTrykerFirstName()
+ lastName = self:getTrykerLastName()
+ fullnameResult = lastName .. " " .. firstName
+ elseif tonumber(dbNameRace) == 4 then
+ -- Zorai
+ firstName = self:getZoraiFirstName()
+ lastName = self:getZoraiLastName()
+ fullnameResult = lastName .. " " .. firstName
+ elseif tonumber(dbNameRace) == 5 then
+ -- Maraudeurs
+
+ -- firstName
+ if tonumber(dbNameSubRaceFirstName) == 1 then
+ -- Fyros
+ firstName = self:getFyrosFirstName()
+ elseif tonumber(dbNameSubRaceFirstName) == 2 then
+ -- Matis M
+ firstName = self:getMatisFirstName(1)
+ elseif tonumber(dbNameSubRaceFirstName) == 3 then
+ -- Matis F
+ firstName = self:getMatisFirstName(2)
+ elseif tonumber(dbNameSubRaceFirstName) == 4 then
+ -- Tryker
+ firstName = self:getTrykerFirstName()
+ elseif tonumber(dbNameSubRaceFirstName) == 5 then
+ -- Zorai
+ firstName = self:getZoraiFirstName()
+ end
+
+ -- lastName
+ if tonumber(dbNameSubRaceLastName) == 1 then
+ -- Fyros
+ lastName = self:getFyrosLastName()
+ elseif tonumber(dbNameSubRaceLastName) == 2 then
+ -- Matis
+ lastName = self:getMatisLastName()
+ elseif tonumber(dbNameSubRaceLastName) == 3 then
+ -- Tryker
+ lastName = self:getTrykerLastName()
+ elseif tonumber(dbNameSubRaceLastName) == 4 then
+ -- Zorai
+ lastName = self:getZoraiLastName()
+ end
+
+ fullnameResult = firstName .. " " .. lastName
+ end
+
+ -- always use first name for character name
+ nameResult = firstName
+
+ uiNameFull.hardtext = fullnameResult
+
+ nameResult = string.gsub(nameResult, "'", "")
+ nameResult = string.gsub(nameResult, " ", "")
+ nameResult = string.gsub(nameResult, "-", "")
+ nameResult = string.lower(nameResult)
+ nameResult = nameResult:gsub("^%l", string.upper)
+ uiGenText.input_string = nameResult
end
--- Name syllabe slider update.
-function outgame:procUpdateNameSyllabeLabel()
- local uiNameSyllabeText_nb = getUI("ui:outgame:appear_name:name_syllabe_slider:name_syllabe_nb");
- local uiNameSyllabe = getDbProp("UI:TEMP:NAME_SYLLABE");
- uiNameSyllabeText_nb.hardtext = uiNameSyllabe;
- -- uiNameSyllabeText.hardtext = uiNameSyllabe .. " " .. i18n.get("uiCP_Syllabe");
+
+-- Name sex slider update.
+function outgame:procUpdateNameSexLabel()
+ local nameSexType = { "uiCP_Sex_Male", "uiCP_Sex_Female" }
+ local uiNameSexText = getUI("ui:outgame:appear_name:name_sex_slider:name_sex")
+ local uiNameSex = getDbProp("UI:TEMP:NAME_SEX")
+
+ tempstr = tostring(i18n.get(nameSexType[tonumber(uiNameSex)]))
+ tempstr = string.lower(tempstr)
+ tempstr = (tempstr:gsub("^%l", string.upper))
+
+ uiNameSexText.hardtext = tempstr
+end
+
+-- Name race slider update.
+function outgame:procUpdateNameRaceLabel()
+ local nameRaceType = { "Fyros", "Matis", "Tryker", "Zora�", "uiCP_Maraudeur" }
+
+ local uiNameRaceText = getUI("ui:outgame:appear_name:name_race_slider:name_race")
+ local dbNameRace = getDbProp("UI:TEMP:NAME_RACE")
+
+ local uiNameSexSlider = getUI("ui:outgame:appear_name:name_sex_slider")
+
+ local uiNameSubRaceFirstNameSlider = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider")
+ local uiNameSubRaceLastNameSlider = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider")
+
+ local uiNameGenerate = getUI("ui:outgame:appear_name:generate")
+ -- Show/Hide sex slider
+
+ uiNameGenerate.y = "-50"
+ if tonumber(dbNameRace) == 2 then
+ uiNameSexSlider.active = true
+ uiNameGenerate.y = "-65"
+ else
+ uiNameSexSlider.active = false
+ end
+
+ -- Show/Hide sub race slider
+ if tonumber(dbNameRace) == 5 then
+ uiNameSubRaceFirstNameSlider.active = true
+ uiNameSubRaceLastNameSlider.active = true
+ uiNameGenerate.y = "-105"
+ else
+ uiNameSubRaceFirstNameSlider.active = false
+ uiNameSubRaceLastNameSlider.active = false
+ end
+
+ uiNameRaceText.hardtext = tostring(nameRaceType[tonumber(dbNameRace)])
+end
+
+
+local matisF = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Female")) )):gsub("^%l", string.upper)
+local matisM = "Matis " .. (string.lower(tostring(i18n.get("uiCP_Sex_Male")) )):gsub("^%l", string.upper)
+
+function outgame:procUpdateNameSubRaceFirstNameLabel()
+ local nameSubRaceFirstNameType = { "Fyros", matisM, matisF, "Tryker", "Zora�" }
+ local uiNameSubRaceFirstNameText = getUI("ui:outgame:appear_name:name_sub_race_first_name_slider:name_race")
+ local dbNameSubRaceFirstName = getDbProp("UI:TEMP:NAME_SUB_RACE_FIRST_NAME")
+
+ uiNameSubRaceFirstNameText.hardtext= tostring(nameSubRaceFirstNameType[tonumber(dbNameSubRaceFirstName)])
+end
+
+function outgame:procUpdateNameSubRaceLastNameLabel()
+ local nameSubRaceLastNameType = { "Fyros", "Matis", "Tryker", "Zora�" }
+ local uiNameSubRaceLastNameText = getUI("ui:outgame:appear_name:name_sub_race_last_name_slider:name_race")
+ local dbNameSubRaceLastName = getDbProp("UI:TEMP:NAME_SUB_RACE_LAST_NAME")
+
+ uiNameSubRaceLastNameText.hardtext= tostring(nameSubRaceLastNameType[tonumber(dbNameSubRaceLastName)])
end
------------------------------------------------------------------------------------------------------------
-- called to construct icons
function outgame:activePackElement(id, icon)
- local uiDesc = getUI("ui:outgame:appear:job_options:options:desc");
- uiDesc['ico' .. tostring(id)].active= true;
- uiDesc['ico' .. tostring(id)].texture= icon;
- uiDesc['ico' .. tostring(id) .. 'txt'].active= true;
+ local uiDesc = getUI("ui:outgame:appear:job_options:options:desc")
+ uiDesc['ico' .. tostring(id)].active = true
+ uiDesc['ico' .. tostring(id)].texture = icon
+ uiDesc['ico' .. tostring(id) .. 'txt'].active = true
end
@@ -73,13 +260,13 @@ end
-- called to construct pack text
function outgame:setPackJobText(id, spec)
-- Set Pack content
- local uiPackText = getUI("ui:outgame:appear:job_options:options:desc:pack_" .. id);
- uiPackText.hardtext= "uiCP_Job_" .. id .. tostring(spec);
+ local uiPackText = getUI("ui:outgame:appear:job_options:options:desc:pack_" .. id)
+ uiPackText.hardtext= "uiCP_Job_" .. id .. tostring(spec)
-- Set specialization text
- local uiResText = getUI("ui:outgame:appear:job_options:options:result:res");
+ local uiResText = getUI("ui:outgame:appear:job_options:options:result:res")
if(spec==2) then
- uiResText.hardtext= "uiCP_Res_" .. id;
+ uiResText.hardtext= "uiCP_Res_" .. id
end
end
@@ -87,65 +274,65 @@ end
-- called to construct pack
function outgame:buildActionPack()
- local uiDesc = getUI("ui:outgame:appear:job_options:options:desc");
+ local uiDesc = getUI("ui:outgame:appear:job_options:options:desc")
if (uiDesc==nil) then
- return;
+ return
end
-- Reset All
for i = 1,20 do
- uiDesc['ico' .. tostring(i)].active= false;
- uiDesc['ico' .. tostring(i) .. 'txt'].active= false;
+ uiDesc['ico' .. tostring(i)].active = false
+ uiDesc['ico' .. tostring(i) .. 'txt'].active = false
end
-- Build Default Combat
- self:activePackElement(1, 'f1.tga'); -- Dagger
- self:activePackElement(2, 'f2.tga'); -- Accurate Attack
-
+ self:activePackElement(1, 'f1.tga') -- Dagger
+ self:activePackElement(2, 'f2.tga') -- Accurate Attack
+
-- Build Default Magic
- self:activePackElement(6, 'm2.tga'); -- Gloves
- self:activePackElement(7, 'm1.tga'); -- Acid
-
+ self:activePackElement(6, 'm2.tga') -- Gloves
+ self:activePackElement(7, 'm1.tga') -- Acid
+
-- Build Default Forage
- self:activePackElement(11, 'g1.tga'); -- Forage Tool
- self:activePackElement(12, 'g2.tga'); -- Basic Extract
-
+ self:activePackElement(11, 'g1.tga') -- Forage Tool
+ self:activePackElement(12, 'g2.tga') -- Basic Extract
+
-- Build Default Craft
- self:activePackElement(16, 'c2.tga'); -- Craft Tool
- self:activePackElement(17, 'c1.tga'); -- 50 raw mat
- self:activePackElement(18, 'c3.tga'); -- Craft Root
- self:activePackElement(19, 'c4.tga'); -- Boots Plan
+ self:activePackElement(16, 'c2.tga') -- Craft Tool
+ self:activePackElement(17, 'c1.tga') -- 50 raw mat
+ self:activePackElement(18, 'c3.tga') -- Craft Root
+ self:activePackElement(19, 'c4.tga') -- Boots Plan
-- Build Option
if (getDbProp('UI:TEMP:JOB_FIGHT') == 2) then
- self:activePackElement(3, 'f3.tga'); -- Increase damage
+ self:activePackElement(3, 'f3.tga') -- Increase damage
elseif (getDbProp('UI:TEMP:JOB_MAGIC') == 2) then
- self:activePackElement(8, 'm5.tga'); -- Fear
+ self:activePackElement(8, 'm5.tga') -- Fear
elseif (getDbProp('UI:TEMP:JOB_FORAGE') == 2) then
- self:activePackElement(13, 'g3.tga'); -- Basic Prospection
+ self:activePackElement(13, 'g3.tga') -- Basic Prospection
elseif (getDbProp('UI:TEMP:JOB_CRAFT') == 2) then
- self:activePackElement(20, 'c6.tga'); -- Gloves Plan
- self:activePackElement(17, 'c5.tga'); -- Replace 17, with 100x RawMat
+ self:activePackElement(20, 'c6.tga') -- Gloves Plan
+ self:activePackElement(17, 'c5.tga') -- Replace 17, with 100x RawMat
end
-- Reset Text
- self:setPackJobText('F', 1);
- self:setPackJobText('M', 1);
- self:setPackJobText('G', 1);
- self:setPackJobText('C', 1);
-
- -- Set correct text for specalized version
+ self:setPackJobText('F', 1)
+ self:setPackJobText('M', 1)
+ self:setPackJobText('G', 1)
+ self:setPackJobText('C', 1)
+
+ -- Set correct text for specalized version
if (getDbProp('UI:TEMP:JOB_FIGHT') == 2) then
- self:setPackJobText('F', 2);
+ self:setPackJobText('F', 2)
elseif (getDbProp('UI:TEMP:JOB_MAGIC') == 2) then
- self:setPackJobText('M', 2);
+ self:setPackJobText('M', 2)
elseif (getDbProp('UI:TEMP:JOB_FORAGE') == 2) then
- self:setPackJobText('G', 2);
+ self:setPackJobText('G', 2)
elseif (getDbProp('UI:TEMP:JOB_CRAFT') == 2) then
- self:setPackJobText('C', 2);
+ self:setPackJobText('C', 2)
end
-
+
end
@@ -186,8 +373,8 @@ end
--function outgame:setPatchProgress(progress)
-- --debugInfo("*** 3 ***")
-- local progressPercentText = string.format("%d%%", 100 * progress)
--- local progressPostfix = math.fmod(os.time(), 3)
--- --debugInfo("Patch in progress : " .. tostring(progress))
+-- local progressPostfix = math.fmod(os.time(), 3)
+-- --debugInfo("Patch in progress : " .. tostring(progress))
-- local progressDate = nltime.getLocalTime() / 500
-- local colValue = math.floor(230 + 24 * math.sin(progressDate))
-- local color = string.format("%d %d %d %d", colValue, colValue, colValue, 255)
@@ -203,7 +390,7 @@ end
--
--function outgame:setPatchError()
-- --debugInfo("*** 5 ***")
--- --debugInfo("Patch error")
+-- --debugInfo("Patch error")
-- self:setProgressText(i18n.get("uiBGD_PatchError"), "255 0 0 255", 0)
--end
--
@@ -219,9 +406,9 @@ end
function outgame:launchGame()
if not isPlayerSlotNewbieLand(getPlayerSelectedSlot()) then
if not isFullyPatched() then
- messageBoxWithHelp(i18n.get("uiBGD_MainlandCharFullPatchNeeded"), "ui:outgame")
+ messageBoxWithHelp(i18n.get("uiBGD_MainlandCharFullPatchNeeded"), "ui:outgame")
return
end
- end
+ end
runAH(getUICaller(), "proc", "proc_charsel_play")
end
diff --git a/data/kh/kh_interfaces/out_v2_connect.xml b/data/kh/kh_interfaces/out_v2_connect.xml
index 4ac460f1..f4cb495d 100644
--- a/data/kh/kh_interfaces/out_v2_connect.xml
+++ b/data/kh/kh_interfaces/out_v2_connect.xml
@@ -1,84 +1,84 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/kh/kh_interfaces/out_v2_crash.xml b/data/kh/kh_interfaces/out_v2_crash.xml
index afc8d255..1c07e5de 100644
--- a/data/kh/kh_interfaces/out_v2_crash.xml
+++ b/data/kh/kh_interfaces/out_v2_crash.xml
@@ -1,32 +1,32 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/kh/kh_interfaces/player_trade.xml b/data/kh/kh_interfaces/player_trade.xml
index dcb451af..ec4e9c49 100644
--- a/data/kh/kh_interfaces/player_trade.xml
+++ b/data/kh/kh_interfaces/player_trade.xml
@@ -375,4 +375,4 @@
-
+
\ No newline at end of file
diff --git a/data/kh/kh_interfaces/widgets.xml b/data/kh/kh_interfaces/widgets.xml
index 3f6db6e8..5ac02437 100644
--- a/data/kh/kh_interfaces/widgets.xml
+++ b/data/kh/kh_interfaces/widgets.xml
@@ -1819,6 +1819,14 @@
name="uimItemTextEdit"
handler="item_text_edition"
params="ui:interface:edit_custom" />
+
+
+
+
+ negative_filter=""
+ render_layer="0">
+ h="#h"
+ render_layer="#render_layer">
+ negative_filter="#negative_filter"
+ render_layer="#render_layer">
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ global_color="false"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
+ inherit_gc_alpha="true"
+ render_layer="#render_layer" />
@@ -2816,6 +2850,11 @@
keep="true"
max_historic="40"
fontsize="10"
+ shadow="true"
+ shadow_x="1"
+ shadow_y="1"
+ shadow_color="0 0 0 255"
+ shadow_outline="false"
backup_father_container_pos="false"
want_return="false"
color="255 255 255 255"
@@ -2876,7 +2915,11 @@
multi_min_line="#multi_min_line"
fontsize="#fontsize"
color="#color"
- shadow="true"
+ shadow="#shadow"
+ shadow_x="#shadow_x"
+ shadow_y="#shadow_y"
+ shadow_color="#shadow_color"
+ shadow_outline="#shadow_outline"
hardtext=""
global_color="false"
render_layer="#render_layer" />
@@ -6309,6 +6352,7 @@
x="0"
y="0"
posref="BL BL"
+ posparent=""
dblink=""
texture=""
tooltip=""
@@ -6317,6 +6361,7 @@
id="but_#id"
button_type="toggle_button"
posref="#posref"
+ posparent="but_#posparent"
x="#x"
y="#y"
tx_normal="w_button_filter_off.tga"
@@ -6343,6 +6388,7 @@
x="0"
y="0"
posref="BL BL"
+ posparent=""
dblink=""
texture=""
tooltip=""
@@ -6351,6 +6397,7 @@
id="but_#id"
button_type="toggle_button"
posref="#posref"
+ posparent="but_#posparent"
x="#x"
y="#y"
tx_normal="w_button_filter_off.tga"
@@ -6525,71 +6572,109 @@
texture="W_line_hor.tga" />
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/ryz/ryz_zzz_bazaar/compass.xml b/data/ryz/ryz_zzz_bazaar/compass.xml
index a88f49f4..fbc8495d 100644
--- a/data/ryz/ryz_zzz_bazaar/compass.xml
+++ b/data/ryz/ryz_zzz_bazaar/compass.xml
@@ -11,6 +11,15 @@
+
+
+
@@ -31,13 +40,30 @@
+ ondblclick_l="music_player" params_dblclick_l="song=#index" />
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -167,26 +217,30 @@
tooltip="uiMP3Prev" />
+
+ params_l="stop"
+ tooltip="uiMP3Stop" />
+
+
-
@@ -107,6 +106,9 @@
+
+
+
diff --git a/data/ryz/ryz_zzz_bazaar/interaction.lua b/data/ryz/ryz_zzz_bazaar/interaction.lua
index 9f672e96..bdf838f8 100644
--- a/data/ryz/ryz_zzz_bazaar/interaction.lua
+++ b/data/ryz/ryz_zzz_bazaar/interaction.lua
@@ -217,7 +217,7 @@ end
-- Is its level known (not too high ...)
-- Boss/Mini-bosses/Names colored ring
function game:updateTargetConsiderUI()
- --debugInfo("Updating consider widget")
+ -- debugInfo("Updating consider widget")
local targetWindow = getUI("ui:interface:target")
--
@@ -228,12 +228,14 @@ function game:updateTargetConsiderUI()
local wgToolTip = targetWindow:find("target_tooltip")
local wgPvPTag = targetWindow:find("pvp_tags")
local wgHeader = targetWindow:find("header_opened")
+ local wgLock = targetWindow:find("lock")
wgTargetSlotForce.active = true
wgImpossible.active = true
-- no selection ?
if twGetTargetLevel() == -1 then
+ wgLock.active = false
wgTargetSlotForce.active = false
wgTargetLevel.active = false
wgImpossible.active = false
@@ -254,20 +256,36 @@ function game:updateTargetConsiderUI()
wgPvPTag.active = false
wgHeader.h = 34;
+
+-- /luaScript getUI("ui:interface:target:header_opened:lock").active=true
+
-- if the selection is a player, then both the local & targeted player must be in PVP mode for the level to be displayed
if (twIsTargetPlayer()) then
-- don't display anything ...
+ wgLock.active = false
wgTargetSlotForce.active = false
wgTargetLevel.active = false
wgImpossible.active = false
wgSlotRing.active = false
wgToolTip.tooltip = ""
if twIsTargetInPVPMode() then
- debugInfo("target in pvp")
wgPvPTag.active = true
wgHeader.h = 56;
end
return
+ else
+ wgLock.active = false
+ local level = getDbProp(getDefine("target_player_level"))
+
+ if level == 2 then -- Locked by team of player
+ wgLock.active = true
+ wgLock.color = "50 250 250 255"
+ else
+ if level == 1 then -- Locked by another team
+ wgLock.active = true
+ wgLock.color = "250 50 50 255"
+ end
+ end
end
-- depending on the number of people in the group, set the max diff for visibility between player level
diff --git a/data/ryz/ryz_zzz_bazaar/inventory.xml b/data/ryz/ryz_zzz_bazaar/inventory.xml
index e9ff0719..2864894a 100644
--- a/data/ryz/ryz_zzz_bazaar/inventory.xml
+++ b/data/ryz/ryz_zzz_bazaar/inventory.xml
@@ -549,7 +549,7 @@
pop_min_h="240"
pop_max_w="920"
pop_max_h="1600"
- w="300"
+ w="400"
h="400"
movable="true"
active="false"
diff --git a/data/ryz/ryz_zzz_bazaar/map.lua b/data/ryz/ryz_zzz_bazaar/map.lua
new file mode 100644
index 00000000..609d18b2
--- /dev/null
+++ b/data/ryz/ryz_zzz_bazaar/map.lua
@@ -0,0 +1,42 @@
+--
+-- custom maps
+--
+
+if (game==nil) then
+ game= {};
+end
+
+-- alternative textures for maps
+game.mapTextures = {}
+-- game.mapTextures["zorai_map.tga"] = "tryker_map.tga"
+
+-- register alternative texture for map
+function game:setAltMap(mapName, altMap)
+ self.mapTextures[mapName] = altMap
+end
+
+-- remove alternative map texture
+function game:removeAltMap(mapName)
+ self.mapTextures[mapName] = nil
+end
+
+-- map = getUI("ui:interface:map:content:map_content:actual_map")
+function game:onLoadMap(map)
+ -- debugInfo("onLoadMap(id=".. map.id ..", texture=".. map.texture ..")");
+
+ -- if alt view not enabled
+ if getDbProp("UI:VARIABLES:SHOW_ALT_MAP") == 0 or map:isIsland() then
+ return
+ end
+
+ local texture = map.texture
+ if self.mapTextures[texture] ~= nil then
+ -- debugInfo("-- using ".. self.mapTextures[texture] .." for " .. texture)
+ return self.mapTextures[texture]
+ end
+end
+
+-- register map overrride
+-- game:setAltMap("fyros_map.tga", "fyros_map_sp.tga")
+
+