Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Alphawolf1988
Thema: Spielerbewegung auf Server gegenchecken
Am im Forum: Netzwerktechnologien

Genau dieser Meinung bin ich eigentlich auch, dennoch muss man dazu sagen, wird dann nicht cheaten möglich? Weil irgendwie muss ja überprüft werden, ob ein Client sich korrekt bewegt.

MFG Wolf

Thema: Spielerbewegung auf Server gegenchecken
Am im Forum: Netzwerktechnologien

Ok, in dem Sinne habt ihr recht. Jedoch frage ich mich ob dies nicht zu anfordernd wäre. Es muss doch irgendwie eine einfache Möglichkeit geben zu überprüfen, ob ein Spieler auf der Position stehen darf oder nicht.

MFG Chris

Thema: Spielerbewegung auf Server gegenchecken
Am im Forum: Netzwerktechnologien

Das Problem ist ich kann mir das derzeit schlecht vorstellen, weil eine Spielwelt besteht ja aus 3D Objekten und damit kann ja eine "Konsolenanwendung" nichts anfangen. Die Frage ist, welche Informationen ich speichern müsste um sowas zu überprüfen.

MFG Wolf

Thema: Spielerbewegung auf Server gegenchecken
Am im Forum: Netzwerktechnologien

Hallo!

Ich habe derzeit ein Problem was die Entwicklung eines RPG Spiels betrifft. Ich kann mir nicht wirklich vorstellen wie man die Bewegung eines Spielers auf dem Host Server gegenprüfen könnte. Auf Clientseite hat man ja die Unterstützung der 3D Engine und kann auf Objektkollision prüfen etc. Auf dem Server jedoch hat man nicht sollche Informationen.

Ich habe auch überlegt die Heightmap (also das Terrain) als Information auf dem Server abzulegen, jedoch gibt es ja in der Spielwelt auch Objekte auf denen der Spieler stehen kann und diese werden ja damit nicht erfasst. Ich hab irgendwie einen Knoten im Kopf o.O

Gibt es eine Idee oder Ansatz wie man das realisieren kann?

MFG Wolf

Thema: WCF Vererbung: Eigenschaft in Kind-Klasse für die Serialisierung ausschließen
Am im Forum: Netzwerktechnologien

Hallo Zusammen!

Habe eine Frage bzgl der Vererbung von Klassen in WCF. Ich habe 2 Typen:


[DataContract]
    [KnownType(typeof(MessageDB))]
    public class Message : ICulvertEntry
    {
        // --------------------------------------------------------
        // Class Properties
        // --------------------------------------------------------


        /// <summary>
        /// Gets or sets the entry ID.
        /// </summary>
        /// <value>
        /// The entry ID.
        /// </value>
        [DataMember]
        public int EntryID
        {
            get;
            set;

        } // Property: EntryID


        /// <summary>
        /// Gets or sets the sender ID.
        /// </summary>
        /// <value>
        /// The sender ID.
        /// </value>
        [DataMember]
        public int SenderID
        {
            get;
            set;

        } // Property: SenderID


        /// <summary>
        /// Gets or sets the receiver ID.
        /// </summary>
        /// <value>
        /// The receiver ID.
        /// </value>
        [DataMember]
        public int ReceiverID
        {
            get;
            set;

        } // Property: ReceiverID


        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="Message"/> is readed.
        /// </summary>
        /// <value>
        ///   <c>true</c> if readed; otherwise, <c>false</c>.
        /// </value>
        [DataMember]
        public bool Readed
        {
            get;
            set;

        } // Property: Readed


        /// <summary>
        /// Gets or sets the subject.
        /// </summary>
        /// <value>
        /// The subject.
        /// </value>
        [DataMember]
        public String Subject
        {
            get;
            set;

        } // Property: Subject


        /// <summary>
        /// Gets or sets the body.
        /// </summary>
        /// <value>
        /// The body.
        /// </value>
        [DataMember]
        public String Body
        {
            get;
            set;

        } // Property: Body 

    } // class Message


/// <summary>
    /// The MessageDB Class
    /// </summary>
    [DataContract]
    public class MessageDB : Message
    {
        // --------------------------------------------------------
        // Class Properties
        // --------------------------------------------------------


        /// <summary>
        /// Gets or sets the owner ID.
        /// </summary>
        /// <value>
        /// The owner ID.
        /// </value>
        [DataMember]
        public int OwnerID
        {
            get;
            set;

        } // Property: OwnerID


        // --------------------------------------------------------
        // Class Functions
        // --------------------------------------------------------


        /// <summary>
        /// Initializes a new instance of the <see cref="MessageDB"/> class.
        /// </summary>
        public MessageDB()
        {
        } // Constructor


        /// <summary>
        /// Initializes a new instance of the <see cref="MessageDB"/> class.
        /// </summary>
        /// <param name="ownerID">The owner ID.</param>
        /// <param name="senderID">The sender ID.</param>
        /// <param name="receiverID">The receiver ID.</param>
        /// <param name="subject">The subject.</param>
        /// <param name="body">The body.</param>
        public MessageDB(int ownerID, int senderID, int receiverID, String subject, String body)
        {
            if (subject == null) throw new ArgumentNullException("subject");
            if (body == null) throw new ArgumentNullException("body");

            OwnerID = ownerID;
            SenderID = senderID;
            ReceiverID = receiverID;
            Subject = subject;
            Body = body;

        } // Constructor

    } // class MessageDB

Die Klasse MessageDB benutze ich um lokal auf der Festplatte zu speichern und besitzt noch einen zusätzlichen Parameter. Dann habe ich noch eine Service Funktion:


[OperationContract]
        [WebGet(UriTemplate = "/GetInboxMessages")]
        [Description("Return all inbox messages.")]
        List<Message> GetInboxMessages();

Diese Funktion gibt auch alles sauber serialisiert als JSON zurück, jedoch auch den Member "OwnerID" von MessageDB. Ist es irgendwie möglich das nur die DataMember von Message serialisiert zurückgegeben werden?

MFG Wolf

Thema: WebServiceHost Exception Handling
Am im Forum: Netzwerktechnologien

Hallo!

Manchmal ist es einfacher als man glaubt :-) Man muss lediglich die Anwendung weiter ausführen, wenn Visual Studio eine unbehandelte Fehlermeldung wirft. Anscheinend wird der Fehler dennoch abgefangen wie erhofft.

MFG Wolf

Thema: WebServiceHost Exception Handling
Am im Forum: Netzwerktechnologien

Hallo liebe Community!

Ich habe derzeit das Problem, das keine Exceptions weiter getriggert werden bei einem WebService. Ich kann mir jedoch nicht erklären warum.


// Initialize servicehost with with this as singletoninstance
            _serviceHost = new WebServiceHost(this);

            var endpoint = _serviceHost.AddServiceEndpoint(service, 
                new WebHttpBinding(WebHttpSecurityMode.None), 
                    new Uri(game.BaseAddress, name));

            // Enable the help page for service
            endpoint.Behaviors.Add(new WebHttpBehavior { 
                HelpEnabled = true, FaultExceptionEnabled = true });


 /// <summary>
    /// The ITestService Interface
    /// </summary>
    [ServiceContract]
    public interface ITestService
    {
        // --------------------------------------------------------
        // Interface Functions
        // --------------------------------------------------------


        [OperationContract]
        [WebGet(UriTemplate="/Greeting?name={name}",
        RequestFormat=WebMessageFormat.Json,
        ResponseFormat=WebMessageFormat.Json)]
        [Description("Returns a simple greeting text with your name.")]
        String Greeting(String name);

    } // interface ITestService


public String Greeting(String name)
        {
            throw new Exception("ex");
            return "Hello " + name + ", welcome to Nations War! " +
                "You are visitor number " + _counter++;

        } // Greeting

Wenn ich jetzt Greeting aufrufe stürzt die Anwendung ab mit einer nicht behandelten Fehlermeldung, jedoch müsste doch der WebService so etwas abfangen und dem User schicken?

MFG Wolf

Thema: Hole Punching (1 zu n) Verbindungen
Am im Forum: Netzwerktechnologien

Hallo liebe Community!

Habe eine Frage bzgl. Hole Punching. Für diesen Prozess initialisiere ich 2 UDPClient Klassen, gebe deren externe adresse UDP Port dem anderen bekannt und verbinde mich. Meine Frage wäre jetzt, ob man für jede Verbindung zu einem anderen Clienten wieder einen neuen Port belegen muss oder ob bisherige Verbindungen nutzbar sind (1 zu n Verbindung). Mein Problem ist, dass mein erster Ansatz ein Ping/Pong zu einem externen UDP Client war und danach das UDP Hole Punching zu einen anderen UDP Client probiert wurde, jedoch ohne Erfolg. Wurde dieser Ping vorher nicht unternommen geht es jedoch.

MFG Chris

Thema: Virtuelles Netzwerk
Am im Forum: Netzwerktechnologien

Und etwas in der Art, wie eine virtuelle Netzwerkkarte simulieren, welche dann die pakete erhält, die ich dann über das DHT schicke würde nicht gehen? Also VPN klingt so hochgegriffen.

Thema: Virtuelles Netzwerk
Am im Forum: Netzwerktechnologien

Hallo liebe Community!

Ich weiß gerade nicht wie ich es beschreiben soll, jedoch versuche ich es. Ich probiere mich gerade daran ein DHT Netzwerk zu entwickeln. Das funktioniert auch alles wunderbar. Da es allerdings langweilig ist nur dieses Netzwerk zu haben, frage ich mich ob es möglich wäre, auch so etwas wie ein virtuelles Netzwerk drauß zu machen (also ein "Lan" über Internet), so dass man z.B. Multiplayer darüber spielen kann. Aktuell ist es ja eher ein Programm, was auf jedem Rechenr läuft und diese programme kommunizieren über UDP Sockets.

Hoffe Ihr versteht as ich meine.

MFG Chris

Thema: Projekt Referenz aus anderem Ordner hinzukompilieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

Ok, dann probiere ich das ganze so.

MFG Chris

Thema: Projekt Referenz aus anderem Ordner hinzukompilieren
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo liebe Community!

Ich habe eine Frage bzgl. dem Kompilieren eines C# Projekts. Ich habe derzeit 2 Projekte, eine Libary und eine einfache Konsolenanwendung. Normalerweise fügt man die Libary als normale Referenz ein. Ich stoße jetzt aber auf das Problem, dass ich die Software wo anders als auf meinem Rechner kompilieren lasse (TeamCity vllt. kennt es jemmand) und dort liegt die benötigte Libary nicht in dem Pfad, wie das Projekt sie ursprünglich benötigt (die Libary wird dort auch compiliert und als Artefakt angelegt). Gibt es eine Möglichkeit in Visual Studio bestimmte Einstellungen zu machen um das Problem zu lösen? Oder gibt es andere Möglichkeiten (MsBuild vllt. udn wenn ja wie)?

MFG Chris

Thema: Remoting über mehrere Server
Am im Forum: Netzwerktechnologien

Hallo liebe Community!

Mich beschäftigt derzeit eine Frage über Remoting. Normalerweise gibt es ein ServerObject A und einen Clienten B, welcher dieses Objekt dann per Remotezugriff benutzt. Wie ist das, wenn der Client B ebenfalls ein weiterer Server B mit ServerObjekt B ist und dieser wiederrum erst durch Clienten C benutzt wird.

Also ich rufe eine Funktion von Server B auf und dieser eine Funktion von Server A. Server A gibt an B ein Objekt von MarshalByRef zurück und B gibt dieses weiter an Client C.

Ist dies überhaupt möglich? Und wenn ja wie sieht da die beziehung aus, wenn C auf das Objekt von A zugreift? Geht der Aufruf dann C->B->A oder geht das mit dem Objekt direkt: C->A

Ich hoffe ihr versteht was ich meine.

MFG Chris

Thema: Sunburst Fragment komprimieren
Am im Forum: Rund um die Programmierung

Richtig kompliziert wird es auch, wenn ich anfangen will die Fragmente nicht alle auf
einen Kreis zu legen sondern die Tree Hierarchy einhalten möchte. Quasi Vater
Fragment und darüber Kinder Fragmente.

Habt ihr vllt noch Anregungen oder Ideen wie man da einen effizienteren
Algorithmus finden kann?

MFG Christian Winkel und danke im vorraus!

Thema: Sunburst Fragment komprimieren
Am im Forum: Rund um die Programmierung

Mit sortierten Fragmenten

Thema: Sunburst Fragment komprimieren
Am im Forum: Rund um die Programmierung

Mit der Aussage das 100% verschoben sein dürfen, und min 1 3D Objekt
auf seiner ursprünglichen Reihe sein darf.

Thema: Sunburst Fragment komprimieren
Am im Forum: Rund um die Programmierung

Nun möchte ich diese Fragmente so komprimieren, das ich einen minimalen Platzaufwand
habe und somit das Sunburst zusammengezohen wird. Aktuell sage ich lediglich wie
viel Prozent der 3D Objekte maximal verschoben werden dürfen. Jedoch passiert das
ganze nur durch probieren beim Winkel, was auch viel Leistung verbraucht.

Thema: Sunburst Fragment komprimieren
Am im Forum: Rund um die Programmierung

Ein Fragment hat je nach Anzahl von 3D Objekten eine oder mehrere Reihen.

Thema: Sunburst Fragment komprimieren
Am im Forum: Rund um die Programmierung

Hallo liebe Community!

Sitze derzeit an einem Problem wo mir einfach keine effiziente Lösung einfallen will.
Ich habe ein Sunburst Layout, welches einen azyklischen Graphen wiederspiegelt,
dessen Blätter 3D Objekte sind. Ein Knoten, welcher sollche Blätter enthält wird
Fragment genannt.

Thema: Screenshot From Window
Am im Forum: Grafik und Sound

Ich danke dir!

Der Link hat mir sehr geholfen! Wen es noch interressiert, der Post von Zommi gegen Ende hat mein Problem gelöst.

LG Chris

Thema: Screenshot From Window
Am im Forum: Grafik und Sound

Hallo liebe Community!

Gibt eseine Möglichkeit einen Screenshot von einem Fenster zu machen, ohne das ich es in den Vordergrund holen muss? Vllt. das es vorher in einen Buffer gezeichnet wird, bevor es angezeigt wird?

LG Chris

Thema: Gerichteter azyklsicher Graph speichern
Am im Forum: Rund um die Programmierung

Ich muss sowohl die Knotenübergänge speichern, als auch die Inhalte der Blätter am Ende (1 Byte groß pro Blatt).
Danke für die Ansätze erstmal!

MFG Wolf

Thema: Gerichteter azyklsicher Graph speichern
Am im Forum: Rund um die Programmierung

Hallo liebe Community!

Ich stehe mal wieder vor einem Problem. Hat Jemmand eine Idee wie ich einen gerichteten azyklischen Graphen abspeichern kann als Datei mit so wenig Platzverbrauch wie möglich.

Vllt irgendwelche Strategien oder Ideen?

Ein Beispielgraph wäre:

siehe Anhang

Danke im vorraus,

Wolf

Thema: 8 Byte mit Einwegfunktion verkleinern?
Am im Forum: Rund um die Programmierung

Also ich brauche das für folgendes:

Ich zerlege eine Datei in 8 Byte große Stücke und bilde zu jedem Stück einen Crypt Wert. Das Problem dabei ist halt das am besten gar keine Clashes bei dem Verfahren auftreten dürfen (was man aber nicht verhindern kann) aber ich weiß schon wie ich das umgehe. (Ich arbeite derzeit an einem Komprimierungsverfahren)

MFG Wolf

Thema: 8 Byte mit Einwegfunktion verkleinern?
Am im Forum: Rund um die Programmierung

Hallo liebe Community!

Ich habe mal eine Frage. Ist es möglich mit einem Hashalgorithmus 8 Byte auf weniger Bytes zu verkleinern? Es muss dabei nicht wieder umkehrbar sein. Das wichtigste ist das es eine hohe Wahrscheinlichkeit hat das es eindeutig ist und keine doppelten Schlüssel auftreten bei unterschiedlichen 8 Bytes Codes.


MFG Wolf

Thema: Intersect liefert auch bei weit entfernten Objekten true
Am im Forum: Grafik und Sound

Also, nach 18h intensiven suchen und verzweifeln, bin ich auf den Fehler gestoßen.
Ein Ray benötigt einen normalisierten Richtungsvektor!

Wenn man dem nicht nachgeht, macht XNA wie man auch sieht die tollsten sachen.
Hoffe das hilft auch zukünftigen Leuten mit Problemen.


MFG Chris

Thema: Intersect liefert auch bei weit entfernten Objekten true
Am im Forum: Grafik und Sound

Liebe Community!

Ich bin am Ende mit meinem Latein! Ich programmiere ein Billiard Spiel und implementiere gerade eine KI. Diese soll eine beliebige Kugel aussuchen, welche vor einem Loch liegt und diese dann mit dem passenden Vektor einlochen. Vorher prüfe ich ob andere Kugeln im Weg liegen indem ich alle anderen Kugeln durchgehe und den Ray zwischen der Zielkugel und der Weißen mit deren Spheren vergleiche. Jedoch sagt er mir ständig das Kugeln im Weg liegen, obwohl diese total davon entfernt sind. Ich verzweifle noch.

Hier ein Bild:
Billiard Bild

Hier der Code, welcher prüft, ob eine Kugel sich mit
dem Ray schneidet:


private static bool RayIntersectsPhysic(Ray ray, Physic obj, bool draw)
        {
            // Sphere anlegen
            BoundingSphere sphere = new BoundingSphere(obj.Position, obj.Radius);

            // Wenn Gerade das Objekt schneidet, dann 
            // true zurückgeben
            if (sphere.Intersects(ray).HasValue)
            {
                if (draw)
                {
                    Console.WriteLine("Schnitt mit Ball: " + obj.Name + " mit Center: " + sphere.Center + " und Radius " + sphere.Radius + " und Gerade: " + ray.Position + " + r*" + ray.Direction);

                    _PushDirections.Add(new Object[] { ray.Position, ray.Direction });
                }
                return true;
            }

            // Rückgabe
            return false;

        } // RayIntersectsPhysic

Die Consolenausgaben:

Ball: 4_Purple_Full ins Loch: Loch_Mitte_Links mit Entfernungen Weiß: 98,36668 und Ball: 19,36374

Schnitt mit Ball: 13_Orange_Half mit Center: {X:80,99844 Y:0 Z:-143,9167} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 15_DarkRed_Half mit Center: {X:15,53928 Y:0 Z:-142,4213} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 9_Yellow_Half mit Center: {X:40,7805 Y:0 Z:-197,908} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 8_Black_Full mit Center: {X:30,82612 Y:0 Z:-182,8718} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 3_Red_Full mit Center: {X:51,00122 Y:0 Z:-197,7601} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 12_Purple_Half mit Center: {X:85,63876 Y:0 Z:-191,9071} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 6_Green_Full mit Center: {X:44,64568 Y:0 Z:-204,4518} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 7_DarkRed_Full mit Center: {X:53,85535 Y:0 Z:-103,0089} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 4_Purple_Full mit Center: {X:15,0396 Y:0 Z:-128,9321} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}
Schnitt mit Ball: 11_Red_Half mit Center: {X:10,10056 Y:0 Z:-155,8602} und Radius 5,14 und Gerade: {X:58,20702 Y:0 Z:-37,07901} + r*{X:-47,04186 Y:0 Z:-88,55208}

Thema: typeof() auch bei Vererbung?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo liebe Community!

Habe die kurze Frage, ob die Funktion typeof, auch bei Vererbung, Oberklassen erkennt.
Also ich habe die Klasse Test2, welche abgeleitet ist von Test1

Geht folgendes If-Statement:


If(Test2.GetType() == typeof(Test1))
{
     //...do Stuff
}

Und wenn nicht gibt es eine andere Methode, um zu erkennen, ob eine Oberklasse in einer Klasse enthalten ist?

MFG Wolf

Thema: Dezentraler Stoß zweier Billiardkugeln
Am im Forum: Rund um die Programmierung

Perfekt! Ich danke dir für deine Hilfe!

MFG Wolf

Thema: Dezentraler Stoß zweier Billiardkugeln
Am im Forum: Rund um die Programmierung

Hallo liebe Community!

Ich beschäftige mich derzeit mit Stößen zwischen 2 Billiardkugeln, und möchte dies implementieren als Test. Nun habe ich einen Code Aussschnitt gefunden, welcher die neuen Richtungsvektoren beider Kugeln berechnet, jedoch komme ich einfach nicht dahinter wie man auf diese Formel kommt. Vllt. hat jemmand von euch Erfahrungen damit.


//Abstandsvektor berechnen
                //Der Abstandsvektor (dx,dy) ist der Vektor vom Mittelpunkt der Kugel 1
                //zum Mittelpunkt der Kugel 2
                Vector3 range = physic1.Position - physic2.Position;

                // Länge von Range aber ohne Wurzel!
                double rangeLength = range.Length() * range.Length();

                //Skalarprodukt aus Richtungsvektor Kugel 1 und Abstandsvektor berechnen
                double v1d = physic1.Speed.X * range.X + physic1.Speed.Y * range.Y + physic1.Speed.Z * range.Z;

                //Skalarprodukt aus Richtungsvektor Kugel 2 und Abstandsvektor berechnen
                double v2d = physic2.Speed.X * range.X + physic2.Speed.Y * range.Y + physic2.Speed.Z * range.Z;

                //Für beide Kugeln nach der Formel die neue Richtung berechnen
                physic1.Speed = new Vector3((float)(physic1.Speed.X - range.X * (v1d - v2d) / rangeLength),
                                                (float)(physic1.Speed.Y - range.Y * (v1d - v2d) / rangeLength),
                                                (float)(physic1.Speed.Z - range.Z * (v1d - v2d) / rangeLength));

                physic2.Speed = new Vector3((float)(physic2.Speed.X - range.X * (v2d - v1d) / rangeLength),
                                                (float)(physic2.Speed.Y - range.Y * (v2d - v1d) / rangeLength),
                                                (float)(physic2.Speed.Z - range.Z * (v2d - v1d) / rangeLength));

Vielen Dank

MFG Wolf