Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 475
» Latest member: ADJABDOR
» Forum threads: 243
» Forum posts: 487

Full Statistics

Online Users
There are currently 8 online users.
» 0 Member(s) | 8 Guest(s)

Latest Threads
[C++, Python] Contact Sys...
Forum: C++ / DIFF / Source
Last Post: [MOD]Morpheus
9 hours ago
» Replies: 11
» Views: 701
[C++] Vörös és Kék ital t...
Forum: C++ / DIFF / Source
Last Post: Pisti95
Yesterday, 09:56 AM
» Replies: 0
» Views: 35
[C++] Nap-Hold Elixírek t...
Forum: C++ / DIFF / Source
Last Post: Pisti95
Yesterday, 09:48 AM
» Replies: 0
» Views: 20
[C++] Mount Block
Forum: C++ / DIFF / Source
Last Post: Martinez-Works
05-21-2018, 12:59 PM
» Replies: 0
» Views: 103
[RELEASE] Plechito works
Forum: Other
Last Post: Neon
05-19-2018, 01:45 PM
» Replies: 2
» Views: 337
Whiteworld forrás
Forum: Support
Last Post: Neon
05-18-2018, 12:14 AM
» Replies: 3
» Views: 173
[C++] 7-8 skill aktív
Forum: C++ / DIFF / Source
Last Post: Martinez-Works
05-17-2018, 11:52 AM
» Replies: 1
» Views: 313
Advanced regen editor
Forum: Other
Last Post: Pisti95
05-14-2018, 12:05 PM
» Replies: 0
» Views: 91
[C++] 7-8 skill passzív
Forum: C++ / DIFF / Source
Last Post: Pisti95
05-14-2018, 11:16 AM
» Replies: 0
» Views: 436
[C++] Végtelen piros-kék-...
Forum: C++ / DIFF / Source
Last Post: Pisti95
05-14-2018, 11:08 AM
» Replies: 0
» Views: 133

 
Thumbs Up [C++] Vörös és Kék ital tiltása adott mapindexen
Posted by: Pisti95 - Yesterday, 09:56 AM - Forum: C++ / DIFF / Source - No Replies

Megírom ezt is, mondjuk nem bonyolult már az Elixírek mintájára beilleszteni a megfelelő kód részletet a case USE_POTION részbe.  Rolleyes


Ezt a részt:

Code:
                    case USE_POTION:
                        if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
                        {
                            if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit") > 0)
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                return false;
                            }
                        
                            switch (item->GetVnum())
                            {
                                case 27001 :
                                case 27002 :
                                case 27003 :
                                case 27004 :
                                case 27005 :
                                case 27006 :
                                    if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit_count") < 10000)
                                    {
                                        if (m_nPotionLimit <= 0)
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»çżë Á¦ÇŃ·®Ŕ» ĂĘ°úÇĎż´˝Ŕ´Ď´Ů."));
                                            return false;
                                        }
                                    }
                                    break;

                                default :
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                    return false;
                            }
                        }


Lecseréled erre:

Code:
                    case USE_POTION:
                        if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
                        {
                            if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit") > 0)
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                return false;
                            }
                            
                            /////////////////////////////////////////////
                            switch(ch->GetMapIndex()) /////potik tiltása
                            {
                                case 113:  ///ox map
                                            
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("potik tiltas"));
                                return false;
                            }
                            ////////////////////////////////////////////
                        
                            switch (item->GetVnum())
                            {
                                case 27001 :
                                case 27002 :
                                case 27003 :
                                case 27004 :
                                case 27005 :
                                case 27006 :
                                    if (quest::CQuestManager::instance().GetEventFlag("arena_potion_limit_count") < 10000)
                                    {
                                        if (m_nPotionLimit <= 0)
                                        {
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("»çżë Á¦ÇŃ·®Ŕ» ĂĘ°úÇĎż´˝Ŕ´Ď´Ů."));
                                            return false;
                                        }
                                    }
                                    break;

                                default :
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                    return false;
                            }
                        }



locale_string.txt:

Code:
"potik tiltasa";
"Az italokat nem használhatod ezen a területen!";


