Nanana, nicht gleich aufgeben, Wydliez^^
Lies dir in aller Ruhe mal die Hilfe durch(ich gehe mal davon aus, daß du sie dir schon runtergeladen hast)
Wenn du den 3.Parameter bei Random nicht angibst, liefert Random eine Fließkommazahl und ohne besondere
Vorkehrungen bekommst du daraus ums Verrecken keine Integer-Zahl..
Probiers halt aus, es kann ja nix kaputtgehen, schlimmstenfalls klappt's und du stehst vor einem neuen Problem
Skripten soll doch Spaß machen..
Gruß
ytwinky
Anfänger braucht Unterstützung bei GUI und Entscheidungen - Danke im Vorraus
-
- [ offen ]
-
Wydliez -
12. November 2011 um 14:24 -
Geschlossen -
Erledigt
-
-
zu Deustch:
bei
[autoit]random(1,
[/autoit]kommt sowas raus: 6.238475234785 und nicht 6
daher gilt: 6 <> 6.238475234785
somit
[autoit]$i <> 6
[/autoit]also kann die bedingung
[autoit]$i = 6
[/autoit]nciht erfüllt werden.
Lösung:
[autoit]$i = int($i)
[/autoit]
Weil dann $i 6 ist, somit MÜSSTE es funktionierenmfg
Hauke -
zu Deustch
Kenne ich diese Sprache? (Sorry für den dummen Komentar, der musste einfach sein)
-
Kenne ich diese Sprache? (Sorry für den dummen Komentar, der musste einfach sein)
aber hey IN Deutsch klingt doch schei*e^^ xD -
[autoit]
#include <ButtonConstants.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $kk =0, $mk=0, $nn=0, $fn=0, $ws=0, $ms=0, $ds=0, $hs = 0
Dim $i
Dim $k
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("WCE v. 1.00", 625, 194, 193, 139)
$Label1 = GUICtrlCreateLabel("Wydliez' Charakter Entscheidungshelfer v. 1.00", 8, 8, 614, 43)
GUICtrlSetFont(-1, 24, 400, 0, "Calibri")
$Checkbox1 = GUICtrlCreateCheckbox("Körperkrieger", 16, 88, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Mentalkrieger", 16, 112, 97, 17)
$Checkbox3 = GUICtrlCreateCheckbox("Nahninja", 16, 136, 97, 17)
$Checkbox4 = GUICtrlCreateCheckbox("Fernninja", 16, 160, 97, 17)
$Checkbox5 = GUICtrlCreateCheckbox("Waffensura", 152, 88, 97, 17)
$Checkbox6 = GUICtrlCreateCheckbox("Magiesura", 152, 112, 97, 17)
$Checkbox7 = GUICtrlCreateCheckbox("Drachenschami", 152, 136, 97, 17)
$Checkbox8 = GUICtrlCreateCheckbox("Heilschami", 152, 160, 97, 17)
$Group1 = GUICtrlCreateGroup("Zwischen diesen Charaktern wählen", 8, 56, 249, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Entscheide für Mich !", 264, 64, 355, 41, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 264, 112, 353, 21)
$Button2 = GUICtrlCreateButton("Neu", 264, 160, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Exit", 544, 160, 75, 25, $WS_GROUP)
$Label2 = GUICtrlCreateLabel("WCE v. 1.00 © Wydliez Software 2011", 344, 168, 192, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Select
Case GUICtrlRead ($Checkbox1) = $GUI_CHECKED
$kk = 1
Case GUICtrlRead ($CheckBox1) <> $GUI_CHECKED
$kk = 0
Case GUICtrlRead ($Checkbox2) = $GUI_CHECKED
$mk = 2
Case GUICtrlRead ($CheckBox2) <> $GUI_CHECKED
$mk = 0
Case GUICtrlRead ($CheckBox3) = $GUI_CHECKED
$nn = 3
Case GUICtrlRead ($CheckBox3) <> $GUI_CHECKED
$nn = 0
Case GUICtrlRead ($CheckBox4) = $GUI_CHECKED
$fn = 4
Case GUICtrlRead ($CheckBox4) <> $GUI_CHECKED
$fn = 0
Case GUICtrlRead ($CheckBox5) = $GUI_CHECKED
$ws = 5
Case GUICtrlRead ($CheckBox5) <> $GUI_CHECKED
$fn = 0
Case GUICtrlRead ($CheckBox6) = $GUI_CHECKED
$ms = 6
Case GUICtrlRead ($CheckBox6) <> $GUI_CHECKED
$ms = 0
Case GUICtrlRead ($CheckBox7) = $GUI_CHECKED
$ds = 7
Case GUICtrlRead ($CheckBox7) <> $GUI_CHECKED
$ds = 0
Case GUICtrlRead ($CheckBox8) = $GUI_CHECKED
$hs = 8
Case GUICtrlRead ($CheckBox8) <> $GUI_CHECKED
$hs = 0
EndSelect
$i = Random(1,8)
$i = Int($i)
Select
Case $i = $kk
$k = "Körper Krieger"
Case $i = $mk
$k = "Mental Krieger"
Case $i = $nn
$k = "Nahkampf Ninja"
Case $i = $fn
$k = "Fernkampf Ninja"
Case $i = $ws
$k = "Waffen Sura"
Case $i = $ms
$k = "Magie Sura"
Case $i = $ds
$k = "Drachen Schami"
Case $i = $hs
$k = "Heil Schami"
Case Else
$k = '$k wird nix zugewiesen'
EndSelect
MsgBox(0,"Antwort",$k)EndSwitch
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
WEndimmer noch die meldung ...
-
Tut mir leid dir das sagen zu müssen, aber wir dürfen ned weiter helfen, weil bots sind bei uns hier verboten, bitte wende dich dazu an andere Foren.
-
wo zum teufel ist da ein Bot?^^
Define Bot = Entscheidungshelfer? ich glaube kaum^^
mfg
Hauke -
hi,
@YaoiFan17:hmm, meinst du wirklich, daß Wydliez hier einen Bot programmieren will?
Wenn Ja, sollte der Thread geschlossen werden..
Ist aber auch egal, denn wenn er die Hilfe nicht liest, ist das Spiel veraltet, bis er den Bot fertig hat..
Random(1,8,1) liefert einen Integerwert im Bereich von 1 bis 8, jetzt muß er nur noch prüfen, ob diese Bedingungen eingehalten werden oder ob seine Zuweisungen(=0) evtl. gegen diesen Bereich verstoßen..
So gesehen ist dies auch keine Hilfe bei der Bot-Programmierung sondern eher grundsätzlicher Natur^^
Gruß
ytwinky -
Ja Metin2, dass ist ein Fertigkeitenbot, schaut euch mal die namensbeschreibungen an:
$k = "Körper Krieger"
$k = "Mental Krieger"
$k = "Nahkampf Ninja"
$k = "Fernkampf Ninja"
$k = "Waffen Sura"
$k = "Magie Sura"
$k = "Drachen Schami"
$k = "Heil Schami"Das sind die Fertigkeiten in Metin2^^
-
Ja und? wenn du in metin2 neu bist und nichts weißt, dann ist das doch ne gute sache.
Und WENN solche Funktionen später erscheinen, dann kann man den Beitrag löschen, aber noch nicht!mfg
Hauke -
Ich seh da keinen Bot. lediglich ein Programm, das aus einer Liste zufällig eine Charakterklasse auswählt.
Eine gute Gelegenheit, sich etwas mit Arrays zu beschäftigen.
Spoiler anzeigen
[autoit]#region - Timestamp
[/autoit] [autoit][/autoit] [autoit]
;2011-11-13 11:27:04
#endregion - Timestamp#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Local $kk = 0, $mk = 0, $nn = 0, $fn = 0, $ws = 0, $ms = 0, $ds = 0, $hs = 0
Dim $i
Dim $k
Dim $aCheckbox[8][3] = [["Körperkrieger", 0, 0], _
["Mentalkrieger", 0, 0], _
["Nahninja", 0, 0], _
["Fernninja", 0, 0], _
["Waffensura", 0, 0], _
["Magiesura", 0, 0], _
["Drachenschami", 0, 0], _
["Heilschami", 0, 0]]
Global $iLeft = 16, $iTop = 88
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("WCE v. 1.00", 625, 194, 193, 139)
$Label1 = GUICtrlCreateLabel("Wydliez' Charakter Entscheidungshelfer v. 1.00", 8, 8, 614, 43)
GUICtrlSetFont(-1, 24, 400, 0, "Calibri")
For $i = 0 To UBound($aCheckbox) / 2 - 1
$aCheckbox[$i][2] = GUICtrlCreateCheckbox($aCheckbox[$i][0], $iLeft, $iTop, 97, 17)
$iTop += 24
Next
$iLeft += 136
$iTop = 88
For $i = UBound($aCheckbox) / 2 To UBound($aCheckbox) - 1
$aCheckbox[$i][2] = GUICtrlCreateCheckbox($aCheckbox[$i][0], $iLeft, $iTop, 97, 17)
$iTop += 24
Next
$Group1 = GUICtrlCreateGroup("Zwischen diesen Charaktern wählen", 8, 56, 249, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Entscheide für Mich !", 264, 64, 355, 41, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 264, 112, 353, 21)
$Button2 = GUICtrlCreateButton("Neu", 264, 160, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Exit", 544, 160, 75, 25, $WS_GROUP)
$Label2 = GUICtrlCreateLabel("WCE v. 1.00 © Wydliez Software 2011", 344, 168, 192, 17)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
For $i = 0 To UBound($aCheckbox) - 1
If BitAND(GUICtrlRead($aCheckbox[$i][2]), $GUI_CHECKED) = $GUI_CHECKED Then $aCheckbox[$i][1] = 1
Next
Do
$rand = Random(0, UBound($aCheckbox) - 1, 1)
Until $aCheckbox[$rand][1] = 1
MsgBox(0, 0, $aCheckbox[$rand][0])
Case $Button2
For $i = 0 To UBound($aCheckbox) - 1
GUICtrlSetState($aCheckbox[$i][2], $GUI_UNCHECKED)
Next
Case $Button3
Exit
EndSwitch
WEnd -
Geiles Script, aber ich glaube Arrays und BitAND und solche Sachen sind noch ein wenig zu hoch für ihn^^
-
Ohh hab das hier erst jetzt gesehen, sorry mein Fehler, ist schon alles korrekt
[autoit]
Wenns das macht was im Namen steht, dann isses in Ordnung$Label1 = GUICtrlCreateLabel("Wydliez' Charakter Entscheidungshelfer v. 1.00", 8, 8, 614, 43)
[/autoit] -
keine ursache, kann passieren
-
Geiles Script, aber ich glaube Arrays und BitAND und solche Sachen sind noch ein wenig zu hoch für ihn
Schwimmen lernt man nur im tiefen Wasser.Wenn mna versucht den Code zu verstehen und unbekannte Befehle in der Hilfe sucht, dann wird das schon.
Es gibt keinen Grund, sich als Anfänger vor Arrays zu fürchten. Das bewahrt einem davor, sich solche Endlos-Switchs und Ifs anzugewöhnen. -
mhm gewiss, nur als mir am Anfang gesagt wurde, dass ich Arrays verwenden solle ( ich habe erst so seit ca. 1 Moneta gecodet ) da wusst ich auch nach mehreren Tutorials nichts damit anzufangen. Mitleriweile find ich, dass es eine der besten Erfindungen Seit 1980 ist^^
-
hat sich ja viel getan seit ich das letzte mal da war
und i2c hat recht
bloß ein generator der eine zufällige klasse auswählt€dit1:
i2c das ist ja klasse nur weiß ich ja nicht mal was ein array ist ...
es klappt aber ich steh davor wie ein Blinder im Kinokönntest du erklären was die neuen Scriptzeilen machen ? Die du eingefügt hast ?
mfg
-
Wenn du nicht weisst was ein Array ist, dann solltest du dir das hier mal zu Gemüte führen. - http://www.bug-fix.info/array_tut.htm
kommentierter Code
[autoit]#region - Timestamp
[/autoit] [autoit][/autoit] [autoit]
;2011-11-13 18:14:05
#endregion - Timestamp#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>
;ein Array mit 3 Spalten wird erstellt, das alle Informationen zu den Checkboxen aufnimmt
;[Text der Checkbox|Status (CHECKED/UNCHECKED|ControlID]
Dim $aCheckbox[8][3] = [["Körperkrieger", 0, 0], _
["Mentalkrieger", 0, 0], _
["Nahninja", 0, 0], _
["Fernninja", 0, 0], _
["Waffensura", 0, 0], _
["Magiesura", 0, 0], _
["Drachenschami", 0, 0], _
["Heilschami", 0, 0]]
_ArrayDisplay($aCheckbox, "$aCheckbox nach dem Start")
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("WCE v. 1.00", 625, 194, 193, 139)
$Label1 = GUICtrlCreateLabel("Wydliez' Charakter Entscheidungshelfer v. 1.00", 8, 8, 614, 43)
GUICtrlSetFont(-1, 24, 400, 0, "Calibri")
$iLeft = 16
$iTop = 88
;Schleife über die erste Hälfte des Arrays
For $i = 0 To UBound($aCheckbox) / 2 - 1
;in die 3te Spalte des Arrays wird die ControlID gespeichert = GUICtrlCreateCheckbox(Inhalt der 1ten Spalte als Text verwenden, left,top...)
$aCheckbox[$i][2] = GUICtrlCreateCheckbox($aCheckbox[$i][0], $iLeft, $iTop, 97, 17)
;Abstand von oben um 24px erhöhen, damit die nächste Checkbox weiter unten erstellt wird
$iTop += 24
Next
_ArrayDisplay($aCheckbox, "$aCheckbox nach erstellen der linken Checkboxen")
;das selbe nochmal, für die 2te Hälfte des Arrays, nur etwas weiter rechts auf dem GUI
$iLeft += 136
$iTop = 88
For $i = UBound($aCheckbox) / 2 To UBound($aCheckbox) - 1
$aCheckbox[$i][2] = GUICtrlCreateCheckbox($aCheckbox[$i][0], $iLeft, $iTop, 97, 17)
$iTop += 24
Next
_ArrayDisplay($aCheckbox, "$aCheckbox nach erstellen der rechten Checkboxen")
$Group1 = GUICtrlCreateGroup("Zwischen diesen Charaktern wählen", 8, 56, 249, 129)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Entscheide für Mich !", 264, 64, 355, 41, $WS_GROUP)
$Input1 = GUICtrlCreateInput("", 264, 112, 353, 21)
$Button2 = GUICtrlCreateButton("Neu", 264, 160, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Exit", 544, 160, 75, 25, $WS_GROUP)
$Label2 = GUICtrlCreateLabel("WCE v. 1.00 © Wydliez Software 2011", 344, 168, 192, 17)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
;Schleife über das gesammte Array, um zu prüfen welche Boxen ausgewählt sind
For $i = 0 To UBound($aCheckbox) - 1
;If (die controlID aus Spalte 3 ausgewählt ist) Then setze Spalte 2 auf 1
If BitAND(GUICtrlRead($aCheckbox[$i][2]), $GUI_CHECKED) = $GUI_CHECKED Then $aCheckbox[$i][1] = 1
Next
_ArrayDisplay($aCheckbox, "$aCheckbox nach Prüfung des Satus")
Do
;erstelle Zufallszahl zwischen 0 und der Länge des Arrrays
$rand = Random(0, UBound($aCheckbox) - 1, 1)
;bis die Zufallszahl ein Arrayindex ist, das vorher in SPalte 2 als "ausgewählt" gekennzeichnet wurde
MsgBox(0, "", "Gewählte Zufallszahl: " & $rand & @CRLF & "Status des entsprechenden Controls: " & $aCheckbox[$rand][1])
Until $aCheckbox[$rand][1] = 1
MsgBox(0, 0, $aCheckbox[$rand][0])
Case $Button2
;Schleife über das esammte Array, um alle checkboxen auf GUI_UNCHECKED zu setzen
For $i = 0 To UBound($aCheckbox) - 1
GUICtrlSetState($aCheckbox[$i][2], $GUI_UNCHECKED)
Next
_ArrayDisplay($aCheckbox, "$aCheckbox nach zurücksetzen der Auswahl")
Case $Button3
Exit
EndSwitch
WEnd -