Btw. dein compilen hat nie fehlgeschlagen, lediglich das linken.
Beiträge von std::max
-
-
Hast du nichtmal einen Router, so kannst du auch den Loopback Adapter benutzen
-
Wundervollen Guten Tag,
ich habe eine Frage bezüglich der zusammen Arbeit von Client und Server. Es ist ja so, das man mittlerweile ganz gut die Client Source selbst kompilieren kann, z.B. Inventarseiten kann man hinzufügen.
Wenn man sich jetzt die ganzen Tutorials zu z.B. den Inventarseiten ansieht, sieht man immer nur wie die Client Source angepasst wird, aber auf dem Server muss dann doch auch was angepasst werden?
Ich mein sonst könnte ich ja bei jedem Server einfach einen Client selbst kompilieren mit mehr Inventar Seiten als regulär?
Wird Serverseitig nicht irgendwo überprüft ob der Client überhaupt connecten kann/darf? Wo genau ist diese logik? In wie fern darf ich den Client anpassen das er noch Serverseitig akzeptiert wird?
Ich hatte z.B. vor in dem Client einzustellen dass das Level nicht mehr angezeigt wird. Ok, aber jetzt kann doch einfach jmd. seinen eigenen Client mit lvl Anzeige kompilieren und auf den Server joinen?
Wo muss man hier eingreifen?Danke vielmals für Antworten!
MfG
//edit: ok das mit den Inventarseiten war ein schlechtes Beispiel, aber sollte ja klar sein was ich meine
Wenn du ein packet änderst bekommst du 'verschobene' packets. Angenommen der Server schickt
Level - Prestige .... aber der Client liest nur Level ... dann ist der nächste Wert halt der der als Prestige
gesendet wurde. Irgendwann dann fängt das nächste packet an. Dort passiert dann entweder.1. Es passt zufällig ein Befehl und du hast irgendwie schwer vorhersehbares verhalten. Also alles random.
2. Es passt kein Header, du bekommst ein UNKNOWN HEADER Fehler in der syserr und die Verbindung wird getrennt.Da der Server immer so gestaltet sein sollte, das durch das Manipulieren des Clients nicht viel machbar sein sollte (cheating etc...) ist das überprüfen der Version nur für den User wichtig.
Den Client garnicht starten zu lassen hingegen ist wieder Userunfreundlich. Lieber mit einem leicht buggy Client spielen, als garnicht können weil Patcher nicht geht etc...
-
Welcher davon ist von der Datenbank?
-
Schau mal in die syserr's.
Höchstwahrscheinlich hast du das Datenbankschema geändert weswegen eine Query fehltschlägt.
-
Kritischer Kampf: 5508
Durchbohrender Kampf: 5509
Drachengott-Leben: 5491
Drachengott-Angriff: 5492
Drachengott-Intelligenz: 5493
Drachengott-Verteidigung: 5494
Drachengottunterstützung: 5495Das sind die Codes kannst per Quest sie beim erstellen eines Acc geben.
Ich bin mir ziemlich sicher das eine Quest nie beim erstellen eines Accounts triggert, wenn dann beim erstellen eines Charakters.
-
Dir fehlt die devil lib (ist eine lib zum bearbeiten von Bildern).
Am besten installierst du das devil packet.Edit:
Alternativ, falls du das schon gemacht hast pass doch deine link-dir an in der Makefile
-
Moin,
hab mal eine Frage, undzwar kann man Drachengott Zeugs + Krit/DB Treffer, sofort beim erstellen eines Accounts vergeben?
Wie bei EXP, Auto. aufheben etc.Lg
Damit das so funktioniert wie Bitte melden Sie sich an, um diesen Link zu sehen. gesagt hat funktioniert musst du etwas im Source arbeiten, aber
ich bin mir sicher dass das relativ einfach machbar ist. -
könnte man auch
Wie willst du sonst 'ssh keys' benutzen mit normalem ftp?
tar -cvzf $DATADIR/$PROJNAME-$PREFIX.tar.gz $DATADIR/$PREFIX 2> /dev/null
Verbose output wenn das script als cronjob ausgeführt werden soll?
Des weiteren bin ich mir relativ sicher das du mysqldump etc... nicht verwenden kannst
ohne genau anzugeben wo es ist. Cronjobs werden doch in sehr isolierten Umgebungen ausgeführt. -
sehr schönes script jetzt noch mit ssh key und es ist perfekt
Du meinst mit scp kopieren?
-
Sehe ich dass richtig, das es kein Tapferkeitsumhang am Anfang gibt?
Das ist doch etwas hart .Desweiteren hab ich Sicherheitslücken gefunden, melde dich doch mal bei mir.
-
Bitte melden Sie sich an, um diesen Link zu sehen. da ist ein Questwriter.
-
Hi,
Hab noch das von Just4Metin. Ich hab es weder eingebaut noch getestet.
Bitte melden Sie sich an, um diesen Link zu sehen.
Edit: Password ist m2dl
-
Ja, sieh dir dazu in item.cpp folgendes an
C: item.cpp- EVENTFUNC(accessory_socket_expire_event)
- {
- item_vid_event_info* info = dynamic_cast<item_vid_event_info*>( event->info );
- if ( info == NULL )
- {
- sys_err( "accessory_socket_expire_event> <Factor> Null pointer" );
- return 0;
- }
- LPITEM item = ITEM_MANAGER::instance().FindByVID(info->item_vid);
- if (item->GetAccessorySocketDownGradeTime() <= 1)
- {
- degrade:
- item->SetAccessorySocketExpireEvent(NULL);
- item->AccessorySocketDegrade();
- return 0;
- }
- else
- {
- int iTime = item->GetAccessorySocketDownGradeTime() - 60;
- if (iTime <= 1)
- goto degrade;
- item->SetAccessorySocketDownGradeTime(iTime);
- if (iTime > 60)
- return PASSES_PER_SEC(60);
- else
- return PASSES_PER_SEC(iTime);
- }
- }
Das hab ich auf die schnelle gefunden. Schau dass du das Event nie startest oder zieh nichts ab pro tick.
-
PS: für 50-100€ richte ich dir deinen Server ein (ohne files usw.)
Einrichten kann ich dir (und wahrscheinlich auch viele andere) den Server gratis
Zu den anderen: Gehören hier wirklich Meinungen rein?
Der gute Mann will Serverfiles kaufen und bietet dafür 50-100 Eur.Hätte er Ratschlag gewollt, so würde der Post in discussion oder sonst wo sein oder sehe
ich das falsch? -
Wichtig ist eine unbegrenzte Internet Flat (Traffic),
Metin verbraucht vergleichsweise wenig Traffic.
so viel RAM und CPU Leistung wie möglich.
U don't say !
4GB Ram empfehle ich dir mindestens zum 'testen', danach sollten 16GB aber schon gut ausreichen.dass der Server SSD Festplatten hat, da diese in der Speicherungs- und Zugriffszeit unschlagbar sind!
True, aber Metin lädt jetzt nicht soviele Ressourcen von der Platte.
Edit: Jeder RAM Schlägt eine SSD nur mal so nebenbei.sodass du keine kosten hast.
Strom kostet auch, vergiss das nicht.
Zum Author:
- Fliege files
- Das ist keine Frage aber deine Aussage ist korrekt.
- Dort wo du Service + DDOS Protection findest (OVH z.B.)
- Neben der Leistung eventuell auch wo er liegt für gutes peering zu deinen Usern.
-
Du hast die anticpxsvr lib nicht.
Du musst diese compilieren als lib, danach ranlib für diese Datei ausführen.
Danach das ganze ins Link-Dir -
Hi nochmal,
also laut diversen Bitte melden Sie sich an, um diesen Link zu sehen. ist die Pipeline bei modernen Prozessoren 14 Zyklen lang.
Das heißt bei einer falschen branch prediction verlierst du diese Anzahl an Zyklen.Bitte melden Sie sich an, um diesen Link zu sehen. sagt das bei der dynamischen Vorhersage eine Wahrscheinlichkeit von bis zu 98%
das der Sprung stimmt. Damit hättest du eine durchschnittliche Ausführzeit von 1 + 14 * 1.02.Ich hoff mal das ich nichts falsches erzähle.
Des weiteren kann man auch viel Zeit sparen indem du in der idle Zeit die Kontextwechsel machst. Sprich du kannst während wenig los ist bereits den Speicher für Items / Spieler allozieren und diesen erst später verwenden (Pools).
Trotzdem bin ich der Meinung das du damit keinen spür oder messbaren Unterschied sehen wirst in Metin.
Noch ein Beispiel:
C: main.cpp- #include <iostream>
- int main(int argc, char * argv[]) {
- if (argc == 2)
- {
- for (int i = 0 ; i < 100000000 ; ++i)
- {
- int * data = new int[10];
- delete[] data;
- }
- } else {
- int data[300];
- wmemset((wchar_t *) data, 0, sizeof((wchar_t *) data));
- for (int i = 0 ; i < 100000000 ; ++i)
- {
- if (data[i % 200] < i % 450){
- data[i % 200]++;
- } else {
- data[i % 200]--;
- }
- }
- }
- }
-
Spielt keine Rolle im vergleich zu der Zeit die verloren geht durch Kontextwechsel.
Edit: Die Zeit selbst im Programm zu messen macht man nicht, benutz doch time
-
if (g_bAuthServer)
std::system("cd /usr/game && sh backup.sh");Das checkt ja ob es sich um den AuthServer handelt, falls ja wird std::system aufgerufen, was soweit ich weis blockiert bis der Befehl zuende ist.
Alternativ kannst du c'style einen neuen Prozess machen mit fork() und system() dann in dem child process ausführen.
Was spricht gegen backups per cronjob?