Metin2 Hungarian Forum

Metin2 => Szerver készítés => Privát szerverek => Segítség => A témát indította: RealKorf Dátum 2018-04-30, 11:26:46

Cím: Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 11:26:46
Sziasztok!

Szeretném megoldani, hogy a szerveren a szorzókat resi után automatikusan beállítsa, illetve, hogy ha lejárna a szorzó akkor is újra rakja.

Erre valakinek van esetleg megoldása?
Cím: Re:Szorzók autómatikus beállítása
Írta: Distraught Dátum 2018-04-30, 15:03:55
szerintem a CPrivManager konstruktorát írd át erre (priv_manager.cpp):

for(int i=0;i<MAX_PRIV_NUM;++i)
{
for(int j=0;j<EMPIRE_MAX_NUM;++j)
{
m_aakPrivEmpireData[i][j].m_value = SZÓRZÓÉRTÉKE;
m_aakPrivEmpireData[i][j].m_end_time_sec = get_global_time()+60*60*24*7;
}
}
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 15:43:50
Köszönöm szépen a válaszod. Azt le tudnád írni, hogy pontosan mit kell lecserélni, vagy mi után kell ezt tenni?
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 15:51:32
Vagy itt egy egyszerűbb.
Keresd meg azt a részt ahol ellenőrzi a szorzók értékét és hívd meg ezt utána.

Hívd meg így:

empire_rate();


Funkció:

static bool empire_rate()
{
for (int type = 0; type <= 4; type++)
CPrivManager::instance().GiveEmpirePriv(0, type, 1000, 0, get_global_time() + 60 * 60 * 24 * 365 * 60);
}
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 16:21:06
Köszönöm a válaszokat!

Első működik!

Meli, a tiédet nem próbáltam, de biztosan az is jó lett volna!

