ฟอรั่มของบล็อก http://pssix.blogspot.com


ช่วยอธิบายเรื่อง การทำงานของ combobox

Share

sticked
PSsix Member
PSsix Member


จำนวนข้อความ : 24
ความนิยม : 1
เข้าร่วมเมื่อ : 30/01/2012
อายุ : 27

ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by sticked on 09/02/12, 01:52 am

ช่วยอธิบาย statement และการนำไปใช้ ของ combobox ให้หน่อยครับ

$Combo1 = GUICtrlCreateCombo("โปรดเลือก", 40, 96, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "a1|a2|a3");

การนำไปใช้ ถ้าเราเลือก ค่าที่ 1 เมื่อเลือกแล้วจะนำอะไรไปใช้
ช่วยยกตัวอย่างสักนิดนะครับ

ขอขอบคุณล่วงหน้าด้วยครับ

em218 em218

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by loveapple244 on 09/02/12, 10:27 am

งงกับคำถาม-*- แต่ที่เราเคยใช้สำหรับเกมส์เราใช้แบบนี้อ่า
ข้างล่างนี้คิแค่รวมGUICtrlCreateComboที่ใช้ภายใน guiสำหรับเกมส์อ่าแต่ยังไม่ได้เขียนสร้างกำหนดโครงสร้างภายนอกพวกขนาดของความกว้างยาวของโครงข้อมูลแล้วก็ยังไม่มีตัวปิด/เปิดเกมส์ยังไงลองดูแล้วกันครับเพราะนายถามแค่นี้เลยตอบแค่ที่มันจะพึงควรมี- -*

Code:

Dim $SKILL_ATT_1 = 1             
Dim $SKILL_COMBO_1 = 1 
GuiCtrlCreateTabItem("Auto Skill")

Local $gui_attack_check = GUICtrlCreateCheckbox("Auto Skill",50,25)
    If ($auto_attack == True) Then
        GUICtrlSetState($gui_attack_check,$GUI_CHECKED)
    Else
        GUICtrlSetState($gui_attack_check,$GUI_UNCHECKED)
    EndIf

    GUICtrlCreateLabel("Skill 1 :",50,55)
    GUICtrlCreateLabel("Phim tat:",130,55)
    Local $gui_attack_phep1 = GUICtrlCreateCombo($SKILL_ATT_1,180,50,30)
    GUICtrlSetData($gui_attack_phep1,$short_key_attack,$SKILL_ATT_1)


   
GuiCtrlCreateTabItem("Auto Combo")

    Local $gui_auto_combo_check = GUICtrlCreateCheckbox("Auto Combo",70,30)
    If ($auto_combo == True) Then
        GUICtrlSetState($gui_auto_combo_check,$GUI_CHECKED)
    Else
        GUICtrlSetState($gui_auto_combo_check,$GUI_UNCHECKED)
    EndIf

    GUICtrlCreateLabel("Phep 1:",50,70)
    GUICtrlCreateLabel("phim tat:",110,70)
    Local $gui_key_skill1 = GUICtrlCreateCombo($SKILL_COMBO_1,170,65,30)
    GUICtrlSetData($gui_key_skill1,$short_key,$SKILL_COMBO_1)
GuiSetState(@SW_SHOW)

    While (1)
                $SKILL_ATT_1 = GUICtrlRead($gui_attack_phep1)
                $SKILL_COMBO_1 = GUICtrlRead($gui_key_skill1)
    WEnd

Func AutoAtt()
    If ($auto_attack == True) Then
        ControlSend("Camon","","" ,$SKILL_ATT_1)
        Opt("SendKeyDelay", 5)
        Sleep(5)
    EndIf
EndFunc

Func AutoCombo()
;If ($auto_COMBO == True) Then
;  Send($SKILL_COMBO_1)
;  Opt("SendKeyDelay", 5)

;  Sleep(5)
;EndIf
EndFunc

sticked
PSsix Member
PSsix Member


จำนวนข้อความ : 24
ความนิยม : 1
เข้าร่วมเมื่อ : 30/01/2012
อายุ : 27

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by sticked on 09/02/12, 02:36 pm

ต้องขอโทษด้วยที่ผมสื่อความหมายไม่เป็น
สมมุติว่า

ผมประกาศใช้คอมโบ

$Combo1 = GUICtrlCreateCombo("โปรดเลือก", 40, 96, 145, 25))
GUICtrlSetData(-1, "a1|a2|a3");


แล้วผมจะนำไปใช้ยังไงอ่ะคับ
เช่นถ้าเอาไปเข้าเงื่อนไข ยังงี้รึป่าว

If a1 == GUICtrlRead($Combo1) Then
$anc = 0x523C29
EndIf

มึนตึ๊บ...เลยครับ

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by loveapple244 on 09/02/12, 03:16 pm

นายเล่นเกมส์ Eden Eternal Simple Bot ป๊ะขอชื่อเกมส์จะดีกว่าจำได้จัดตามสถานะการณ์อะBitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))มันคือตัวปัญหาอะ- -*เด๊ยวลองไปสือค้นแปบมะได้เล่นภาษานี้หลักด้วยอ่า แต่เด๊ยวไปดูของเพื่อนที่เล่นคาบาลแปบน๊ะรู้สึกจะใช้หลักการเดียวกัน

รบกวนขอชื่อเกมส์ที่เล่นครับผมไม่เก่งเท่าไหร่เก่งก๊อฟข้อมูลแล้วให้เพื่อนในกลุ่มเฟทบุคช่วยกันแก้อะครับ + +

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by loveapple244 on 09/02/12, 06:34 pm

Code:

ก่อนอื่นจะสร้างข้างบนได้จะต้องมี GUICreate โดยจะต้องเรียก preprocessor directiveมาก่อนไม่งั้นโปรแกรมจะไม่รู้จัก GUICreate นั้นก็คือ
#include <GUIConstantsEx.au3> ;preprocessor directive
GUICreate("My GUI combo") ;เมื่อสร้างขึ้นมาแล้วก็จะได้หน้าต่างMy GUI combo
แล้วก็ส่งที่นายต้องการคือGUICtrlCreateComboก็จะได้
GUICtrlCreateCombo("โปรดเลือก", 40, 96, 145, 25)
GUICtrlSetData(-1, "a1|a2|a3");
แล้วก็สร้างตัวปิดโปรแกรมก็
    GUISetState()
 Local $msg
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
EndFunc 

ทีนี้ก็จะถามว่าต่อยอดยังไงโดยให้เจ้าตัวa1มีฟังก์ชั่งซะเลย
$combo_1 = a1
$combo_2 = a2
$combo_3 = a3
$xTop = 120
$yTop = 200
$xBot = 700
$yBot = 600
$mobGreen = " 0x523C29"
;จากข้างบนคือเราจะสร้างซ้าย บน ขวา ล่าง สีเพื่อจะมากำหนดฟังก์ชั่นจะได้
While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $combo_1
$coord = PixelSearch($xTop,$yTop,$xBot,$yBot,$mobGreen)
            If Not @error Then
            MouseClick("",$coord[0] ,$coord[1],1,0)
            Sleep(1000)
            EndIf
;จากข้างบนเป็นการหาค่าสีแล้วให้เม้าส์คลิ๊ก- -*            
            Case $msg = $Button_2
              MsgBox(0,'a2','ฟังก์ชั่น2ในa2')
Case $msg = $Button_3
              MsgBox(0,'a3','ฟังก์ชั่น3ในa3')       
EndSelect
    WEnd
EndFunc

เราไม่รู้แบบนี้ใช้สิ่งที่นายต้องการหรือเปล่า-*-ถ้าไม่ใช่ขอโทษด้วยนะครับคงต้องรอพี่ๆระดับขั้นเทพช่วยท่านแล้วละ-*-

sticked
PSsix Member
PSsix Member


จำนวนข้อความ : 24
ความนิยม : 1
เข้าร่วมเมื่อ : 30/01/2012
อายุ : 27

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by sticked on 10/02/12, 12:52 am

if ไม่ออกอ่ะครับ

If $b1 = 0x080608 Then
If PixelGetColor(490, 746) And PixelGetColor(520, 746) And PixelGetColor(550, 746) And PixelGetColor(580, 746) And PixelGetColor(610, 746) And PixelGetColor(640, 746) And PixelGetColor(670, 746) <> 0xA52018 Then
Send("z")
EndIf

If PixelGetColor(490, 746) = 0xA52018 Then
Send("{F1}")
ElseIf PixelGetColor(520, 746) = 0xA52018 Then
Send("{F2}")
ElseIf PixelGetColor(550, 746) = 0xA52018 Then
Send("{F3}")
ElseIf PixelGetColor(580, 746) = 0xA52018 Then
Send("{F4}")
ElseIf PixelGetColor(610, 746) = 0xA52018 Then
Send("{F5}")
ElseIf PixelGetColor(640, 746) = 0xA52018 Then
Send("{F6}")
ElseIf PixelGetColor(670, 746) = 0xA52018 Then
Send("{F7}")
Else
EndIf
EndIf

ตรง Send("z")
อ่ะคับ ไม่รุ้ว่าถูกรึเปล่า ใช้ and ในการเปรียบเทียบค่า

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by loveapple244 on 10/02/12, 09:39 am

นายลืมดึงจอเปล่าWinWaitActive นะแล้วก็ifมันใช้ได้แค่1ครั้งจะใช้ต่อเยอะๆแนะนำให้ใช้รูปฟังก์ชั่นแล้วก็ใช้ตัวแปร+สติงเช่น$var = PixelGetColor( $pos[0] , $pos[1] )แล้วใส่ค่าของนายในรูปแบบของอาเรย์ถึงจะถูกนะ- -*แต่ของเราด้านบนเราใช้ Select Case EndSelect แต่มันมีตัวหนึ่งที่ข้างบนเราลืมใส่ให้ไปคือฟังก์ชั่นเริ่มต้นเราผิดเองละ-*-ลองประกาศพวกGlobalด้วยเพราะว่านายเล่นใส่If $b1 = 0x080608 Thenเลยมันคงไม่รันคงต้องไปประกาศ global $b1 = อะไรจะดีกว่าเพราะดูจากข้างบนนายใช้ในรูปของสีอันเดียวถ้าหลายสีก็ใส่อาเรย์เข้าไปแล้วใส่ในรูปแบบของการอ่านค่า IniRead ไปใช้แก้ในiniจะง่ายซะกว่ามานั่งเขียนสีในนั้นอ่าเหมือนของพี่ autอะลองไปโหลดดิถ้าใช้ก็ใช้รูปiniแทนไปถ้าถามทำยังไงเราทำเป็นไม่หมดรอพี่ pos กับพี่ aut มาตอบพี่autเก่ง IniRead ลองไปโหลดมาเล่นดูดิ + +

sticked
PSsix Member
PSsix Member


จำนวนข้อความ : 24
ความนิยม : 1
เข้าร่วมเมื่อ : 30/01/2012
อายุ : 27

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by sticked on 10/02/12, 01:05 pm

If BitAND(GUICtrlRead($Radio1), $GUI_CHECKED) Then
$b1 = PixelGetColor(100, 13)
ElseIf BitAND(GUICtrlRead($Radio2), $GUI_CHECKED) Then
$b1 = PixelGetColor(137, 13)
Else
$b1 = PixelGetColor(165, 13)
EndIf
(ผมลืมเอาที่มาของ $b1 มาให้ ลืมเรื่องความละเอียดรอบคอบ ขอโทษด้วยนะคับ T^T )
b1 จะเป็นช่วงของค่าสีครับ ที่กำหนดตำแหน่งไว้

ได้ละครับ ผมยุบรวม if เช็คแต่ค่าสุดท้ายโดยไม่ต้องใช้ and เทียบมาตั้งแต่ค่าแรกเพราะ ยังไงก้ต้องใช้ F1 หมดก่อน ถึงจะ F2 ต่อ

