Jump to content

Changing BG's score board realm names / Меняем названия реалмов в таблице счета на БГ


Ink_Forever

Recommended Posts

Note: to make changes into .lua file open it with notepad. File can be changed and resaved (Ctrl+S) while in game. Type /reload to view the changes.
Заметка: чтобы делать изменения в .lua файле, откройте его с помощью блокнота. Его можно корректировать и пересохранять (Ctrl+S) находясь в игре. Пропишите /reload для просмотра изменений.

Lua to change usual realm names next to player name in BG's score board.
Variables to change: 
local newx5Realm, local newx100Realm, local newFunRealm, local newPlayerName.
In a current code realm names was simply shorten (PandaWoW Fun > Fun, PandaWoW x5 > x5).

You can leave them as "" (blank) to hide. Same about newPlayerName.

 

Луа для замены привычных названий реалма после имени игрока в таблице счета на БГ.

Переменные для замены: local newx5Realm, local newx100Realm, local newFunRealm, local newPlayerName.
В текущем коде названия реалмов просто сокращены (PandaWoW Fun > Fun, PandaWoW x5 > x5).
Можете оставить их как "" (пустыми), чтобы скрыть. То же с newPlayerName.

hooksecurefunc("WorldStateScoreFrame_Update",function()
local playerName = UnitName("player")
local homeRealm = "-"..GetRealmName()
local newHomeRealm
local x5Realm = "-PandaWoW x5"
local x100Realm = "-PandaWoW x100"
local xFunRealm = "-PandaWoW Fun"
local newx5Realm = "-x5"		-- change me
local newx100Realm = "-x100"		-- change me
local newFunRealm = "-Fun"		-- change me
local newPlayerName = "You"		-- change me
	if ( homeRealm == x5Realm ) then
		newHomeRealm = newx5Realm
	elseif ( homeRealm == x100Realm ) then
		newHomeRealm = newx100Realm
	elseif ( homeRealm == xFunRealm ) then
		newHomeRealm = newFunRealm
	else
		newHomeRealm = ""
	end
	for i=1,MAX_WORLDSTATE_SCORE_BUTTONS do
	local b=_G["WorldStateScoreButton"..i].name 
		if b.name then 
			if string.find(b.name,xFunRealm) then 
				b.text:SetText(string.gsub(b.name," ?-.*","")..newFunRealm)
			elseif string.find(b.name,x100Realm) then 
				b.text:SetText(string.gsub(b.name," ?-.*","")..newx100Realm)
			elseif string.find(b.name,x5Realm) then 
				b.text:SetText(string.gsub(b.name," ?-.*","")..newx5Realm)
			else
				if ( b.name:gsub(" ?-.*","")==playerName ) then 
					b.text:SetText(newPlayerName..newHomeRealm)
					--b.text:SetText(newPlayerName)
				else
					b.text:SetText(string.gsub(b.name," ?-.*","")..newHomeRealm)
				end
			end
		end
	end
end) 

Here 1st row is active (rn it returns 'player - realm'), 2nd is not ("--" makes the rest of the line inactive i.e. commented).
Здесь 1 строка активна (сейчас выводит "имя - реалм"), 2 строка неактивна ("--" открывает комментарий = отключает остаток кода на строке).

b.text:SetText(newPlayerName..newHomeRealm)
--b.text:SetText(newPlayerName)


You can comment 1st row the same way and make 2nd work if you dont need realm name next to your player name.

Можно так же закоментить 1 строку и включить вторую, если вам не нужен реалм рядом с вашим именем.

--b.text:SetText(newPlayerName..newHomeRealm)
b.text:SetText(newPlayerName)


If you don't event want to change your name (playing on multiple characters i suggest) set local newPlayerName to player name like that:

Если вы вообще не хотите менять ваше имя в таблице (например играя на нескольких персонажах) задайте local newPlayerName как обычное имя:

local newPlayerName = playerName

Download from drive.google | Скачать с drive.google 

https://www.virustotal.com 

Preview / превью
image.png.faa008b36c1a29d82d6ec670fa5b360a.png


Post errors & feedback here / по ошибкам и обратной связи сюда. 

Edited by Ink_Forever
  • Like 1
Link to comment
Share on other sites

Лучший. Жаль,я не пвпшер

Link to comment
Share on other sites

2 hours ago, Ink_Forever said:
hooksecurefunc("WorldStateScoreFrame_Update",function()
local playerName = UnitName("player")
local xFunRealm = "PandaWoW Fun"
local x5Realm = "PandaWoW x5"
local newFunRealm = "Fun"	-- меняй меня / change me
local newx5Realm = "x5"		-- меняй меня / change me
local newPlayerName = "You"	-- меняй меня / change me
local flag = newx5Realm

Есть вероятность, что локальные переменные лучше было вынести за функцию, чтобы они не переопределялись при каждом апдейте таблицы, но я валенок, мне можно. Да и таблица апдейтится по дефолту я не помню как часто, при каждом открытии таблицы + раз в 2 секунды при открытой таблице + при каждом изменении в составе команды при открытой таблице + при переключении между вкладками. Кароче вы не теряете даже 0.5 фпс, если дьявольски тыкаете на вкладки 5 раз в секунду, меняя состав команд. Сборщик мусора должен справиться, я с ним давно знаком, верьте в него).
Хотя они там должны были бы быть уже не локальными и их надо было бы все равно скопить. Может быть все и так хорошо. Забейте.
 

upd. Перебдил, переписал, как моя первая классная учила. Не уверен, что в этом был смысл. Перезалил v2.

Edited by Ink_Forever
Link to comment
Share on other sites

Во-первых, я хоть и не силен в этих ваших луа, но я уже вижу, что

эта хрень не работает.

Во-вторых, каво?

В 18.04.2023 в 00:24, Ink_Forever сказал:

Есть вероятность, что локальные переменные лучше было вынести за функцию, чтобы они не переопределялись при каждом апдейте таблицы, но я валенок, мне можно. Да и таблица апдейтится по дефолту я не помню как часто, при каждом открытии таблицы + раз в 2 секунды при открытой таблице + при каждом изменении в составе команды при открытой таблице + при переключении между вкладками. Кароче вы не теряете даже 0.5 фпс, если дьявольски тыкаете на вкладки 5 раз в секунду, меняя состав команд. Сборщик мусора должен справиться, я с ним давно знаком, верьте в него).
Хотя они там должны были бы быть уже не локальными и их надо было бы все равно скопить. Может быть все и так хорошо. Забейте.
 

upd. Перебдил, переписал, как моя первая классная учила. Не уверен, что в этом был смысл. Перезалил v2.

Link to comment
Share on other sites

34 minutes ago, The_Zealot said:

Во-первых, я хоть и не силен в этих ваших луа, но я уже вижу, что эта хрень не работает.

Перезалил исходную в теории рабочую. Спасибо.

34 minutes ago, The_Zealot said:

Во-вторых, каво?

Где?

Edited by Ink_Forever
Link to comment
Share on other sites

31 минуту назад, Ink_Forever сказал:

Если работает

Я без понятия, но то, из-за чего скрипт должен работать через задницу, как было, так и осталось

Edited by The_Zealot
Link to comment
Share on other sites

2 minutes ago, The_Zealot said:

как было, так и осталось

Выложенный луа работает на х5 и фане. Но у меня английский клиент и я пока без особых идей, как это может влиять. Завтра проверю на ру-клиенте.

Link to comment
Share on other sites

Just now, The_Zealot said:

Даю подсказку. Дело не в ру-клиенте

Сначала я определяю всем homeRealm как x5. Если при обновлении таблицы клиент проставил хоть кому-то в таблице приписку реалма "x5", значит, х5 - это не твой реалм и я меняю твой homeRealm на Fun. Соответственно всем таким же как ты (без приписки) проставляется Fun, остальные уже получили свои х5.
Предвижу баг, когда в таблице в какой-то момент остались только игроки с фана. При апдейте не осталось игроков с х5 и homeRealm переопределяется как х5. Или все игроки с х5 за 1 апдейт заменелись на игроков с фана. Кароче код с коленки, но за 2 дня так не стрелял. Завтра напишу поумнее, наверно 😄

Link to comment
Share on other sites

12 минут назад, Ink_Forever сказал:

Сначала я определяю всем homeRealm как x5. Если при обновлении таблицы клиент проставил хоть кому-то в таблице приписку реалма "x5", значит, х5 - это не твой реалм и я меняю твой homeRealm на Fun. Соответственно всем таким же как ты (без приписки) проставляется Fun, остальные уже получили свои х5.
Предвижу баг, когда в таблице в какой-то момент остались только игроки с фана. При апдейте не осталось игроков с х5 и homeRealm переопределяется как х5. Или все игроки с х5 за 1 апдейт заменелись на игроков с фана. Кароче код с коленки, но за 2 дня так не стрелял. Завтра напишу поумнее, наверно 😄

Молодец, догадался. Жаль только, что мне пришлось ради этого в игру заходить, а если ты только "предвидишь баг", значит скрины не разглядывал. :PepeBruh:

Link to comment
Share on other sites

Just now, The_Zealot said:

Молодец, догадался. Жаль только, что мне пришлось ради этого в игру заходить, а если ты только "предвидишь баг", значит скрины не разглядывал. :PepeBruh:

Это всё ещё только теория. Скрины разглядывал. Сначала ничего не понял, потом ничего не понял, потом пошел искать абобу на х5 и на фане, потом понял.
Скрины показывают, что что-то не так, но не больше. Т.к. код меняет всем реалмы (к тому же делает это неправильно, в чем и проблема), то по скринам я не могу сказать, сколько на них реальных игроков с фана и сколько с х5. К тому же не в пользу описанной мною причины то, что у всех игроков с фана стоял бы реалм х5, а не у части. Кароче я нашел другой баг, который еще не случился, но не тот, который у тебя на скрине. В любом случае спасибо за потраченное тобою время.