-----------------------------------------------------------------------------
Vagyis azt hittem, hogy működik, de nem. Csak kiirja, hogy 500% de alap szorzo van. És ha rakok rá parancsal, utána sem lesz jó. Gondolom, rosszul tettem be Distraught  :(
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 17:57:23
Idézetet írta: RealKorf Dátum 2018-04-30, 16:21:06
Köszönöm a válaszokat!

Első működik!

Meli, a tiédet nem próbáltam, de biztosan az is jó lett volna!

-----------------------------------------------------------------------------
Vagyis azt hittem, hogy működik, de nem. Csak kiirja, hogy 500% de alap szorzo van. És ha rakok rá parancsal, utána sem lesz jó. Gondolom, rosszul tettem be Distraught  :(

Megírtam a kódot, csak tudnunk kellene, hogy hol hívjuk meg.
Per pill beletettem az input_loginba és most működik.
Csak eléggé csúnya megoldás ez így.
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 18:01:18
A funkciót hova tegyem be?

Szerinted a későbbiekben lehet gond, hogy így van megoldva?
Cím: Re:Szorzók autómatikus beállítása
Írta: Distraught Dátum 2018-04-30, 18:20:11
Meli függvényéből tedd bele inkább akkor már a CPrivManager konstruktorába a memset után ezt a 2 sort:
for (int type=0;type<=4;++type)
GiveEmpirePriv(0, type, 1000, 0, get_global_time() + 60 * 60 * 24 * 365 * 60);
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 18:28:23
Idézetet írta: RealKorf Dátum 2018-04-30, 18:01:18
A funkciót hova tegyem be?

Szerinted a későbbiekben lehet gond, hogy így van megoldva?

Na itt van tessék:
config.cpp

keresd ezt:
void config_init(const string& st_localeServiceName)

fölé ezt:

void LoadPrivRate()
{
for (int type = 1; type <= 4; type++) //Típusok (Item, Yang, Yang bomba, Exp)
CPrivManager::instance().GiveEmpirePriv(0, type, 1000, 0, get_global_time() + 60 * 60 * 24 * 365 * 60);
}



Ugyan ebben a függvényben: (void config_init(const string& st_localeServiceName))

void config_init(const string& st_localeServiceName)
{
[...]
CWarMapManager::instance().LoadWarMapInfo(NULL);
FN_log_adminpage();
}


Ez fölé:

CWarMapManager::instance().LoadWarMapInfo(NULL);


Ezt add:

LoadPrivRate();


[spoiler]Ha segítettem jöhet a + ^^
[/spoiler]
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 19:09:21
Nekem hibával fut le:

(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F04%2F30%2F846fsg.png&hash=d6efe1993b78806f4f522f5ae393bdbfeb5b6246) (http://www.kepfeltoltes.eu/view.php?filename=846fsg.png)
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 19:23:37
Idézetet írta: RealKorf Dátum 2018-04-30, 19:09:21
Nekem hibával fut le:

(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F04%2F30%2F846fsg.png&hash=d6efe1993b78806f4f522f5ae393bdbfeb5b6246) (http://www.kepfeltoltes.eu/view.php?filename=846fsg.png)

Bocs!

Ezt az incluedok közé tedd:

#include "priv_manager.h"
Cím: Re:Szorzók autómatikus beállítása
Írta: Distraught Dátum 2018-04-30, 22:28:45
vagy sokkal egyszerűbb, ha a priv_manager.h-ban a (vége fele találod)
struct SPrivEmpireData
{
int m_value;
time_t m_end_time_sec;
};


részt az alábbira módosítod:
struct SPrivEmpireData
{
int m_value = [color=red]SZORZÓ[/color];
time_t m_end_time_sec = get_global_time() + 60*60*24*365;
};


A fájl legelejére pedig
#include "utils.h"

Ezután a priv_manager.cpp-ben kitörlöd ami van a konstruktorban.
Nézzen ki így:
CPrivManager::CPrivManager()
{
}
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 22:36:16
Nekem ez error -al zárul!

(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F04%2F30%2F556rdeh.png&hash=cf69266101143b5297804df84be92f12762a82df) (http://www.kepfeltoltes.eu/view.php?filename=556rdeh.png)
Cím: Re:Szorzók autómatikus beállítása
Írta: Distraught Dátum 2018-04-30, 22:56:43
Ezt hagyjuk inkább. A CPrivManager::CPrivManager() -be (priv_manager.cpp) szerepeljen ennyi:
for(int i=0;i<MAX_PRIV_NUM;++i)
   for(int j=0;j<EMPIRE_MAX_NUM;++j)
      GiveEmpirePriv(j, i, SZORZÓ, 0, get_global_time() + 60*60*24*365);
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 23:02:34
Idézetet írta: Distraught Dátum 2018-04-30, 22:56:43
Ezt hagyjuk inkább. A CPrivManager::CPrivManager() -be (priv_manager.cpp) szerepeljen ennyi:
for(int i=0;i<MAX_PRIV_NUM;++i)
   for(int j=0;j<EMPIRE_MAX_NUM;++j)
      GiveEmpirePriv(j, i, SZORZÓ, 0, get_global_time() + 60*60*24*365);

Distraught, minek teszed ciklusba az empire-t?
A birodalomnak (j) 0 ás értéket kell adni, hogy minden birodalomban adja a bónuszt.

UI: Nem fog elindulni a game, csak a db.
Cím: Re:Szorzók autómatikus beállítása
Írta: Distraught Dátum 2018-04-30, 23:06:07
ebben semmi arra való utalást nem látok:

void CPrivManager::GiveEmpirePriv(BYTE empire, BYTE type, int value, BYTE bLog, time_t end_time_sec)
{
if (MAX_PRIV_NUM <= type)
{
sys_err("PRIV_MANAGER: GiveEmpirePriv: wrong empire priv type(%u)", type);
return;
}

sys_log(0, "Set Empire Priv: empire(%d) type(%d) value(%d) duration_sec(%d)", empire, type, value, end_time_sec-get_global_time());

value = MINMAX(0, value, 1000);
end_time_sec = MINMAX(0, end_time_sec, get_global_time()+60*60*24*7);

SPrivEmpireData& rkPrivEmpireData=m_aakPrivEmpireData[type][empire];
rkPrivEmpireData.m_value = value;
rkPrivEmpireData.m_end_time_sec = end_time_sec;

if (value)
{
char buf[100];
snprintf(buf, sizeof(buf), LC_TEXT("%s의 %s이 %d%% 증가했습니다!"), GetEmpireName(empire), GetPrivName(type), value);

if (empire)
SendNotice(buf);
else
SendLog(buf);
}
else
{
char buf[100];
snprintf(buf, sizeof(buf), LC_TEXT("%s의 %s이 정상으로 돌아왔습니다."), GetEmpireName(empire), GetPrivName(type));

if (empire)
SendNotice(buf);
else
SendLog(buf);
}

if (bLog)
{
LogManager::instance().CharLog(0, empire, type, value, "EMPIRE_PRIV", "", "");
}
}
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 23:06:33
IdézEzt hagyjuk inkább. A CPrivManager::CPrivManager() -be (priv_manager.cpp) szerepeljen ennyi:
for(int i=0;i<MAX_PRIV_NUM;++i)
   for(int j=0;j<EMPIRE_MAX_NUM;++j)
      GiveEmpirePriv(j, i, SZORZÓ, 0, get_global_time() + 60*60*24*365);

Ezzel nekem Hiba a szerver kapcsolatban hibát ad  :(
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 23:09:42
Nem értem miért öli meg a gamet... Én is próbáltam már amúgy ezt a megoldást.
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-04-30, 23:15:22
És mi lenne, ha ezt megcsinálnám:
http://metin2hungary.net/index.php/topic,193909.msg1021860.html#msg1021860 (http://metin2hungary.net/index.php/topic,193909.msg1021860.html#msg1021860)

Utána pedig időzített PHP scriptel adnám meg neki a szorzót  ;D
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 23:17:26
Idézetet írta: RealKorf Dátum 2018-04-30, 23:15:22
És mi lenne, ha ezt megcsinálnám:
http://metin2hungary.net/index.php/topic,193909.msg1021860.html#msg1021860 (http://metin2hungary.net/index.php/topic,193909.msg1021860.html#msg1021860)

Utána pedig időzített PHP scriptel adnám meg neki a szorzót  ;D

A huzsihun-os témákat hanyagold sztm :D
Cím: Re:Szorzók autómatikus beállítása
Írta: [VIP]P3NG3R Dátum 2018-04-30, 23:37:10
Én inkább ezt javaslom, illetve a napi szintű esti karbantartást, logok mentését, ürítését stb stb.
https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3370351-release-automatic-default-priv-rates-db-startup.html
Cím: Re:Szorzók autómatikus beállítása
Írta: Meli Dátum 2018-04-30, 23:42:43
Idézetet írta: [VIP]P3NG3R Dátum 2018-04-30, 23:37:10
Én inkább ezt javaslom, illetve a napi szintű esti karbantartást, logok mentését, ürítését stb stb.
https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3370351-release-automatic-default-priv-rates-db-startup.html

Ennyi :)

Megnézem már én is, thx :)

Na meg is néztem, de ugyan az a bug ami az én kódomnál volt!
Kiakad a szorzó mutatója és mindent 1000% nak ír még akkor is, ha nem annyi.
(csak akkor, ha GM el átírod)+Ahogy módosítasz egy droppot GM el mind a 4 drop szövegét írja 1000% ra és egyszerre. Bármennyire teszed a szorzót.
Bocs, ha hülyén fogalmaztam fáradt vagyok :(

Cím: Re:Szorzók autómatikus beállítása
Írta: DAtiv Dátum 2018-05-01, 08:12:21
Én úgy oldanám meg hogy magát a parancsot azt megcsinálnám úgy hogy a playereknek is elérhető legyen
És egy "auto15perc" quest formájára (15 percenként ezt-azt kiír) készítenék egy szorzós questet (commanddal hívnám le)
Cím: Re:Szorzók autómatikus beállítása
Írta: RealKorf Dátum 2018-05-01, 09:14:29
Köszönöm szépen [VIP]P3NG3R ! Nekem ezzel tökéletesen működik!

Meli, nekem jól kiírja a szorzókat:
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fwww.kepfeltoltes.eu%2Fimages%2Fhdd1%2F2018%2F05%2F01%2F288sdf.png&hash=eb62ba0abd9f81deb29f519e2a34e474e8075172) (http://www.kepfeltoltes.eu/view.php?filename=288sdf.png)
EhPortal 1.39 © 2025, WebDev