Üdv, Pisti95

Print this item

Thumbs Up [C++] Nap-Hold Elixírek tiltása adott mapindexen
Posted by: Pisti95 - Yesterday, 09:48 AM - Forum: C++ / DIFF / Source - No Replies

Kérdezték tőlem privátban, hogy hogyan lehetne ezt megoldani, itt van rá egy megoldás.  Cool


char_item.cpp

Rákerestek erre:

Code:
                            case ITEM_AUTO_HP_RECOVERY_S:
                            case ITEM_AUTO_HP_RECOVERY_M:
                            case ITEM_AUTO_HP_RECOVERY_L:
                            case ITEM_AUTO_HP_RECOVERY_X:
                            case ITEM_AUTO_SP_RECOVERY_S:
                            case ITEM_AUTO_SP_RECOVERY_M:
                            case ITEM_AUTO_SP_RECOVERY_L:
                            case ITEM_AUTO_SP_RECOVERY_X:
                            // ą«˝Ăą«˝ĂÇĎÁö¸¸ ŔĚŔüżˇ ÇĎ´ř °É °íġ±â´Â ą«Ľ·°í...
                            // ±×·ˇĽ­ ±×łÉ Çϵĺ ÄÚµů. Ľ±ą° »óŔÚżë ŔÚµżą°ľŕ ľĆŔĚĹ۵é.
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S:

A case-ek alá kell ezt írni:
Code:
                                    /////////////////////////////////////////////
                                    switch(ch->GetMapIndex()) /////elixírek tiltása
                                    {
                                        case 113:  ///ox map
                                            
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("elixir tiltas"));
                                            return false;
                                    }
                                    ////////////////////////////////////////////


A példámmal OX map-on tiltjuk az elixíreket, viszont kiegészíthető több mapindexre is.



Így fog kinézni (részlet):
Code:
                            case ITEM_AUTO_HP_RECOVERY_S:
                            case ITEM_AUTO_HP_RECOVERY_M:
                            case ITEM_AUTO_HP_RECOVERY_L:
                            case ITEM_AUTO_HP_RECOVERY_X:
                            case ITEM_AUTO_SP_RECOVERY_S:
                            case ITEM_AUTO_SP_RECOVERY_M:
                            case ITEM_AUTO_SP_RECOVERY_L:
                            case ITEM_AUTO_SP_RECOVERY_X:
                            // ą«˝Ăą«˝ĂÇĎÁö¸¸ ŔĚŔüżˇ ÇĎ´ř °É °íġ±â´Â ą«Ľ·°í...
                            // ±×·ˇĽ­ ±×łÉ Çϵĺ ÄÚµů. Ľ±ą° »óŔÚżë ŔÚµżą°ľŕ ľĆŔĚĹ۵é.
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                            case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S:
                            case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S:
                                {
                                    if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
                                        return false;
                                    }
                                    
                                    /////////////////////////////////////////////
                                    switch(ch->GetMapIndex()) /////elixírek tiltása
                                    {
                                        case 113:  ///ox map
                                            
                                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("elixir tiltas"));
                                            return false;
                                    }
                                    ////////////////////////////////////////////

                                    EAffectTypes type = AFFECT_NONE;
                                    bool isSpecialPotion = false;

                                    switch (item->GetVnum())
                                    {
                                        case ITEM_AUTO_HP_RECOVERY_X:
                                            isSpecialPotion = true;

                                        case ITEM_AUTO_HP_RECOVERY_S:
                                        case ITEM_AUTO_HP_RECOVERY_M:
                                        case ITEM_AUTO_HP_RECOVERY_L:
                                        case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS:
                                        case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S:
                                        case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S:
                                            type = AFFECT_AUTO_HP_RECOVERY;
                                            break;

                                        case ITEM_AUTO_SP_RECOVERY_X:
                                            isSpecialPotion = true;

                                        case ITEM_AUTO_SP_RECOVERY_S:
                                        case ITEM_AUTO_SP_RECOVERY_M:
                                        case ITEM_AUTO_SP_RECOVERY_L:
                                        case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS:
                                        case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S:
                                        case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S:
                                            type = AFFECT_AUTO_SP_RECOVERY;
                                            break;
                                    }





