Beiträge von Sogma

    Hi,


    ich möchte gerne im Source prüfen ob ein Item mit einer bestimmten vnum gedroppt wurde.

    Im Source deswegen, da das Item nicht nur über Quests sondern auch über die regulären drop_item files errungen werden kann.


    Meiner Meinung nach kann man das wunderbar in der Funktion ITEM_MANAGER::CreateItem machen, da diese sowohl für die Quest-Drops als auch die regulären Drops verwendet wird.


    Mein Ziel ist es Channelübergreifend zu prüfen ob ein Item mit einer bestimmten Vnum auf dem Boden liegt oder sich bereits im Besitz eines Spielers befindet (der Teil ist bereits fertig). Wenn das item bereits im Umlauf ist soll es nicht mehr droppbar sein (Einzigartige Items ist hier das Stichwort).


    Hat jemand einen Denkanstoß für mich?

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


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


    versuch es mal so. Zeile 90 die 4 Leerzeichen zu einem Tab ändern und Zeile 91 ebenso einrücken

    Die Frage ist eher, wie könnte dieser Code nicht optimiert werden?

    Ich stehe auf dem Schlauch, was meinst du?


    Nach Möglichkeit will ich zwei Dinge vermeiden:

    • für jede Rasse eine eigene Funktion in der grundsätzlich immer das selbe passiert und sich nur die Skill IDs und die Attribute (Damage/Stun/etc.) ändern
    • Eine riesige Funktion über zwei Bildschirme in der alles geregelt wird.

    Moin,


    ich bastel gerade an einem System und bin mir unsicher wegen einer Codestelle.

    Mein Ziel ist es für jeden Skill der Lehre des Spielers einen Eintrag in einer neuen Tabelle player_skill_stats zu schreiben. In dieser Tabelle wird letztendes gespeichert wie viel Damage mit dem Skill insgesamt verursacht wurde, wei viele gegner durch z.B. Sausen betäubt wurden.


    Um die records für jeden Spieler zu initialisieren habe ich insgesamt 6 Funktionen. 1x Management (gibt es Records in der Tabelle zu dem Spieler, dann überspringe die Initialisierungsfunktion, ansonsten schreibe für jeden Skill und Attribut, z.B. Damage, Stun, Slow, einen neuen Record) welche im player load ausgeführt wird.


    Bei den 5 Initialiserungsfunktionen (jeweils 1 pro Rasse) bin ich mir jetzt aber nicht sicher ob ich den Code noch weiter optimieren kann bzw. zusammenfassen kann.


    Ich gebe hier mal das Beispiel für die Initialisierungsfunktion des Kriegers:

    Der Code in der Init Funktion wiederholt sich jetzt so oder so ähnlich pro Rasse.


    Wie seht ihr das? Gibt es da Potential?

    Mit 1000 bist schon ne ziemliche Rakete, auf Mount sowieso in 2 Sekunden durch komplett Map1 durch, also so hoch muss man es nicht packen

    Muss man nicht auf detection auch achten? Ich meine es kickt einen raus, sobald man schneller als xy ist ( Hack-Schutz )

    C: game/input_main.cpp
    1. function int CInputMain::SyncPosition(LPCHARACTER ch, const char * c_pcData, size_t uiBytes) :
    2. ch->GetDesc()->SetPhase(PHASE_CLOSE); -> //ch->GetDesc()->SetPhase(PHASE_CLOSE);


    Und der Tag gehört dir :D


    Ein leider nicht ganz unnötiger edit:


    Macht sowas nicht!!! Nicht nur die Symptome, sondern die Krankheit behandeln!

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


    wie genau hast du das gelöst? das einfache hochsetzen in der refinedialog bringt nichts, dadurch überlappt sich nur alles. Was hast du noch in der uirefine geändert um die größe anzupassen??


    Sogma

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

    Ich weiß nicht wie relevant das ist, da ich im reverse engineering nicht so fit bin, aber man kann recht einfach einen, wie es für mich aussieht, unverschlüsselten Status und 32 bit Key für die Server abfangen die den Service benutzen.


    Wie gesagt, ich weiß nicht wie kritisch das ist.

    Details gebe ich hier nicht public bekannt.