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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 56
» Latest member: homitomi
» Forum threads: 70
» Forum posts: 85

Full Statistics

Online Users
There are currently 2 online users.
» 1 Member(s) | 1 Guest(s)
MyStic

Latest Threads
[HTML, CSS, JS] MagicToMa...
Forum: Web pages
Last Post: MyStic
6 hours ago
» Replies: 6
» Views: 187
Forrás fordítása (game,db...
Forum: C++ / DIFF / Source
Last Post: Cuncimokus
Yesterday, 12:29 PM
» Replies: 0
» Views: 40
Új kő kiszedés hiba
Forum: Solved
Last Post: MyStic
01-16-2018, 10:08 PM
» Replies: 7
» Views: 170
[C++] Normálisabb max yan...
Forum: C++ / DIFF / Source
Last Post: MyStic
01-16-2018, 11:17 AM
» Replies: 0
» Views: 82
[Client] Spectra kliens V...
Forum: Clients
Last Post: Pisti95
01-16-2018, 11:08 AM
» Replies: 0
» Views: 86
[NPCs] új npc-k
Forum: Mobs & NPC
Last Post: Pisti95
01-16-2018, 10:55 AM
» Replies: 0
» Views: 35
[NPC] Arany kovács füst e...
Forum: Mobs & NPC
Last Post: Pisti95
01-16-2018, 10:50 AM
» Replies: 0
» Views: 19
[Pet-skin] Phoenix textúr...
Forum: Pets
Last Post: Pisti95
01-16-2018, 10:29 AM
» Replies: 0
» Views: 16
[Texture] Ló skinek
Forum: Mounts
Last Post: Pisti95
01-16-2018, 10:23 AM
» Replies: 0
» Views: 19
Indító fordítás by TheSLZ
Forum: C++ / DIFF / Source
Last Post: Cuncimokus
01-16-2018, 06:58 AM
» Replies: 0
» Views: 50

 
  Forrás fordítása (game,db)
Posted by: Cuncimokus - Yesterday, 12:29 PM - Forum: C++ / DIFF / Source - No Replies

Sziasztok, mivel TheSLZ témája törölve lett így gondolom kirakom ezt a kis szösszenetet.

"Mivel Magyarországon egyre többen használnak forrást (legalább látni, hogy M.O picit fejlődik is) így elkészítettem az alábbi leírást" ~ SLZ octavianus 1791.05.99

Forrás letöltő linkje: You are not allowed to view links. Register or Login to view.

Forrás fordítás fix letöltő link:
You are not allowed to view links. Register or Login to view.

Tutorial(tut) forrás fordításra: lépjetek fel puttyn a 'renceretekre' írjátok be ezt:

game fordítás:
Kód: [Kijelölés]

Code:
cd /usr/src/mainline/Srcs/Server/game/src/

Kód: [Kijelölés]
Code:
gmake clean
Kód: [Kijelölés]
Code:
gmake -j5
// -j5 mi is ez? Az, hogy hány magot használjon a procitokból forrás fordításra. Képlet: Proci magotok + 1 = jxy (pl nekem 4magos a procim és + 1-et kell hozzáírni így 4+1=5)

Db fordítás:

Kód: [Kijelölés]
Code:
cd /usr/src/mainline/Srcs/Server/db/src/
Kód: [Kijelölés]
Code:
gmake clean
Kód: [Kijelölés]
Code:
gmake -j5

Fontos, hogy előbb rakjátok be a fixeket!!!!!

Publikálta You are not allowed to view links. Register or Login to view.

Print this item

  Új kő kiszedés hiba
Posted by: devfantasy - 01-16-2018, 07:36 PM - Forum: Solved - Replies (7)

Code:
 0116 09:56:38399 :: NameError
0116 09:56:38399 :: : 
0116 09:56:38399 :: global name 'uiSpiritStone' is not defined
0116 09:56:38399 :: 

0116 09:56:40391 :: Traceback (most recent call last):

0116 09:56:40391 ::   File "ui.py", line 1458, in OnSelectItemSlot

0116 09:56:40392 ::   File "ui.py", line 87, in __call__

0116 09:56:40392 ::   File "ui.py", line 78, in __call__

0116 09:56:40392 ::   File "uiInventory.py", line 734, in SelectItemSlot

Ezt a hibát kapom mikor ráhuzom a tekit pl a fegyvere és úgye nem hozza be az új ablakot!

Print this item

  [C++] Normálisabb max yang tutorial
Posted by: MyStic - 01-16-2018, 11:17 AM - Forum: C++ / DIFF / Source - No Replies

Itt egy normálisabban kiterjesztett max yang tutorial.
Sok sikert hozzá Smile

Show ContentSpoiler:

Print this item

Wink [Client] Spectra kliens V2.1
Posted by: Pisti95 - 01-16-2018, 11:08 AM - Forum: Clients - No Replies




Kliens:

Show ContentLetöltés:


2017.06.01

Ördög katakombájának 3. szintje hibás volt, ezért kerül fel egy frissítés, valamint a béta mapok "nagytérképjei" hiányoztak a kliensből!


Javítás: 

Show ContentJavítás:



Map javítás: (mind2 link-et töltsd le)
Show ContentLetöltés:

Print this item

Thumbs Up [NPCs] új npc-k
Posted by: Pisti95 - 01-16-2018, 10:55 AM - Forum: Mobs & NPC - No Replies

[Image: wXx7aab.png]


Show ContentLetöltés:

Print this item

Thumbs Up [NPC] Arany kovács füst effektel
Posted by: Pisti95 - 01-16-2018, 10:50 AM - Forum: Mobs & NPC - No Replies

Arany kovács sárga füst effektel! 

[Image: latest?cb=20110426192929]


Show ContentLetöltés:

Print this item

  [Pet-skin] Phoenix textúrák
Posted by: Pisti95 - 01-16-2018, 10:29 AM - Forum: Pets - No Replies

Sziasztok!

Szépek a phoenix madarak, nekem nagyon tetszenek, ezért megosztom veletek a további színes madarakat, sokan kedvelik ezeket!


[Image: neqlfab.png]


[Image: K17tdab.png]

[Image: akJebab.png]

[Image: pmO1eab.png]

[Image: LROpgab.png]

[Image: OmH8aab.png]

[Image: YELAfab.png]

[Image: G7xDdab.png]




Show ContentLetöltés:

Print this item

Thumbs Up [Texture] Ló skinek
Posted by: Pisti95 - 01-16-2018, 10:23 AM - Forum: Mounts - No Replies

Sziasztok!

Hoztam nektek új ló textúrákat/skineket!


[Image: juW2gab.jpg]



Show ContentLetöltés:

Print this item

  Indító fordítás by TheSLZ
Posted by: Cuncimokus - 01-16-2018, 06:58 AM - Forum: C++ / DIFF / Source - No Replies

Sziasztok.

Itt a game fájl és a db fordításáról írtam, bár azt a Gyüjtőtémába tettem, 
de szerintem ezt nyugodtan nyithatom ide mert sokkal hosszabb leírás [Image: smiley.gif]
Amikor valaki leírást kér forrásos indító lefordításáról, akkor mindenki ezt szokta belinkelni.
Ez a leírás persze hasznos, csak nem részletes, illetve a nagyobb baj pedig az hogy hiányos, nem ír le mindent.

Úgyhogy egy ismerősöm kérésére csinálok egy magyar leírást, ami részletes és nem hiányos, illetve képekkel kiegészítem hogy biztos megértse mindenki.

Sokan azt gondolják BSD-n kell ezt is, de nem, VS-ben kell és picit bonyolultabb a dolog.

Amennyiben nem követed pontosan a leírást, pár dolgot kihagysz, 
akkor ne csodálkozz ha a végén nem fog lefordulni.

Kezdjük is el, ami kell: 
-A Deves 9.2 vdi amin rajta van a forrás, mert majd le kell tölteni róla a gépre a fájlokat. 
-Vagy a kraizy.tgz is jó, amennyiben valakinek az van meg.
-És persze a Visual Studio 2008 + SP1 (Ez a verzió szükséges SP1-el, újabb VS-el nem lesz jó!)
Én személy szerint nCore-ról szedtem le, de azt ugye hiába linkelném, oda csak meghívóval lehet bejutni.
(A deves témába ahol linkeli a VS2008 iso-t az csak az SP1, kicsit csalóka, gondolom meg se nézte Denis [Image: cheesy.gif])

Ha meg van minden, akkor folytassuk:
Hozzunk létre egy VS mappát, én D:\ meghajtón csináltam, de te csinálhatod C-n is.
Ebbe a mappába hozzuk létre a include_stuff illetve lib_stuff mappát.

1. Navigáljunk ftp-n (vagy a kraizy.tgz-ben, ki mit használ) erre az elérésre:
/usr/src/novaline/Srcs/Tools/WorldEditor/extern/include
Az itt található fájlokat töltsd le az include_stuff mappába.

2. Most navigáljunk erre az elérésre:
/usr/src/novaline/Srcs/Tools/WorldEditor/extern/lib
Az itt található fájlokat töltsük le a lib_stuff mappába.

3. Most ide menjünk: 
/usr/src/novaline/Srcs/Tools/RAD Game Tools/granny/common
Az itt található granny_common_2_9_12_0_release. zip-et töltsük le a gépünkra, nyissuk meg pl. winrarral és a lib/win32-ben található fájlokat másoljuk ki (tömörítsük ki) a lib_stuff mappába.
Ha kérdezi felülírsz-e egy két fájlt akkor menj az Igen-re!

4. Most navigáljunk ide:
/usr/src/novaline/Srcs/Extern/lib
Minden fájlt töltsünk le a lib_stuff mappába.
Ha kérdezi hogy írjunk felül egy-két fájlt, menj az Igen-re!

5. Most ide menjünk:
/usr/src/novaline/Srcs/Extern/include
Gondolom már kitaláljátok előre mit kell csinálni  [Image: cheesy.gif] Töltsünk le minden fájlt az include_stuff mappába.

Ezek csak kiegészítő fájlok voltak, de kellenek a fordításhoz. Most töltsük le magát a kliens forrást.
Navigálj ide: /usr/src/novaline/Srcs/
És az egész Client mappát töltsd le a D:\VS mappádba. (Vagy ha C-re hoztad létre akkor nyilvánvalóan oda)
Egy ideig eltart biztosan, hisz sok fájlról van szó.

Nyissuk meg a VS 2008-at (Amire már rátelepítetted az SP1-et!)
Menjünk a Tools->Options->Project and Solutions->VC++ Directories-hoz.

A 'Show directory for' résznél válasszuk ki az Include-ot, majd tallózuk be az include_stuff mappánkat. 
(pipa meletti kis mappa ikonra kattintva teheted meg.)
Illusztráció:
[Image: Screenshot_2_www.kepfeltoltes.hu_.png]

Most pedig válasszuk ki az Library Files-t, majd tallózuk be az lib_stuff mappánkat.
Illusztráció:
[Image: Screenshot_3_www.kepfeltoltes.hu_.png]

Okézzuk le.

Tulajdonképpen a Deves leírásba eddig van leírva, persze ez nem elég még hogy használható legyen, 
írom is tovább a szükséges teendőket! [Image: smiley.gif]

Menjünk a D:\VS\Client mappába.
Metin2Client_VC90.sln-t nevezzük át Metin2Client_VC90_2.sln-re, mivel ez nem 2008-as VS-hez való. (2010)
Metin2Client_VC90.sln.old-ot nevezzük át Metin2Client_VC90.sln-re, ez való 2008-ashoz.

Most menjünk a D:\VS\Client\ScriptLib\Python-2.2 mappába, és nyissuk meg a bitset.h-t. 
(Akár VS-el, bár én inkább notepad++-ban szeretem átírni az ilyen kis dolgokat)
Ezt:
Kód: [Kijelölés]
Code:
#define BYTE char
Írd át erre:
Kód: [Kijelölés]
Code:
#define BYTE unsigned char

Most menjünk a D:\Metin2\VS\Client\UserInterface mappába, itt nyissuk meg a locale_inc.h-t.
Írjuk a végére ezt:
Kód: [Kijelölés]
Code:
#define ENABLE_DRAGON_SOUL_SYSTEM
#define ENABLE_NEW_EQUIPMENT_SYSTEM

Most menjünk a D:\VS\Client\ScriptLib mappába, itt a PythonLauncher.cpp-t nyissuk meg.

Keressünk ezekre:
Kód: [Kijelölés]
Code:
PyModule_AddIntConstant(builtins, "TRUE", 1);
PyModule_AddIntConstant(builtins, "FALSE", 0);

Ezek alá adjuk hozzá ezeket:
Kód: [Kijelölés]
Code:
PyModule_AddIntConstant(builtins, "True", 1);
PyModule_AddIntConstant(builtins, "true", 1);
PyModule_AddIntConstant(builtins, "False", 0);
PyModule_AddIntConstant(builtins, "false", 0);

Nekem így néz ki:
Kód: [Kijelölés]
Code:
PyObject * builtins = PyImport_ImportModule("__builtin__");
PyModule_AddIntConstant(builtins, "TRUE", 1);
PyModule_AddIntConstant(builtins, "True", 1);
PyModule_AddIntConstant(builtins, "true", 1);
PyModule_AddIntConstant(builtins, "FALSE", 0);
PyModule_AddIntConstant(builtins, "False", 0);
PyModule_AddIntConstant(builtins, "false", 0);
PyDict_SetItemString(m_poDic, "__builtins__", builtins);
Py_DECREF(builtins);

Ez azért kellett hogy ne csak nagybetűvel kezelje a TRUE-t és FALSE-t, hogy később ebből ne adódjon fennakadás  [Image: smiley.gif]

Nos tulajdonképpen már csak a fordítás következik.
Vagy nyissuk meg a D:\VS\Client\Metin2Client_VC90.sln fájlt, vagy Visual Studioban 
File->Open->Project/Solution és itt tallózuk be a Metin2Client_VC90.sln-t.
Namost alapfokon debug módra van állítva, de így ha megnyitod a klienset akkor ott lesz egy consol ablak is amit nem szeretünk, szóval állítsuk át Release vagy Distribute módra. Én az utóbbit használom.
Jelüljünk ki mindent oldalt a Solution Explorerben, majd felül ott van hogy Debug, arra kattintsunk rá és válasszuk ki a Distribute-t.

Illusztráció:
[Image: 110562848Screenshot_4_www.kepfeltoltes.hu_.png]

Most pedig jön a tényleges fordítás, felül build->build solution
Alul az output ablakban látszik hogy dolgozik, a warning itt sem számít, csak az error.
De ha mindent a leírásom alapján csináltál pontosan akkor nem fogsz error-t kapni.
A végén ilyesmit fogsz látni:
[Image: Screenshot_6_www.kepfeltoltes.hu_.png]

A lefordított bined pedig itt lesz: D:\VS\Client\UserInterface\Distribute\metin2client.exe

A bin revíziója 28249, ez kompatibilis 40k game fájlal.
Persze 40k-s kliensbe kell bele tenni, hogy a root fájlok & kliens item_proto kompatibilisek legyenek ezzel, 
pl Disco kliense, vagy Test client für 40250.
Amennyiben Traceback.py hibával nem indul a kliens, cseréld le a lib mappádat és a python22.dll-t erre: katt.


Gy.i.k.
-Ezt kapom vissza fordítás után:

Kód: [Kijelölés]
Code:
16>fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
16>LINK : fatal error LNK1257: code generation failed
Nem 2008-as VS SP1-ben csinálod. SP1 is kell!

-Nem telepíti az SP1-et, a végén error-t ad ki.
Rendszergazdaként kell indítani a telepítőt. 

-Egy CMD ablak jelenik meg a metin mellett amikor elindítom a játékot.
Nem tetted át fordítás előtt Debug módról Distribute módba.

-Egy log ablak fogad indítás után ami "True"/"False"-ot is ír.
Nem szerkesztetted a PythonLauncher.cpp-t ahogy leírtam.
Alapfokon ez az indító csak nagybetűvel kezeli, viszont a kliensben
néhol kisbetűvel is van a python fájlokban.

-Az olyan questekben ahol say_item van, elvan csúszva a kép.
Ezt szerveroldalon kell javítani, a questlib.lua-ban (ami a quest mappában van)
cseréld le a say_item funkciót erre:

Kód: [Kijelölés]
Code:
function say_item(name, vnum, desc)
say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."|index;".. 0 .."|total;".. 1 .."]"

end

By: TheSLZ

Forrâs: You are not allowed to view links. Register or Login to view.

Print this item

  Slz fixek az utókornak
Posted by: Cuncimokus - 01-16-2018, 06:56 AM - Forum: C++ / DIFF / Source - No Replies

Üdv mindenkinek!

You are not allowed to view links. Register or Login to view.

Mainline-al dolgozok (Kliensoldal Novaline), de a többi branchon is működnie kell ezeknek a dolgoknak.

1. 6-7 opt engedélyezés: (Europe, Singapore, Vietnam)
char_item.cpp:
 
keress erre:
Kód: [Kijelölés]

Code:
if (LC_IsEurope() || LC_IsSingapore() || LC_IsVietnam())
    return false;
(2x van benne)
Töröld vagy kommentezd ki.

2. Kövek berakásának sikerességi esélye átírása:
char_item.cpp
 
Keress erre:
Kód: [Kijelölés]
Code:
if (number(1, 100) <= 30)

És írd át a 30-at
Példa:

Kód: [Kijelölés]
Code:
if (number(1, 100) <= 65)// 65% sikerességi esély

3. 3% adó eltávolítása:
Keresd a shop.cpp és shop_manager.cpp-ben
 
Kód: [Kijelölés]
Code:
iVal = 3;
írd át a 3-at 0-ra:
Kód: [Kijelölés]
Code:
iVal = 0;

4. 0 yangos itemek boltban megvásárlása:
shop.cpp
Kód: [Kijelölés]
Code:
if (r_item.price <= 0)

módosítsd
Kód: [Kijelölés]
Code:
if (r_item.price < 0)

5. Névváltás azaz pc_change_name (Europe) engedélyezése :
Keresd a questlua_pc.cpp-ben:

Kód: [Kijelölés]
Code:
if ( LC_IsEurope() )
{
    lua_pushnumber(L, 5);
    return 1;
}
kommentezd ki vagy töröld.

6. 70024 (megáldó márvány) és 70035 engedélyezése boltban: (hivalue_item_sell check eltávolítása)
Keresd shop.cpp-ben:

Kód: [Kijelölés]
Code:
    if (quest::CQuestManager::instance().GetEventFlag("hivalue_item_sell") == 0)
    {
        //ĂŕşąŔÇ ±¸˝˝ && ¸¸łâÇŃö ŔĚşĄĆ®
        if (item->GetVnum() == 70024 || item->GetVnum() == 70035)
        {
            return SHOP_SUBHEADER_GC_END;
        }
    }
Töröld/kommenteld.
Keresd ugyanabban:

Kód: [Kijelölés]
Code:
//HIVALUE_ITEM_EVENT
if (quest::CQuestManager::instance().GetEventFlag("hivalue_item_sell") == 0)
{
    //ĂŕşąŔÇ ±¸˝˝ && ¸¸łâÇŃö ŔĚşĄĆ®
    if (item.vnum == 70024 || item.vnum == 70035)
    {               
        continue;
    }
}
//END_HIVALUE_ITEM_EVENT
törölöd/kommenteld.

7. 6-7 opt tiltás kosztümön:
Keresd a char_item.cpp-ben:

Kód: [Kijelölés]
Code:
case 71051 :
És add ez fölé:

Kód: [Kijelölés]
Code:
if (item2->GetAttributeSetIndex() == -1)
ezt:

Kód: [Kijelölés]
Code:
if (item2->GetType() == ITEM_COSTUME) //6-7 javítás kosztümön
    {
        return false;
    }
Megtudod csinálni a 71052-nél is de ha nem tudnak 6-7et beletenni, akkor nyílván cserélni se [Image: cheesy.gif]

8. Shutdown idő átírása
cmd_general.cpp

Kód: [Kijelölés]
Code:
Shutdown(10);
Írd át a 10-et (10=10mp 30=30mp stb)

9. Max szint átírása:
/usr/src/mainline/Srcs/Server/common/length.h

Kód: [Kijelölés]
Code:
PLAYER_EXP_TABLE_MAX = 120,
PLAYER_MAX_LEVEL_CONST = 120,
Módosítsd a 120-at.
Következhet az exp tábla.
constant.cpp (game/src mappa)
Ez alatt:
Kód: [Kijelölés]
Code:
const DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1] =
És ez alatt:
Kód: [Kijelölés]
Code:
const DWORD exp_table_euckr[PLAYER_EXP_TABLE_MAX + 1] =
És ez alatt:
Kód: [Kijelölés]
Code:
const DWORD exp_table_newcibn[PLAYER_EXP_TABLE_MAX + 1 ] =
Add hozzá a szintekhez kellő expet. 
Elég a common-nál mert azt veszi figyelembe, de inkább mind3-nál csináld meg.