locale_string.txt-be:
Code:
"elixir tiltas";
"Az elixírt nem használhatod ezen a területen!";


Üdv, Pisti95

Print this item

  [C++] Mount Block
Posted by: Martinez-Works - 05-21-2018, 12:59 PM - Forum: C++ / DIFF / Source - No Replies

Sziasztok! 

Ez a "Fix" arra lenne hogyha nem szeretnéd hogy warozás közbe vagy más dolog közbe lehessen mountra/lóra ülni!

Ui: A char.cpp résznél tudod hozzá adni a mappokat ahol szeretnéd tiltani a mount/ló használatát.

//@Svn/Server/common/service.h
//1.) Keresd meg ezt :

Code:
#endif

//2.) Add fölé ezt :
Code:
#define ENABLE_MOUNT_BLOCK_MAP


//@Svn/Server/game/src/char.cpp
//1.) Keresd meg ezt :
Code:
void CHARACTER::ResetStopTime()
{
    m_dwStopTime = get_dword_time();
}

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
bool CHARACTER::IsRestrictedMapIndex()
{
    const int ar_lMapIndex[] = {
        103,
        104,
        105,
        113,
        110,    /* metin2_map_t3 */
        111        /* metin2_map_t4 */
    };
    for (int i=0; i<_countof(ar_lMapIndex); i++) {
        return (GetMapIndex() == ar_lMapIndex[i] && !IsGM()) ? true : false;
    }
}
#endif

//@Svn/Server/game/src/char.h
//1.) Keresd meg ezt :
Code:
        const char *    GetName() const;

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
        bool            IsRestrictedMapIndex();
#endif

//@Svn/Server/game/src/questlua_pc.cpp
//1.) Keresd meg ezt :
Code:
    int pc_mount(lua_State* L)
    {
        if (!lua_isnumber(L, 1))
            return 0;

        int length = 60;

        if (lua_isnumber(L, 2))
            length = (int)lua_tonumber(L, 2);

        DWORD mount_vnum = (DWORD)lua_tonumber(L, 1);

        if (length < 0)
            length = 60;

        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

//2.) Add utána ezt :
Code:
#ifdef ENABLE_MOUNT_BLOCK_MAP
        if (ch->IsRestrictedMapIndex())
        {    
            ch->ChatPacket(CHAT_TYPE_INFO, "<<pc_mount>> Ezen a mappon nem tudsz lovagolni!");
            return 0;
        }
#endif

Print this item

  Whiteworld forrás
Posted by: Insanity - 05-17-2018, 03:07 AM - Forum: Support - Replies (3)

Sziasztok!

Nincs meg valakine a Whiteworld féle forrás?
A régi megszokott linkek már halottak.. Sad
(A vdi-s)

Előre is köszi. Blush

Print this item

Thumbs Up Advanced regen editor
Posted by: Pisti95 - 05-14-2018, 12:05 PM - Forum: Other - No Replies

A pályákra mobok/metinkövek/npc-k berendezésére szolgáló program.



Attached Files
.zip   Advanced_Regen_Editor.zip (Size: 768.65 KB / Downloads: 7)
Print this item

Thumbs Up [C++] 7-8 skill aktív
Posted by: Pisti95 - 05-14-2018, 11:35 AM - Forum: C++ / DIFF / Source - Replies (1)

[Image: Z1albab.jpg]

[Image: dIFHfab.jpg]

Publikálom az aktív képességeket, melyeket én írtam meg. Egyenlőre csak 7. képességnek van modellje a 4 kasztra. 
Simán bővíthető 8., 9. képességgel is, egészen 15. képességik, csak legyen modell melyet tudunk a karakterekhez rendelni.

Amikor felvesszük a képességeket az oktatóktól, egyből megkapjuk, hogy az új képességünket is.
A képességet tudjuk növelni könyvekkel, GM kóddal, ahogyan a többit is.


[Image: jwA1cab.jpg]






A modelleket a Ymir készítette.
A scriptelést Pisti95 készítette.


Show ContentSkill modellek:


Üdv, Pisti95



Attached Files
.zip   7. képességek by Pisti95.zip (Size: 37.97 KB / Downloads: 13)
Print this item

Thumbs Up [C++] 7-8 skill passzív
Posted by: Pisti95 - 05-14-2018, 11:16 AM - Forum: C++ / DIFF / Source - No Replies

[Image: 5J2zaab.jpg]

Ymir work passzív képességei, mely erősíti egyik képességünk, és kivédi egy ellenfél képességeit!

UI.: Csatolva



Attached Files
.zip   7&8 Skills Without wolfman.zip (Size: 195.47 KB / Downloads: 7)
.zip   7&8 Skills.zip (Size: 281.11 KB / Downloads: 4)
Print this item

Thumbs Up [C++] Végtelen piros-kék-zöld-lila potik
Posted by: Pisti95 - 05-14-2018, 11:08 AM - Forum: C++ / DIFF / Source - No Replies

Vörös és kékital:

27001 Vörös Ital(Kicsi)
27002 Vörös ital(Közepes)
27003 Vörös Ital(Nagy)
27004 Kék Ital(Kicsi)
27005 Kék Ital(Közepes)
27006 Kék Ital(Nagy)

Show ContentSpoiler:

Kikommentezed ezt a sort:   
Code:
item->SetCount(item->GetCount() - 1);






Zöld és Lila ital:

Show ContentSpoiler:



Szintén kikommentezed ezt a sort:
Code:
item->SetCount(item->GetCount() - 1);


Üdv, Pisti95

Print this item

Thumbs Up [Python] Éjjel-nappal állítása
Posted by: Pisti95 - 05-14-2018, 10:55 AM - Forum: Quests / Python - No Replies

Éjjal-nappal állítása állítható a kliensben, és a játékos maga döntheti el, mit szeretne, mint a GéEF-ben. Wink

1) root/uigameoption.py :

Keress rá erre:

Code:
import interfaceModule


Írd alá ezt:
Code:
import background



Keress rá erre:
Code:
self.RefreshShowSalesText()


Írd alá ezt:
Code:
self.RefreshShowNightText()



Keress rá erre:
Code:
self.showsalesTextButtonList = []


Írd alá ezt:
Code:
self.showNightButtonList = []




Keress rá erre:
Code:
        self.showsalesTextButtonList.append(GetObject("salestext_on_button"))
        self.showsalesTextButtonList.append(GetObject("salestext_off_button"))


Írd alá:
Code:
        self.showNightButtonList.append(GetObject("showNight_on_button"))
        self.showNightButtonList.append(GetObject("showNight_off_button"))




Keress rá erre:
Code:
        self.showsalesTextButtonList[0].SAFE_SetEvent(self.__OnClickSalesTextOnButton)
        self.showsalesTextButtonList[1].SAFE_SetEvent(self.__OnClickSalesTextOffButton)


Írd alá ezeket a sorokat:
Code:
        self.showNightButtonList[0].SAFE_SetEvent(self.__OnClickShowNightOnButton)
        self.showNightButtonList[1].SAFE_SetEvent(self.__OnClickShowNightOffButton)




Írd az uigameoption.py végére :
Code:
    def __OnClickShowNightOnButton(self):
        background.RegisterEnvironmentData(1, constInfo.ENVIRONMENT_NIGHT)
        background.SetEnvironmentData(1)
        constInfo.Night = 1
        self.RefreshShowNightText()

    def __OnClickShowNightOffButton(self):
        background.SetEnvironmentData(0)
        constInfo.Night = 0
        self.RefreshShowNightText()



Ezt is a végére:
Code:
    def RefreshShowNightText(self):
        if constInfo.Night == 1:
            self.showNightButtonList[0].Down()
            self.showNightButtonList[1].SetUp()
        else:
            self.showNightButtonList[0].SetUp()
            self.showNightButtonList[1].Down()




2) root/constInfo.py :

Keress rá erre:
Code:
ENVIRONMENT_NIGHT="d:/ymir work/environment/moonlight04.msenv"

