|
You last visited: Today at 19:05
Advertisement
Coders Chit-Chat
Discussion on Coders Chit-Chat within the General Coding forum part of the Coders Den category.
08/11/2015, 09:53
|
#181
|
elite*gold: 150
Join Date: Dec 2013
Posts: 184
Received Thanks: 17
|
Quote:
Originally Posted by Serraniel
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
|
#182
|
elite*gold: 0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
|
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
|
#183
|
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
|
Quote:
Originally Posted by MrSm!th
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. 
|
Dass man mit gewissen Docstrings das Verhalten der IDE beeinflussen kann, wusste ich nicht. Danke für die Info.
|
|
|
08/11/2015, 13:33
|
#184
|
elite*gold: 150
Join Date: Dec 2013
Posts: 184
Received Thanks: 17
|
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:

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
|
#185
|
elite*gold: 74
Join Date: Sep 2009
Posts: 2,411
Received Thanks: 203
|
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
|
#186
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Quote:
Originally Posted by ichwillkeinevieren
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
|
#187
|
elite*gold: 74
Join Date: Sep 2009
Posts: 2,411
Received Thanks: 203
|
Quote:
Originally Posted by warfley
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
|
#188
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Quote:
Originally Posted by ichwillkeinevieren
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
|
#189
|
elite*gold: 74
Join Date: Sep 2009
Posts: 2,411
Received Thanks: 203
|
Code:
if(GetAsyncKeyState(VK_XBUTTON1))
{
__asm
{
call 0088107A
}
}
???
|
|
|
08/12/2015, 17:57
|
#190
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Quote:
Originally Posted by ichwillkeinevieren
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
|
#191
|
elite*gold: 74
Join Date: Sep 2009
Posts: 2,411
Received Thanks: 203
|
Quote:
Originally Posted by Requi
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
|
#192
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
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
|
#193
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Quote:
Originally Posted by ichwillkeinevieren
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
|
#194
|
elite*gold: 0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
|
Quote:
Originally Posted by Bodenplatte
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:

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
|
#195
|
elite*gold: 150
Join Date: Dec 2013
Posts: 184
Received Thanks: 17
|
Quote:
Originally Posted by Serraniel
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?
|
|
|
Similar Threads
|
CO 2 Chit-Chat
04/04/2013 - Conquer Online 2 - 3 Replies
Hello,
You are allowed to talk in this thread about all things belonging to CO2.
It does not matter whether you want to ask something or you just want to talk about CO2.
Posts like "lol" are forbidden!
|
All times are GMT +1. The time now is 19:05.
|
|