10. Betekintés üveg kérés törlése:
input_main.cpp:

Kód: [Kijelölés]
Code:
int ProcessTextTag(LPCHARACTER ch, const char * c_pszText, size_t len)
{
    //2012.05.17 ±čżëżí
    //0 : Á¤»óŔűŔ¸·Î »çżë
    //1 : ±Ý°­°ć şÎÁ·
    //2 : ±Ý°­°ćŔĚ ŔÖŔ¸łŞ, °łŔλóÁˇżˇĽ­ »çżëÁß
    //3 : ±łČŻÁß
    //4 : żˇ·Ż
    int hyperlinks;
    bool colored;
módosítsd:

Kód: [Kijelölés]
Code:
int ProcessTextTag(LPCHARACTER ch, const char * c_pszText, size_t len)
{
    return 0;//BETEKINTÉS ÜVEG NE KELLJEN SOHA
    //2012.05.17 ±čżëżí
    //0 : Á¤»óŔűŔ¸·Î »çżë
    //1 : ±Ý°­°ć şÎÁ·
    //2 : ±Ý°­°ćŔĚ ŔÖŔ¸łŞ, °łŔλóÁˇżˇĽ­ »çżëÁß
    //3 : ±łČŻÁß
    //4 : żˇ·Ż
    int hyperlinks;
    bool colored;
(Az egész funkciót felülírhatod return 0;-val ha akarod )

11. Dice és ÁÖ»çŔ§ fix:
(Ymir már megcsinálta, de mégis mókásabb ha egy üzenetet kapnak vissza)
 
cmd_general.cpp-ben
ACMD(do_dice) funkciónál írd felül az egészet így:

Kód: [Kijelölés]
Code:
ACMD(do_dice)
{
    ch->ChatPacket(CHAT_TYPE_INFO, "Nem tudod leállítani.. Nokedli.. ");
}
(ÁÖ»çŔ§ kód a dice funkciót hívja le)

12. Yang kidobás tiltása: (Feco érdeme)
char_item.cpp: 

Keresd ezt:
Kód: [Kijelölés]
Code:
bool CHARACTER::DropGold(int gold)
Írd felül az egész funkciót így:

Kód: [Kijelölés]
Code:
bool CHARACTER::DropGold(int gold)
{
return false;
}

13. Playereknek bónuszolási idő eltávolítása
char_item.cpp

Kód: [Kijelölés]
Code:
if (pPC)
{
    DWORD dwNowMin = get_global_time() / 60;
 
    DWORD dwLastChangeItemAttrMin = pPC->GetFlag(msc_szLastChangeItemAttrFlag);
 
    if (dwLastChangeItemAttrMin + dwChangeItemAttrCycle > dwNowMin)
    {
        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ĽÓĽşŔ» ąŮ˛ŰÁö %dşĐ ŔĚł»żˇ´Â ´Ů˝Ă şŻ°ćÇŇ Ľö ľř˝Ŕ´Ď´Ů.(%d şĐ ł˛Ŕ˝)"),
                dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowMin - dwLastChangeItemAttrMin));
    return false;
    }
 
    pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowMin);
}
módosítsd:

Kód: [Kijelölés]
Code:
if (pPC)
 
{
    DWORD dwNowMin = get_global_time() / 60;
 
    //Comment for 0 switch players start
    //DWORD dwLastChangeItemAttrMin = pPC->GetFlag(msc_szLastChangeItemAttrFlag);
 
    //if (dwLastChangeItemAttrMin + dwChangeItemAttrCycle > dwNowMin)
    //{
        //ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ĽÓĽşŔ» ąŮ˛ŰÁö %dşĐ ŔĚł»żˇ´Â ´Ů˝Ă şŻ°ćÇŇ Ľö ľř˝Ŕ´Ď´Ů.(%d şĐ ł˛Ŕ˝)"),
            //dwChangeItemAttrCycle, dwChangeItemAttrCycle - (dwNowMin - dwLastChangeItemAttrMin));
        //return false;
        //}
    //Comment for 0 switch players end
 
    pPC->SetFlag(msc_szLastChangeItemAttrFlag, dwNowMin);
    }
}
(Kommentelt sorokat törölheted ha akarod)
 
 
14. Eldobott cuccok eltünési ideje:
Közös:
item.h:

Kód: [Kijelölés]
Code:
StartDestroyEvent(int iSec=300);
Módosítsd a 300-at. 300=300mp, 100=100mp stb..
 