Írd alá ezt:
Code:
Night = 0



3) uiscript/gameoptiondialog.py :

Írd a gameoptiondialog.py végére :
Code:
                # Night on/off button
                {
                    "name" : "showNight_on_off",
                    "type" : "text",


                    "x" : LINE_LABEL_X,
                    "y" : 265+2,


                    "text" : "Nappal",
                },
                {
                    "name" : "showNight_on_button",
                    "type" : "radio_button",


                    "x" : LINE_DATA_X,
                    "y"    : 265,


                    "text" : "Éjszaka",


                    "default_image" : ROOT_PATH + "middle_button_01.sub",
                    "over_image" : ROOT_PATH + "middle_button_02.sub",
                    "down_image" : ROOT_PATH + "middle_button_03.sub",
                },
                {
                    "name" : "showNight_off_button",
                    "type" : "radio_button",


                    "x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH,
                    "y" : 265,


                    "text" : "Nap",


                    "default_image" : ROOT_PATH + "middle_button_01.sub",
                    "over_image" : ROOT_PATH + "middle_button_02.sub",
                    "down_image" : ROOT_PATH + "middle_button_03.sub",
                },


Üdv, Pisti95

Print this item

Thumbs Up [Python] Betöltőképek változása kliens betöltéskor
Posted by: Pisti95 - 05-14-2018, 10:40 AM - Forum: Quests / Python - No Replies

Betöltőképek cserélődését tudod ezzel a kis scripttel megoldani. Wink


locale_hu.eix/epk

loadingwindow.py

Rákeresel erre:

Code:
            "name" : "BackGround",


Írd alá ezt:
Code:
        {
            "name" : "GIF2",
            "type" : "ani_image",
    
            "x" : 0,
            "y" : 0,
               
            "width"  : 1024, # Méretek
            "height" : 768,
            "delay" : 15, # Várakozási idő ms-ben. Minél kisebb az érték annál gyorsabb az animáció

            "images" : 
            (
                "locale/hu/ui/loading/loading0.sub", # Képek helyének meghatározása
                "locale/hu/ui/loading/loading1.sub",
                "locale/hu/ui/loading/loading2.sub",
                "locale/hu/ui/loading/loading3.sub",
            ),
        },


root.eix/epk

introloading.py

Rákeresel erre: (def __init__(self): alatt)
Code:
        self.loadingGage=0

Alá ez megy:
Code:
        ####
        self.loadingBackground=0
        ####


Keress erre:
Code:
            self.loadingGage=self.GetChild("FullGage")

Alá írod ezt:
Code:
            ####
            self.loadingBackground=self.GetChild("GIF2")
            ####



Rákeresel erre: (def Close(self): alatt)
Code:
        self.loadingGage=0


Aláírod ezt:
Code:
        ####
        self.loadingBackground=0
        ####



Én ezeket a sorokat kikommenteltem:
Code:
        elif localeInfo.IsYMIR() or localeInfo.IsWE_KOREA() or localeInfo.IsCANADA() or localeInfo.IsBRAZIL() or localeInfo.IsEUROPE() or localeInfo.IsJAPAN():
            imgFileNameDict = {
                0 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading0.sub",
                1 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading1.sub",
                2 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading2.sub",
                3 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading3.sub",
            }

Vagyis nekem így néz ki:
Code:
        #elif localeInfo.IsYMIR() or localeInfo.IsWE_KOREA() or localeInfo.IsCANADA() or localeInfo.IsBRAZIL() or localeInfo.IsEUROPE() or localeInfo.IsJAPAN():
        #    imgFileNameDict = {
        #        0 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading0.sub",
        #        1 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading1.sub",
        #        2 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading2.sub",
        #        3 : uiScriptLocale.LOCALE_UISCRIPT_PATH + "loading/loading3.sub",
        #    }


Persze, ha nem Spectra klienst használsz, vagy Disco klienst, akkor ez máshogy is alakulhat. 
A kliens nyelvétől függ, nekem localeInfo.isEUROPE(), mivel "hu" (magyar) a locale.cfg fájlom tartalma.

by Pisti95

Print this item