Coders Chit-Chat

08/11/2015 09:53 Bodenplatte#181
Quote:
Originally Posted by Serraniel View Post
Sende halt nicht jedes Feld sondern sende nur Daten über Objekte im 1.5 fachen Sichtbaren Bereich und dann auch nicht jedes Feld dadrin, sondern nur wenn ein Objekt vorhanden ist, die Position. So sendest du nur so viele Daten wie du Objekte in der Umgebung hast. Und wenn eins ausm Radius raus ist oder gesammelt wirst, sagst deinen Clients: "Hey, das Objekt XY gibts nicht mehr, entferne das aus deinem Speicher".
Das Problem ist das ich mich damit nicht auskenne und das würde längern dauern, als mit (wenn denn überhaupt eins vorhanden ist) einem Programm das x bestimmte Packete senden.
08/11/2015 11:27 Serraniel#182
Naja, da du nur für Felder mit Objekten Daten sendest und nicht für jedes Feld, sendest du weniger Daten = schnellere Übermittlung der Daten (in Summe).

Wo genau ist denn dein Problem dabei? Liegt es an der Auswertung der Felder durch den Sevrer, welche gesendet werden müssen, oder an dem wie, also wie dein Protokoll zur Datenübermittlung aussieht?
08/11/2015 13:29 Mostey#183
Quote:
Originally Posted by MrSm!th View Post
Wie jeder C# Entwickler weiß, ist IntelliSense nichts im Vergleich zu ReSharper. Jetbrains ist in Sache Productivity Tools überlegen. Natürlich kann man nicht dieselbe Automatik wie bei einer statisch typisierten Sprache wie C# erwarten, aber es ist deutlich mehr als dir jeder Texteditor bringt.