Ha a játékosok általit külön akarod szabályzni akkor char_item.cpp

Kód: [Kijelölés]
Code:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¶łľîÁř ľĆŔĚĹŰŔş 3şĐ ČÄ »ç¶óÁý´Ď´Ů."));
pkItemToDrop->StartDestroyEvent();

Módosítsd így pl: (30mp)
Kód: [Kijelölés]
Code:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¶łľîÁř ľĆŔĚĹŰŔş 3şĐ ČÄ »ç¶óÁý´Ď´Ů."));
pkItemToDrop->StartDestroyEvent(30);

 
15. Új mount sebzése
pvp.cpp

Keress erre:
Kód: [Kijelölés]
Code:
case 20118:
Csak add hozzá az új ID-ket, pl 20135 akkor case 20135: stb.

Kliens binben is hozzá kell adni, InstanceBase.cpp ugyanígy kell.
(Kliens=maga az ütés szerver=sebzés)
 
16. Max státusz pont átírása:
cmd_general.cpp

Kód: [Kijelölés]
Code:
#define MAX_STAT 90
Itt át tudod írni a 90-et neked tetszőre.
 
 
17. Lejárat eltávolítása/szerkesztése (alias TimeBomb)
limit_time.h
Kód: [Kijelölés]
Code:
#define ENABLE_LIMIT_TIME
Ezt a sort kommentezd ki:
Kód: [Kijelölés]
Code:
//#define ENABLE_LIMIT_TIME

Ha nem akarod eltávolítani a lejáratot, hanem szerkeszteni akarod a dátumot akkor update_limit_time.py:

Kód: [Kijelölés]
Code:
limitTime = time.mktime(time.localtime()) + 3600 * 24 * 180 * 2
Csak módosítsd a 3600 * 24 * 180 * 2
Pl 3600 * 24 * 180 * 20 
Ezután bsd-n írd be ezt: gmake limit_time  Ez hozzáadja az új dátumot a limit_time.h-ba.
Utána fordítsd és az új lejárati dátuma lesz a game fájlnak.
 
 
18. Érzelmek maszk nélkül:
cmd_emoticon.cpp

Kód: [Kijelölés]
Code:
bool CHARACTER_CanEmotion(CHARACTER& rch)
{
    // °áČĄ˝Ä ¸ĘżˇĽ­´Â »çżëÇŇ Ľö ŔÖ´Ů.
    if (marriage::WeddingManager::instance().IsWeddingMap(rch.GetMapIndex()))
        return true;
 
    // ż­Á¤ŔÇ °ˇ¸é Âřżë˝Ă »çżëÇŇ Ľö ŔÖ´Ů.
    if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK))
        return true;
 
    if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK2))
        return true;
 
    return false;
}

módosítsd így:

Kód: [Kijelölés]
Code:
bool CHARACTER_CanEmotion(CHARACTER& rch)
{
    return true;//Ne kérjen maszkot soha
}

 
19. War crash bug javítása
cmd_general.cpp

Kód: [Kijelölés]
Code:
if (*arg2)
{
    str_to_number(type, arg2);
 
    if (type >= GUILD_WAR_TYPE_MAX_NUM)
        type = GUILD_WAR_TYPE_FIELD;
}
Módosítsd így:
Kód: [Kijelölés]
Code:
if (*arg2)
{
    str_to_number(type, arg2);
 
    if (type >= GUILD_WAR_TYPE_MAX_NUM)
        type = GUILD_WAR_TYPE_FIELD;
         
    if(type < 0) //war crash fix
        return;
}


20. parancsok átírása:
cmd.cpp
Vegyük pl a shutdownt.
Kód: [Kijelölés]
Code:
{ "shutdown", do_shutdown, 0, POS_DEAD, GM_IMPLEMENTOR },
Itt módosítsd a "shutdown"-t, de idézőjelek maradjanak. 


21. 91 után is kapjanak stat pontokat:

Nos alapon úgy van hogy 91-en már nem, 90-en még igen, kapnak.

char.cpp
Kód: [Kijelölés]
Code:
if (GetLevel() < 91) PointChange(POINT_STAT, 1);
Itt írd át a 91-et pl 120-ra.
Kód: [Kijelölés]
Code:
if(iLv <= 90)
PointChange(POINT_STAT, ((MINMAX(1, iLv, 90) - 1) * 3) + GetPoint(POINT_LEVEL_STEP) - GetPoint(POINT_STAT));
else
PointChange(POINT_STAT, 270 - GetPoint(POINT_STAT));

ComputePoints();
Itt pedig a 2db 90-est arra amire előbb írtad minusz 1. Szóval 120 esetében 119.

Szerk: a 270-et írd át a max pontodra, ha alulra a 90-es helyett 119-et írtál, akkor 3×119=357. 

Így 119-en még igen, 120-on már nem kapnak stat pontokat.


