Kliens oldali módosítások ( Leírások / Info / Tutorial )

Indította NevemSenki, 2012 június 15, 08:36:05 DÉLUTÁN

Előző téma - Következő téma

NevemSenki

Eszembe jutott egy jó ötlet.

L70ETC-t band-et szerintem ismeritek. http://www.youtube.com/watch?v=w3TVkxaJ5Y8&feature=share&list=PLD9E91BDDF90D9198

Ők kapnak helyet a Login képernyőn.
Még rendezetlen, de itt vannak!


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

És ez a zene lesz alátéve.

L70ETC I'm murloc

Melyik része érdekelne konkrétan a LUA-s dolognak? Mert én egyenlőre csak próbálkozok vele.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Gameka

Kb az a resze, hogy hogyan is ulteted ra a kezdokepernyore/alkalmazasra magat a LUA "programot". (jelen esetben most itt a kezdokepernyore, mivel emlekszem arra az arc/ascent-es korszakra, ahol egy script nevu mappaba beraktad oket, es megfelelo id-ken levo dolgokat lehetett manipulalni, de ebben az esetben nem nagyon vagom, hogy az addonok es ez a kezdokepernyos dolog hogyan is mutatkozik meg)

NevemSenki

Az egész Interface LUA és XMl fájlokból épül fel. Ezen fájlokat a GlueXMl mappában találod. Ezek módosításával nagyon sok dolgot meg lehet oldani. Modellek elérése, mint jelent esetben a Zenekar, simán elérhető a megfelelő elérési út megadásával. Hozzáadhatóak képek, természetesen BLP.
Ennyiben ki is merül a magyarázat.
Ha megnézed ezen fájlokat, látni fogod hogy minden belőlük épül fel.
Ajánlom figyelmedbe a FrameXMl mappát is.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Gameka

Jelen esetben az interfacre zenekart is id alapjan ered el?

NevemSenki

#94
Nem.
Elérési út. Például:

Interface\\Glues\\Models\\UI_MainMenu\\UI_MainMenu.m2

Másik dolog. Elméletben működésre bírtam egy, még sosem látott huHU Kliens-t.
A Launcher.exe nem problémázik. Log:
#-----------------------------------------------------------
# System started at 2013-03-25 12:30:36.6562
# system: KISG-3B415E091D
#-----------------------------------------------------------
12:30:36.7187 Launcher version 2.0.0.491
12:30:37.3437 Fetch version information from 127.0.0.1 (http://127.0.0.1/update/PatchSequenceFile.txt).
12:30:39.5937 Cannot load the page 'http://127.0.0.1/?type=LK&locale=hu-HU'(-2146697211)
12:30:46.9843 Time-out while fetching patch sequence file.  User's Internet connection may not be working.


A wow.exe sem problémázik.
Lecseréltem a betűkészleteket, fel fog tűnni! :)


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

És most jön a kérdés. Honnan tudom hogy működik-e a dolog? Vagyis az a régiókódos dolog. Mert meg kéne tudni, hogy jót küld-e el.
Pontosabban, amit itt beszéltünk:
http://infobarkacs.hu/index.php/topic,9233.msg80793.html#msg80793

Vagyis ez:
https://github.com/TrinityCore/TrinityCore/blob/master/src/server/shared/Common.cpp

Üdv.: Senki

Frissítés..

Át lehet pakolni a cata dolgokat 3.3.5.12340-ba. A Goblin karakter háttere ismerős lehet.


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

NevemSenki

Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

Gameka

#96
Idézetet írta: NevemSenki Dátum 2013 március 25, 05:16:33 DÉLUTÁN
Így már azért jobb. Teljesen összevadásztam mindent.


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

Üdv.: Senki

Szep munka, gratulalok. En jelenleg eppen varok, hogy leerjen a jatek, aztan kiprobalom amit tegnap irtal... :D

(sorry, szivesen adnam a +1-et a segitokezseged mivoltakepp viszonzasaul, de nem jeleniti meg nalam a nyilakat/jelzeseket, ugy mint a regi forumnal. nem tudom mi lehet a baja. :( )

UPDATE: meg jelentek 15 hsz utan, es meg is adtam mindegyikre, meg egyszer koszonom a segitseged. :)

kagebunshin

IdézHonnan tudom hogy működik-e a dolog? Vagyis az a régiókódos dolog. Mert meg kéne tudni, hogy jót küld-e el.

Kis részlet a https://github.com/TrinityCore/TrinityCore/blob/master/src/server/shared/Common.h tartalmából. Majdnem az alján van.

Idézenum LocaleConstant
{
    LOCALE_enUS = 0,
    LOCALE_koKR = 1,
    LOCALE_frFR = 2,
    LOCALE_deDE = 3,
    LOCALE_zhCN = 4,
    LOCALE_zhTW = 5,
    LOCALE_esES = 6,
    LOCALE_esMX = 7,
    LOCALE_ruRU = 8
};

Az összes "Locales"-es adatbázisban 1-8-ig szerepelnek a fordítások. A 0 pedig gondolom az alapbeállítás, amikor nem fordít. Tehát pl ha frFR kódot kap akkor a locales táblákban a 2-es mezőkhöz tartozó szövegek jelennek meg.

Ellenőrizni legegyszerűbben talán úgy lehetne ha a Common.cpp-ben mondjuk az 1-eshez tartozó kódot kicserélnéd a magyarra, aztán egy választott quest-nél kitölteni az 1-eshez tartozó fordításokat majd megnézni az angol és a magyar klienssel, hogy változik-e.

Idézchar const* localeNames[TOTAL_LOCALES] = {
  "enUS",
  "huHU",
  "frFR",
  "deDE",
  "zhCN",
  "zhTW",
  "esES",
  "esMX",
  "ruRU"
};

Ha ez nem elég akkor esetleg még a Common.h-ben lévő párját is lehet, hogy át kell írni.

Tesztelni sajnos nem tudtam.
"-Egy dolgot viszont elárulhatnál nekem. Ki találta ki, hogy a fák őreinek erejével szálljatok szembe velem, mert nem te ugye? Te nem tudtad!
-Nem... de azért vagyunk többen, hogy valaki tudja."

NevemSenki

#98
Oké, értem, és köszönöm.

Az megoldható lenne, hogy egy újat adok hozzá?

  LOCALE_huHU = 9

Valami ilyesmire gondoltam. Mennyivel bonyolítaná ez a dolgokat?




Nekem tetszett mind a két háttér. A Goblin-é is, és a Worge-é is. Ezért mindkettőt betettem.
Találomra kapod mikor az egyik, mikor a másik hátteret. :)

Kód (lua) Kijelölés

local x = math.random (2)

if (x == 1) then
AccountLogin:SetModel("Interface\\Glues\\Models\\UI_Goblin\\UI_Goblin.m2");
else
AccountLogin:SetModel("Interface\\Glues\\Models\\UI_Worgen\\UI_Worgen.m2");
end



Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

NevemSenki

Event Calendar, ékezetes betű támogatás. És cseréltem egy betűtípust is.


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

kagebunshin

Igen. Én is úgy gondolom, hogy az új adat hozzáadása lenne a szép megoldás. Gondoltam rá, hogy mindjárt azt a verziót írom le, de az már picit bővebb módosítást igényel. Az előző megoldást csak a gyors tesztelés miatt írtam.

A LocaleConstant és a localeNames bővítése gondolom egyértelmű. Illetve a TOTAL_LOCALES és a MAX_LOCALES értékét is növelni kell 1-el.

Idézenum LocaleConstant
{
    LOCALE_enUS = 0,
    LOCALE_koKR = 1,
    LOCALE_frFR = 2,
    LOCALE_deDE = 3,
    LOCALE_zhCN = 4,
    LOCALE_zhTW = 5,
    LOCALE_esES = 6,
    LOCALE_esMX = 7,
    LOCALE_ruRU = 8,
    LOCALE_huHU = 9
};

const uint8 TOTAL_LOCALES = 10;
#define DEFAULT_LOCALE LOCALE_enUS

#define MAX_LOCALES 9

Idézchar const* localeNames[TOTAL_LOCALES] = {
  "enUS",
  "huHU",
  "frFR",
  "deDE",
  "zhCN",
  "zhTW",
  "esES",
  "esMX",
  "ruRU",
  "huHU"
};

Minden locales-es táblát ki kell bővíteni a 9. mezőkkel.
pl:
-Locales_achievement_reward:
subject_loc9
text_loc9

-Locales_creature:
name_loc9
subname_loc9

és így tovább minden táblában.

Ha ez megvan akkor módosítani kell a lekérdezéseket amik alapján a szerver beolvassa a táblákat. Ha jól számolom 11 ilyen tábla van. Mindegyiket egy-egy függvény/metódus/eljárás (ki minek nevezi) végzi.

9 az ObjectMgr.cpp-ben
1 az AchievementMgr.cpp-ben
1 a CreatureTextMgr.cpp-ben

Könnyen megtalálhatóak, ha a fájlon belül rákeresel a "locales(" szóra
https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/Globals/ObjectMgr.cpp
https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/Achievements/AchievementMgr.cpp
https://github.com/TrinityCore/TrinityCore/blob/master/src/server/game/Texts/CreatureTextMgr.cpp

példa egy átalakításra:

ObjectMgr.cpp, LoadCreatureLocales függvény:

IdézQueryResult result = WorldDatabase.Query("SELECT entry, name_loc1, subname_loc1, name_loc2, subname_loc2, name_loc3, subname_loc3, name_loc4, subname_loc4, name_loc5, subname_loc5, name_loc6, subname_loc6, name_loc7, subname_loc7, name_loc8, subname_loc8, name_loc9, subname_loc9 FROM locales_creature");

Elég a lekéréseket módosítani, ha jól látom a feldolgozását már for ciklusokkal rendezi le a TOTAL_LOCALES értéke alapján.

Tesztelni sajnos ezt sem tudtam. Nem értek annyira kliens módosításhoz, hogy rávegyem a huHU kód küldésére, ezért csak reménykedni tudok benne, hogy nem hagytam ki semmit és működni fog.

Így utólag belegondolva nem bonyolult a megoldása csak sok helyen és sok táblában kell belenyúlni.
"-Egy dolgot viszont elárulhatnál nekem. Ki találta ki, hogy a fák őreinek erejével szálljatok szembe velem, mert nem te ugye? Te nem tudtad!
-Nem... de azért vagyunk többen, hogy valaki tudja."

NevemSenki

Holnap megpróbálom letesztelni. Nagyon örülök neki hogy ilyen segítőkész vagy! Köszönöm!

Egy másik kérdéssel fordulok még hozzád.

Ha különbözőek a Locale-ok, különbözőek a nyelvek, akkor ez különböző Kliens-el oldható meg. Eddig ok. Na de a TC sok dolgot a mellé csomagolt DBC fájlokból olvas. Nem lesz ütközés a különböző Local-ba tartozó kliensek DBC-i, és a szerver DBC-i között? ( Mondjuk ha a szerver DBC-it enUS kliens-ből bányásztatom ki. )
A szövegek miatt kérdezem amiket néhány DBC fájl magában foglal.

Üdv.: Senki
Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

kagebunshin

Hogy lesz-e ütközés azt pontosan nem tudom, de azért gyorsan megnézegettem néhány dbc tábla felhasználását. Nem igazán találtam olyat amit kliens felé küldene és nagyon remélem, hogy a kliens sem vár olyan adatokat a szervertől amiket ő maga is tárol. Összegezve szerintem nem lesz gond.

IdézNagyon örülök neki hogy ilyen segítőkész vagy!

Én örülök, hogy segíthettem. Főleg akkor ha ez hozzásegít egy magyar wow klienshez aminek szintén nagyon örülnék :).
"-Egy dolgot viszont elárulhatnál nekem. Ki találta ki, hogy a fák őreinek erejével szálljatok szembe velem, mert nem te ugye? Te nem tudtad!
-Nem... de azért vagyunk többen, hogy valaki tudja."

NevemSenki

Újrahúztam mindent. Az egészet.
Megcsináltam a módosítások egy részét is. Egyenlőre csak a Common.h / cpp-ben.

Gyönyörűen megkapom a 9-es számot az account táblában. De így viszont nem indul el a Worldszerver.exe. Chrash-el. MSVCR100.dll-re hivatkozik.

Revision: TrinityCore rev. 0000-00-00 00:00:00 +0000 (Archived) (Win32, Release)
Date 28:3:2013. Time 14:39
//=====================================================
*** Hardware ***
Processor: Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz
Number Of Processors: 2
Physical Memory: 2095596 KB (Available: 1350812 KB)
Commit Charge Limit: 4033732 KB

*** Operation System ***
Microsoft Windows XP Professional Szervizcsomag 3 (Version 5.1, Build 2600)

//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address:  78AA1ED7 01:00000ED7 C:\WINDOWS\system32\MSVCR100.dll

Registers:
EAX:02290012
EBX:01590012
ECX:00340000
EDX:00000000
ESI:01590012
EDI:09250020
CS:EIP:001B:78AA1ED7
SS:ESP:0023:015EFCA0  EBP:015EFCA8
DS:0023  ES:0023  FS:003B  GS:0000
Flags:00010212

Call stack:
Address   Frame     Function      SourceFile
78AA1ED7  00000000  memcpy+57
00401B1C  00000000  0001:00000B1C C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
00412A14  00000000  0001:00011A14 C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
004778F1  00000000  0001:000768F1 C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
0040AA71  00000000  0001:00009A71 C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
00408658  00000000  0001:00007658 C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
00406A70  00000000  0001:00005A70 C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
0040651C  00000000  0001:0000551C C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
00968EA8  00000000  0001:00567EA8 C:\Documents and Settings\Rendszergazda\Dokumentumok\Hobby-Site\szerver2\worldserver.exe
7C817077  00000000  RegisterWaitForInputIdle+49

Call stack:
Address   Frame     Function      SourceFile
7C90E514  00000000  KiFastSystemCallRet+0
015EED08  00000000  0000:00000000
305815FF  00000000 


Lehetséges hogy azért mert egyenlőre csak ennyit módosítottam? És hiányolja a dolgokat?
Pont ez volt a helyzet akkor, amikor a Max_locale-t nem módosítottam.
http://infobarkacs.hu/index.php/topic,4989.msg80857.html#msg80857
Ebből következtetek hogy esetleg most is hasonló a hiba.




MapExtractor-hoz ráérésemben hozzáadtam a huHU kliens támogatást is. Nem volt nagy dolog, csak hozzá kellett adni a huHu-t is.


A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

Üdv.: Senki

Csak a Puffin ad neked erőt, és mindent lebíró akaratot!

kagebunshin

IdézLehetséges hogy azért mert egyenlőre csak ennyit módosítottam? És hiányolja a dolgokat?

Igen. Nagy hirtelen nekem se jutott eszembe, hogy ez miért is probléma, de aztán végül is hamar rájöttem.

Egy kis részlet a LoadCreatureLocales függvényből.

Idézfor (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
        LocaleConstant locale = (LocaleConstant) i;
        AddLocaleString(fields[1 + 2 * (i - 1)].GetString(), locale, data.Name);
        AddLocaleString(fields[1 + 2 * (i - 1) + 1].GetString(), locale, data.SubName);
}

A kód előtt szerepel egy sql lekérés, ami a módosítás nélkül csak 1-8-ig kéri le a mezőket, maga a függvény viszont 1-9 szeretne olvasni így a tömb nem létező elemére(indexére) szeretne hivatkozni és ezért chrash-el.
"-Egy dolgot viszont elárulhatnál nekem. Ki találta ki, hogy a fák őreinek erejével szálljatok szembe velem, mert nem te ugye? Te nem tudtad!
-Nem... de azért vagyunk többen, hogy valaki tudja."

Powered by EzPortal