Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: szebi1997 Dátum 2017-03-17, 23:05:02

Cím: Sé mutatása a kliensben..
Írta: szebi1997 Dátum 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
Cím: Re:Sé mutatása a kliensben..
Írta: Distraught Dátum 2017-03-18, 02:02:02
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ím: Re:Sé mutatása a kliensben..
Írta: ATAG Dátum 2017-03-18, 08:43:04
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 =)
Cím: Re:Sé mutatása a kliensben..
Írta: Pisti95 Dátum 2017-03-19, 16:11:20
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.
Cím: Re:Sé mutatása a kliensben..
Írta: szebi1997 Dátum 2017-04-05, 12:46:26
Sikerült megoldani, köszönöm a segítséget :)
EhPortal 1.39 © 2025, WebDev