Avatar utilizator
Vaynz
Developer
Developer
  • Mesaje: 47
    Membru din: 30 Sep 2024, 19:59
  • Reacții: 413
  • Mesaje utile: 0
  • Status: nimic interesant
    Server: -
  • Regat: Chunjo
  • [ID Discord]
  • Medalii

    Avatar utilizator
    Vaynz
    Developer
    Developer
    *Descriere:

    Sistem setari / config nou - Design Elveron. Puteti combina toate setarile aici (Optiuni Joc + Optiuni Sistem)


    Atentie! Inainte sa bagi acest sistem citeste comentariul de mai jos!!
    Foarte important!!
    game-options-elveron-t2280.html#p7629


    06-10-2026, 01-22-16.png

    Easy to manage categories, you just need to add it just like this:
    Code:
    option_data = [
        {
            "category": "Performance", # AdvancedGameOptions_0.py
            "subcategories": []
        },
        {
            "category": "Interface", # AdvancedGameOptions_1.py
            "subcategories": []
        },
        {
            "category": "Game", # AdvancedGameOptions_2.py
            "subcategories": []
        },
        {
            "category": "Environment", # AdvancedGameOptions_3.py
            "subcategories": []
        },
        {
            "category": "Sound", # AdvancedGameOptions_4.py
            "subcategories": []
        }
    ]
    After that, you just create a py file in uiscript/advanced_game_options and name it advancedgameoptions_<category index>.py
    The last step would be to add an icon for the category in ui/game/advanced_game_options/category_icons/

    The subcategories are automatically generated from the category UIScript file.

    Easy as that
    *Poze / Video (obligatoriu):


    *Link download:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.

    Nou Cum descarc de pe TeraBox?

    Afișează detalii Ascunde detalii
    • Este asemănător cu Mega.nz
    • Instalați-vă clientul lor de Download de aici
    • Faceți-vă un cont (vă puteți loga cu Facebook / Google / etc)
    • Nou Dacă nu vreți să descărcați clientul de Download, folosiți acest site
    • Gata! Acum puteți descărca resursele rapid & simplu.

    De ce folosim TeraBox?

    • Este gratuit
    • Primești 1TB de spațiu gratuit la orice cont creat!
    • Este ușor de folosit și varianta premium este foarte ieftină
    • Fișierele nu sunt șterse niciodată
    TeraBox logo
    Avatar utilizator
    Lugh
    Developer
    Developer
  • Mesaje: 59
    Membru din: 07 Noi 2024, 20:50
  • Reacții: 1845
  • Mesaje utile: 0
  • Status: Nemurirea sufletului
    Server: -
  • Regat: Jinno
  • [ID Discord]
  • Medalii

    Avatar utilizator
    Lugh
    Developer
    Developer

    Mesaj

    Sunt cateva functii lipsa daca ai vrea sa le lasi, e vorba de functiile pentru text_x/y, calculateRect , anumite dependente care nu sunt specificate in tutorial, personal am avut de unde sa fac rost in afara de functiile de text_x/y :)
    Avatar utilizator
    SCOOB
    Administrator
    Administrator
  • Mesaje: 4892
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 118656
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Avatar utilizator
    SCOOB
    Administrator
    Administrator

    Mesaj

    Lugh scrie: ↑ Sunt cateva functii lipsa daca ai vrea sa le lasi, e vorba de functiile pentru text_x/y, calculateRect , anumite dependente care nu sunt specificate in tutorial, personal am avut de unde sa fac rost in afara de functiile de text_x/y :)
    Mai jos aveti completari pentru a face sistemul complet functional! :)

    - In primul rand, este necesar sa instalati add-on-ul lui Mali "Clipmask" - Official Clip Masking [REVERSED] :
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    - Dupa care faceti ce e in arhiva din postarea lui @xarazel

    - Apoi, revino la comentariul asta si fa ce e mai jos. Vei gasi functiile lipsa + 3 fix-uri.

    Lipsa functii:

    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Pentru eroarea:
    'Button' object has no attribute 'SetTextAlignLeft'

    Adaugati in class Button:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    Rezolvari probleme

    1) Animatie text:
    Deschidem uiadvancedoptions.py si cautam:
    Code:
    def OnUpdate(self):
    Mai jos gasim si stergem:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    2) Butoanele nu au clipmask

    GIF cu problema: https://gyazo.com/28f00b888ceb98f83342f6f1e941acfc

    Rezolvare - deschidem uiadvanced...py si cautam:
    Code:
                elif isinstance(child, ui.ToggleButton) or isinstance(child, ui.RadioButton) or isinstance(child, ui.Button)):
    Inlocuim cu:
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.


    3) Se strica clipmask la alte sisteme

    Acest lucru se intampla pentru ca acest sistem schimba ceva clase din ImageBox in ExtendedImageBox, iar daca nu ai facut tutorialul complet de la Mali cu Clipmask (tutorial + partea "Experimental") o sa ai probleme:

    Imagine cu problema:
    06-24-2025, 15-20-46.png


    Pentru a rezolva faceti asta - GrpExpandedImageInstance.cpp:
    //Find
    Code:
    	TPDTVertex vertices[4];
    	vertices[0].position.x = m_v2Position.x - 0.5f;
    	vertices[0].position.y = m_v2Position.y - 0.5f;
    	vertices[0].position.z = m_fDepth;
    	vertices[0].texCoord = TTextureCoordinate(su, sv);
    	vertices[0].diffuse = m_DiffuseColor;
    
    	vertices[1].position.x = m_v2Position.x - 0.5f;
    	vertices[1].position.y = m_v2Position.y - 0.5f;
    	vertices[1].position.z = m_fDepth;
    	vertices[1].texCoord = TTextureCoordinate(eu, sv);
    	vertices[1].diffuse = m_DiffuseColor;
    
    	vertices[2].position.x = m_v2Position.x - 0.5f;
    	vertices[2].position.y = m_v2Position.y - 0.5f;
    	vertices[2].position.z = m_fDepth;
    	vertices[2].texCoord = TTextureCoordinate(su, ev);
    	vertices[2].diffuse = m_DiffuseColor;
    
    	vertices[3].position.x = m_v2Position.x - 0.5f;
    	vertices[3].position.y = m_v2Position.y - 0.5f;
    	vertices[3].position.z = m_fDepth;
    	vertices[3].texCoord = TTextureCoordinate(eu, ev);
    	vertices[3].diffuse = m_DiffuseColor;
    
    	if (0.0f == m_fRotation)
    	{
    		float fimgWidth = float(pImage->GetWidth()) * m_v2Scale.x;
    		float fimgHeight = float(pImage->GetHeight()) * m_v2Scale.y;
    
    		vertices[0].position.x -= m_RenderingRect.left;
    		vertices[0].position.y -= m_RenderingRect.top;
    		vertices[1].position.x += fimgWidth + m_RenderingRect.right;
    		vertices[1].position.y -= m_RenderingRect.top;
    		vertices[2].position.x -= m_RenderingRect.left;
    		vertices[2].position.y += fimgHeight + m_RenderingRect.bottom;
    		vertices[3].position.x += fimgWidth + m_RenderingRect.right;
    		vertices[3].position.y += fimgHeight + m_RenderingRect.bottom;
    		if ((0.0f < m_v2Scale.x && 0.0f > m_v2Scale.y) || (0.0f > m_v2Scale.x && 0.0f < m_v2Scale.y)) {
    			STATEMANAGER.SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW);
    		}
    	}
    	else
    	{
    		float fimgHalfWidth = float(pImage->GetWidth()) / 2.0f * m_v2Scale.x;
    		float fimgHalfHeight = float(pImage->GetHeight()) / 2.0f * m_v2Scale.y;
    
    		for (int i = 0; i < 4; ++i)
    		{
    			vertices[i].position.x += m_v2Origin.x;
    			vertices[i].position.y += m_v2Origin.y;
    		}
    
    		float fRadian = D3DXToRadian(m_fRotation);
    		vertices[0].position.x += (-fimgHalfWidth * cosf(fRadian)) - (-fimgHalfHeight * sinf(fRadian));
    		vertices[0].position.y += (-fimgHalfWidth * sinf(fRadian)) + (-fimgHalfHeight * cosf(fRadian));
    		vertices[1].position.x += (+fimgHalfWidth * cosf(fRadian)) - (-fimgHalfHeight * sinf(fRadian));
    		vertices[1].position.y += (+fimgHalfWidth * sinf(fRadian)) + (-fimgHalfHeight * cosf(fRadian));
    		vertices[2].position.x += (-fimgHalfWidth * cosf(fRadian)) - (+fimgHalfHeight * sinf(fRadian));
    		vertices[2].position.y += (-fimgHalfWidth * sinf(fRadian)) + (+fimgHalfHeight * cosf(fRadian));
    		vertices[3].position.x += (+fimgHalfWidth * cosf(fRadian)) - (+fimgHalfHeight * sinf(fRadian));
    		vertices[3].position.y += (+fimgHalfWidth * sinf(fRadian)) + (+fimgHalfHeight * cosf(fRadian));
    	}
    ///Change
    Conținut: Ascuns
    Reacționează ❤️ la acest mesaj și conținutul se va afișa automat.



    Acum o sa fie totu perfect functional :)
    06-24-2025, 15-22-24.png
    06-24-2025, 15-22-36.png
    Multumim de completari: @xarazel @daemon
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature
    Avatar utilizator
    Andi
    Fost Coleg
    Fost Coleg
  • Mesaje: 898
    Membru din: 11 Feb 2025, 17:10
  • Reacții: 23472
  • Mesaje utile: 42
  • Status: Pierd vremea ^.^
  • Regat: Chunjo
  • Medalii

    Avatar utilizator
    Andi
    Fost Coleg
    Fost Coleg

    Mesaj

    @[HF]White Multumim frumos :x
    Avatar utilizator
    daemon
    Membru Începător
    Membru Începător
  • Mesaje: 11
    Membru din: 06 Oct 2024, 21:20
  • Reacții: 103
  • Mesaje utile: 0
  • Regat: Jinno
  • [ID Discord]
  • Medalii

    Avatar utilizator
    daemon
    Membru Începător
    Membru Începător

    Mesaj

    Systemul functioneaza il recomand, ce nu am gasit prin e a fost un exemplu de buton Select.

    Edit:
    Ma refer la buton de dropdown cu select ui
    Avatar utilizator
    SCOOB
    Administrator
    Administrator
  • Mesaje: 4892
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 118656
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Avatar utilizator
    SCOOB
    Administrator
    Administrator

    Mesaj

    daemon scrie: ↑ Systemul functioneaza il recomand, ce nu am gasit prin e a fost un exemplu de buton Select.
    ce select?
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature
    Avatar utilizator
    Krini
    Membru Ucenic
    Membru Ucenic
  • Mesaje: 23
    Membru din: 31 Oct 2024, 11:11
  • Reacții: 72
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Chunjo
  • Medalii

    Avatar utilizator
    Krini
    Membru Ucenic
    Membru Ucenic

    Mesaj

    'Button' object has no attribute 'SetRenderingRect'
    Avatar utilizator
    SCOOB
    Administrator
    Administrator
  • Mesaje: 4892
    Membru din: 07 Aug 2024, 18:53
  • Reacții: 118656
  • Mesaje utile: 47
  • Status: Pe aici.. 🤠
    Server: Saga2 - Soon
  • Regat: Jinno
  • [ID Discord]
  • Avatar utilizator
    SCOOB
    Administrator
    Administrator

    Mesaj

    Krini scrie: ↑ 'Button' object has no attribute 'SetRenderingRect'
    citeste ce am scris.
    Comunitatea Metin2 Romania este si pe Discord! :ymcowboy:

    2500+ membri • Chat activ zilnic • Support • Cereri & Resurse

    ► discord.gg/jWxeDSf7HP ◄





    See full signature
    Avatar utilizator
    Krini
    Membru Ucenic
    Membru Ucenic
  • Mesaje: 23
    Membru din: 31 Oct 2024, 11:11
  • Reacții: 72
  • Mesaje utile: 0
  • Status: Pierd vremea ^.^
  • Regat: Chunjo
  • Medalii

    Avatar utilizator
    Krini
    Membru Ucenic
    Membru Ucenic

    Mesaj

    well well
    Avatar utilizator
    ShadowsPR0
    Membru Ucenic
    Membru Ucenic
  • Mesaje: 26
    Membru din: 31 Oct 2024, 10:31
  • Reacții: 434
  • Mesaje utile: 1
  • Status: Pierd vremea ^.^
  • Regat: Jinno
  • Medalii

    Avatar utilizator
    ShadowsPR0
    Membru Ucenic
    Membru Ucenic

    Mesaj

    Vreo rezolvare pentru text ? mie imi apare asa si nu inteleg de ce

    [C++/Py] Game Options Elveron - Mesaj 10 - Imagine 1

    Înapoi la “Sisteme Metin2”

    Discord ID copiat: