Beiträge von limette

    Ahm, du solltest dir vielleicht die Treffer-Bedingungen nochmal ansehen, denn da passt etwas nicht... absolut nicht...
    Habe einfach gegen mich selbst gespielt, nicht sehr spaßig, aber nur zum testen ;)
    Folgende Situation:


    Teilweise steht Panzer_braun hinter einer Wand oder sonstwo, kann aber trotzdem an völlig kuriosen Punkten getroffen werden.
    Da schießt man meilenweit vorbei und es wird als Treffer angerechnet.
    Bild im Anhang zeigt eine solche Situation, so wie Panzer_blau steht trifft er tatsächlich Panzer_braun, und hat ihn mit dem nächsten Schuss auch zerstört. ^^
    Bereits mehrfach reproduziert. :P


    Ansonsten: Multiplayer ! :D

    Nun ja, "reale Eventsteuerung" ist so hoch gegriffen ^^


    Zitat

    The adlib function should be kept simple as it is executed often and during this time the main script is paused.


    Funktioniert also nicht, ohne auf die Funktion zu warten. Das wär ja quasi Multithreading ;)
    Und bevor wieder irgendwelche Streitereien losbrennen - AutoIt ist nicht threadsicher, trotzdem gibt es da irgendwelche Workarounds... naja.

    Liegt daran, dass "MyAdlib" erst nach 250 ms aufgerufen wird - Standard bei Adlibregister - du aber vorher schon die Variable abfragst, bevor sie überhaupt einen Wert bekommt. Mit einem Sleep dazwischen bekomme ich ein Datum ausgegeben. =)

    Ich würde mal behaupten, "links", "rechts", "oben", "unten" sind die Parameter, die du der Funktion übergibst.
    Für die entsprechende Suchrichtung solltest du wohl einfach die entsprechende Bedingung aus der Beschreibung anwenden:


    Für die Suche von Rechts nach Links: "rechts < links". Also im Pixelsearch-Aufruf für die "right", die eigentlich rechte Grenze, den kleineren Wert, also die linke Grenze einsetzen und umgekehrt.
    Einfach rechts und links vertauschen... ;)


    Ich muss allerdings zugeben, dass ich auch einen Moment gebraucht habe, um diesen Hilfeeintrag zu verstehen, der ist wirklich ziemlich knapp gefasst...
    Hätte fast ein Workaround mit Aufteilung in verschiedene Suchbereiche vorgeschlagen.


    Vielleicht sollte man die Bemerkung überarbeiten und die Parameter auch so nennen, wie sie im Funktionsnamen genannt werden.
    Also:


    Die Suchrichtung variiert wie folgt:
    Links nach Rechts - left < right
    rechts nach Links - right < left
    Oben nach unten - top < bottom
    Unten nach oben - bottom < top


    ;)

    Wie der Name und der geforderte Parameter der Funktion schon sagt:


    SocketToIp nimmt einen Socket, und gibt dir eine IP. Dafür solltest du ihm allerdings schon auch den Socket gönnen, zu dem du die IP wissen willst.... ;)


    $Client1_IP = SocketToIp( $Client1_Socket );


    Sozusagen.

    Func SocketToIP($SHOCKET)
    Local $sockaddr = DLLStructCreate("short;ushort;uint;char[8]")
    Local $aRet = DLLCall("Ws2_32.dll","int","getpeername","int",$SHOCKET, _
    "ptr",DLLStructGetPtr($sockaddr),"int*",DLLStructGetSize($sockaddr))
    If Not @error And $aRet[0] = 0 Then
    $aRet = DLLCall("Ws2_32.dll","str","inet_ntoa","int",DLLStructGetData($sockaddr,3))
    If Not @error Then $aRet = $aRet[0]
    Else
    $aRet = 0
    EndIf
    $sockaddr = 0
    Return $aRet
    EndFunc


    Wer auch immer diese Funktion geschrieben hat, er möge mir für die fehlende Erwähnung seines Namens verzeihen. ;)

    Ja, aber eben diesen Satz würde ich nicht manuell in die Datenbank eingeben. Hier würde ich auf Wikipedia zurückgreifen, wo der erste Satz zu "Sonne" lautet:
    "Die Sonne (von ahd. Sunna, lateinisch Sol, altgriechisch Helios) ist der Stern im Zentrum des Sonnensystems."


    In vielen Fällen wird das so vermutlich funktionieren. Dazu könnte man einbringen, dass, wenn der User weiter fragt, wie zB "Erkläre das genauer.."/"Erzähl mir mehr darüber"/.... ein größerer Teil des Wiki-Artikels ausgespuckt wird.
    Die manuelle Eingabe von Datensätzen würde ich auf solche Fragen beschränken, die nicht nach einer Wiki-Antwort schreien. Fragen nach dem Entwickler, nach der Herkunft der KI, Scherzfragen, Witze, da lassen sich EasterEggs einbringen, - und wenn du eine KI fragst: "Kennst du Emotionen ?" - dann ist die Wiki-Erklärung auch irgendwie unpassend. In solchen Fällen könnte man Kombinieren, also antworten: "Ich bin nur eine KI, Gefühle sind mir fremd. Die Definition dazu ist mir jedoch geläufig: " + Wiki-Auszug. Oder aber zwischen Fragestellungen unterscheiden, also:


    F: "Kennst du Emotionen ?"
    A: "Mein Herz ist eine CPU, meine Gedanken bestehen aus Nullen und Einsen - nein, Gefühle sind mir fremd."


    F: "Definiere Emotionen." / "Was sind Emotionen ?"
    A: <Wiki-Auszug>


    Vielleicht ist das jetzt etwas zu hoch gegriffen, aber Definitionsfragen wie nach der Sonne würde ich generell über Wiki laufen lassen. Die ersten ein, zwei Sätze rausgreifen. c&p ;)

    Nun, hört sich auf jeden Fall recht interessant an - es gibt da jedoch den ein oder anderen Haken, der mich stört...


    Zum einen verliert der Input nach jeder Eingabe seinen Focus. Das ist einfach nur lästig.
    Die dialog history - Funktion gibt den Dialog nicht korrekt wieder, da sind irgendwie Verschiebungen drin.


    Was den ganzen Spaß in meinen Augen aber wirklich dämpft, sind die Widersprüche in B. Aussagen.


    Human: wer ist dein gott ?
    B.E.S.U.C.H.E.R.: Ich habe keinen Gott. Ich bin Atheist.
    Human: glaubst du an gott ?
    B.E.S.U.C.H.E.R.: Ja, ich glaube an gott.
    Human: campweb.
    B.E.S.U.C.H.E.R.: campweb ist ein Gott, er hat mich geschaffen!


    Und auf jedes "Kennst du ____ ?" / "Was ist ___ ?" mit "Hier findest du eine Seite über _____" zu antworten finde ich äußerst unkreativ ^^ Da sollten zumindest bestimmte Anfragen noch immer aus dem eigenen Datensatz beantwortet werden, zum Beispiel "Kennst du Campweb ?", was derzeit auf eine nicht vorhandene Wiki-Seite verweist. Nur dort, wo B. keine Antwort weiß, würde ich mir zB den ersten Einleitungssatz aus dem Wiki-Artikel suchen. Aber nicht einfach weiterleiten. Die KI soll doch menschlich wirken, - und wir antworten ja auch nicht nur mit Wikipedia-Artikeln. Also, außerhalb der Schule... :D

    Sehr schönes Projekt, - allerdings...


    Du hast doch jetzt nicht vor, ein knappes GB an Setups per FileInstall einzubinden bzw überhaupt direkt mitzuliefern ?
    Das ist dann doch etwas... viel. ;)
    Mein Vorschlag wäre, die Setups auf einen Server zu lagern, von dem sich dein großer, allgemeiner Installer dann die besorgen kann, die er braucht. Das könnte man kombinieren mit dem, was ich grad bei Liberkey gesehen habe: Verschiedene "Suits", bei denen dann die wichtigsten/beliebtesten Programme schon mit integriert sind. Richtig genial wird es dann, wenn du den MasterInstaller so ausrüstest, dass er für Updates empfänglich ist - quasi lädst du zu den neuen Setups gleich auch den passenden automatisch-installieren-Code mit auf den Server. So könnte sich die Liste ständig aktualisieren.. =)


    Was das '95-Checkboxen-Problem' angeht: Mach eine Liste draus. Eine links, mit den verfügbaren Programmen, eine rechts mit denen, die man zur Installation ausgewählt hat.
    Interessant wär dann noch ein Check in der Registry, ob ein Programm schon installiert ist.. =)


    Viel Erfolg !


    Edit: Was ? Seit März tot ? Hab nur aufs Datum des letzten Posts geguckt, zorro. ^^

    Func _GDIPlus_GetPixel($hBitmap,$X,$Y)
    ; Prog@ndy
    Local $result = DllCall($ghGDIPDLL, "int", "GdipBitmapGetPixel", "ptr", $hBitmap, "int", $X, "int", $Y, "dword*", 0)
    If @error Then Return SetError(1,0,0)
    Return SetError($result[0],1,$result[4])
    EndFunc


    Damit musst du das Bild nicht anzeigen lassen, - nur mit _GDIPlus_ImageLoadFromFile einlesen.
    Den zurückgegebenen Handle als $hBitmap verwenden, feddisch ;)

    Mit
    "@IPAddress1 auch die Lan-IP, sprich die vom Router"
    meinte ich nicht, dass @IPAddress1 die IP vom Router sein soll - wär ja auch unsinnig ^^
    Sondern dass dies die IP ist, die dein PC vom Router zugewiesen bekommen hat.
    Sofern du das denn auf "automatisch beziehen" stehen hast ;)


    Von daher passt das ja mit @IPAddress1 = 192.168.1.3 :D

    Nun, ich hab mir so ein Script am Anfang auch gebastelt und wirklich oft gebraucht ;)
    "Mal eben schnell nachgucken.."


    Nur ist nicht bei jedem @IPAddress1 auch die Lan-IP, sprich die vom Router ^^
    Zur Zeit hab ich zB 'nen Hamachi-Netzwerkadapter mit höherer Priorität als meine Netzwerkkarte, weshalb @IPAddress1mir meine Hamachi-IP ausgibt ;)
    Oder aber eine alte Webcam von mir - längst ausrangiert - erforderte eine Software, die ebenfalls einen Netzwerkadapter eingerichtet hat. Kurios, kein Plan warum, war halt so ^^ Da war @IPAddress1 dann halt verkehrt - aber das geht ja auch von 1-4, oder ? :P

    Hab da mal was gebastelt - hoffe, dass das funktioniert.
    Scheint aber tatsächlich alle Ordner & Dateien durchzugehen.
    Sind 'ne ganze Menge oO



    Musst halt nur noch den Download mit einfügen - ob direkt oder erst nach der Auflistung bleibt dir überlassen.. ;)

    Warum löschst du das alles, wenn wir dir dabei doch helfen sollen ?
    Dann kannst du ja gleich einfach von vorne Anfangen oO


    Ich bezweifel, dass das am Board liegt - zumindest haben die meisten anderen kein Problem mit geordnetem Source-Post ;)
    Aber vielleicht spinnt das ja tatsächlich gerade, kann ich nix zu sagen...

    Es wird sich wohl kaum jemand die Mühe machen, da durchzusteigen.
    Der Code ist einfach nur Kauderwelsch...
    Räum den mal auf ...


    Außerdem scheint da noch immer nichts zum Thema Ini drin zu sein.
    Dabei sagtest du, er schreibt das in 'ne Ini rein, macht aber Probleme beim Auslesen ?
    Es fehlt aber komplett - auch die erwähnte Eingabe der Daten etc... :P


    So kann man dir noch nicht helfen... ;)


    [Edit:

    Zitat

    TCPRequest($ip, "www.wrestlegame.de", "/login.php", $post)


    ....
    Bot.. ?]

    Vielleicht solltest du deinen Code komplett posten - die beiden Zeilen da oben sind irgendwie vollkommen aus dem Zusammenhang gegriffen oO
    Was sollen wir damit anfangen ? Zumal eine Funktion aufgerufen wird, die du nicht mit gepostet hast .. ?


    Wir können dir nicht sagen, warum dein Script die Daten beim Start nicht ausliest, wenn wir dein Script / den Anfang deines Scriptes nicht kennen.


    Ansonsten:
    "wenn name und passwort [..] vorhanden" --> If - Then - EndIf ?!
    "nochmal bestätigen" ---> Do ;Eingabe Until MsgBox( 4, 'Check', 'Daten korrekt ?' ) = 6