[Szerverkészítés] - Csevegő

Started by - Chevrolet -, 2015-12-19, 18:46:35

2015-12-26, 23:56:49 #20 Last Edit: 2015-12-26, 23:59:13 by masodikbela
Ma (illetve tegnap? fene tudja már... de szerintem mind a kettőt érintette) csináltam magamnak egy eléggé összetett dinamikus packetet... na most azalatt a 6 óra alatt, ameddig ez tartott, szerintem legalább 30 féle képpen megírtam, miután felfedeztem egy mindfucking dolgot, ami végül is a probléma volt:

Legyen egy struktúránk, tökmindegy, (na azért nem) legyen benne mondjuk 1 dword, 1 byte, 1 word, meg 2 int. Tegyük bele a pythonnetworkstreamphasegameitem.cpp-be, toljunk rá egy sizeof()-ot, és írjuk ki az értékét. Utána ctrl-x-el tegyük át a packet.h-ba, toljunk rá egy sizeof()-ot ismét... és valamiért 2-3 számmal eltér a kettő... (pedig full ugyan olyan típusok vannak benne -.-, azt pedig nem is kell gondolom megemlítenem, hogy mennyire gáz, ha akár 1 egységgel is eltér a dinamikus packet mérete) Ugyan ez a szerver forrásában is igaz... (csak ott pythonnetworkstreamphasegameitem.cpp helyett használjuk mondjuk az input_main.cpp-t).

Nem nagyon hiszem, hogy itt 1-2 ember kivételével bárki is a packetekkel foglalkozott volna, de nagyon kíváncsi lennék, hogy ez a jelenség miből adódik...
Ha nem látod a válaszom, valamit elrontottál:

Quote from: masodikbela on 2015-12-26, 23:56:49
Ma (illetve tegnap? fene tudja már... de szerintem mind a kettőt érintette) csináltam magamnak egy eléggé összetett dinamikus packetet... na most azalatt a 6 óra alatt, ameddig ez tartott, szerintem legalább 30 féle képpen megírtam, miután felfedeztem egy mindfucking dolgot, ami végül is a probléma volt:

Legyen egy struktúránk, tökmindegy, (na azért nem) legyen benne mondjuk 1 dword, 1 byte, 1 word, meg 2 int. Tegyük bele a pythonnetworkstreamphasegameitem.cpp-be, toljunk rá egy sizeof()-ot, és írjuk ki az értékét. Utána ctrl-x-el tegyük át a packet.h-ba, toljunk rá egy sizeof()-ot ismét... és valamiért 2-3 számmal eltér a kettő... (pedig full ugyan olyan típusok vannak benne -.-, azt pedig nem is kell gondolom megemlítenem, hogy mennyire gáz, ha akár 1 egységgel is eltér a dinamikus packet mérete) Ugyan ez a szerver forrásában is igaz... (csak ott pythonnetworkstreamphasegameitem.cpp helyett használjuk mondjuk az input_main.cpp-t).

Nem nagyon hiszem, hogy itt 1-2 ember kivételével bárki is a packetekkel foglalkozott volna, de nagyon kíváncsi lennék, hogy ez a jelenség miből adódik...
Nem szabad anyáázni ! :D
Béla pro,Béla jól csinálta ő a király ! :D


2015-12-27, 00:21:34 #22 Last Edit: 2015-12-27, 00:26:25 by [VIP]Disco
Ebből a példakódból gyorsan rájössz, hogy miért van eltérő mérete mind a kettő struktúrának:
#include <Windows.h>
#include <stdio.h>

#pragma pack(1)
typedef struct STestPack
{
DWORD dwTest;
BYTE bTest;
WORD wTest;
int iTestFirst;
int iTestSecond;
}TTestPack;
#pragma pack()

typedef struct STestRaw
{
DWORD dwTest;
BYTE bTest;
WORD wTest;
int iTestFirst;
int iTestSecond;
}TTestRaw;

void main(void)
{
printf("Pack: %d Raw: %d\n", sizeof(TTestPack), sizeof(TTestRaw));

system("pause");
}



