Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Event admin- Panel zarządzania eventami

Nieaktywny

Featured Replies

Opublikowano

@Aktualizacja do Python3

https://test.sharegon.pl/topic/1833-event-admin-panel-zarz%C4%85dzania-eventami/#findComment-17010

Cześć. Wrzucam panel do zarządzania eventami na podstawie kalendarza od dracarys. W paczke "Emoji" i "Smooth_Scroll" potrzebne do prawidlowego dzialania. Panel początkowo pisany na plikach arezzo i przeniesiony na martysame5.8.
#Poprawione LS
#Edycja odbywa się na zasadzie wyboru dnia do modyfikacji, więc musilem zmienic "def onclick" na "def example" do obslugi kliknięcia ikony przez graczy
Trochę tam trzeba jeszcze poprawić, ale jak ktoś potrzebuje tego to sobie ogarnie.

Jakby ktoś potrzebowal pomocy przy dodaniu to śmialo pisać w czym problem i pomogę.

@edit, mała aktualizacja, brakująca klasa BorderA

//Dodaj do ui.py

class BorderA(Window):

CORNER_WIDTH = 16

CORNER_HEIGHT = 16

LINE_WIDTH = 16

LINE_HEIGHT = 16

BOARD_COLOR = grp.GenerateColor(0.17, 0.027, 0.0, 0.70)

LT = 0

LB = 1

RT = 2

RB = 3

L = 0

R = 1

T = 2

B = 3

def init(self, layer = "UI"):

Window.__init__(self, layer)

CornerFileNames = [ "d:/ymir work/ui/pattern/border_a/border_a_"+dir+".tga" for dir in ["Left_Top","Left_Bottom","Right_Top","Right_Bottom"] ]

LineFileNames = [ "d:/ymir work/ui/pattern/border_a/border_a_"+dir+".tga" for dir in ["Left","Right","Top","Bottom"] ]

#BaseFileName = "d:/ymir work/ui/pattern/border_a/border_center.tga"

self.Corners = []

for fileName in CornerFileNames:

Corner = ExpandedImageBox()

Corner.AddFlag("not_pick")

Corner.LoadImage(fileName)

Corner.SetParent(self)

Corner.SetPosition(0, 0)

Corner.Show()

self.Corners.append(Corner)

self.Lines = []

for fileName in LineFileNames:

Line = ExpandedImageBox()

Line.AddFlag("not_pick")

Line.LoadImage(fileName)

Line.SetParent(self)

Line.SetPosition(0, 0)

Line.Show()

self.Lines.append(Line)

self.Base = ExpandedImageBox()

self.Base.AddFlag("not_pick")

self.Base.LoadImage("d:/ymir work/ui/pattern/border_a/border_a_center.tga")

self.Base.SetParent(self)

self.Base.SetPosition(self.CORNER_WIDTH, self.CORNER_HEIGHT)

self.Base.Show()

self.Lines[self.L].SetPosition(0, self.CORNER_HEIGHT)

self.Lines[self.T].SetPosition(self.CORNER_WIDTH, 0)

def del(self):

Window.__del__(self)

def SetSize(self, width, height):

width = max(self.CORNER_WIDTH*2, width)

height = max(self.CORNER_HEIGHT*2, height)

Window.SetSize(self, width, height)

self.Corners[self.LB].SetPosition(0, height - self.CORNER_HEIGHT)

self.Corners[self.RT].SetPosition(width - self.CORNER_WIDTH, 0)

self.Corners[self.RB].SetPosition(width - self.CORNER_WIDTH, height - self.CORNER_HEIGHT)

self.Lines[self.R].SetPosition(width - self.CORNER_WIDTH, self.CORNER_HEIGHT)

self.Lines[self.B].SetPosition(self.CORNER_HEIGHT, height - self.CORNER_HEIGHT)

verticalShowingPercentage = float((height - self.CORNER_HEIGHT*2) - self.LINE_HEIGHT) / self.LINE_HEIGHT

horizontalShowingPercentage = float((width - self.CORNER_WIDTH*2) - self.LINE_WIDTH) / self.LINE_WIDTH

self.Lines[self.L].SetRenderingRect(0, 0, 0, verticalShowingPercentage)

self.Lines[self.R].SetRenderingRect(0, 0, 0, verticalShowingPercentage)

self.Lines[self.T].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)

self.Lines[self.B].SetRenderingRect(0, 0, horizontalShowingPercentage, 0)

if self.Base:

self.Base.SetRenderingRect(0, 0, horizontalShowingPercentage, verticalShowingPercentage)

def ShowInternal(self):

self.Base.Show()

for wnd in self.Lines:

wnd.Show()

for wnd in self.Corners:

wnd.Show()

def HideInternal(self):

self.Base.Hide()

for wnd in self.Lines:

wnd.Hide()

for wnd in self.Corners:

wnd.Hide()

Dodaj za innymi "elif"

elif Type == "border_a":

parent.Children[Index] = BorderA()

parent.Children[Index].SetParent(parent)

self.LoadElementBorderA(parent.Children[Index], ElementValue, parent)

#Dodaj za

def LoadElementBoardWithTitleBar(self, window, value, parentWindow):

if False == self.CheckKeyList(value["name"], value, self.BOARD_WITH_TITLEBAR_KEY_LIST):

return False

window.SetSize(int(value["width"]), int(value["height"]))

window.SetTitleName(value["title"])

self.LoadDefaultData(window, value, parentWindow)

return True

//To

def LoadElementBorderA(self, window, value, parentWindow):

if False == self.CheckKeyList(value["name"], value, self.BOARD_KEY_LIST):

return False

window.SetSize(int(value["width"]), int(value["height"]))

self.LoadDefaultData(window, value, parentWindow)

return True


Haslo do archiwum:

sharegon123


image.png

🔐 Ukryta Treść 🔐

Edytowane przez wojciech74

  • 3 tygodnie później...
Opublikowano

wygląda fajnie, trzeba sprawdzić czy działa

  • 4 miesiące temu...
Opublikowano
15 godzin temu, ExoCarossa napisał(a):

protip dla osób które mają starsze source typu tmp4, terenzo itp. Na starszych src żeby dodać będzie trochę zmieniany kodu (odpuściłem po 1/3 dodawania)

Proszę nie odpuszczać i skończyć co Pan zaczął - pozdrawiam.

Opublikowano
  • Autor
W dniu 24.08.2025 o 18:04, ExoCarossa napisał(a):

protip dla osób które mają starsze source typu tmp4, terenzo itp. Na starszych src żeby dodać będzie trochę zmieniany kodu (odpuściłem po 1/3 dodawania)

Co dokładnie? Bo ja to na Martysamie robiłem i też musiałem pozmieniać parę rzeczy, za jakiś czas będę się przenosił na czyste src to wyłapię co i gdzie trzeba zrobić od zera.

  • 2 miesiące temu...
Opublikowano
  • Autor

Aktualizacja(Python3)

uieventmanager.py:
  -  Konsolidacja 13 klas w 2 klasy : GenericListItem, GenericListWindow
  -  Dynamiczne mapowanie pól wartości - pola wyświetlane od początku UI (pozycja 0,1,2,3)
  -  DOUBLE_ eventy używają value3 z polem "Drop Lucky" na pierwszej pozycji UI
  -  MOONLIGHT_EVENT używa value3 z polem "Drop Lucky" na pierwszej pozycji UI
  -  Poprawka wartości DOUBLE_ event - wczytywanie selectedDropLucky z value3
  -  Naprawa błędu SetSelectedMapIndex - poprawna obsługa argumentów
  -  Usunięcie ustawiania domyślnych czasów z metody Open()
  -  Jeden UIScript dla list wyboru

uieventcalendar.py:
  -  Tooltip z wartościami DOUBLE_ event - wyświetlanie value3 (drop lucky)
  -  Tooltip z wartością MOONLIGHT_EVENT - wyświetlanie value3 (drop lucky)
  -  Formatowanie tooltip: "Event Name (X%)" dla eventów z drop lucky
  -  MultiLine dla pływającej ikony(tekst w jednej lini wyjeżdżał poza okno gry, można przesunąć, ale niezbyt ładnie to wygląda)

interfacemodule.py:
  -  Naprawa synchronizacji czasów - użycie startRealTime/endRealTime zamiast sformatowanego tekstu z serwera
  -  Konwersja timestampów na lokalny czas: time.strftime() z time.localtime() klienta

interfacemodule.py

        def AppendEvent(self, dayIndex, eventID, eventIndex, startTime, endTime, empireFlag, channelFlag, value0,
                        value1, value2, value3, startRealTime, endRealTime, isAlreadyStart):
            self.MakeEventCalendar()
            self.MakeEventIcon()
            if startRealTime != 0:
                startRealTime += app.GetGlobalTimeStamp()
            if endRealTime != 0:
                endRealTime += app.GetGlobalTimeStamp()

            import time
            if startRealTime != 0:
                correctStartTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(startRealTime))
            else:
                correctStartTime = startTime

            if endRealTime != 0:
                correctEndTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(endRealTime))
            else:
                correctEndTime = endTime

            uiEventCalendar.SetServerData(dayIndex, eventID, eventIndex, correctStartTime, correctEndTime, empireFlag, channelFlag,
                                          value0, value1, value2, value3, startRealTime, endRealTime, isAlreadyStart)

uieventcalendar.py uieventmanager.py genericlistwindow.py

  • 3 miesiące temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.