If PixelGetColor(670, 746) = ค่าสีใกล้ๆ 0xA52018 Then
Send("Z")
ElseIf PixelGetColor(490, 746) = 0xA52018 Then
Send("{F1}")
ElseIf PixelGetColor(520, 746) = 0xA52018 Then
Send("{F2}")
ElseIf PixelGetColor(550, 746) = 0xA52018 Then
Send("{F3}")
ElseIf PixelGetColor(580, 746) = 0xA52018 Then
Send("{F4}")
ElseIf PixelGetColor(610, 746) = 0xA52018 Then
Send("{F5}")
ElseIf PixelGetColor(640, 746) = 0xA52018 Then
Send("{F6}")
ElseIf PixelGetColor(670, 746) = 0xA52018 Then
Send("{F7}")
Else
EndIf

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by loveapple244 on 10/02/12, 01:49 pm

Code:

PixelGetColor(490, 746) = 0xA52018 ThenSend("{F1}")จากที่เราลองเราโปรแกรมลากดูนะมันจะเหมือนกับกล่องอาเรย์หนึ่งๆโดยมีความประส่งที่จะกดF1ที่กล่องนั้นพอกล่องถัดไปคือ(520, 746)คือกล่องถัดมาคือมันจะอยู่ใกล้ๆกับอาเรย์แรกแต่มันจะเคลื่อนมาที่ทางขวามืออีกหน่อยเป็นกล่องอาเรย์ที่2คือจะทำการกดF2เป็นแบบนี้ไปคือF3 F4 F5 F6 F7แล้วนายต้องการกด Z F1-F7 แล้วก็100 137 167น่าจะเป็นแถบของเลือดหรืออะไรซะอย่างที่นายกะไว้3ช่องคือ100 137 167 ไอตรงนี้ละคือสิ่งที่นายจะทำถูกเปล่าคือเราสันนิถานว่าคือถ้าเลือดอยู่ที่167ไม่ต้องทำอะไรแต่ถ้าเลือด137เมื่อไหร่กดF1แล้วถ้าเลือด100ให้กดF2ช่ายป๊ะตามหลักการคิดก็คือถ้า137เป็นเท็จก็จะทำการกดF1ที่เราใช้เราแบ่งแค่2ช่วงนะปกติคนเราจะคิด50กับ70เปอเซ้นสำหรับสร้างตัวปั้มเลือดนะอันนี้มุมความคิดเรานะ- -* ถ้าเป็นแบบนี้ให้นายอ่านเขียนบอทเกมด้วย AutoIt : Bot 2 เช็คพิกัดสีเพื่อเขียนคำสั่งควบคุม เพราะมีคนเขียนไว้แล้วฉะนั้นจากด้านบนนายทำซ้อนหรือคิดยอะไป-*-เลยยากจิงๆแล้วค่าที่ใช้คือ137,13 กับสีที่0xA52018 เราเลยคิดว่ามันน่าจะใช้รูปของ Ifไง- -*จิงน่าจะเขียนแบบนี้นะ
If PixelGetColor(137,13) = xA52018 Then
Send("{F1}")
EndIf
 
ถ้าเกิดว่าที่เราคิดไว้ใม่ใช่ขอโทษรอบที่3ครับที่ทำให้นายเกิดความปวดหัวอิอิคิดเยอะๆดีคับทำให้ผมยากสร้างสิ่งใหม่ตามนายจริงเรามะได้เน้นภาษานี้เท่าไหร่เราหาจากในนี้แล้วมาตอบนาย- -*จิงๆเราพึ่งหัดเรียนภาษาซีอยู่งะ-*-ยังไปไม่รอดเลยแต่มันมีความคล้ายอยู่เกือบ80เปอร์เซ้นต์- -*

sticked
PSsix Member
PSsix Member


จำนวนข้อความ : 24
ความนิยม : 1
เข้าร่วมเมื่อ : 30/01/2012
อายุ : 27

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by sticked on 10/02/12, 03:17 pm

เป็น พิกัดจุด สีของช่อง F1-F7 อ่ะคับ จะเทียบทุกจุด ตั้งแต่ ช่อง F1-F7 ว่าเป็นสีเดียวกันหรือไม่โดย ใช้ and ในการเทียบ ใช้ตรรกศาสตร์ อ่ะครับ ถ้าไม่ใช่สี 0xA52018 ให้กด Z
em228