Link to comment
Share on other sites

1 минуту назад, Ink_Forever сказал:

Это всё ещё только теория. Скрины разглядывал. Сначала ничего не понял, потом ничего не понял, потом пошел искать абобу на х5 и на фане, потом понял.
Скрины показывают, что что-то не так, но не больше. Т.к. код меняет всем реалмы (к тому же делает это неправильно, в чем и проблема), то по скринам я не могу сказать, сколько на них реальных игроков с фана и сколько с х5. К тому же не в пользу описанной мною причины то, что у всех игроков с фана стоял бы реалм х5, а не у части. Кароче я нашел другой баг, который еще не случился, но не тот, который у тебя на скрине. В любом случае спасибо за потраченное тобою время.

Ты очень скомкано и непонятно излагаешь мысли. Скрины лишь демонстрируют, что реалм определяется неправильно, а вот почему это так - тебе была задачка на подумать.

Проблему ты нашел - это главное. Правильно ли ты ее понял - это другой вопрос.

 

ЗЫ. Список игроков слева как бы намекает, что абобы нет на БГ, его искать не нужно было 

Link to comment
Share on other sites

Утром перезалил, сейчас работает как надо, проверил на фане и х5.
Заменил костыль, добывающий реалм игрока по уже проставленным реалмам на других игроках в таблице простым GetRealmName().

18 hours ago, Ink_Forever said:

Сначала я определяю всем homeRealm как x5. Если при обновлении таблицы клиент проставил хоть кому-то в таблице приписку реалма "x5", значит, х5 - это не твой реалм и я меняю твой homeRealm на Fun. Соответственно всем таким же как ты (без приписки) проставляется Fun, остальные уже получили свои х5.

Теперь код будет работать с будущим добавлением х100.

Link to comment
Share on other sites

8 минут назад, Ink_Forever сказал:

Заменил костыль

Заменил один костыль другим, но главное работающим

Я бы так написал

 :PepeRofl:

Link to comment
Share on other sites

21 минуту назад, Ink_Forever сказал:

Еще есть анонимная борда. Пока не заливаю. Попробую вывести иконку спека справа от класса

image.thumb.png.4f251c4ef4becd24639711aa2c6af2af.png

Насколько знаю,аддоны по типу battleground targets откуда-то берут спеки вражеской команды. По этому,думаю. Это вполне реально

Link to comment
Share on other sites

а.. в чем смысл менять название ника, реалма в таблице бг?

эти изменения буду видны всем или только у себя?  

Edited by dsdwa
Link to comment
Share on other sites

34 минуты назад, dsdwa сказал:

а.. в чем смысл менять название ника, реалма в таблице бг?

эти изменения буду видны всем или только у себя?  

 

Визуал только для тебя

Link to comment
Share on other sites

6 hours ago, Sqeer said:

аддоны по типу battleground targets откуда-то берут спеки вражеской команды

Ну да, из таблицы, больше неоткуда) 
На вов вики и им прочим везде не пандарейская инфа по api. Нашел что хотел в выгруженных исходниках
PandaWoW 5.4.8\BlizzardInterfaceCode\Interface\FrameXML\WorldStateFrame.lua

name, killingBlows, honorableKills, deaths, honorGained, faction, race, class, classToken, damageDone, healingDone, bgRating, ratingChange, preMatchMMR, mmrChange, talentSpec = GetBattlefieldScore(index);

image.thumb.png.0d3d155dfe1302ce949a689fdc65719f.png

Завозим иконку спека и я доволен. Столбцы можно двинуть при желании. Ну и вернуть ники место классов, если вы не культисты вроде меня.

image.thumb.png.9cf9e5421c4444f6ef37cffe5deb5500.png

Можно заметить, что шрифты немного отличаются на одной и той же раскладке в ру/ен никах (см. на 2 соседских гвард друля и на 2 соседских балонов). Скорее всего проблема будет только на англ. клиенте и вряд ли как-то фиксится. На 1 скрине всё в английской раскладке и, как видно, ничего не плящет.

 

upd. Понял почему так происходит. Все англ. ники по-дефолту нормальные, но некоторые англ ники упоротые как русские. В то же время некоторые русские нормальные как англ и все русские упороты по-дефолту (понимайте как хотите). Связано с тем, что русские попадают на слоты, форматированные под англ и наоборот. Осталось найти способ форматировать слоты. На практике надо как-то сбрасывать формат слота при каждом апдейте, чтобы он менялся под раскладку той строки, которая туда попадет. Ну кароче ясно, что параллельно работать со слотом в таблице и со строками было не лучшей идеей. Ща всё сплющим всё будет как положено - все русские упороты, все англ в норме.

Edited by Ink_Forever
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...