1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. stayawayknight

Beiträge von stayawayknight

  • Andy hat Geburtstag

    • stayawayknight
    • 4. Februar 2012 um 18:44

    Alles Gute ;)

  • Hilfe bei Item&Inventar System

    • stayawayknight
    • 3. Februar 2012 um 22:41
    Zitat von teamnoobPDB

    Und stayawayknight ich habe mir zig Tutorials im Internet und auf AutoIT.com durchgelesen und mir alles angeschaut was ich zu Variablen und der Gui Oberfläche brauche


    Ich will dich ja nicht persönlich angreifen, aber wenn dies der Fall wäre, dann hättest du oben vermutlich (besseren) Quellcode posten können...
    Sofern du die Grundprinzipien nicht wirklich begriffen/umgesetzt hast, brauchst du an deinem Game gar nicht mehr weitermachen - aus dem obigen Grund hat dein jetziger Quellcode keine Zukunft, da du langfristig immer das max. Rekursionlevel übersteigen wirst.

    Außerdem lässt es sich gar nicht ausführen, ohne sämtliche Warnungen und Fehler ignorieren zu lassen.
    Wenn du schon soweit bist, dann würde ich mich jetzt dringend in den Quellcode von Protex einlesen, mit diesem lässt sich gut arbeiten.

    Klicke mal bei deinem Skript unüberlegt einfach ein paar Buttons - fast immer stürzt das Programm nach ein paar Klicks ab.
    Solange du diese grundlegenden Fehler im Code nicht ausgemerzt hast, brauchst du mit einem Inventar etc. eigentlich gar nicht anfangen.

    Dieses könntest du übrigens so umsetzen:

    -Jede Itemsorte bekommt eine bestimmte Zahl/String, an dem die Sorte eindeutig identifiziert werden kann
    -Deklariere am Anfang ein Array mit einer bestmmten Größe (je nach dem, wie groß das Inventar werden soll)
    -Fülle die einzelnen Elemente mit den jeweiligen entsprechenden Integern/Strings (s. oben) (je nach dem, was im Inventar vorhanden ist)
    -Rest des Arrays mit 0 füllen.
    -Bei dem Fund enes Items suchst du nach dem nächsten freien (=0) Element und füllst dieses.
    -Beim Einsetzen suchst du im Array nach dem Index, der das entsprechende Item (bzw. Element) enthält und setzst den Inhalt wieder auf 0.

    Hier ein kleines Beispiel, ist zwar nicht perfekt und ich hätte vermutlich auch auf irgendwelche bereits vorhandenen Arrayfunktionen zurückgreifen können, deren Namen mir entfallen sind...

    Beispiel
    [autoit]


    ;Jede Zahl im Array steht für eine Itemsorte
    Dim $iInventar[10]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($iInventar) - 1
    $iInventar[$i] = 0
    Next

    [/autoit] [autoit][/autoit] [autoit]

    ;Oben: Inventar erstellen

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _DisplayInventar() ;Ausgabe des Inventars

    [/autoit] [autoit][/autoit] [autoit]

    ;Jetzt beispielsweise Fund eines Items, das dann die für den Entwickler verständlichen Zahl "5" trägt.

    [/autoit] [autoit][/autoit] [autoit]

    $iInventar[_GetNextFreeIndex()] = 5
    _DisplayInventar();Ausgabe des Inventars

    [/autoit] [autoit][/autoit] [autoit]

    ;Fund weitere Items, hier mit den Zahlen 2, 8, 3 und 6 versehen
    $iInventar[_GetNextFreeIndex()] = 2
    $iInventar[_GetNextFreeIndex()] = 8
    $iInventar[_GetNextFreeIndex()] = 3
    $iInventar[_GetNextFreeIndex()] = 6
    _DisplayInventar();Ausgabe des Inventars

    [/autoit] [autoit][/autoit] [autoit]

    ;Ein Item mit der Zahl 3 wird verbraucht und muss aus dem Inventar gelöscht werden
    $iInventar[_GetFirstItemIndex(3)] = 0 ;Wird wieder auf Null gesetzt
    _DisplayInventar();Ausgabe des Inventars

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GetFirstItemIndex($iItemNumber);Gibt den ersten Index des Arrays aus, dessen Element das Item enthält
    For $i = 0 To UBound($iInventar) - 1
    If $iInventar[$i] = $iItemNumber Then
    Return $i
    EndIf
    Next
    EndFunc ;==>_GetFirstItemIndex

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _GetNextFreeIndex() ;Ermittelt die nächste freie Stelle im Inventar
    For $i = 0 To UBound($iInventar) - 1
    If $iInventar[$i] = 0 Then
    Return $i
    EndIf
    Next
    EndFunc ;==>_GetNextFreeIndex

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _DisplayInventar()
    ConsoleWrite(@CRLF)
    For $i = 0 To UBound($iInventar) - 1
    ConsoleWrite("Inventaritem Nr. " & $i & ": " & $iInventar[$i] & @CRLF)
    Next
    EndFunc ;==>_DisplayInventar

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • DLLs mit AutoIt erzeugen?

    • stayawayknight
    • 2. Februar 2012 um 23:25

    Hier, von misterspeed:
    Klick mich :-)

  • DLLs mit AutoIt erzeugen?

    • stayawayknight
    • 2. Februar 2012 um 23:05
    Zitat von Homer J. S.

    Hallo Zusammen,


    Ich habe einen fertiges Programm (*.exe) mit AutoIt erstellt und möchte dem User des Programms eine Möglichkeit bieten, ein eigenes Skript in meinem Programm zu integrieren.
    Wäre dies so eigentlich möglich?

    Vielen Dank für eure Hilfe!

    Gruß
    Homer J. S.

    Indirekt schon. Entweder lässt du das zu integrierende Skript zur Laufzeit des anderen Skripts durch den AutoIt-Compiler laufen, oder du erstellst aus dem zu integrierenden Code eine Exe-Datei und lässt diese dann ausführen.

    Edit: Oder eben Marthogs Variante ;)

  • Hilfe bei Item&Inventar System

    • stayawayknight
    • 2. Februar 2012 um 22:55

    Hallo,

    ich würde dir erstmal raten dich vielleicht doch noch mal mit dem einen oder anderen AutoIt-Tutorial auseinanderzusetzen, oder mit Peethebees Buch (siehe im Portal unter "Wichtige Links").

    Dein Skript ist leider, wenn da was größeres draus werden soll, soweit ziemlich unbrauchbar (und in dieser Form auch nicht lauffähig!).
    Du hangelst dich immer mit dem selben Funktionsaufbau, nämlich eine Endlosschleife, die nie unterbrochen wird, von Funktion zu Funktion, in denen du wiederum in eine Endlosschleife einsteigst. So erreichst du langfristig genau das, was auch hier (nur zeitlich etwas schneller) geschieht:

    [autoit]


    fkt()

    [/autoit][autoit][/autoit][autoit]

    Func fkt()
    While 1
    fkt()
    Sleep(10)
    WEnd
    EndFunc ;==>fkt

    [/autoit]

    --> Eine Übersteigung des maximalen Rekurionslevels (das bedeutet grob gesagt, du steckst zu viele Dinge ineinander).


    Lies dir lieber noch ein paar Erklärungen zu AutoIt, dem Gui-Management etc. durch. EIne Gui mit Koda machen ist die eine Sache, aber die erzeugten Elemente richtig anzusteueren, die andere, wesentlich schwierigere Sache. Wenn du noch etwas in Erklärungen stöberst und dich dann auch mit Variablen und Arrays auskennst wirst du dir deine obige Frage wohl selbst beantworten können.

    Gruß stay

    PS: Das ist echt nicht böse gemeint!

  • DLLs mit AutoIt erzeugen?

    • stayawayknight
    • 2. Februar 2012 um 22:39
    Zitat von Blume

    Hi,

    falls es dir nur im die Funktionalität einer Dll geht, kannst du dir ja eine Dateiendung ausdenken,
    zum Beispiel (*.dae -- Dynamic AutoIt Extension) und damit Code aus der Datei
    in die Haupt-Exe "einzuspielen".

    Also sowas wie ein Plugin-System.

    mfg
    Dominik

    Wobei dieser dann ja eigentlich erst wieder compilt werden müsste; du müsstest also zusätzlich zu der Exe-Datei deines Programmes also auch noch den Compiler mit dir rumschleppen...

  • Programm, rechtliche Fragen

    • stayawayknight
    • 1. Februar 2012 um 17:34

    Hallo,

    das hier hat zwar nicht direkt etwas mit deiner Frage zu tun, aber ich würde auch aufpassen, das der Anbieter des FTP-Servers das Hosting und Verwahren der Bilder erlaubt. Viele Anbieter haben ein Problem damit, wenn du ihn zur direkten Dateispeicherung benutzt (da gab es auch einen Fachbegriff, der mir gerade nicht einfallen will).

    Gruß stay

  • daten übergeben

    • stayawayknight
    • 31. Januar 2012 um 17:14

    Vielleicht hilft dir auch die UDF von eukalyptus weiter: Exchange Variables UDF Beta

  • Eclipse Konfiguration

    • stayawayknight
    • 30. Januar 2012 um 21:20

    Nochmals danke für eure Bemühungen, aber mein Problem hat sich gerade gelöst :)

    Habe nach etlichem Stöbern dank dem Eclipseforum-Link gemerkt, dass vergangenen Juni wohl Eclipse Indigo releast wurde - mit integriertem Window Builder (der etwas Ähnlichkeit mit Koda hat) :)
    Funktioniert alles soweit wunderbar ;) Danke für eure Bemühungen!

  • Plink Automatisierung

    • stayawayknight
    • 30. Januar 2012 um 17:22

    Hi,

    ich glaube in diesem Teil des Forums bist du falsch, versuche es doch mal im Skripte-Forum :)

  • filecheck funktion (udf)

    • stayawayknight
    • 29. Januar 2012 um 21:28

    Hallo,

    Ich würde dann aber eher

    [autoit]

    InetGetSize

    [/autoit]

    bevorzugen.

  • Eclipse Konfiguration

    • stayawayknight
    • 29. Januar 2012 um 20:25

    Naja, mir geht es halt hauptsächlich darum, das alles in einem ist. Ich brauche das C++ dann eigentlich auch nur, um Dlls zu erstellen o.ä.
    Ich hätte das eigentlich alles schon ganz gern in einem Programm - der Übersichtleichkeit halber.

  • Eclipse Konfiguration

    • stayawayknight
    • 29. Januar 2012 um 19:06

    Hallo,

    ich war hier leider längere Zeit nicht mehr wirklich aktiv, habe nun aber eine allgemeine Frage und hoffe, dass ihr sie mir trotzdem beantwortet :)

    Mein Ziel ist es, auf meinem Laptop hier (32 Bit, Win7), eine Eclipseversion zu installieren, die folgende Dinge enthalten/können soll:

    - Java Entwicklungsumgebung
    - Java Gui-Builder (der nennt sich für Eclipse meines Wissens nach "Visual Editor")
    - PHP+HTML+CSS+JS Entwicklungsumgebung (so allgemeines Webzeug)
    - C++/C Entwicklungsumgebung

    Das alles wenn möglich in einer Eclipseversion (also nur ein Programm, dass ich starten muss) und einer Workbench.

    Das alles mit Syntax-Highlighting und was so dazugehört.
    Nun lade ich mir seit geraumer Zeit schon alle möglichen Plug-ins und Eclipseversionen herunter, lasse Google auf Hochtouren laufen - aber schaffe es nicht, dass hinzubekommen.

    Ich wäre euch sehr dankbar, wenn mir jemand sagen könnte, welche Eclipseversion und welche entsprechenden Plugins ich wie dafür installieren muss.
    Bei allem was ich tue, spuckt Eclipse irgendwelche Fehlermeldungen aus oder das installierte Zeug funktioniert nicht wirklich so, wie ich es gerne hätte (beispielsweise konnte ich C++ Projekte erstellen, aber entsprechenden Sourcecode nicht ausführen, von syntaktischem Highlighting ganz zu schweigen).

    Ich hoffe ihr könnt mir irgendwie helfen!

    Viele Grüße und Dank im Vorraus,
    stay

  • physik und autoit, klappt das? wer kann V=s/t oder hat schon gecoded?

    • stayawayknight
    • 31. Dezember 2011 um 14:42

    Hi,

    so wie ich das verstehe, willst du eher eine Art Simulation erzeugen.
    Dazu brauchst du dann natürlich eine Grafik-Engine, kann dir für dieses Problem GDI+ empfehlen (Oder du lässt Gui-Controls fahren, z.B. ein Pic).

  • Zeile mit FileReadLine einlesen, nur bestimmte Werte in txt schreiben

    • stayawayknight
    • 27. Dezember 2011 um 00:13

    Hi,

    erkenne folgendes Problem:
    Das Array $array wird nie neu überschrieben, bzw. sein Inhalt gelöscht.
    Mit

    [autoit]

    _ArrayAdd($array,$aResult[0])
    _ArrayAdd($array,"")
    For $i = 0 To UBound ($strasse)-1
    _ArrayAdd($array,$strasse[$i])
    Next

    [/autoit]


    fügst du an dasselbe Array, dass du bereits für die anderen Dateien benutzt, weitere Werte an, die nun einen anderen Index tragen als sie eigentlich tragen sollten.
    Da du mit

    [autoit]

    ConsoleWrite($array[11] & @CRLF)
    ConsoleWrite($array[14] & @CRLF)

    [/autoit]


    aber nur diesselben Index abfrägst, werden die neuen Inhalte nicht ausgegeben.

    Also, ein vereinachtes Beispiel:

    Bei Datei eins:
    [0] Wert A aus Datei 1
    [1] Wert B aus Datei 1
    [2] Wert C aus Datei 1

    Nun fügst du für Datei zwei einfach nur weitere Elemente an, als die alten Positionen zu überschreiben (verursacht durch _ArrayAdd)
    Die Liste sieht also nun so aus:

    [0] Wert A aus Datei 1
    [1] Wert B aus Datei 1
    [2] Wert C aus Datei 1
    [3] Wert A aus Datei 2
    [4] Wert B aus Datei 2
    [5] Wert C aus Datei 2

    So setzt sich das mit der 3. Datei dann fort:

    [0] Wert A aus Datei 1
    [1] Wert B aus Datei 1
    [2] Wert C aus Datei 1
    [3] Wert A aus Datei 2
    [4] Wert B aus Datei 2
    [5] Wert C aus Datei 2
    [6] Wert A aus Datei 3
    [7] Wert B aus Datei 3
    [8] Wert C aus Datei 3


    Mit dem hier:

    [autoit]

    ConsoleWrite($array[11] & @CRLF)
    ConsoleWrite($array[14] & @CRLF)
    ConsoleWrite($aResult[2] & @CRLF)
    ConsoleWrite($_ort[0] & " ")
    ConsoleWrite($_ort[1]& @CRLF)

    [/autoit]


    frägst du aber immer nur die ersten Elemente ab - die neuen aus den anderen Dateien werden gar nicht ausgegeben.

    Lösungsansatz:
    Arbeite nicht mit

    [autoit]

    _ArrayAdd

    [/autoit]

    sondern bestimmte die Indices lieber von Hand, sofern du immer die Daten der aktuellen Datei alleine ausgeben möchtest.
    Wenn du alle Elemente ausgeben möchtest, solltest du dir ein Konstrukt folgender Art basteln:

    [autoit]


    For $i = 0 To Ubound($array) - 1
    ConsoleWrite($array[$i] & @CRLF)
    Next

    [/autoit]


    (Leider nicht getestet, enthält möglicherweise Fehler aufgrund einer längerer AutoIt-Pause)

    Ich hoffe, ich habe das Problem richtig erfasst und konnte helfen,
    Gruß stay

  • progandy hat Geburtstag!

    • stayawayknight
    • 11. Oktober 2011 um 18:08

    Auch von mir alles Gute zum Geburtstag! Mach weiter so und bleib wie du bist ;)

    @Chieter Dieter: Ist das Absicht, dass prog@andy's "Artikel" direkt neben "Schlagzeilen" mit Amokläufen, Kinderschändern, Drogen etc. steht? :D

  • MatheProgramm

    • stayawayknight
    • 20. September 2011 um 16:18

    Das ist ja extrem umfangreich (ein neuer Zeilenrekord?)...

    Sogar mit Onlinemodus etc. - wie lange hast du dafür gebraucht?

  • [praktisch] Beschreibbares Kästchenpapier in eigener GUI - Beispiel

    • stayawayknight
    • 13. September 2011 um 17:12

    Verstehe nicht ganz, wieso du immer "CRLF" für den Zeilenumbruch nimmst?
    Splite doch direkt mit

    [autoit]

    @CRLF

    [/autoit]

    ... dann lässt sich das normal verwenden ;)

  • Autobahn [QuickDraw]

    • stayawayknight
    • 13. September 2011 um 17:07

    Bitte mal die Quickdraw.au3 anhängen!

  • Happy Birthday Darter!

    • stayawayknight
    • 11. September 2011 um 01:25

    Alles Gute zum Geburtstag!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™