PHPStorm kann recht viel von sich aus, in manchen Fällen kann es aber natürlich nicht aus dem Kontext auf den Typ eines Objekts schließen (die meisten davon sind hässliche Edgecases, die man ohnehin meiden sollte), da helfen dann Typehints in den Doc Comments (da man seinen Code sowieso anständig dokumentieren sollte, ist das kein wirklicher Mehraufwand und selbst wenn man nur die Typehints ohne jegliche Erklärung setzt (dann hat man ca. denselben Tippaufwand wie bei einer Sprache wie C#), reicht das der IDE schon und sie bezieht das in ihre sehr weitreichende Analyse mit ein (bspw. wird der Rückgabetyp einer Methode dann direkt auf alle Variablenzuweisungen angewandt und das Ganze natürlich über beliebig viele Ebenen). Dasselbe dürfte für PyCharm gelten. Insofern ja, da hast du wohl etwas falsch gemacht, dennoch ist das Ganze auch ohne Typehints meiner Erfahrung nach sehr gut. Kommt natürlich auch immer drauf an, was für einen Code man da gerade vor sich hat.

Wie es bei Sprachen wie JS aussieht, die das Konzept einer Klasse gar nicht kennen, kann ich nicht sagen, aber im schlimmsten Fall hat man immer noch die umfangreichen Tools der Jetbrains Produkte dabei, mal ganz abgesehen von der Vielzahl an Plugins und im Falle von WebStorm einen Editor, der speziell auf JS, HTML und CSS sowie deren Interaktion (Autovervollständig für CSS-Klassen im HTML Code? npnp) abgestimmt ist.
Alleine deshalb schon würde ich bei größeren Projekte, die aus mehr als 3 Dateien bestehen, zu WebStorm greifen, anstatt zu Sublime (so gut dieser auch sein mag) oder gar zu Notepad++.

Na ja, C++ ist mit exzessiver TMP auch hart an der Grenze aller aktuellen IDEs. An ReSharper++ hat Jetbrains auch ne ganze Weile gesessen. :D
Dass man mit gewissen Docstrings das Verhalten der IDE beeinflussen kann, wusste ich nicht. Danke für die Info.
08/11/2015 13:33 Bodenplatte#184
Das ist mir schon klar, nur habe ich keine Erfahrung was das programmieren angeht und wollte es erst mal versuchen ob es anders geht die Packete die gesendet werden müssen zu senden wie mit einem Programm das z. B. x bestimme Packete sendet wenn du gerade eins selber sendest, dann würde das nämlich so aussehen:

[Only registered and activated users can see links. Click Here To Register...]
O = Objekt
Ich befinde mich auf einem Feld und kann auf 9 Feldern das Objekt aufheben, also die Felder die neben mir sind und bei mir selber.
Dafür brauche ich dann das diese 9 Packete die, die 9 Objekte auf den verschiedenen Feldern neben mir aufheben. Das würde dann so ablaufen das ich selber ein Feld anklicke und dann automatisch die weiteren 9 Packete egal ob ein Objekt drauf ist oder nicht gesendet werden. Das wäre meine Vorstellung wie es einfach gehen würde, wenn so ein Programm wie z. B. WPE nur eben mit dieser Funktion.

Natürlich wäre es besser wenn es nur die Objekte aufnimmt die es auch gerade wirklich gibt, aber das wäre glaube ich für mich da ich überhaupt keine Erfahrung habe mit dem programmieren eines Packetbots.
08/12/2015 16:28 ichwillkeinevieren#185
Hallo Leute,

ich möchte in Overlord (#1 -Rising Hell) die Anzahl meiner braunen minions/Schergen erhöhen, das erste was ich versuchte war die anzahl in der Speicheradresse zu erhöhen, was zwar optisch(auf der Zahlanzeige) funktioniert, jedoch werden nur die vorhandenen braunen minions aufgerufen und dann kommen komischerweise keine weiteren braunen(oder nichts), sondern meine roten minions und wenn die auch alle draußen sind und ich einen weiteren minion rufe(existiert nur auf der anzeige) crasht das Spiel, was bedeutet das jeder minion einzeln gespeichert wird(mit seinem equipment etc.) und der liste nach erscheint.

Da ich mir nun die minions nicht ausm Arm leiern kann, indem ich die Anzahl erhöhe, möchte ich die funktion mit der ich einen (level0)minion droppe/erhalte #call 0088107A# extern aufrufen(am besten mit einem Hotkey) nun meine frage ist wie mache ich das? oder habt ihr eine andere Lösung?
08/12/2015 17:08 warfley#186
Quote:
Originally Posted by ichwillkeinevieren View Post
Hallo Leute,

ich möchte in Overlord (#1 -Rising Hell) die Anzahl meiner braunen minions/Schergen erhöhen, das erste was ich versuchte war die anzahl in der Speicheradresse zu erhöhen, was zwar optisch(auf der Zahlanzeige) funktioniert, jedoch werden nur die vorhandenen braunen minions aufgerufen und dann kommen komischerweise keine weiteren braunen(oder nichts), sondern meine roten minions und wenn die auch alle draußen sind und ich einen weiteren minion rufe(existiert nur auf der anzeige) crasht das Spiel, was bedeutet das jeder minion einzeln gespeichert wird(mit seinem equipment etc.) und der liste nach erscheint.

Da ich mir nun die minions nicht ausm Arm leiern kann, indem ich die Anzahl erhöhe, möchte ich die funktion mit der ich einen (level0)minion droppe/erhalte #call 0088107A# extern aufrufen(am besten mit einem Hotkey) nun meine frage ist wie mache ich das? oder habt ihr eine andere Lösung?
Via DLL Injektion ein Programm einschleusen dass dann bei Tastendruck diese Methode aufruft. Das wäre das einfachste was mir einfallen würde
08/12/2015 17:13 ichwillkeinevieren#187
Quote:
Originally Posted by warfley View Post
Via DLL Injektion ein Programm einschleusen dass dann bei Tastendruck diese Methode aufruft. Das wäre das einfachste was mir einfallen würde
nunja tastendruck ist ja kein problem nur wie rufe ich die methode auf
08/12/2015 17:25 warfley#188
Quote:
Originally Posted by ichwillkeinevieren View Post
nunja tastendruck ist ja kein problem nur wie rufe ich die methode auf
Nun ich weiß nicht welche Programmiersprache du nutzt, bzw welche mittel dir zur verfügung stehen, aber spontan würden mir Funktionszeiger oder inline Asm einfallen
08/12/2015 17:48 ichwillkeinevieren#189
Code:
if(GetAsyncKeyState(VK_XBUTTON1))
{
    __asm
    {
        call 0088107A
    }
}
???
08/12/2015 17:57 Requi#190
Quote:
Originally Posted by ichwillkeinevieren View Post
Code:
if(GetAsyncKeyState(VK_XBUTTON1))
{
    __asm
    {
        call 0088107A
    }
}
???
Einmal über Los direkt zu den Grundlagen der Programmierung und des Gamehackings selbst. Ohne 2,000$ einzuziehen.
08/12/2015 18:08 ichwillkeinevieren#191
Quote:
Originally Posted by Requi View Post
Einmal über Los direkt zu den Grundlagen der Programmierung und des Gamehackings selbst. Ohne 2,000$ einzuziehen.
gibts dazu auch ne Begründung oder muss ich diese zusätzlich erwerben
08/12/2015 18:10 snow#192
Du solltest ggf. noch die Calling Convention überprüfen und dann kannst du auch gleich die komplette Signatur der Funktion reversen und Funktionszeiger verwenden.
08/12/2015 18:28 warfley#193
Quote:
Originally Posted by ichwillkeinevieren View Post
Code:
if(GetAsyncKeyState(VK_XBUTTON1))
{
    __asm
    {
        call 0088107A
    }
}
???
Ich würde eher zu funktionszeigern tendieren, da du dann diese Methode über eine variable aufrufen kannst
Code:
void (*MyProc)(void) = FunktionsZeiger;
...
MyProc(); //aufruf
aber ich denke du kannst das machen wie du lustig bist

Natürlich musst du noch daran denken die Entsprechenden Parameter zu übergeben bzw auf den Speicher zu schreiben (siehe Link)
08/12/2015 19:26 Serraniel#194
Quote:
Originally Posted by Bodenplatte View Post
Das ist mir schon klar, nur habe ich keine Erfahrung was das programmieren angeht und wollte es erst mal versuchen ob es anders geht die Packete die gesendet werden müssen zu senden wie mit einem Programm das z. B. x bestimme Packete sendet wenn du gerade eins selber sendest, dann würde das nämlich so aussehen:

[Only registered and activated users can see links. Click Here To Register...]
O = Objekt
Ich befinde mich auf einem Feld und kann auf 9 Feldern das Objekt aufheben, also die Felder die neben mir sind und bei mir selber.
Dafür brauche ich dann das diese 9 Packete die, die 9 Objekte auf den verschiedenen Feldern neben mir aufheben. Das würde dann so ablaufen das ich selber ein Feld anklicke und dann automatisch die weiteren 9 Packete egal ob ein Objekt drauf ist oder nicht gesendet werden. Das wäre meine Vorstellung wie es einfach gehen würde, wenn so ein Programm wie z. B. WPE nur eben mit dieser Funktion.

Natürlich wäre es besser wenn es nur die Objekte aufnimmt die es auch gerade wirklich gibt, aber das wäre glaube ich für mich da ich überhaupt keine Erfahrung habe mit dem programmieren eines Packetbots.
Naja, der Server teilt ja mit auf welchen Feldern sich Objekt ebefinden nehm ich an. Das müsstest du dir im Speicher merken.
Wenn man an Spiele Daten sendet, wo man die ganze Zeit Objekte aufhebt, die garnicht da sind, kann das schon auffällig werden.
08/13/2015 10:37 Bodenplatte#195
Quote:
Originally Posted by Serraniel View Post
Naja, der Server teilt ja mit auf welchen Feldern sich Objekt ebefinden nehm ich an. Das müsstest du dir im Speicher merken.
Wenn man an Spiele Daten sendet, wo man die ganze Zeit Objekte aufhebt, die garnicht da sind, kann das schon auffällig werden.
Naja, das sollte kein Problem sein, die Adminstratoren machen dagegen nichts, aber natürlich wäre es sicherer.
Ich habe nun zwei Fragen:

1. Gibt es denn ein Programm der x Packets sendet, wenn ich eins erhalte oder sende?

2. Wäre es denn schwer ein Bot zu machen der nur vorhandene Objekte aufnimmt?