In welcher Sprache hast du die Bibliothek denn geschrieben? Wie sendest du die Anfragen ab? (über nen XMLRPC-Client, also über die Tapatalk API oder ganz normal?)
Werd mir das ganze morgen oder so mal genauer ansehen, die Idee finde ich jedoch nicht schlecht.
Da ich geschrieben habe, dass es mit C# nicht geht, sollte man von Visual Basic ausgehen.
Ich nutze weder die Tapatalk API (noch nie angesehen, wär eig mal nicht schlecht) oder den XML...-Client. Das meiste sind einfache WebRequests, die ich nutze.
Da ich geschrieben habe, dass es mit C# nicht geht, sollte man von Visual Basic ausgehen.
In der Regel würde man eher von Hochsprache ausgehen, anhand deiner Beispiele hatte ichs mir schon fast gedacht, deswegen die Nachfrage.
Quote:
Originally Posted by Sedrika
Ich nutze weder die Tapatalk API (noch nie angesehen, wär eig mal nicht schlecht) oder den XML...-Client. Das meiste sind einfache WebRequests, die ich nutze.
XMLRPC ist das Protokoll, welches für die Tapatalk-API verwendet wird.
Das wäre dann ein Verbesserungsvorschlag meinerseits, denn so geht es bedeutend schneller als über WebRequests (Shoutbox ausgenommen). Kannst es dir ja mal ansehen, ne Dokumentation findest du hier:
Beispiele für die Verwendung des XMLRPC-Protokolls unter VB findest du leicht über Google. Das wäre echt ne nette Verbesserung
[STAThread]
static void Main(string[] args)
{
xLibrary.xLibrary a = new xLibrary.xLibrary();
Console.WriteLine(a.IsEpvpUser());
}
Wieso killt IsEpvpUser() den Prozess wenn das Ergebnis false ist? Sowas sollte eine Library niemals machen, außer es ist WIRKLICH nötig. Außerdem sollte man sowieso niemals sowas wie .Kill() anwenden. Genauso wie die HWID zu generieren und zu kopieren + MessageBox sind komplett unnötig, sowas sollte man immer der Anwendung überlassen!
Ansonsten, Fehlerbehandlung scheint hier zu fehlen.
.IsUser(xLibrary.xLibrary.UserGroup.Banned) ->
"Ungültige Konvertierung von der Zeichenfolge in Typ Double.", evtl. weil ich meine HWID nicht eingetragen habe .
[STAThread]
static void Main(string[] args)
{
xLibrary.xLibrary a = new xLibrary.xLibrary();
Console.WriteLine(a.IsEpvpUser());
}
Wieso killt IsEpvpUser() den Prozess wenn das Ergebnis false ist? Sowas sollte eine Library niemals machen, außer es ist WIRKLICH nötig. Außerdem sollte man sowieso niemals sowas wie .Kill() anwenden. Genauso wie die HWID zu generieren und zu kopieren + MessageBox sind komplett unnötig, sowas sollte man immer der Anwendung überlassen!
Ansonsten, Fehlerbehandlung scheint hier zu fehlen.
.IsUser(xLibrary.xLibrary.UserGroup.Banned) ->
"Ungültige Konvertierung von der Zeichenfolge in Typ Double.", evtl. weil ich meine HWID nicht eingetragen habe .
Ich habe in der Nacht die Lib komplett neu geschrieben und in Klassen unterteilt.
Und das mit dem Kill, war eine sehr alte funk noch, wo ich das ganze getestet hatte.
Ich hau bald ein Update rein mit weiteren Funktionen.
Imports System.Collections.Generic
Imports System.Text
Imports System.Runtime.InteropServices
Namespace myDotNetLibrary
<ClassInterface(ClassInterfaceType.AutoDual)> _
Public Class myDotNetClass
Private myProperty As String
Public Sub New()
End Sub
Public Function myDotNetMethod(input As String) As String
Return "Hello " & input
End Function
Public Property myDotNetProperty() As String
Get
Return myProperty
End Get
Set(ByVal value As String)
myProperty = value
End Set
End Property
End Class
End Namespace
xLibraryEx.xLibraryEx.OpenFuncIndex() = Totaler Schwachsinn, für was bietet Microsoft direkt eine XML Dokumentation an in der IDE? Das sind simple Kommentare im Code, die IDE erzeugt daraus dann eine XML...
Wieso muss man von jeder Klasse eine Instanz anlegen? Wie wär es mit static/shared?
Kann es sein das du nirgends .Dispose aufrufst? Das ist ein Memory Leak.
Ja die Kommentare meine ich, du musst aber auch die XML Datei mit senden(Und in den Einstellungen erstmal einschalten).
Es ist egal ob du die Variable überschreibst, Dispose MUSS immer aufgerufen werden, das hat schon seinen Sinn. Oft verwenden Klassen native Resourcen, dann sollte man auf jeden Fall Dispose aufrufen, sonst hast du einen schönen Memory Leak im Programm .
Edit: Hab es mal nun verändert neu hochgeladen und die v1.11 entfernt.
Ach und Dispose ist nicht nötig um Speicher freizugeben, da .NET dies von alleine dank der Garbagecollection welches ein Mehrstufiger Prozess ist und das ganze von alleine macht.
Dabei werden Objekte die nicht mehr referenziert werden aus dem Speicher geräumt und die, die noch referenziert werden, werden in eine zweite Ebene der Garbagecollection verschoben.
Das was ich jetzt gemacht habe ist alles zu sharen, damit man keine Instanzen mehr braucht.
Jemand der mit einem .NET Code ankommt (in dem fall du mit C#) und sich etwas darüber informiert hat, sollte es eigendlich wissen.
Zudem gibt bsp. Windows 7 alle Speicher vom Programm nach dem beenden wieder frei.
Eben nicht. Der GC verwaltet nur managed Objekte und ruft auch nicht Dispose auf. Dispose muss selber aufgerufen werden(Oder Using Pattern).
Klassen die das IDisposable Interface implementieren nutzen oft unmanaged Resourcen, welche dann mit Dispose freigegeben werden. Wenn du das Objekt einfach überschreibst bleiben damit die unmanaged Resourcen im Speicher und werden nie gelöscht, was am Ende ein Memory Leak ist . Du solltest dich besser informieren, ich weiß wie der GC funktioniert.
Klar, logisch, nachdem das Programm beendet wird wird alles gelöscht. Aber was wenn die Anwendung länger läuft und öfter die Funktionen nutzt? Am Ende hast du dann einen RAM Verbrauch von 100 MB bzw bekommst eine OutOfMemory Exception im Programm oder hast massig File/Stream/... Handles offen die eigentlich geschlossen werden sollen. Wie gesagt Dispose hat seinen sinn.
Bei manchen Klassen könnte man es theoretisch weglassen, aber das ist einfach unsauber und ein schlechter Stil.
CO2_CORE_DLL (C# Library) 07/08/2014 - CO2 PServer Guides & Releases - 32 Replies I decided to implement a big part of my knowledge in a library. At the start, I wanted to make a C library, but as mostly all the server use C# and because I don't want to work too much on it, I decided to make it in C#.
The library is constructed like the .net framework. Often, you'll just have to change System to CO2_CORE_DLL to get some similar class/goal.
The library is based on the version 5017 of CO2, but it may work on older or newer client. It also use a lot of pointer, but there...
Release Library 06/04/2013 - Maestia - 6 Replies Here are all the working Releases and Tutorials.
Speed Hack:
This will increase your movement speed
http://www.elitepvpers.com/forum/maestia/1288146- release-maestia-speed-hack-v-1-x86-64-a.html
Hackshieldkiller, Bot,...:
The bot will level automatically.
The Hackshieldbypass will bypass the Hackshield, so you wont get kicked.
[C#] Socket Library 03/28/2010 - Coding Releases - 2 Replies Release Notes:
This SocketLibrary (.dll) can be used for any purposes. From something big like a complete MMORPG, to something as small as a chat.
I do not really care a bout you giving me credits for this release, but it would be nice if you did.
You do not have to believe I made this, if you can prove I didn't create this, please show me.
As far as I know, I did create this, didn't take me more than 10 minutes.
Version(s):
0.1 - The first release, not many extras yet, just a basic,...