Beiträge von Lead0b110010100

    Kenne Steap nun schon seit ein paar Jahren und kann deine Bedenken gerne falsifizieren.

    Es gibt keine Scambedenken bei ihm, dafür halte ich gerne meine Hand ins Feuer, hat er überhaupt nicht nötig. Sollte sich das als anders erweisen gibt es dafür auch den Prangerbereich.


    Er wird in ein paar Tagen höchstwahrscheinlich auch die Cloud hier veröffentlichen, so kann sich jeder die Monster einmal ansehen. Sollten sie irgendwo anders public sein, kann er sie ganz einfach nach einer Notiz (Privat oder in dem Thread hier) aus seiner Cloud entfernen und nicht verkaufen.

    Jemand der untrusted ist legt für jemanden der ebenfalls untrusted und unbekannt ist die Hand ins Feuer, top.

    Bitte melden Sie sich an, um diesen Link zu sehen.


    Ja man, etwa 6 Seiten voller zufriedener Kunden. Wie untrusted ich doch bin.

    Beispiele der Monster?

    Riecht btw ganz schön nach Scam bei 5€ per Mob wenn diese nichgmal irgendwelche Effekte haben und wahrscheinlich über verschiedene Foren public sind..

    Kenne Steap nun schon seit ein paar Jahren und kann deine Bedenken gerne falsifizieren.

    Es gibt keine Scambedenken bei ihm, dafür halte ich gerne meine Hand ins Feuer, hat er überhaupt nicht nötig. Sollte sich das als anders erweisen gibt es dafür auch den Prangerbereich.


    Er wird in ein paar Tagen höchstwahrscheinlich auch die Cloud hier veröffentlichen, so kann sich jeder die Monster einmal ansehen. Sollten sie irgendwo anders public sein, kann er sie ganz einfach nach einer Notiz (Privat oder in dem Thread hier) aus seiner Cloud entfernen und nicht verkaufen.

    Hallo Leute,


    ich habe in den vergangenen Wochen alle meine Daueraufträge beendet und pausiert und wollte dies nun auch öffentlich machen. Ab Anfang August gehe ich in meine 90 tägige Bachelorschreibphase über. Das ist quasi die letzte Hürde nach etwa 50 bestandenen Modulen in der angewandten Informatik nach 3 Jahren. In dieser Schreibzeit werde ich mit recherchieren und fachdudeln beschäftigt sein. Deshalb kann ich bis etwa Mitte November keine neuen Aufträge entgegennehmen. Dies betrifft diesmal alle Neukunden aber auch Dauerkunden und jene, die mich bereits in ihrer Liste haben.


    Vielen Dank für die Resonanz alleine schon bis jetzt. Was als "ok, ich mache dir deinen Thread, wenn du dann aufhörst mich zu nerven" durch nervenaufreibende Gespräche mit einem Kunden begann - Ist völlig explodiert und führte zu unzähligen Erfahrungen und interessanten Ideen. Ich mache auch kein Geheimnis daraus das diese ganzen Anfragen äußert lukrativ sind und mich an noch bessere Angebote (höhere Summen, Daueraufträge etc.) bringen. Ich sollte dem Initiator dieses Threads nochmal persönlich danken..!


    In den nächsten 3 Tagen schließe ich meine letzten versprochenen Aufträge ab und wir sehen uns in einigen Monaten mit (hoffentlich) einem Bachelor-Abschluss und neuer Motivation wieder. Macht es gut, bis in ein paar Monaten!


    Lead

    Verschiedene Protos? Wie ist das gemeint?

    Bspw. item_proto v1 und item_proto v2 :D

    Ah okay, das wusste ich nicht. Das löst natürlich immernoch nicht das Problem mit txt's und encoding. Oder eben auch das man einfach ingame gehen muss und /reload p eingeben muss und nicht direkt schon Navicat einen am Editieren hindert.

    Das stimmt. Nur müsste man dafür immer txt bearbeiten -> Server starten -> Server stoppen -> SQL ausführen. Trigger funktionieren dann nicht, zumindestens nicht mit der item_proto oder der mob_proto, weil die Datensätze nicht aktualisiert werden sondern erst bei Serverstart.

    Den Server muss man nicht neustarten, man kann auch einfach die Protos reloaden, während der Server läuft.


    Wenn du jetzt in der SQL etwas änderst, kannst du es nicht mehr rückgängig machen. Zudem kannst du via TXT verschiedene Protos laden lassen.

    Verschiedene Protos? Wie ist das gemeint?

    Beim TXT Verfahren werden die Datensätze beim Serverstart doch auch in die player.item_proto.sql etc. geladen.

    Wieso sollte man dann keine Anweisungen wie SELECT ausführen können? 8|

    Das stimmt. Nur müsste man dafür immer txt bearbeiten -> Server starten -> Server stoppen -> SQL ausführen. Trigger funktionieren dann nicht, zumindestens nicht mit der item_proto oder der mob_proto, weil die Datensätze nicht aktualisiert werden sondern erst bei Serverstart.

    Benutzt was ihr für besser empfindet, ich für meinen Teil werde nie wieder zu SQL zurück gehen, mit TxT ist es viel angenehmer zu arbeiten und was Lead bei Punkt 1 anspricht ist für mich überflüssig, in über 10 Jahren noch nie gebraucht. Punkt 2 für mich auch irrelevant, da mein Client/Server/Dumpproto so umgebaut sind das wenn ich nen neuen item type einbaue das nur in einer datei erfolgt für alles, sehe somit auch kein Zeitgewinn mit einem Mysql2Proto dumper, ist genau gleich schnell. Punkt 3 Stimmt, aber mal ganz ehrlich wenn man das einmal weiß passiert das nicht.


    Es ist und bleibt einfach Geschmackssache.

    "Fact's don't care about your feelings." - Ben Shapiro


    Hier ein paar Beispiele die mit SQL ziemlich einfach sind und leicht zu realisieren:


    Die Felder einer Tabelle permanent sortieren:


    Freie Item Vnum Ranges finden (nicht mein Code, keine Ahnung woher ich das kopiert hatte):


    Alle Items finden, die in der value5 Spalte auf einen Mob verweisen:


    Duplikate vermeiden (Von techonthenet.com):



    Eine Tabellenstruktur unter anderem namen neu erstellen (Von Marty, irgendwo gelesen):



    Den Inhalt einer Tabelle in eine andere Tabelle einfüttern:



    CSV Datei einlesen und Inhalt in eine Tabelle einfüllen, Kommandos auf dem System ausführen (Sofern erlaubt), Multiple Querys in einer Transaktion und so weiter und so weiter. Das ist nicht nur technischer Schnickschnack, es hilft euch beim Arbeiten und erleichtert Einiges. Dagegen reicht ein Komma oder ein Typo um deine TXT zu versauen.


    Punkt 2 bleibt relevant, da nicht jeder diesen Dumper hat, du bist ein Einzelfall. Und selbst dein Dumper ist höchst ineffektiv, ändere ich meine item_proto Struktur muss ich deinen Dumper ändern, womöglich nutzt dein Dumper irgendwelche fixxen Werte (wie du ja schon sagst, du musst was eintragen) wogegen der Mysql2Proto Dumper sehr generisch ist und dazu auch noch schneller und weniger fehleranfällig.


    MySQL ist sogar nur die Miniversion von Datenbankmanagementsystemen, schau dir mal alle Keywords von PostgreSQL an, wo zusätzlich nützliche Datentypen wie json_b und array oder inet dazukommen. Das Thema könnte unendlich gedehnt werden, aber ich glaube was ich sagen will ist klargeworden.


    Und nochmal weils so schön ist:

    "Fact's don't care about your feelings." - Ben Shapiro

    Bitte melden Sie sich an, um diesen Link zu sehen.

    Halt dich daran und lass den Sql Mist weg.

    Deymos Hör bloß nicht auf alles was du im Internet liest. Das Zitierte hier zum Beispiel ist ein ziemlich dummer und nicht qualitativer oder zielbringender Beitrag.


    Meine Meinung:

    Bleib bei Datenbanken und SQL, Daten gehören in eine Datenbank, dafür wurden sie überhaupt entwickelt. Hier einige Vorteile von Datenbanken gegenüber TXT im Metin2 Kontext:


    1) Du kannst Querys benutzen. Versuch mal bei TXT's 'Jede vnum beginnend mit einer 4 und einem s im Namen' zu filtern welche in auch in einer zweiten Tabelle vorhanden sind. Da kommst du mit TXT und Excel sehr schnell an deine Grenzen.

    2) Du musst nicht ständig irgendeinen ProtoDumper überarbeiten wenn du neue Itemtypen oder flags einbaust. Das erspart dir viele Probleme, bei einer Datenbank kannst du arbeiten am Ende den Mysql2Proto Dumper verwenden und schwubs, ist alles im Clienten. Außerdem geht das schneller als beim ProtoDumper.

    3) Bei TXT Dateien reicht ein Leerzeichen zu viel oder ein Komma am falschen Platz damit dein Server nicht mehr startet. Auch reicht es, wenn du ein item in der item_proto.txt einträgst aber vergisst, ihm einen Namen in der item_names.txt zu geben. Das kannst du bei SQL durch Trigger oder andere Constraints verhindern, dann musst du den Server nicht erst starten um Fehler zu erkennen sondern das sagt dir dann dein Client z.B: Navicat.

    [...]

    9999. TXT Datei einmal mit falscher Encoding abgespeichert? Tja, alle deine 'äöüß's sind nun ? - Viel Spa? beim L?sen dieses Problems.


    Ich denke das reicht um zu zeigen wie viele Vorteile SQL und Datenbanken gegenüber einer einfachen .txt Datei haben.

    Hast leider recht. Der Link zu den Files auf m2u ist down. Ich hab die Files auf dem PC, bin aber nicht berechtigt sie hier hochzuladen oder dir zu senden. Musst du wohl googlen und suchen, die werden irgendwo anders auch public sein.


    Hab mal für dich gesucht. Bitte melden Sie sich an, um diesen Link zu sehen.

    Tipp: Google mal nach "metin2 martysama files download". Es gibt ein fast gleichnamiges türkisches Board wo die neuesten Files immer veröffentlicht werden. Mit gleichnamig meine ich das ein Teil des Namens des Boards mit in dem Namen dieses Boards drinne ist. Wirst du schon finden.

    Fertige Files zu kaufen ist allgemein keine gute Idee wenn du mich fragst, wenn du das Geld hast bezahl Marty, kauf dir die Files und mach den Rest selbst. Alternativ kannst du hier auf m2dl eine veraltete releaste Version runterladen und damit arbeiten. Das ist eine wirklich gute Basis um einen Server aufzubauen.


    Serverfiles bieten neben allen Features eben auch alle Bugs, die der Entwickler dabei miteingebaut hat inklusive. Selbst wenn er diese fixxt, ist das nach dem Serverstart höchstwahrscheinlich nicht schnell genug. Zudem garantiert niemand, das OWSAP in 1/2/3 Jahren immernoch da ist, wenn dann dein Server online ist.


    Besser also selbst lernen wie das geht und dann selber Dinge bauen. Immerhin verstehst du dann den Code auch, du hast ihn ja selbst geschrieben im Idealfall.

    Es sollte vielleicht erwähnt sein das bei dieser Abfrage keinerlei Prüfung stattfindet, es wird euch also nicht mehr möglich sein zum Beispiel Pfeile für den Ninja oder Sonstiges als Stack auszurüsten. Andere Fälle fallen mir gerade nicht ein wo man einen Stack an Items equippen könnte. Deshalb hier die Abfrage mit der Ausnahme von Pfeilen:


    Nach dem Block:

    Code
    1. if (item->IsDragonSoul())
    2. {
    3. [...]
    4. }


    folgendes einfügen:


    Originalabfrage oberhalb davon entfernen.

    Du hast 500€ im Werbung gesteckt, obwohl du nicht mal nen Tec hast ?

    Hättest das Geld auch verbrennen können... Moment, hast du ja 😂

    Naja ich kann das alles alleine aufstellen , ich wäre nur dankbar wenn sich ein TEC findet der mir ein bisschen arbeit abnimmt , damit ich mich um mein 4 tage altes baby kümmern kann :)

    Gut gemeinter Rat: Lösch deinen Metinaccount und kümmer dich um dein Baby. Du brauchst nicht nur einen TEC, du brauchst zusätzlich auch noch Quester, Mapper, Modellierer, einen Designer, ein multilinguales Team mit mind. 6 Sprachenunterstützung und sehr viel mehr wie ein Netzwerk aus Ansprechpartnern für Sicherheit, einen Weg um umzucashen etc. pp. Nur mit einem TEC ist das Ganze noch nicht durch.

    Übersehe ich irgendwas?


    Code
    1.                     if (gPlayerMaxLevel <= GetLevel())
    2. return;
    3. if (gPlayerMaxLevel == GetLevel() && (next_exp/2) <= exp)
    4. return;


    oder geht dieser Code niemals in die zweite IF - Anweisung hinein? Wenn meine gPlayerMaxLevel - Variable auf 200 gesetzt ist und mein Level 200 ist, steht da:


    Code
    1. if (200 <= 200) // Ergibt true
    2. return;
    3.                     // Hierhin kommt er nie an
    4. if (gPlayerMaxLevel == GetLevel() && (next_exp/2) <= exp)
    5. return;

    Danke für das längere Review, meine Familie und ich sagen Danke!

    Du bist btw. die 30. Antwort (Okay, es sind doch weitaus mehr, 86 schon holy.) auf diesem Thread und dazu so eine Positive, nice! <3

    Finde es nicht so sinnvoll per se jedes Mob mit rank >= 4 nicht wegkickbar zu machen. Hab das eher mit AI_FLAG's gelöst um selbst entscheiden zu können wer wegkickbar ist und wer nicht, falls das jemand braucht kann er sich gern melden. Kb ein Tutorial zu schreiben :D

    Ich denke mal eher er sucht das aktuelle. De hat in den letzten 2-3 Patcher paar Sachen beim PET System verändert/erweitert und diese Änderungen wurden glaub noch nirgends releast

    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Bitte melden Sie sich an, um dieses Bild zu sehen.

    Wer den Code einbaut hat aber auch aufjedenfall die Kontrolle über sein Leben verloren.. Alleine wenn ich diese Zeile hier sehe:

    Code
    1. snprintf(szQuery1, sizeof(szQuery1), "SELECT name,level,exp,expi,bonus0,bonus1,bonus2,skill0,skill0lv,skill1,skill1lv,skill2,skill2lv,duration,tduration,evolution,Petin_yasi,pet_type FROM new_petsystem WHERE id = %d ", pSummonItem->GetID());

    pSummonItem könnte NULL sein.


    Muss ich den Teil überhaupt kommentieren?

    Ich hab dafür einen eingebauten Python Reloader. Damit kann ich eine bestimmte Klasse im Loginscreen oder Ingame laden und bearbeiten, dann drücke ich F10 zum Neuladen und hab die neueren Positionen. (Eure Klasse muss beim Zerstören dann allerdings auch alle Elemente löschen und alle Events auf None zurücksetzen, also ein bisschen sauberer Code gehört dazu).


    Ansonsten kann ich Ente da nur zustimmen, Bildbearbeitungsprogramme helfen echt bei der Positionierung, was ich auch nutze ist ein Pixel-Lineal namens "PixelRuler", auch ganz nützlich :)


    So würd ichs machen, ist etwas generischer und deckt den Pferdefall ab. z.B: Ninjas mit ihren Dolchen haben teilweise Ranges von 480 auf dem Pferd. Kann man dann ja für sich anpassen :)