Repack

Indította ladiszlai, 2013 április 05, 07:47:15 DÉLUTÁN

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

ladiszlai

Amikor rányomok hogy küldés nem csinál semmit csak vissza megy az új szövegre.De már beregisztráltam.

kagebunshin

Regisztrálás nem szükséges. Beírod a szöveget, submit, majd a kapott linket bemásolod ide.
"-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."

Gameka

Jol van, latom mar ma sem fogunk unatkozni... :)

ladiszlai

logon.exe hibája:http://pastebin.com/u91TN6BN
world.exe hibája:http://pastebin.com/ymG61PKj

Előre is köszi a válaszokat.

Shyro

Mivel repack - ot használsz, World problémádat nem fogod tudni így megoldani. Nem tudom, esetleg újabb verziónál már megvannak e oldva a hiányolt dolgok a repack csodában. Ha a Logon elindul, a World is működni fog, ezekkel a hibákkal is. A Logon meg egyrészt a portok miatt sír, amit (szerintem) már használ valami más is nálad. Old fel őket, lődd ki a felesleges service - eket vagy állítsd be, hogy minden más porton keresztül kommunikáljon. Őszintén, nem igazán tudom, mi lehet a valós gond, maximum tippelni tudok, hszemet úgy kezeld.
makeSystem :: Integral a => [a] -> [a]
makeSystem l = concat (zipWith (\ a b -> replicate (fromIntegral a) (fromIntegral b)) l [ product x | x <- inits l ])
makeSystem [ 60, 60, 24, 7, 52 ] = ?

ladiszlai

Akkor eszt most hogy?
Vagy mit csináljak?

Shyro

Érdemes megérteni, hogy mi zajlik a háttérben, és utána eldönteni, hogyan oldjuk meg. Korlátozottak a lehetőségeim, mivel nem ülök ott a géped előtt, nem látom mi történik, nem tudok próbálkozni, nem tudom a tippjeim kipróbálni (persze, nem is szeretném), így ez rád marad. Amit megtehetek, hogy adok egy kezdőlöketet, kulcsszavak formájában, melyeknek ha utánanézel és foglalkozol a témával, esélyed lesz megoldani. Sose foglalkoztam arcemu - val, nem is szándékozom belemerülni, így nagyon nagy vonalakban, semmitmondóan:

(1) Kapsz egy hibát:
Idéz[ERR] C:\Documents and Settings\Christopher Fries\WoTD\3.3.5a\src\arcemu-logonserver\Main.cpp:495 LogonServer::Run Error creating sockets. Shutting down...
Ez természetesen nem válasz a "mikor, miért, mitől" hármasra.
Nincs más választás, utána kell járni a kódban. Kis segítséget azért az orrunk alá dörgöl: src\arcemu-logonserver\Main.cpp:495

(2) Lessük meg, mit mond a kód:

if(authsockcreated && intersockcreated)
{
...
}
else
{
LOG_ERROR("Error creating sockets. Shutting down...");
}

Ennél az elágazásnál történik valami (hogy mi, azt még nem tudjuk), ami miatt az else ágban lévő kódrészlet hajtódik végre. Ez nekünk nagyon nem jó, derítsük ki, hogy miért.

(3) Böngésszük tovább a kódot:

bool authsockcreated = cl->IsOpen();
bool intersockcreated = sl->IsOpen();
...

ListenSocket<AuthSocket> * cl = new ListenSocket<AuthSocket>(host.c_str(), cport);
ListenSocket<LogonCommServerSocket> * sl = new ListenSocket<LogonCommServerSocket>(shost.c_str(), sport);
...
uint32 cport = Config.MainConfig.GetIntDefault("Listen", "RealmListPort", 3724);
uint32 sport = Config.MainConfig.GetIntDefault("Listen", "ServerPort", 8093);

Itt aztán mindenféle dolog történik, amit nem is szándékozok kibogozni. Egyet sejthetünk, az általunk használni kívánt portokkal nem megy a dolog. A gyanú az, hogy valami más már használja kommunikációra az adott kapukat.

(4) Érdekességképpen még utána lehet járni ennek a GetIntDefault történetnek (nem kell messzire menni: src/arcemu-shared/Config/Config.cpp):
int ConfigFile::GetIntDefault(const char* block, const char* name, const int def)
{
int val;
return GetInt(block, name, &val) ? val : def;
}

bool ConfigFile::GetInt(const char* block, const char* name, int* value)
{
ConfigSetting* Setting = GetSetting(block, name);
if(Setting == 0)
return false;

*value = Setting->AsInt;
return true;
}

Azt, hogy a beállításokat honnan szedi ebből nem látszik. Nekem az az elméletem, hogy mindez annyit tesz, hogy ha nem adtunk meg portokat a konfigurációs fájlunkban (egyéb balgát cselekedtünk), akkor, egy a kódban megadott default értékkel tér vissza. Persze, lehet, hogy valami teljesen más történik a háttérben, és hatalmasat tévedek.

Végezetül. Villogtam mindenféle kódrészlettel, miközben igazából semmi konkrétat nem mondtam. Amit leírtam, annál többet jelenleg én sem tudok. Azért írtam le ezt a sok badarságot, hogy hátha ez majd ösztönöz, ugyanis az, hogy megoldj egy problémát nem az én feladatom, hanem a Tied.

Sok szerencsét!
makeSystem :: Integral a => [a] -> [a]
makeSystem l = concat (zipWith (\ a b -> replicate (fromIntegral a) (fromIntegral b)) l [ product x | x <- inits l ])
makeSystem [ 60, 60, 24, 7, 52 ] = ?

Powered by EzPortal