Beiträge von Lead0b110010100

    kannst so ziemlich alles da kaufen. Zudem haben die ein sehr guten Support, wo man sogar Waren innerhalb der 2 Garantiejahren wieder ohne Probleme zurück geben kann und man bekommt sein Geld oder die gleiche Ware nochmal, je nachdem was man haben will

    Da hab ich schon ganz andere Erfahrungen gemacht, gefühlt ist bei Amazon es eine Frage des Glücks wer am Ende sitzt und dir Support bietet.

    Kann das was Freitag schreibt auch noch Mal vollkommen unterstützen. Ich musste mal ein Autoradio zurückschicken nach 3 Jahren. Obviously hatte ich keine Garantie mehr und trotzdem haben sie mir mein Geld zurücküberwiesen bzw. als Guthaben erstattet.


    Auch hab ich das Gefühl fragt Amazon nicht, woher das Geld kommt. Kannst einige tausend Euro aufladen und damit Goldbarren kaufen ohne Nachfragen. (Zwinker Zwinker)

    Ich arbeite nun schon länger mit Steap zusammen und er hat mir etliche Dinge gerippt und angepasst.

    Er hat unglaublich viel Ahnung von der Materie und durch die langjährige Zusammenarbeit weiß ich auch, dass er sich das alles selfmade beigebracht hat.


    Professionell, schnell (teilweise so schnell, dass man nicht hinterherkommt mit der Technik :D) und schöner Support, kann ich jedem nur weiterempfehlen.

    Baut seit geraumer Zeit die gerippten Monster auch direkt ein und erspart mir wirklich eine menge Arbeit damit..


    Approved as fuck der Junge. <3

    Ich habe gute Nachrichten:

    Der Bachelor ist bestanden und ich bin damit nun offiziell Softwareentwickler und am Ende meines dualen Studiums. Ich weiß nicht ob ich das Studium oder das Studium mich fertig gemacht hat, aber so soll es sein. Gleichzeitig hab ich, wie ihr wahrscheinlich mitbekommen habt, meinen Developer Rang wiederverliehen bekommen. Wurd ja auch Zeit.


    Für Daueraufträge bitte erneut bei mir melden, ich habe in dieser Zeit kein Buch über die eingeggangenen Anfragen geführt.

    Wenn ich dir also nicht geantwortet habe, melde dich einfach nun noch Mal!


    Was ändert sich jetzt für euch?

    Nicht viel muss man sagen. Außer das ich womöglich zu bestimmten Terminen (Dailys, Sprintplanung usw.) nicht aktiv bin, das verzögert die Antwort allerdings maximal um 2 Stunden.


    Wie geht es weiter?

    Ich plane in Zukunft einen Verkaufsthread, neben den allgemeinen Dienstleistungen, zu machen und sammle noch Ideen für Systeme, die man anbieten könnte. Ihr könnt mir also gerne verraten, was ihr gerne hättet. Weitere Informationen dazu (Lizensierung, Support, Preise) gibt es dann, wenn ich genug Systeme zusammen habe!


    Auf eine weiterhin erfolgreiche Zusammenarbeit liebe M2 Community!


    Und wenn vorhanden die shape.msm bearbeiten, die nimmt er zuerst. Wenn nicht vorhanden die andere msm.

    Ich hab grad keinen Bock das zu erklären, aber übernimm das so für die anderen NPC's und ersetze mit deinem NPC Namen / Monster Namen. :)

    Wow. Seriously, wow. I could feel his knowledge in my whole body.

    I got like 0 errors caused by his offlineshop system. Regarding on the logic behind it, I was ready for a 3-4 hour bugfixxing session but nope - It worked perfectly.


    I missed some libs and he passed it to me. I even learned about an easier way to get those libs. I recommend him to anybody in this scene. If I could learn something from him, you can too. Even the way he works is special I think? He used visual studio features I didn't even knew they existed :D

    Oh, dann entschuldige ich mich. Das wusste ich nicht.

    Code
    1. static const std::optional<int*> const p() const
    2. {
    3.     int b = 4;
    4.     static const std::optional<int*> const a = &b;
    5.     return std::make_optional(a);
    6. }


    Just kidding, lol. But if you read and tried that, tell me if it would compile. The const keyword in C++ is just ridiculous and I didn't even used const_cast or defines to break the syntax a bit more.

    Nemeres has no C++ part as far as I know, you're good to go if you have a well written quest for the run.

    Es tut nicht genau das Selbe, du machst ihn de facto runter und bist nicht bodenständig in deiner Antwort. Wenn du helfen willst, dann hilf.

    Wenn du nicht helfen willst, dann kenn zumindestens die Aufgabe und poste nicht um zu posten.


    Danke.

    Sich schlau fühlen und dann auch noch nen falschen Code präsentieren, oh man Shay.

    Code
    1. if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_DESTROY))
    2. {
    3. ChatPacket(CHAT_TYPE_INFO, "Du kannst das Item nicht zerstoeren!");
    4. return false;
    5. }


    Mit deiner Abfrage prüfst du, ob das Item NUR nicht zerstörbar ist, was halt kein einziges Item in der DB ist. Ergo: Abfrage wird nie betreten, gg.

    Hallo M2DL - Community,


    zur Feier meines wiedererlangten DEV Rangs und auf Wunsch von CHXMVN wollt ich mit euch das Feature teilen, dass ausgewählte Monster nicht wegschlagbar sind.

    So etwas Ähnliches gibt es auch schon, allerdings ist dort eine Hardcode Abfrage drin, dass ALLE Bosse (rank >= 4) nicht wegschlagbar sind. Ich habs mit einem ai_flag gelöst, sodass man pro Mob selbst entscheiden darf.


    Serverdatenbank:

    Unter player.mob_proto im Feld 'ai_flag' folgendes ganz unten einfügen: 'ANTI_KNOCKBACK'.


    Client-Source:


    PythonNonPlayer.h

    Falls ihr die enum habt: "enum EAIFlags" ganz unten mit eurer folgenden Zahl einfügen:

    Code
    1. AIFLAG_ANTI_KNOCKBACK = (1 << EURE_ZAHL_DAVOR + 1),


    So sieht es bei mir aus:


    InstanceBase.cpp

    Folgendes suchen in der 'bool CInstanceBase::Create' Funktion:

    Code
    1. SetVirtualID(c_rkCreateData.m_dwVID);
    2. if (c_rkCreateData.m_isMain)
    3. SetMainInstance();


    Darunter einfügen:

    Code
    1. if (!IsPC())
    2. {
    3. const CPythonNonPlayer::TMobTable* c_pTable = CPythonNonPlayer::instance().GetTable(c_rkCreateData.m_dwRace);
    4. if (c_pTable)
    5. {
    6. m_GraphicThingInstance.SetAntiKnockBack(IS_SET(c_pTable->dwAIFlag, CPythonNonPlayer::AIFLAG_ANTI_KNOCKBACK) != 0);
    7. }
    8. }


    Falls nötig in der Datei ganz oben unter den includes einfügen:

    Code
    1. #include "PythonNonPlayer.h"


    GameLib\ActorInstance.h

    Irgendwo einfügen:

    Code
    1. public:
    2. void SetAntiKnockBack(bool value) { m_bAntiKnockback = value; };
    3. bool GetAntiKnockBack() { return m_bAntiKnockback; };
    4. private:
    5. bool m_bAntiKnockback;


    GameLib\ActorInstance.cpp

    In der 'void CActorInstance::__Initialize()' Funktion irgendwo einfügen:

    Code
    1. m_bAntiKnockback = false;


    GameLib\ActorInstanceBattle.cpp:

    In der 'bool CActorInstance::__CanPushDestActor' Funktion folgendes suchen:

    Code
    1. extern bool IS_HUGE_RACE(unsigned int vnum);
    2. if (IS_HUGE_RACE(rkActorDst.GetRace()))
    3. return false;


    Darunter einfügen:

    Code
    1. if (rkActorDst.GetAntiKnockBack())
    2. return false;


    Server-Source:


    db\ProtoReader.cpp (Nur falls ihr txt nutzt)

    Code
    1. std::string arAIFlag[]


    suchen und am Ende ANTI_KNOCKBACK einfügen wie gewohnt.


    common\length.h

    Genau wie auf Clientseite auch wieder die "EAIFlags" enum bearbeiten. Müsste exakt so aussehen wie in der Client - Source. Und equvivalent zur Datenbank sein.


    Abschließende Worte:

    * mob_proto packen nicht vergessen!

    * Falls benötigt dump_proto Source auch anpassen.


    Viel Spaß damit, hoffe es ist ein schöner Zusatz zum public Zeugs!

    Guten morgen. Erst Mal musst du auf den Stand der Dinge kommen, gehe dazu auf beliebige Topliste und lade dir die Top 10 aller Server runter.

    Nun entferne bei dir sorgfältig alle Systeme, die die anderen Server so auch hatten. (Gleiche Funktionalitäten)


    Das was übrig bleibt ist eigentlich das, wofür die Leute auf den Server kommen. Also lass mich mal ein Beispiel für "etwas Neues" machen.


    1) Man kommt in einen quadratischen Raum, wo es 4 Säulen gibt.

    2) Je Säule entscheidet man sich für eine Questreihe und wird auf eine Karte teleportiert. Macht man alle Quests auf dieser Map, wird man zurückteleportiert und schaltet die nächste Säule frei.

    3) Innerhalb dieses Raums öffnet sich immer ein kleines Fenster welches einen Timer hat und die Anzahl an gesammelten Questpunkten enthält.

    4) Bei genug Punkten, lässt sich der Timer z.B: verkürzen oder andere Items kaufen.

    5) Zum Ende hin verschwinden die Säulen und ein Boss spawnt (vllt. einer von 7, für etwas Variation)

    6) Wenn das passiert, kann man Leute aus seiner Gilde über ein weiteres GUI in den Raum einladen um den Boss zu töten

    7) Der Boss hat 3 Stages aus denen er... und so weiter und so weiter.


    Halt etwas, was so noch nie jemand gemacht hat. Shiningkostüm ist zum Beispiel neu, aber nur kosmetisch. Rangpunktesystem gibt es sogar fast 1:1 mit dieser GUI. Steinsystem und Ringsystem sind keine Systeme, es sind Items. Also sehr viel Vorstellung bei sehr wenig Inhalt - Das ist aber nur meine Meinung. :)

    Ich muss sagen, dass ich etwas voreingenommen an die Sache herangehe, weil ich mit Dark Fusion einen genialen und meiner Meinung nach den Besten Server verbinde, der plötzlich downgeggangen ist nach gefühlt jahrelangem Spielspaß.


    Ich finde die Vorstellung sehr lang, aber irgendwie.. inhaltslos? Viel geschrieben aber nichts gesagt mäßig.

    Man schaut oben auf die Systemliste und denkt sich "wow - Die haben aber viel gemacht", schaut dann runter und denkt sich "ah okay, das ist nurn Kostüm. Ah das ist das System vom anderen Server". Man muss euch aber zugute nennen, dass dieses Spiel nunmal größtenteils erforscht ist. Wir haben schon fliegende Reittiere und .DE hat einen Pay2Win Offlineshop. Es ist schwierig ein komplett neues Konzept zu entwickeln, was jedem zusagt.


    Mein erster Impuls war: Ich würds antesten, aber ich erwarte von Newschool einfach so viel mehr und werds höchstwahrscheinlich nicht tun. Vielleicht sind meine Erwartungen auch einfach zu hoch gesteckt, weil ich selbst 3 Newschoolserver gehabt hab und einen entwickle. Ich kenne aber auch alle Schwierigkeiten die es dabei so gibt und wollte euch auf dem Wege:


    VIEL ERFOLG!


    wünschen.

    Code
    1. str = "NaN" -- "1616" und 1515
    2. function IsFinite(num)
    3. return not (num ~= num or tostring(num) == "inf" or tostring(num) == "-inf")
    4. end
    5. print(not IsFinite(str))


    Dieses Beispiel ergibt bei mir "false", probiere ich eine Zahl wie "1515" ergibts auch false.

    Mache ich was falsch oder versteh ich die Funktion einfach nur nicht?