22. Szintenkénti poti eltávolítása
char.cpp
Kód: [Kijelölés]
Code:
if (GetLevel() <= 10)
AutoGiveItem(27001, 2);
else if (GetLevel() <= 30)
AutoGiveItem(27002, 2);
else
{
AutoGiveItem(27002, 2);
// AutoGiveItem(27003, 2);
}
            
Töröld vagy kommentezd.

23. 1000 szorzó
priv_manager.cpp-ben ezeket a sorokat:
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 50);
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 50);
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 100);
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 100);
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 200);
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 200);

Mindnél a számot írd át 1000-re.
Szóval mind így nézzen ki:
Kód: [Kijelölés]
Code:
value = MINMAX(0, value, 1000);


24. "Ujjlenyomat" ellenőrzés javítása (Client version check) - Szerkesztve!
config.cpp, input_login.cpp, input_main.cpp

Kód: [Kijelölés]
Code:
if (version > date)
módosítsd:
Kód: [Kijelölés]
Code:
if (version != date)

25. Kliens indító kiterjesztés átírás
eterpack/eterpack.cpp
Kód: [Kijelölés]
Code:
strncpy(m_indexFileName, dbname, MAX_PATH);
strcat(m_indexFileName, ".eix");

m_stDataFileName = dbname;
m_stDataFileName += ".epk";
Értelemszerűen a .eix-et, .epk-t átírod.


26. Kliens indító lzo átírás
Szintén eterpack/eterpack.cpp
Kód: [Kijelölés]
Code:
static DWORD s_adwEterPackKey[] =
{
    45129401,
    92367215,
    681285731,
    1710201,
};
 
static DWORD s_adwEterPackSecurityKey[] =
{
    78952482,
    527348324,
    1632942,
    486274726,
};
Itt írd át a számokat.

Fordítás előtt megnézed az offseteket hogy hol van a jelenlegi lzo hexben, átírod itt a számokat majd fordítás után megnézed az új lzo-t a megjegyzett offseteken.
pack mappát ne felejtsd majd el átcsomagolni az új lzo-val!


27. Pack mappa és Index fájl átnevezése
Az userinterface mappában dolgozunk.

userinterface.cpp
Kód: [Kijelölés]
Code:
if (!PackInitialize("pack"))
{
LogBox("Pack Initialization failed. Check log.txt file..");
return false;
}

Itt írd át a pack kifejezést, illetve a logboxosnál is átírhatod. Én files-ra írtam:
Kód: [Kijelölés]
Code:
if (!PackInitialize("files"))
{
LogBox("Files Initialization failed. Check log.txt file..");
return false;
}

pythonbackgorund.cpp
Kód: [Kijelölés]
Code:
m_PropertyManager.Initialize("pack/property");

itt a pack-ot írd át, én esetemben ugye files
Kód: [Kijelölés]
Code:
m_PropertyManager.Initialize("files/property");

Aztán van egy ilyen az userinterface.cpp-ben
Kód: [Kijelölés]
Code:
TraceError("Pack/Index has invalid syntax. First line must be 'PACK' or 'FILE'");
Itt is átírhatod a Pack kifejezést, bár ezt nem muszáj.

Az Index fájlt pedig userinterface.cpp-ben kell

Kód: [Kijelölés]
Code:
stFileName += "Index";
Értelemszerűen írd át [Image: smiley.gif]


28. Internal ip fix <-- Fontos
Ez azért kell hogy root szerverként is tudjon futni a gamefájl.
config.cpp
rákeresel erre:
Kód: [Kijelölés]
Code:
if (!strncmp(netip, "192.168", 7))
és átírod mondjuk
Kód: [Kijelölés]
Code:
if (!strncmp(netip, "000.000", 7))


29. Végtelen bátorság köpeny.
char_item.cpp

Kód: [Kijelölés]
Code:
case UNIQUE_ITEM_CAPE_OF_COURAGE:
//¶ó¸¶´Ü ş¸»óżë żë±âŔÇ ¸ÁĹä
case 70057:
case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE:
AggregateMonster();
item->SetCount(item->GetCount()-1);
break;

de lehet úgy is hogy csak az egyik legyen végtelen:

Kód: [Kijelölés]
Code:
case UNIQUE_ITEM_CAPE_OF_COURAGE:
AggregateMonster();
break;
//¶ó¸¶´Ü ş¸»óżë żë±âŔÇ ¸ÁĹä
case 70057:
AggregateMonster();
item->SetCount(item->GetCount()-1);
break;
case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE:
AggregateMonster();
item->SetCount(item->GetCount()-1);
break;
Így a UNIQUE_ITEM_CAPE_OF_COURAGE-esnél nem veszi el. (70038)


30. Újraéledési idő törlése.

cmd_general.cpp
itt: (újraindítás helyben)

Kód: [Kijelölés]
Code:
if (iTimeToDead > 170)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ľĆÁ÷ Ŕç˝ĂŔŰ ÇŇ Ľö ľř˝Ŕ´Ď´Ů. (%dĂĘ ł˛Ŕ˝)"), iTimeToDead - 170);
return;
}

és itt: (városbeli)