Az oka pedig az, hogy a pragma pack-al egy olyan utasítást adunk a fordítónak, hogy "egyedi módon" tárolja a memóriában a struktúra elemeit. Ez így hülyén hangzik, de amikor csinálsz egy struktúrát akkor a benne lévő elemek méretének a sokszorosa van foglalva a memóriában, hogy ne történhessen semmiféle teljesítménybeli gond.

Szuper, köszönöm. Éreztem, hogy valami ilyesmi lesz.
Ha nem látod a válaszom, valamit elrontottál:

2016-01-15, 19:04:48 #24 Last Edit: 2016-01-15, 19:09:47 by masodikbela
Egyébként előbb itt kérdeztétek (illetve huzsi kérdezte), hogy mire jó a windows szerver.

Néhány indok:

  • van hozzá egy szuperűberkirálycsászár fejlesztőkörnyezeted (alias Visual Studio 2013->fontos, hogy a 13-asban már van inteliSense)
  • nem kell folyamatosan feltöltögetned ftpre a módosított fájlokat
  • nem kell egy tök random 2. operációs rendszeren (a.k.a. FreeBSD, ami ráadásul még konzolos is) eligazodnod
  • van egy szuperzsírkirályűberf*sza debuggered is hozzá (R.I.P. gdb)
  • és ha ez nem lett volna elég, nem kell egy emulált környezetet futtatnod, így sokkal kevesebb erőforrást használ a géped a szerver futása során (mapok számától és az azokon levő mobok számától függően 5-250MB RAM/core, maximum 5% CPU)

  • Természetesen ha mondjuk nem tudod, hogy hogyan használd a debuggert, vagy mondjuk neked aztán úgyis mindegy az inteliSense, mert te már a notepad++ mestere vagy, és azt állítod, hogy márpedig C++-t abban kell programozni, akkor is marad még néhány indok amiatt, hogy miért windowson tesztelj. (Éles szerverrel azért óvatosan, mivel azt még nem volt szerencsém látni futni windowson, tehát a terhelést nem tudom, hogy hogy bírja (elméletileg nem lehet vele gond...))
    Ha nem látod a válaszom, valamit elrontottál:

    Üdv!

    Nem akarok új témát nyitni, szóval ide írom!

    Sikerült meg csinálni: [spoiler]http://metin2hungary.net/index.php/topic,193901.0.html[/spoiler]
    (Szerintem minden jól lett meg csinálva)
    Elindul a szerver minden, de a hack mégis működik, ez hogy lehetséges ? O_o
    Discord: deto#4928

    Tudjátok mi a különbség egy (magyar) vz és egy (magyar) forrásból kreált szerver között?

    [spoiler]Hát semmi[/spoiler]

    Áj níd szám help.
    Keresem azt a témát amikor tudom javítani 40k-nál 50k feletti portoknál mutassa a 'NORM'-t ha elérhető a szerver (win sf 50k+ portok) Egyelőre a javítása érdekelne, de bárhogy keresem nem találtam, vagy csak béna lenni :D
    Köszöntem..
    Skype:Csedwik

    Nékem windózon 13001-es porttal sincsen státusz jelzés, még fiksszel se :D.
    typedef struct SChannelStatus
    {
    WORD wPort;
    BYTE bStatus;
    } TChannelStatus;

    Quote from: PaPa on 2015-12-19, 20:26:08
    Sajnálom azt, hogy akik lelkesen segítenek a többieknek, kb. feleslegesen teszik azt. Ennél már csak jobb lehet..

    Köszönöm, hogy belesoroltál a listába! :)

    Már a Metin2 hanyatlik itt nálunk, máshol pedig virágzik. Románia, Törökország stb. még vannak lelkes fejlesztők, és élvezhető szerverek. Talán a szakmai hiány vagy nem tudom mi a gond, hogy a sok szerver bezár. Van abban valami, amit írtál, hogy összedobják, sablon szerverként és kész. Íratnak 1-2 küldit és vége van.

    Kezdem azt érezni, hogy erre a fórumra már nem érdemes feljárni sem. Pár napig szüneteltettem a dolgot, mert szervert próbálok összehozni Extend-el, valami egyedit. Ha marad ihletem, és elég kitartásom talán véghez tudom vinni, és talán megüthet egy külföldi szerver szintet (WoM2), ami persze lehetetlennek tűnik számomra, de "próba cseresznye". :D

    Valaki meg tudna dobni egy lélekkő sorral item_protoból? (40k) :D

    Quote from: - Chevrolet - on 2016-03-04, 21:08:28
    Valaki meg tudna dobni egy lélekkő sorral item_protoból? (40k) :D

    item_names:

    50513 Lélekkő


    item_proto.txt:

    50513 ČĄĽ® ITEM_QUEST 0 1 NONE NONE NONE 1000 1000 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0

    Új bónusz, pl mobok elleno védekezés, stb. létrehozásáról érdekelne egy téma. Keresgéltem, de nem nagyon találtam itt, meg deven sem, más fórumokra pedig nem járok, szóval ha valakinek van megbízható linkje/infója az kérem ossza meg velem :D

    Igazából a wolfmanos bónusz(ok)ból kiindulva lehetne a legkönnyebben megírni magadnak, leírást még én sem láttam erre!? Mondjuk ez most ilyen nesze semmi fogd meg jól infó volt bocsi! :/

    Szevasztok.!
    Emlékszem, hogy régebben volt róla szó, hogy a max gold-os kiegészítés ne config fájlból olvassa hanem length.h fájlból (elvégre, ez lenne célravezetőbb, és már ott eleve megvan "   GOLD_MAX = 2000000000," )
    Csak az istenért nem találom azt a témát, talán még egy Step ajánlott egy lehetőséget, vagy Rin.Nem tudom mind2-en fehér betűt használnak :D.Be linkelné ide nekem valaki? :)

    Én vetettem fel a lehetőséget. A témát most hirtelen nem tudom megtalálom-e, lehet törölve lett, viszont nem jutottunk Pengével dűlőre, mert neki úgy sehogy sem működött, én meg azóta is lusta voltam foglalkozni a témával... :-X
    "Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
    "KezdÅ' vagyok, ne nézz le... (:"

    ohh, értem.Akkor mind1, pedig jobb lett volna úgy.Meg a max_lvl-t is, de akkor mind1, a működésén nem változtat, így is hibátlan, csak az már apróbb formalitás lenne :)


    2016-03-27, 20:40:03 #38 Last Edit: 2016-03-28, 12:41:44 by T0gy3R
    Quote from: [VIP]P3NG3R on 2016-03-27, 19:51:36
    Emez itten kométa, vagymi komplett olyan ami neked kell, nem configos ;)
    http://t4ump.eu/max_yang_by_t4ump.rar
    http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/4010184-c-increased-gold.html

    Köfi, a sajtot szeretem, ezt meglesem majd ;)
    Ismét itt, ismét nem nyitok ennek egy témát feleslegesen..
    Wikin nézegettem az új húsvéti eventet, és szemet szúrt 3 sor.Amit ha jól értelmezem ütéseket veszi figyelembe, és ahhoz mérten adja a ládákat? vagy esetleg darabszámra dobja?(értem azalatt azt, hogy ha megvan az 1000 ütés összességében, akkor már egy fokozattal nagyobb ládát dobnak a mindenek? :D

    [spoiler=saját][spoiler=Boldog nyulacskákat][spoiler=Mindenkinek][spoiler=utolsó előtti][spoiler=tetszik, hogy így is lehet használni a spoilert :D]Illetve az új kosztümökről tudna valaki egy linket? [/spoiler][/spoiler][/spoiler][/spoiler][/spoiler]

    2016-03-28, 12:53:08 #39 Last Edit: 2016-03-28, 13:23:20 by 66Dragon99
    öhöm

    Ződ'erdőbe jártam,
    Jégmadarat láttam,
    El akart repülni,
    Szabad-e leütni?
    https://mega.nz/#F!pY5QgS5a!mQFToAeR0c8tAr8N53QqYQ



    Horrorisztikusan Boldog nyulat kívánok!

    https://www.anony.ws/image/JYDc
    nincs megosztható adat