Sé mutatása a kliensben..

Indította szebi1997, 2017-03-17, 23:05:02

Sziasztok

http://metin2hungary.net/index.php/topic,188664.0.html

Eszt próbáltam be üzemelni, a kliens rész az jó is
de a szerver rész sajnos nem.
miután fordítom nem indul az auth és ch-k
mutatom milyen az input_login ccp, ha valaki segítene
hogy mi lehet baj aszt megköszönném! :)

https://data.hu/get/10396630/input_login.cpp

nah, csináld meg pythonban, hogy ott legyen az az ablak, majd pedig a game file forrásában csak questlua_pc.cpp-be írd hozzá (köszönd Sanchez-nek):

int pc_get_coins(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

if (ch == NULL)
return 0;

SQLMsg *msg = DBManager::instance().DirectQuery("SELECT coins FROM account.account WHERE id = '%d'", ch->GetAID());

if (msg->uiSQLErrno != 0)
return 0;

MYSQL_RES *res = msg->Get()->pSQLResult;

MYSQL_ROW row = mysql_fetch_row(res);

if (!row[0])
return 0;

lua_pushnumber(L, atoi(row[0]));
return 1;
}

majd a végére írd bele, hogy beolvassa
aztán root-ban game.py:
keress rá: def __ServerCommand_Build(self):
alá: "sarkanyermem" : self.ennyisemvan,
ezután görgess lejjebb picit (majd ahol már látsz hasonlókat), és illeszd be:

def ennyisemvan(self, sarkanyerme):
annakaneveamibekiírodasédet.SetText(sarkanyerme + " SÉ")

/python részeknél tabolásra figyelj/
majd questben:
quest semutatas begin
state start begin
when login begin
timer("seupd", 5)
end
when seupd.timer begin
cmdchat("sarkanyermem "..pc.get_coins())
timer("seupd", 5)
end
end
end

ha nem pc.get_coins-nak nevezted el a hozzáadott questfunkciót, akkor nyílvan azt írd a helyére

C++ programmer at Gameloft

SQLMsg *msg = DBManager::instance().DirectQuery("SELECT coins FROM account.account WHERE id = '%d'", ch->GetAID());
Helyett:
SQLMsg *msg = DBManager::instance().DirectQuery("SELECT coins FROM account.account WHERE id = '%d' LIMIT 1", ch->GetAID());
Bár apróság =)

input_login.cpp fájlod jó, de használhatod Distraught megoldását is, ami 5 másodpercenként frissíti a box-ban (kis dobozban) lévő értéket, de én nem javaslom a quest-ben való timer-ezést, mert laggoltatja a szervert a sok lekérdezés, ha sok játékos van.

Sikerült megoldani, köszönöm a segítséget :)