Kód: [Kijelölés]
Code:
if (iTimeToDead > 173)
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ľĆÁ÷ ¸¶Ŕ»żˇĽ­ Ŕç˝ĂŔŰ ÇŇ Ľö ľř˝Ŕ´Ď´Ů. (%d ĂĘ ł˛Ŕ˝)"), iTimeToDead - 173);
return;
}

Csak simán kommentezd ki vagy töröld ezeket.


31. Ló skillek sebzésének engedélyezése

char_skill.cpp
Keress erre:

Kód: [Kijelölés]
Code:
//¸¶żîĆ® Ĺ»°ÍÁß °í±Ţ¸»¸¸ ˝şĹł »çżë°ˇ´É
if(GetMountVnum())
{
if( !((GetMountVnum() >= 20209 && GetMountVnum() <= 20212) ||
GetMountVnum() == 20215 || GetMountVnum() == 20218 || GetMountVnum() == 20225 ) )
return false;
}

Add fölé ezt:

Kód: [Kijelölés]
Code:
if(GetMountVnum())
{
if( !((GetMountVnum() >= 20101 && GetMountVnum() <= 20205)))
return true;
}

Amennyiben azokat a mount id-ken is akarod hogy használhassanak ló-skillt amit tilt, akkor amire rákerestél azt töröld, és amit hozzáadtunk ott a 20205-öt írd át pl 20250-re.


32. Bolt nyitásához ne kelljen levenni a vértet
char.cpp
Keress rá erre a funkcióra:
Kód: [Kijelölés]
Code:
void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount
alatta van ilyen:

Kód: [Kijelölés]
Code:
if (GetPart(PART_MAIN) > 2)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°©żĘŔ» ąţľîľß °łŔÎ »óÁˇŔ» ż­ Ľö ŔÖ˝Ŕ´Ď´Ů."));
return;
}
Ezt töröld, vagy kommentezd ki.

Aztán mivel a csomót nem engedi alapból úgy megnyitni ha vértbe vagy, nyisd meg a char_item.cpp-t,
keress erre:

Kód: [Kijelölés]
Code:
void CHARACTER::__OpenPrivateShop()
{
unsigned bodyPart = GetPart(PART_MAIN);
switch (bodyPart)
{
case 0:
case 1:
case 2:
ChatPacket(CHAT_TYPE_COMMAND, "OpenPrivateShop");
break;
default:
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("°©żĘŔ» ąţľîľß °łŔÎ »óÁˇŔ» ż­ Ľö ŔÖ˝Ŕ´Ď´Ů."));
break;
}
}
Írd át így:

Kód: [Kijelölés]
Code:
void CHARACTER::__OpenPrivateShop()
{
unsigned bodyPart = GetPart(PART_MAIN);
switch (bodyPart)
{
default:
ChatPacket(CHAT_TYPE_COMMAND, "OpenPrivateShop");
break;
}
}
(Mondjuk szerintem úgy is jó ha a default: alatti egy sor csak a funkció tartalma, de így is jó ahogy írtam)


33. Gyémánt 100% eséllyel adja hozzá a foglalatot
char_item.cpp
keress erre:
Kód: [Kijelölés]
Code:
case USE_ADD_ACCESSORY_SOCKET:
írd át így ezt a részt:
Kód: [Kijelölés]
Code:
case USE_ADD_ACCESSORY_SOCKET:
{
char buf[21];
snprintf(buf, sizeof(buf), "%u", item2->GetID());

if (item2->IsAccessoryForSocket())
{
if (item2->GetAccessorySocketMaxGrade() < ITEM_ACCESSORY_SOCKET_MAX_NUM)
{
item2->SetAccessorySocketMaxGrade(item2->GetAccessorySocketMaxGrade() + 1);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ĽŇÄĎŔĚ Ľş°řŔűŔ¸·Î Ăß°ˇµÇľú˝Ŕ´Ď´Ů."));
LogManager::instance().ItemLog(this, item, "ADD_SOCKET_SUCCESS", buf);

item->SetCount(item->GetCount() - 1);
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ŔĚ ľ×ĽĽĽ­¸®żˇ´Â ´őŔĚ»ó ĽŇÄĎŔ» Ăß°ˇÇŇ °ř°ŁŔĚ ľř˝Ŕ´Ď´Ů."));
}
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ŔĚ ľĆŔĚĹŰŔ¸·Î ĽŇÄĎŔ» Ăß°ˇÇŇ Ľö ľř´Â ľĆŔĚĹŰŔÔ´Ď´Ů."));
}
}
break;

-----------------------------------------------------------

Úgy kell kikommentezni valamit hogy a sor elejére írsz 2db per jelet, azaz //
A kikommentezett sorokat fordításnál figyelmen kívül hagyja, olyan mintha ott se lennének.
Ez azért jobb megoldás a törlésnél, mert ha úgy alakul akkor könnyen vissza tudod tenni azt a sort.


A következőkben pedig összeszedek pár hasznos módosítást amit mások készítettek:
(Ezeket mind teszteltem)

You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.
You are not allowed to view links. Register or Login to view.

- Hamarosan elérhető videó formájában is -

Forrás: You are not allowed to view links. Register or Login to view.

Print this item