Bsd otthoni futtatas

Indította samboy, 2018-07-08, 11:05:43

Sziasztok, regebben lattam hogy forrasos game filebe meglehet oldani, hogy masok is fel tudjanak jonni tudtok benne segiteni?
Haza basz a banda, minek táraztatok
Amire felemelnétek a kezetek, rábasztatok


Szerintem ez 1 picit jobb megoldás ha változik az ip címed

config.cpp
56. sor-ba
char        g_ipfix[16] = "0";

1169. sorba
TOKEN("connection_ip")
     {
       strlcpy(g_ipfix, value_string, sizeof(g_ipfix));
     }


config.h
56. sorba
extern char     g_ipfix[16];

desc_client.cpp

memcpy(p.szIP, g_szPublicIp, 16);
ez alá
memcpy(p.szIP, g_ipfix, 16);

strlcpy (p.szPublicIP, g_szPublicip, sizeof (p.szPublicIP));

ez alá
strlcpy(p.szPublicIP, g_ipfix, sizeof(p.szPublicIP));

AUTH;CH1...GAME99 CONFIGOKBA beírod ezt

CONNECTION_IP: 0.0.0.0

(természetesen a te wan ip-del amit megtudsz nézni pl https://ipcim.com  )

Nem saját leírás !

2018-07-08, 22:06:02 #3 Utolsó szerkesztés: 2018-07-08, 22:10:38 Szerző: Word
ki is  próbáltad már? hogy jó e egyáltalán.  és hogy másik le írást befolyásolja e egyáltalán? és hogy gondoltad a configba az ip be írást ha  pld valakinek heti új ip generálása van és nem lehet tudni hogy pontosan mikkor.

mivel ha jól tudom configot nem tudod át írni szerver restart nélkül.

Igen kipróbáltam egyszerre működik akár mind a 2 módszer (Logen-é)  de ez még is jobb mintha folyton kellene game-t buildelni itt csak configba kell átírni ip-t és kész.

Ha megírod rendesen a cpp kódot még az se kell, magától megszerzi az ip-d.

2018-07-10, 15:25:03 #6 Utolsó szerkesztés: 2018-07-10, 15:43:08 Szerző: K3zX
Az alapból létező bind_ip nem teljesen ugyanazt csinálja mint amit OneCharakter leírt?
Vagy valamit félreértek?

TOKEN("bind_ip")
{
strlcpy(g_szPublicIP, value_string, sizeof(g_szPublicIP));
}


g_szPublicIP-t írná felül,
az új g_ipfix meg a g_szPublicIP-t nem?

Mondjuk ez az egész fura, mert ezen logikán ha egy otthoni szerver config fájlaiba szerepelne a bind_ip akkor mennie kellene mc nélkül, akár régebbi gamefájlokkal is? Anno nem nagyon próbálgattam ezt, mert nem volt rá szükségem, de ha így lett volna akkor miért használt mindenki MC-t?
(Vagy tényleg elég lett volna egy bind_ip csak aki tudta az nem reklámozta? ;D )

[spoiler]"ez alá", nem alá, hanem felül kell írni a sort.
m2dev-en "replace with" van.[/spoiler]

2018-07-11, 00:48:10 #7 Utolsó szerkesztés: 2018-07-11, 00:59:44 Szerző: OneCharakter
Tudom hogy ott az van írva de én úgy csináltam meg hogy mind a 2-őt lehet használni. (BIND ÉS CONNECTION-t is )

Amúgy igen kicsit fura mert BIND_IP is kb ugyan ez de ha jól emlékszem anno 1-1,5 éve próbáltam csak azzal és úgy nem sikerült CONNECTION_IP-s megoldással meg ment mc nélkül. Bár akkor lehet csak locale ip-vel próbálkoztam és ha wan ip-t írom BIND-hez akkor működik ezt tesztelni kellene. (Jelenleg ha itthonról futtatom én úgy használom , hogy BIND és Connection is benne van configokba BIND-nél locale amit kioszt a gép Connectionnál meg wan ip )

2018-07-11, 02:07:00 #8 Utolsó szerkesztés: 2018-07-11, 02:28:44 Szerző: K3zX
Helyi IP-vel minden további nélkül működik,
á ezt nagyon tesztelni kellene mert mostmár érdekel ;D




Az amúgy nem jó hogy csak egymás alá írtad. Egyik felülírja a másikat, valószínűleg csak az alsó éles.
Én így írtam meg:
case PHASE_DBCLIENT:
{
sys_log(1, "PHASE_DBCLIENT");

if (!g_bAuthServer)
{
static bool bSentBoot = false;

if (!bSentBoot)
{
bSentBoot = true;
TPacketGDBoot p;
p.dwItemIDRange[0] = 0;
p.dwItemIDRange[1] = 0;
if (g_ipfix[0] == '0')
{
memcpy(p.szIP, g_szPublicIP, 16);
sys_log(0, "SetPhase_1: g_szPublicIP(%s) Used (BIND_IP OR NONE)", g_szPublicIP);
}
else
{
memcpy(p.szIP, g_ipfix, 16);
sys_log(0, "SetPhase_1: g_ipfix(%s) Used (CONNECTION_IP)", g_ipfix);
}
DBPacket(HEADER_GD_BOOT, 0, &p, sizeof(p));
}
}

TEMP_BUFFER buf;

TPacketGDSetup p;

memset(&p, 0, sizeof(p));

if (g_ipfix[0] == '0')
{
strlcpy(p.szPublicIP, g_szPublicIP, sizeof(p.szPublicIP));
sys_log(0, "SetPhase_2: g_szPublicIP(%s) Used (BIND_IP OR NONE)", g_szPublicIP);
}
else
{
strlcpy(p.szPublicIP, g_ipfix, sizeof(p.szPublicIP));
sys_log(0, "SetPhase_2: g_ipfix(%s) Used (CONNECTION_IP)", g_ipfix);
}


Így ha van CONNECTION_IP (g_ipfix) meghatározva a CONFIG-ban, akkor azt használja.
Ha nincs, akkor meg úgy ahogy eddig, a g_szPublicIP-t, amit a BIND_IP ugye felülírhat.