Beiträge von Knuspy

    So, habe die Fehler raus, Distribute Exe wird nun ebenfalls wieder wie gewohnt gebaut.
    Dennoch habe ich das Problem das sich der Client nach dem anmelden mit Username und Password schließt.
    Client syserr ist leer, serverseitig finde ich ebenfalls nichts.

    Im VS19 Ouput Fenster habe ich einige Warnings.

    Jemand ne Ahnung wie ich herausfinde wieso der Client crasht ?

    Nabend,

    ich nutze die Fliege V2 Files und den Reworked V2.1 Clienten.

    Ich habe mithilfe des Update Client-Source to VS2019 Tutorial die Source geupdatet und problemlos die Source in VS19 Enterprise bauen können.


    Jetzt habe ich gestern, nachdem der Stress mit Doku und schriftliche Prüfung weg ist, mal wieder etwas umsetzen wollen und habe vorher VS19 geupdatet und ein paar andere SDK zusätzlich installiert.
    Seitdem lässt sich der Client Source im Release und Debug zwar bauen, doch der Client schließt sich nach dem Anmeldefenster.
    Keine Fehler Client- oder Serverseitig, syserr im Client wird zB. erstellt aber hat keinen Inhalt.

    Ich habe keine Änderungen am Code vorgenommen.

    Eine alte exe, die ich erstellt habe bevor dem VS19 Update und aus 1 zu 1 dem selbe Code erstellt worde, lässt mich ins Spiel.


    Während des Distribution Builds kommt es zu zwei Arten von Fehlern, welche sich auf über 1000 Ereignisse summieren.

    Soweit ich es laut Google verstanden habe rafft der Linker nicht wo die Libraries sind um die Referenzen zu den Symbolen auflösen zu können.
    In den Eigenschaften habe ich nachträglich nochmal unter Additional Library Directories auf die Libraries verwiesen.

    Eine andere Möglichkeit laut Google wären Unterschiede in der verwendeteten Compiler Version.
    Muss ich eventuell alle libs in meiner aktuellen Version mal neu bauen ??

    Falls ja, wo bekomme ich die Source zu denen her ?


    Aktuell genutzt in VS19, Platform Toolset v142, C++ Language ISO C++ 14, Windows SDK 10.0, MSVC Toolset Version default(14.2930133).

    Wäre dankbar wenn ihr mir ein paar Tritte in die richtige Richtung geben oder ein paar Ideen in den Raum werfen könntet.

    Check mal, ob die DT Run Quest sauber geschrieben ist. Eventuell hast du Timer, welche in einem Timer gestartet werden oder irgendeine Endlosschleife produzieren. Hatte das Problem bei den Fliege Files auch permanent.


    Schau dir sonst auch mal die game.core Datei mit gdb an.

    Hatte bisher keinen Schimmer das man die game.core debuggen kann und habe mich in den FreeBSD gdb eingelesen und hier dann auch einige Tutorials gefunden.


    Mit Hilfe dessen konnte ich herausfinden das der item_manager Pfeile als drop erstellt hat und dann mit einer 20% Wahrscheinlichkeit versuchte einen Bonus auf dieses Item zu bringen. Dies erklärt wieso die crashes immer zu unterschiedlichen Zeitpunkten passierte.

    Ich habe die Wahrscheinlichkeit eines Bonus auf 100% geändert und konnte so den core crash bei jedem Drop eines Pfeils provozieren.

    Habe im Source dann einfach ne Prüfung hinzugefügt, welche dafür sorgt das keine Boni zu dem Item hinzugefügt werden wenn es Type 1 und SubType 6 ist.


    Danke.

    Check mal, ob die DT Run Quest sauber geschrieben ist. Eventuell hast du Timer, welche in einem Timer gestartet werden oder irgendeine Endlosschleife produzieren. Hatte das Problem bei den Fliege Files auch permanent.


    Schau dir sonst auch mal die game.core Datei mit gdb an.

    Habe die Quest bisher nur auf eventuell nicht vorhandene Mobs/Items geprüft.

    Ich werde mir die Quest nochmal genauer ansehen und vielleicht komplett selber schreiben, brauche da eh noch etwas Übung.

    Jemanden dem ich vor kurzem geholfen habe, hatte auch das Problem und es lag an zu wenig ram aufm Server. Aber wenn du magst kannst mich ja mal auf Discord adden und ich kann es mir mal anschauen.

    Habe 8 GB zugewiesen.

    Wäre natürlich die einfachste Lösung wenn ich nur mehr RAM zuweisen müsste.

    Nabend,


    folgendendes Problemchen ärgert mich nun seit einiger Zeit:


    Während Dt Runs kommt es in gefühlt 95% der Fällen früher oder später zu einem Core Crash (segmentation fault (core dumped)), alle Clients welche sich im DT befanden werden gekickt.

    Clients auf anderen Maps im selben Channel bleiben verbunden.


    Das kuriose ist das ich kein Muster erkenne, syserr und logs des Channels sind für mich unauffällig.

    Die crashes passieren random, ich habe keinen Weg gefunden diese zu provozieren.

    Ich bin, um dies auszuschließen, alle regen.txt und die entsprechende Quest durchgegangen und habe sichergestellt das kein Item/Mob gespawnt oder entfernt wird welches nicht existiert.


    Channel_1 Kern_1 log und err

    Jemand ne Idee oder nen Vorschlag was ich sonst mal prüfen sollte ??

    Hallo zusammen,


    ich habe das lesen von Büchern wie Führung, Verwandlung, Bergbau etc in entsprechende Quests ausgelagert.

    Hierbei haben MeisterFbs eine höhere Erfolgswahrscheinlichkeit als normale Counterparts.


    Nun stehe ich vor dem Problem die Techstufen von Fertigkeits-/Meisterbüchern zu Synchronisieren wenn ich normale Fbs und Zwischendurch Meister Fbs lese.

    Derzeit tracke ich per Questfile wie viele erfolgreiche Fbs auf dem Skill gelesen wurden.

    Normale Fbs werden aber nicht getrackt, da diese außerhalb der Quest agieren.


    Nun habe ich versucht normale Fbs mit in die entsprechende Quest aufzunehmen

    Wenn ein normales Fb geklickt wird, wollte ich die Skill Id oder den kompletten Namen des Fbs bekommen.


    Meine Hoffnung war das eine der folgenden Funktionen mir etwas brauchbares liefert, leider war dies nicht der Fall.

    Code
    1. item.get_id
    2. item.get_name
    3. item.get_refine_vnum
    4. item.get_size
    5. item.get_socket
    6. item.get_sub_type
    7. item.get_type
    8. item.get_value
    9. item.get_vnum


    Nun meine Frage ob jemand ne Idee hat wie ich innerhalb der Quest an die Skill Id oder den vollen Namen des geklickten Fbs komme.

    Hallo zusammen,


    ich fand im Netz hierzu kein Tutorial und habe mich dann ran gemacht dies für mich um zu setzen.


    Alles was ihr braucht ist die uitooltip.py aus der root des Clienten.


    Sucht nach der Funktion und erweitert diese:

    Code
    1. // Finden und ersetzen
    2. def __GetAttributeColor(self, index, value):
    3. def __GetAttributeColor(self, index, value, type):

    Anschließend sucht die Funktion

    Code
    1. def __AppendAttributeInformation(self, attrSlot):

    In dieser Funktion solltet ihr folgende Variablen zuweisung finden und type als parameter für GetAttributeColor übergeben:

    Code
    1. // Finden und type hinzufügen
    2. affectColor = self.__GetAttributeColor(i, value)
    3. affectColor = self.__GetAttributeColor(i, value, type)


    Soweit sogut.

    Nun könnt ihr folgendes tun:

    In meinem Beispiel:

    Ist mein 6 oder 7 Boni Dss checke ich die Höhe des Wertes und setze demnach die Farbe des Bonus im Tooltip der Waffe.



    Ich hoffe der ein oder andere findet seinen nutzen damit.


    Ps: Das Stark gegen Monster bei mir in der Waffe blau ist, kommt daher das ich mehrere Gruppen habe welche unterschiedliche min/max Werte haben.

    Das ist kein Fehler, sondern Absicht.8o

    Dateien

    • Rüstung.PNG

      (462,19 kB, 19 Mal heruntergeladen, zuletzt: )
    • Waffe.PNG

      (106,42 kB, 14 Mal heruntergeladen, zuletzt: )

    Hallo zusammen,


    der in 2015 releaste Ingame Channel Switcher ist in den Fliege Files schon vorhanden gewesen.

    Mir fehlte in meinem Client der gegenpart dazu welchen ich hinzugefügt habe.


    Die berechnung der Ports habe ich angepasst.

    Ch1 13031 - 13041 - 13051

    Ch2 15031 - 15041 - 15051

    Ch3 17031 - 17041 - 17051

    Ch4 19031 - 19041 - 19051

    Code
    1. for (int i = 0; i < 4; i++)
    2. {
    3. for (int i2 = 31; i2 < 52; i2+=10)
    4. {
    5. ports[13 * 1000 + i * 2000 + i2] = i + 1;
    6. }
    7. }

    Mein Problem ist nun, ich öffne Ingame das Channel Wechseln Fenster und beim drücken der Channel Buttons bekomme ich nur Chat Infos ausgegeben.

    Ansonsten passiert nichts.

    Er ruft also erfolgreich die jeweilige Funktion __1, __2 etc in uichannel.py auf woraufhin die Funktion __OnChangeChannel(ch) mit dem jeweiligem Channel aufgerufen wird.


    uichannel.py


    Syserr Server und ClientSide sind leer.

    Ich kenne mich mit dem Ablauf nicht wirklich aus, ich vermute es fehlt die Verbindung Client zu Source ?

    Versuche das Client Side Pickup zum laufen zu bekommen.

    Nach der Char Auswahl bleibt das Fenster hängen.

    Welche Datei lädt er denn bei File "uiSystem.py", line 42, in __LoadSystemMenu_Default?

    Habs gerade hin bekommen.

    Habe den help_button in locale/xx/ui/systemdialog.py und uiscript\systemdialog.py ersetzt.

    In der uisystem.py hat er self.GetChild("help_button").SAFE_SetEvent(self.__ClickHelpButton) aufgerufen...

    Hab die Zeile einfach auskommentiert.

    War gestern offensichtlich zu lange wach. :sweat_smile:

    Pickup funktioniert problemlos, danke.

    Versuche das Client Side Pickup zum laufen zu bekommen.

    Nach der Char Auswahl bleibt das Fenster hängen.

    Habe den Server Side Fix versucht, in der locale/xx/ui/systemdialog.py aber folgendes eingefügt:

    uiscript\systemdialog.py

    Immernoch selber Fehler, jemand ne Idee ?

    Eine neue Race Flag über mob_proto -> designTable -> setRaceFLag - Values hinzuzufügen funktioniert nicht.


    Rechtsklick auf die Tabelle, Design Table, Passenden Wert ergänzen


    Werd ich später nach der Arbeit nochmal probieren und melde mich dann, danke.


    Hat sich erledigt, habe in MYSQL die Race Flags identisch zu den RaceFlags in length.h anordnen müssen.


    Weiß grad jemand ob der Mob Dmg sonst noch irgendwo beeinflusst wird ?

    Mit 50% Blitzdef, anstatt 50% Dmg zu reduzieren, macht der Mob ~ 65-66% Dmg weniger.

    Also mit 0% Def = 1666 Dmg, mit 50% Def = 569 Dmg anstatt der erwarteten 833 Dmg.


    battle.cpp

    Code
    1. if (pkAttacker->IsRaceFlag(RACE_FLAG_ATT_ELEC))
    2. iAtk -= (iAtk * 100 * pkVictim->GetPoint(POINT_RESIST_ELEC)) / 10000;

    Guten Morgen,


    ich habe nun durch ausprobieren einen Weg gefunden wie ich folgenden Code, mitwelchen man Mob DMG reduzieren kann wenn diese die passende Race Flag haben, zu nutzen.

    Code
    1. battle.cpp
    2. if (pkAttacker->IsNPC() && pkVictim->IsPC())
    3. {
    4. if (pkAttacker->IsRaceFlag(RACE_FLAG_ATT_ELEC)) // RACE_FLAG_XXXXX <---- diverse Race Flags
    5. iAtk -= (iAtk * 100 * pkVictim->GetPoint(POINT_RESIST_ELEC)) / 10000;

    Mein Problem ist nun das es auf den Race FLag ATT_ELEC prüfen soll, diesen habe ich in der Mob_proto in MYSQL aber nicht als Race Flag zur Auswahl.

    Eine neue Race Flag über mob_proto -> designTable -> setRaceFLag - Values hinzuzufügen funktioniert nicht.

    Wenn ich eine der folgenden in MYSQL auswählbaren Race Flags in die if abfrage setze funktioniert es wie erwartet.

    'ANIMAL','UNDEAD','DEVIL','HUMAN','ORC','MILGYO','INSECT','FIRE','ICE','DESERT'

    Code
    1. battle.cpp
    2. if (pkAttacker->IsNPC() && pkVictim->IsPC())
    3. {
    4. if (pkAttacker->IsRaceFlag(RACE_FLAG_FIRE))
    5. iAtk -= (iAtk * 100 * pkVictim->GetPoint(POINT_RESIST_ELEC)) / 10000;

    Wie kann ich neue Race Flags zB. ATT_ELEC in die Mob_proto einfügen ?

    Zweiter Push.


    Habe im Fliege Source rumgestochert und soweit ich dies verstehe sind die Elementdeffs und die jeweiligen Race Flags dort schon definiert.

    Bleibt die Frage ob jemand weiß wie ich diversen Mobs eine zweite Race Flag geben kann.

    Somit sollte der Dmg dieser Mobs durch die Widerstandsboni gesenkt werden oder nicht ?


    Battle.cpp

    Protoreader.cpp

    lenght.h

    Ich push hier mal.


    Könnte ich nicht einfach diverse von mir gewünschte Mobs als neue Rasse definieren ?

    Im Endeffekt stelle ich mir das dann so wie bei den 61er Schildern vor.


    Wo sind diese Boni definiert ? Müsste irgendwo im Source rumfliegen oder ?

    Also wo finde ich die Dateien welche Mobs als Teufel, Dämonen, Orks etc. deklarieren ?

    Vielleicht kann ich mir so selber etwas basteln um die Elementdeffs wirksam zu machen.



    Lieben Gruß

    Tach zusammen,


    hierzu gab es in den vergangenen zwei Jahren schonmal zwei Themen welche leider keine wirkliche Antwort enthielten, Google hilft auch nicht weiter.

    Da die beiden Personen welche die selbe Frage stellten schon seit mehr als einem Jahr nicht mehr hier anwesend waren, stelle ich die Frage nochmal.


    Und zwar möchte ich die schon vorhandenen Boni Blitz, Feuer und Windwiderstand wirksam machen.

    Diese haben momentan keinen Effekt.

    In der Mob_proto stelle ich zwar ein wieviel widerstand ein Mob gegenüber zB. Einhandwaffen hat doch wie geht es anders herum ?

    Wie stelle ich ein das Blitzdef als Beispiel den Dmg von Mobs, welche ich im bestem Fall aussuchen kann, prozentual reduziert ?

    Auf .de gibt es einen gemodelten Eingang zu Grotte, derzeit ist bei mir an selber Stelle nur eine Sackgasse mit einem in der Luft schwebenden Portal.

    Dies würde ich wie gesagt gerne ändern.

    Eine dazugehörige Quest mit Blutstein bei NPC abgeben -> Warp in Grotte ist kein Problem.


    Wenn ich später zuhause bin kann ich mal Bilder zum besserem Verständnis machen.


    Edit:

    So hier die Bilder wie es momentan aussieht und wie ich es gerne hätte.

    Wäre super falls mir jemand sagen könnte wie ich dies ändern kann.

    Dateien

    Guten Morgen,


    zurzeit habe ich die Reworked Fliege Files mit neustem Source am laufen.


    Leider ist der Zugang zur Grotte nur ein Portal in welches man hinein läuft.

    Ich hätte aber gerne, wie auf De, dass man einen Blutstein bei einem NPC abgibt und in die Grotte transportiert wird.


    Einen NPC platzieren und die entsprechende Quest zu schreiben ist kein Problem, doch wie bekomme ich den Eingang zu Grotte hin ?

    Brauche ich eine andere Orktal Map und falls ja hätte die jemand ?

    Zudem müsste ich dann das derzeite Portal entfernen, richtig ?


    Lieben Dank

    Dank dir,


    habe mir die Translate.lua grad angesehen und wie du sagtest werde den Text direkt in die Quest schreiben.

    Dort kann ich den Text mit Absätzen besser gestalten.


    Lieben Dank nochmal.

    Hallo zusammen,


    ich würde gerne die Dinge die der Biologe zu jemandem sagt ändern, doch in den Questfiles sieht es so aus:

    Code
    1. say_title(gameforge.collect_herb_lv10._50_sayTitle)
    2. say(gameforge.collect_quest_lv30._40_say)

    Meine Frage ist nun, wo finde ich diese Dateien gameforge.collect_herb_lv10._50_sayTitle usw. ?

    Habe per Filezilla alle Questordner abgeklappert und im Source find ich auf anhieb leider auch nichts...



    Schönes WE !