- Katılım
- 26 Eki 2021
- Konular
- 196
- Mesajlar
- 910
- Çözüm
- 6
- Online süresi
- 3mo 6d
- Reaksiyon Skoru
- 962
- Altın Konu
- 39
- Başarım Puanı
- 184
- Yaş
- 28
- MmoLira
- 5,274
- DevLira
- 36
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
Parti penceresinde, çok fazla parti üyesi olduğunda ekrandan taşma sorununu gideren bir düzeltme.
Bu düzenleme, orijinal parti penceresi görünümünü ve stilini korurken, parti çok büyüdüğünde üyelerin ekran dışına taşması sorununu çözer.
Ne yapıyor?
- Fazladan parti üyelerini ekran dışına taşırmak yerine kaydırılabilir bir listeye ekler.
- Kaydırma (scroll) desteği ekler ve kaynak kodunda belirlenen limite göre aynı anda kaç üyenin görüneceğini ayarlamanıza olanak tanır (örneğin 6 üye veya istediğiniz başka bir sayı).
Not
Bu düzenleme, orijinal parti penceresi görünümünü ve stilini korurken, parti çok büyüdüğünde üyelerin ekran dışına taşması sorununu çözer.
Kod:
// Locale_inc.h:
#define ENABLE_FIX_PARTY_EXTEND
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
// PythonApplicationModule.cpp:
// Add / keep:
#ifdef ENABLE_FIX_PARTY_EXTEND
PyModule_AddIntConstant(poModule, "ENABLE_FIX_PARTY_EXTEND", 1);
#else
PyModule_AddIntConstant(poModule, "ENABLE_FIX_PARTY_EXTEND", 0);
#endif
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------
// root/uiparty.py
// Search:
self.__LoadBoard()
// Add BEFORE:
if app.ENABLE_FIX_PARTY_EXTEND:
self.parentWindow = None
------------------------------------------------------------------------------------------
// Search:
self.leaderButton = None
// Add BEFORE:
if app.ENABLE_FIX_PARTY_EXTEND:
self.parentWindow = None
------------------------------------------------------------------------------------------
// Search:
(x, y) = self.GetGlobalPosition()
xPos = x + 110
// Add AFTER:
if app.ENABLE_FIX_PARTY_EXTEND and self.parentWindow:
if len(self.parentWindow.partyMemberInfoBoardList) > self.parentWindow.MAX_VISIBLE_MEMBERS:
xPos += 20
------------------------------------------------------------------------------------------
// Search:
def OnAffectOverOut(self, index):
self.affectToolTip.HideToolTip()
// Add AFTER:
if app.ENABLE_FIX_PARTY_EXTEND:
def SetParentWindow(self, wnd):
self.parentWindow = wnd
def UpdateStateButtonsPosition(self):
if not self.isShowStateButton:
return
if not self.IsShow():
for button in self.stateButtonDict.values():
button.Hide()
return
if not any(button.IsShow() for button in self.stateButtonDict.values()):
self.__ShowStateButton()
return
(base_x, base_y) = self.GetGlobalPosition()
xPos = base_x + 110
if self.parentWindow and len(self.parentWindow.partyMemberInfoBoardList) > self.parentWindow.MAX_VISIBLE_MEMBERS:
xPos += 20
skillLevel = self.__GetPartySkillLevel()
if skillLevel >= 10 and self.stateButtonDict.has_key(player.PARTY_STATE_ATTACKER):
button = self.stateButtonDict[player.PARTY_STATE_ATTACKER]
if button.IsShow():
button.SetPosition(xPos, base_y)
xPos += 23
if skillLevel >= 20 and self.stateButtonDict.has_key(player.PARTY_STATE_BERSERKER):
button = self.stateButtonDict[player.PARTY_STATE_BERSERKER]
if button.IsShow():
button.SetPosition(xPos, base_y)
xPos += 23
if skillLevel >= 20 and self.stateButtonDict.has_key(player.PARTY_STATE_TANKER):
button = self.stateButtonDict[player.PARTY_STATE_TANKER]
if button.IsShow():
button.SetPosition(xPos, base_y)
xPos += 23
if skillLevel >= 25 and self.stateButtonDict.has_key(player.PARTY_STATE_BUFFER):
button = self.stateButtonDict[player.PARTY_STATE_BUFFER]
if button.IsShow():
button.SetPosition(xPos, base_y)
xPos += 23
if skillLevel >= 35 and self.stateButtonDict.has_key(player.PARTY_STATE_SKILL_MASTER):
button = self.stateButtonDict[player.PARTY_STATE_SKILL_MASTER]
if button.IsShow():
button.SetPosition(xPos, base_y)
xPos += 23
if skillLevel >= 40 and self.stateButtonDict.has_key(player.PARTY_STATE_DEFENDER):
button = self.stateButtonDict[player.PARTY_STATE_DEFENDER]
if button.IsShow():
button.SetPosition(xPos, base_y)
xPos += 23
if self.stateButtonDict.has_key(self.MEMBER_BUTTON_EXPEL):
button = self.stateButtonDict[self.MEMBER_BUTTON_EXPEL]
if button.IsShow():
button.SetPosition(xPos, base_y)
------------------------------------------------------------------------------------------
// Search:
self.__CreatePartyMenuButton()
// Add BEFORE:
if app.ENABLE_FIX_PARTY_EXTEND:
self.partyScrollOffset = 0
self.MAX_VISIBLE_MEMBERS = 6
self.isRefreshScrollBar = True
self.scrollBar = ui.ScrollBar()
self.scrollBar.SetParent(self)
self.scrollBar.SetScrollEvent(ui.__mem_func__(self.OnScrollBarChange))
self.scrollBar.AddFlag("float")
self.scrollBar.Hide()
------------------------------------------------------------------------------------------
// Search:
self.partyMenu = None
// Add AFTER:
if app.ENABLE_FIX_PARTY_EXTEND:
self.isRefreshScrollBar = True
self.scrollBar = None
------------------------------------------------------------------------------------------
// Search:
board.SetCharacterPID(pid)
// Add AFTER:
if app.ENABLE_FIX_PARTY_EXTEND:
board.SetParentWindow(self)
------------------------------------------------------------------------------------------
// Search:
def __ArrangePartyMemberInfoBoard(self):
// REPLACE the whole function with:
def __ArrangePartyMemberInfoBoard(self):
if app.ENABLE_FIX_PARTY_EXTEND:
if not self.partyMemberInfoBoardList:
self.SetSize(PartyMemberInfoBoard.BOARD_WIDTH, 20)
self.partyScrollOffset = 0
self.scrollBar.Hide()
return
rowHeight = self.partyMemberInfoBoardList[0].GetHeight() + 2
totalCount = len(self.partyMemberInfoBoardList)
needsScroll = totalCount > self.MAX_VISIBLE_MEMBERS
visibleCount = min(totalCount, self.MAX_VISIBLE_MEMBERS)
visibleHeight = 20 + visibleCount * rowHeight
buttonHeight = self.partyMenuButton.GetHeight()
windowHeight = visibleHeight + buttonHeight + 4
extraWidth = 12 if needsScroll else 0
self.SetSize(PartyMemberInfoBoard.BOARD_WIDTH + extraWidth, windowHeight)
if needsScroll:
maxOffset = totalCount - self.MAX_VISIBLE_MEMBERS
self.partyScrollOffset = max(0, min(self.partyScrollOffset, maxOffset))
else:
self.partyScrollOffset = 0
startIndex = self.partyScrollOffset
endIndex = startIndex + self.MAX_VISIBLE_MEMBERS
yPos = 20
for index, board in enumerate(self.partyMemberInfoBoardList):
if startIndex <= index < endIndex:
board.SetPosition(0, yPos)
board.Show()
yPos += rowHeight
else:
board.Hide()
board.UpdateStateButtonsPosition()
board.UpdateRect()
if needsScroll:
if self.isRefreshScrollBar:
barX = PartyMemberInfoBoard.BOARD_WIDTH + 2
self.scrollBar.SetPosition(barX, 20)
self.scrollBar.SetScrollBarSize(max(visibleHeight - 20, 1))
self.scrollBar.SetMiddleBarSize(float(self.MAX_VISIBLE_MEMBERS) / float(totalCount))
totalSteps = totalCount - self.MAX_VISIBLE_MEMBERS
self.scrollBar.SetScrollStep(float(4.0) / float(totalSteps))
self.scrollBar.LockScroll()
self.scrollBar.SetPos(float(self.partyScrollOffset) / float(totalSteps))
self.scrollBar.UnlockScroll()
self.scrollBar.Show()
else:
self.scrollBar.Hide()
buttonY = visibleHeight + 2
xOffset = -5 if needsScroll else 0
self.partyMenuButton.SetWindowVerticalAlignTop()
self.partyMenuButton.SetPosition(xOffset, buttonY)
self.partyMenuButton.SetTop()
(_, yGlobal) = self.GetGlobalPosition()
self.partyMenu.SetPosition(10, yGlobal + buttonY + buttonHeight + 4)
return
else:
count = 0
newHeight = 20
for board in self.partyMemberInfoBoardList:
board.SetPosition(0, count * (board.GetHeight() + 2))
count += 1
newHeight += board.GetHeight() + 2
self.SetSize(PartyMemberInfoBoard.BOARD_WIDTH, newHeight)
(x, y) = self.GetGlobalPosition()
self.partyMenu.SetPosition(10, y + newHeight + 2)
------------------------------------------------------------------------------------------
// Add at the END of the page:
if app.ENABLE_FIX_PARTY_EXTEND:
def OnMouseWheel(self, delta):
if not self.partyMemberInfoBoardList:
return False
if not self.scrollBar or not self.scrollBar.IsShow():
return False
return self.scrollBar.OnMouseWheel(delta)
def OnScrollBarChange(self):
maxOffset = max(0, len(self.partyMemberInfoBoardList) - self.MAX_VISIBLE_MEMBERS)
newOffset = int(float(maxOffset) * self.scrollBar.GetPos() + 0.5)
newOffset = max(0, min(newOffset, maxOffset))
if newOffset != self.partyScrollOffset:
self.partyScrollOffset = newOffset
self.isRefreshScrollBar = False
self.__ArrangePartyMemberInfoBoard()
self.isRefreshScrollBar = True
self.UpdateRect()
- Katılım
- 13 Şub 2016
- Konular
- 152
- Mesajlar
- 1,720
- Çözüm
- 14
- Online süresi
- 1mo 7d
- Reaksiyon Skoru
- 802
- Altın Konu
- 2
- Başarım Puanı
- 234
- MmoLira
- 8,059
- DevLira
- 142
Diğer paylaşımlarını bekliyorum, Farklı şeyler çıkıcak gibi.
Paylaşım için teşekkürler.
Paylaşım için teşekkürler.
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 1, Misafir: 0)
Benzer konular
- Cevaplar
- 8
- Görüntüleme
- 391
- Cevaplar
- 13
- Görüntüleme
- 1K
- Cevaplar
- 9
- Görüntüleme
- 742
- Cevaplar
- 6
- Görüntüleme
- 1K