ยังไงพี่ก้ช่วยผมได้เยอะเลย งมโข่งเกือบ 2 วัน 555 พลิกมาดูที่โพสไว้ก้พอปิ๊งไอดีย (ลอกที่คุณโพสมาต่างหาก 55)
em230

ที่ผมเรียนมา c# ก้แทบลืมไปหมดละ มาลองคลำ autoit ดูๆ
em219

loveapple244
PSsix Member Super Class II
PSsix Member Super Class II

PSsix Game Coder
จำนวนข้อความ : 160
ความนิยม : 9
เข้าร่วมเมื่อ : 15/07/2011

Re: ช่วยอธิบายเรื่อง การทำงานของ combobox

ตั้งหัวข้อ by loveapple244 on 12/02/12, 08:27 pm

โหเก่งอ่าเคยเป็นซีชาปเลย-0-ผมพึ่งซีพื้นฐานเอง--*ยังไมไม่ไหนเลยจากโจทย์ข้างบนผมคิดหาผังงานก่อนอะคือมี1.F1-F7 2มีสี0xA52018คือสีแดงคิดว่านีแดงเพราะเดา- -*เปล่าหรอกพิมพ์color บนกูเกิ้ลนะ- -*สร้างพิกัดจุดก็คืออาเรย์ที่[F1][F2][F3]..[F7]รวม7อาเรย์ โดยใช้andเทียมตะกะ BitORแล้วไม่ใช่คือ ส่งค่าเท็จNOT แล้วกดZแปลว่าเราทราบค่าเริ่มต้นคือF1สิ้นสุดที่F7แล้วถ้าไม่มีF1-F7ก็เป็นเท็จก็ออกจากloopingก็คือจบการทำงาน-*-ผมก็มาคิดต่อว่าต้องการอะไรนายต้องการ1.ค้นหาว่าอาเรย์ทั้ง7มีสีxA52018หรือไม่ถ้าเป็นจิงก็ให้วนต่อไป2.ถ้าเป็นเท็จให้ออกจากloopแล้วส่งค่าZ จากด้านบนเราก็คิดว่ามีปัญหาคือเรากำหนดอาเรย์มาF1-F7แต่ไม่รู้ค่าในนั้น-*-จบเลย-*-ไม่สามารถสร้างloopวนซ้ำได้ที่คิดว่าต้องทำเพราะนายบอกว่าสร้างตรรกศาสตร์ในที่นี้น่าจะสือถึงว่าค่าในF1-F7เป็นจริงหรือเป็นเท็จถูกไม่ถูกอันนี้เราคิดคนเดียว-*-แล้วคำถามที่3คือ ถ้าไม่ใช่สี 0xA52018 ให้กด Zอันนี้เป็นคำสั่งเดาได้เลยว่าเป็นคำสั่งต่อเนื่องค่าเมื่อF1-F7ไม่ใช่สี 0xA2018แล้วมันก็น่าจะจบการทำงานแต่ด้วยจากรูปแบบข้างบนเราคิดว่าต้องแสดงเป็นฟังก์ชั่นหรือในรูปอื่นก็ได้โดยสร้างเหตุการณ์จำลองF1จนถึงF7แล้วก็สร้างเหตุการณ์อีกอันคือถ้าไม่ใช่หรือเป็นเท็จคือไม่ใช่0xA52018แล้วกดZถ้าเขียนในภาษาเลยคิดว่าน่าจะเป็นแบบนี้
Global $ค่าสี = 0xA52018
$สีที่1 =
while
fuce notcolor()
if not $ค่าสี then
send("Z")
elseIf
endfunc
WEnd

fuce สีที่F1-F7(เขียน7ฟังก์ชั่น)
while1
if $ค่าสี1-7 then
WEnd
elseIf
endfunc

แต่ตัวโค๊ดจริงๆเราก็ไม่มั่นใจแต่น่าจะเขียนประมาณนี้ละมั้งครับ TvT เพราะยังไม่เคยลองของจิงอ่าเดา70%--*ขอโทษงับให้คำปรึกษาไรไม่ได้เลย- -*

    เวลาขณะนี้ 26/02/17, 12:28 pm