Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Dopasowanie wartosci combo do input


Rekomendowane odpowiedzi

Opublikowano

Siema, mam pytanie jak zrobić coś takiego:

Mamy input w który podajemy wartość w liczbach oraz combo gdzie w liście jest np. HP/AP/BP/XP

I teraz wartość z inputa była by przypisywana do danej zmiennej w liście.

Tu jest skrypt, którego używam:

 

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

Nie bardzo rozumie twoje oczekiwania. W liście COMBO nie ma żadnych zmiennych, tylko wartości (liczbowe lub tekstowe) więc nie bardzo wiem o co ci chodzi.

Opublikowano
Dnia 13.07.2017 o 21:59, wasta napisał:

Nie bardzo rozumie twoje oczekiwania. W liście COMBO nie ma żadnych zmiennych, tylko wartości (liczbowe lub tekstowe) więc nie bardzo wiem o co ci chodzi.

Patrz ten kod niżej, on jest tak zrobiony, że czyta wartości do combo z pliku ini i ja bym chciał by wartość można było wpisać też w input a wybrać tylko kategorie z combo.

Czyli wybieram kategorie HP i w input wpisuje 5 przez co zlicza mi to do $calcHP

	#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPIFiles.au3>
	#Region ### START Koda GUI section ### Form=C:\Users\rychu\Desktop\KalkulatorUmiejetno sci\test.kxf
$Form1 = GUICreate("Kalkulator Statystyk", 425, 598, 692, 75)
$Group1 = GUICtrlCreateGroup("Statystyki", 8, 8, 201, 265)
$hp = GUICtrlCreateInput("200", 90, 40, 105, 21)
$mana = GUICtrlCreateInput("200", 90, 72, 105, 21)
$kondycja = GUICtrlCreateInput("200", 90, 104, 105, 21)
$sila = GUICtrlCreateInput("10", 90, 136, 105, 21)
$zrecznosc = GUICtrlCreateInput("10", 90, 168, 105, 21)
$moc = GUICtrlCreateInput("10", 90, 200, 105, 21)
$wiedza = GUICtrlCreateInput("10", 90, 232, 105, 21)
$Label1 = GUICtrlCreateLabel("HP", 16, 48, 70, 17)
$Label2 = GUICtrlCreateLabel("MANA", 16, 80, 70, 17)
$Label3 = GUICtrlCreateLabel("KONDYCJA", 16, 112, 70, 17)
$Label4 = GUICtrlCreateLabel("SILA", 16, 144, 70, 17)
$Label5 = GUICtrlCreateLabel("ZRECZNOSC", 16, 176, 70, 17)
$Label6 = GUICtrlCreateLabel("MOC", 16, 208, 70, 17)
$Label7 = GUICtrlCreateLabel("WIEDZA", 16, 240, 70, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Ekwipunek", 8, 280, 201, 313)
$Combo1 = GUICtrlCreateCombo("Wybierz Item", 88, 296, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo2 = GUICtrlCreateCombo("Wybierz Item", 88, 320, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Label8 = GUICtrlCreateLabel("HELM", 16, 304, 70, 17)
$Label9 = GUICtrlCreateLabel("ZBROJA", 16, 328, 70, 17)
$Combo3 = GUICtrlCreateCombo("Wybierz Item", 88, 344, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo4 = GUICtrlCreateCombo("Wybierz Item", 88, 368, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo5 = GUICtrlCreateCombo("Wybierz Item", 88, 392, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo6 = GUICtrlCreateCombo("Wybierz Item", 88, 416, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo7 = GUICtrlCreateCombo("Wybierz Item", 88, 440, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo8 = GUICtrlCreateCombo("Wybierz Item", 88, 464, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo9 = GUICtrlCreateCombo("Wybierz Item", 88, 488, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo10 = GUICtrlCreateCombo("Wybierz Item", 88, 512, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo11 = GUICtrlCreateCombo("Wybierz Item", 88, 536, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Combo12 = GUICtrlCreateCombo("Wybierz Item", 88, 560, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$Label10 = GUICtrlCreateLabel("SPODNIE", 16, 352, 70, 17)
$Label11 = GUICtrlCreateLabel("BUTY", 16, 376, 70, 17)
$Label12 = GUICtrlCreateLabel("PELERYNA", 16, 400, 70, 17)
$Label13 = GUICtrlCreateLabel("NASZYJNIK", 16, 424, 70, 17)
$Label14 = GUICtrlCreateLabel("PASEK", 16, 448, 70, 17)
$Label15 = GUICtrlCreateLabel("PIERSCIEN 1", 16, 472, 70, 17)
$Label16 = GUICtrlCreateLabel("PIERSCIEN 2", 16, 496, 70, 17)
$Label17 = GUICtrlCreateLabel("BRON", 16, 520, 70, 17)
$Label18 = GUICtrlCreateLabel("TARCZA", 16, 544, 70, 17)
$Label19 = GUICtrlCreateLabel("REKAWICZKI", 16, 568, 70, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Nowe Statystyki", 216, 8, 201, 537)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("KALKULUJ", 216, 552, 75, 41, $WS_GROUP)
$Dodaj = GUICtrlCreateCheckbox("Dodaj", 250, 40, 105, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
	fill()
	While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Button1
            calculate()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
	Func fill()
    Local $f, $readsec, $string
	    Local $arr[12] = ["helm", "zbroja", "spodnie", "buty", "peleryna", "naszyjnik", "pasek", "pierscien_1", "pierscien_2", "bron", "tarcza", "rekawiczki"]
	    For $i = 0 To UBound($arr) - 1
        $f = @ScriptDir & "\eq\" & $arr[$i] & ".ini"
        $readsec = IniReadSectionNames($f)
	        For $j = 1 To $readsec[0]
            $string &= $readsec[$j] & "|"
        Next
	        Switch $arr[$i]
            Case "helm"
                GUICtrlSetData($Combo1, $string)
            Case "zbroja"
                GUICtrlSetData($Combo2, $string)
            Case "spodnie"
                GUICtrlSetData($Combo3, $string)
            Case "buty"
                GUICtrlSetData($Combo4, $string)
            Case "peleryna"
                GUICtrlSetData($Combo5, $string)
            Case "naszyjnik"
                GUICtrlSetData($Combo6, $string)
            Case "pasek"
                GUICtrlSetData($Combo7, $string)
            Case "pierscien_1"
                GUICtrlSetData($Combo8, $string)
            Case "pierscien_2"
                GUICtrlSetData($Combo9, $string)
            Case "bron"
                GUICtrlSetData($Combo10, $string)
            Case "tarcza"
                GUICtrlSetData($Combo11, $string)
            Case "rekawiczki"
                GUICtrlSetData($Combo12, $string)
        EndSwitch
	        $string = ""
	    Next
	EndFunc   ;==>fill
	Func calculate()
    Local $calcHP = GUICtrlRead($hp)
    Local $calcMP = GUICtrlRead($mana)
    Local $calcKondycja = GUICtrlRead($kondycja)
    Local $calcSila = GUICtrlRead($sila)
    Local $calcZrecznosc = GUICtrlRead($zrecznosc)
    Local $calcMoc = GUICtrlRead($moc)
    Local $calcWiedza = GUICtrlRead($wiedza)
	    Local $f
    Local $arr[12] = ["helm", "zbroja", "spodnie", "buty", "peleryna", "naszyjnik", "pasek", "pierscien_1", "pierscien_2", "bron", "tarcza", "rekawiczki"]
	    For $i = 0 To UBound($arr) - 1
        $f = @ScriptDir & "\eq\" & $arr[$i] & ".ini"
	        Switch $arr[$i]
            Case "helm"
                $readcombo = GUICtrlRead($Combo1)
            Case "zbroja"
                $readcombo = GUICtrlRead($Combo2)
            Case "spodnie"
                $readcombo = GUICtrlRead($Combo3)
            Case "buty"
                $readcombo = GUICtrlRead($Combo4)
            Case "peleryna"
                $readcombo = GUICtrlRead($Combo5)
            Case "naszyjnik"
                $readcombo = GUICtrlRead($Combo6)
            Case "pasek"
                $readcombo = GUICtrlRead($Combo7)
            Case "pierscien_1"
                $readcombo = GUICtrlRead($Combo8)
            Case "pierscien_2"
                $readcombo = GUICtrlRead($Combo9)
            Case "bron"
                $readcombo = GUICtrlRead($Combo10)
            Case "tarcza"
                $readcombo = GUICtrlRead($Combo11)
            Case "rekawiczki"
                $readcombo = GUICtrlRead($Combo12)
        EndSwitch
	        $calcHP = Execute($calcHP & IniRead($f, $readcombo, "HP", "+0"))
        $calcMP = Execute($calcMP & IniRead($f, $readcombo, "MANA", "+0"))
        $calcKondycja = Execute($calcKondycja & IniRead($f, $readcombo, "KONDYCJA", "+0"))
        $calcSila = Execute($calcSila & IniRead($f, $readcombo, "SILA", "+0"))
        $calcZrecznosc = Execute($calcZrecznosc & IniRead($f, $readcombo, "ZRECZNOSC", "+0"))
        $calcMoc = Execute($calcMoc & IniRead($f, $readcombo, "MOC", "+0"))
        $calcWiedza = Execute($calcWiedza & IniRead($f, $readcombo, "WIEDZA", "+0"))
	    Next
    MsgBox(0, "Calculated", "HP: " & $calcHP & @CRLF & _
                            "MANA: " & $calcMP & @CRLF & _
                            "Kondycja: " & $calcKondycja & @CRLF & _
                            "Sila: " & $calcSila & @CRLF & _
                            "Zrecznosc: " & $calcZrecznosc & @CRLF & _
                            "Moc: " & $calcMoc & @CRLF & _
                            "Wiedza: " & $calcWiedza )
EndFunc   ;==>calculate

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano
1 godzinę temu, .Yoshiaki napisał:

@rychu321Rozumiem ze zamiast 6 combo i inputow chcesz miec jeden wczytujacy wybrana statystyke wybrana z listy combo, aktualizowana na zywo?

Nie, te combo co są chce zostawić tak jak jest i do nich dodać obok INPUT + COMBO do inputu podawało by się liczbe a w combo wybierało z listy HP/MP etc i wtedy jeśli podamy liczbe 5 i z listy wybierzemy HP to dodaje 5 punktów do HP.

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

OK, napisałem Ci prosty skrypt, który posłuży Ci za przykład, jak to można rozwiązać. Zauważ, że powtarzając operacje UPDATE wyniki nie będą się zgadzały - jest to wina $base_HP/MP, poza tym bugiem możesz kombinować dowoli - dodawać hp z kilku inputów, tak samo mane, etc etc. skrypt dzięki pętli i switchowi jest w pełni elastyczny, i możesz przy małym nakładzie pracy dodać ogromne liczby inputów i comB a i tak nie zepsuje to działania funkcji.

	#include <GUIConstantsEx.au3>
Global $cb[2]
Global $base_HP = 200
Global $base_MP = 200
	$hui = GUICreate("test", 270, 145)
$hp = GUICtrlCreateLabel("HP: " & $base_HP, 15, 15)
$mana = GUICtrlCreateLabel("Mana: " & $base_MP, 15, 30)
	$ipt1 = GUICtrlCreateInput("", 15, 60, 100)
$ipt2 = GUICtrlCreateInput("", 15, 85, 100)
	$cb[0] = GUICtrlCreateCombo("", 130, 60)
$cb[1] = GUICtrlCreateCombo("", 130, 85)
	GUICtrlSetData($cb[0], "HP|MANA")
GUICtrlSetData($cb[1], "HP|MANA")
	$UPDATE = GUICtrlCreateButton("UPDATE", 15, 115)
	GUISetState(@SW_SHOW, $hui)
	While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $UPDATE
           aaa()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
	Func aaa()
    Local $stat[2], $i
    $stat[0] = GUICtrlRead($ipt1)
    $stat[1] = GUICtrlRead($ipt2)
    For $i = 0 To UBound($stat) - 1
        Switch GUICtrlRead($cb[$i])
            Case "HP"
                MsgBox(0, "", "Nowe HP = " & $base_HP + $stat[$i])
                GUICtrlSetData($hp, "HP: "&$base_HP + $stat[$i])
                $base_HP += $stat[$i]
            Case "MANA"
                MsgBox(0, "", "Nowe MP = " & $base_MP + $stat[$i])
                GUICtrlSetData($mana, "Mana: "&$base_MP + $stat[$i])
                $base_HP += $stat[$i]
            Case Else
                Return False
        EndSwitch
    Next
EndFunc

sygna.png

Opublikowano
6 godzin temu, .Yoshiaki napisał:

OK, napisałem Ci prosty skrypt, który posłuży Ci za przykład, jak to można rozwiązać. Zauważ, że powtarzając operacje UPDATE wyniki nie będą się zgadzały - jest to wina $base_HP/MP, poza tym bugiem możesz kombinować dowoli - dodawać hp z kilku inputów, tak samo mane, etc etc. skrypt dzięki pętli i switchowi jest w pełni elastyczny, i możesz przy małym nakładzie pracy dodać ogromne liczby inputów i comB a i tak nie zepsuje to działania funkcji.


	#include <GUIConstantsEx.au3>
Global $cb[2]
Global $base_HP = 200
Global $base_MP = 200
	$hui = GUICreate("test", 270, 145)
$hp = GUICtrlCreateLabel("HP: " & $base_HP, 15, 15)
$mana = GUICtrlCreateLabel("Mana: " & $base_MP, 15, 30)
	$ipt1 = GUICtrlCreateInput("", 15, 60, 100)
$ipt2 = GUICtrlCreateInput("", 15, 85, 100)
	$cb[0] = GUICtrlCreateCombo("", 130, 60)
$cb[1] = GUICtrlCreateCombo("", 130, 85)
	GUICtrlSetData($cb[0], "HP|MANA")
GUICtrlSetData($cb[1], "HP|MANA")
	$UPDATE = GUICtrlCreateButton("UPDATE", 15, 115)
	GUISetState(@SW_SHOW, $hui)
	While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $UPDATE
           aaa()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd
	Func aaa()
    Local $stat[2], $i
    $stat[0] = GUICtrlRead($ipt1)
    $stat[1] = GUICtrlRead($ipt2)
    For $i = 0 To UBound($stat) - 1
        Switch GUICtrlRead($cb[$i])
            Case "HP"
                MsgBox(0, "", "Nowe HP = " & $base_HP + $stat[$i])
                GUICtrlSetData($hp, "HP: "&$base_HP + $stat[$i])
                $base_HP += $stat[$i]
            Case "MANA"
                MsgBox(0, "", "Nowe MP = " & $base_MP + $stat[$i])
                GUICtrlSetData($mana, "Mana: "&$base_MP + $stat[$i])
                $base_HP += $stat[$i]
            Case Else
                Return False
        EndSwitch
    Next
EndFunc

Nie bardzo rozumiem jak ten skrypt dopisać do tego aktualnego, widzę, że ty tam dodałeś swoje zmienne $base_hp etc ale ja chce dodać te punkty z tych nowych inputow/combo do aktualnego $hp i potem to liczyc w funkcji calculate.

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano
Func aaa()
	Local $stat[2], $i ;deklaracja tablicy $stat, ktora przechowa wartości inputow (potem te wartosci skonfrontujesz z combami)    
    $stat[0] = GUICtrlRead($ipt1)  ; ||    
    $stat[1] = GUICtrlRead($ipt2)  ; |L tutaj odczytujesz kolejne wartosci inputow do tablicy, jezeli bedzie ich wiecej -
      									mozesz to wstawic w petle    
    	For $i = 0 To UBound($stat) - 1 ; glowna petla opreujaca na kolejnych inputach        
        	Switch GUICtrlRead($cb[$i]) ; A teraz zaczyna się zabawa, instrukcją warunkową switch 
              							odczytujesz wybrana opcje z comba znajdującego się obok inputu            
            	Case "HP" ;jeżeli combo wskazuje na HP, wtedy...                 
                	GUICtrlSetData($hp, "HP: "&$base_HP + $stat[$i]) ; ...liczba z inputa dodawana jest do hp                
                    $base_HP += $stat[$i] ;a w tym miejscu robi się bug ale tego nie potrzebujesz, bo to tylko do prezentacji            
                Case "MANA" ;i podobnie w przypadku many                
                	GUICtrlSetData($mana, "Mana: "&$base_MP + $stat[$i]) ; liczba z inputa jest dodana do ilosci many                
                    $base_HP += $stat[$i] ;niepotrzebne            
                Case Else ;jezeli cos nie pyknie, albo z listy combo nic nie zostanie wybrane to funkcja przerwie działanie                
                	Return False        
            EndSwitch    
        Next
 EndFunc

@rychu321nie wiem czy przeczytałeś poprzednią wersję posta ale forum się zbugowało, piszę raz jeszcze, moim gui ani moimi zmiennymi się nie przejmuj chodzi o samą funkcję i jej działanie. Podpatrz jak nazwałem u siebie inputy, zrób tak samo u siebie, a do obliczeń statystyk przypisz moją funkcję.

sygna.png

Opublikowano
1 godzinę temu, .Yoshiaki napisał:

Func aaa()
	Local $stat[2], $i ;deklaracja tablicy $stat, ktora przechowa wartości inputow (potem te wartosci skonfrontujesz z combami)    
    $stat[0] = GUICtrlRead($ipt1)  ; ||    
    $stat[1] = GUICtrlRead($ipt2)  ; |L tutaj odczytujesz kolejne wartosci inputow do tablicy, jezeli bedzie ich wiecej -
      									mozesz to wstawic w petle    
    	For $i = 0 To UBound($stat) - 1 ; glowna petla opreujaca na kolejnych inputach        
        	Switch GUICtrlRead($cb[$i]) ; A teraz zaczyna się zabawa, instrukcją warunkową switch 
              							odczytujesz wybrana opcje z comba znajdującego się obok inputu            
            	Case "HP" ;jeżeli combo wskazuje na HP, wtedy...                 
                	GUICtrlSetData($hp, "HP: "&$base_HP + $stat[$i]) ; ...liczba z inputa dodawana jest do hp                
                    $base_HP += $stat[$i] ;a w tym miejscu robi się bug ale tego nie potrzebujesz, bo to tylko do prezentacji            
                Case "MANA" ;i podobnie w przypadku many                
                	GUICtrlSetData($mana, "Mana: "&$base_MP + $stat[$i]) ; liczba z inputa jest dodana do ilosci many                
                    $base_HP += $stat[$i] ;niepotrzebne            
                Case Else ;jezeli cos nie pyknie, albo z listy combo nic nie zostanie wybrane to funkcja przerwie działanie                
                	Return False        
            EndSwitch    
        Next
 EndFunc

@rychu321nie wiem czy przeczytałeś poprzednią wersję posta ale forum się zbugowało, piszę raz jeszcze, moim gui ani moimi zmiennymi się nie przejmuj chodzi o samą funkcję i jej działanie. Podpatrz jak nazwałem u siebie inputy, zrób tak samo u siebie, a do obliczeń statystyk przypisz moją funkcję.

Tylko jak użyje twojej funkcji do obliczeń co z tamtymi co mam? Bo mam wszystko przypisane do tamtego i nie chciał bym tego teraz przerzucać, kopać w tym. Nie dał byś rady dodać tego do tamtej funkcji calculate?

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

Na razie nie widze tam ani inputow ani comb ktore mialyby ku temu posluzyc wiec masz wolne pole do popisu.

 

albo zrób mi gotowe GUI i napisz wszystko od a-z co program ma robić to za 20 plusów Ci to napiszę, myślę, że to uczciwa oferta :) bo w Twoim kodzie jest duży motłoch i dało by się go skrócić min. dwukrotnie a i przy okazji zmiejszyc obiążenie procka i pamięci.

Po prostu nie lubię grzebać w czyjejś pracy bo czas zmarnowany na ogarnianie pt. "co jest co i dlaczego tak a nie inaczej" można spożytkować lepiej.

sygna.png

Opublikowano

Wiesz co nie chce odwalać wszystkiego na nowo. Może napisz mi tylko jak przypisać do HP i MP które będą wyświetlane w combo zmienne $hp i $mp (te zmienne mam już użyte do obliczania tego) oraz jak pod to podpiąć input, bez gotowego skryptu tylko tak najprościej jakiej funkcji użyć etc :)

 

//edit

Kombinowałem dzisiaj z tym ale nie potrafię rozkminić zasady działania tej twojej funkcji. Dodałem do swojego kodu to i spoko odczytywało liste combo ale nie potrafiłem przerobić tego pod swojej staty. Bo nie ogarniam o co chodzi z tym $stat[$i]

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

  • PGS zmienił(a) tytuł na Dopasowanie wartosci combo do input
Opublikowano

$stat[$i] To tablica do której zapisujesz wartości inputów, załóżmy, że masz 3 inputy, w które wpisujesz wartości. Mógłbyś to zrobić tak:

$statystyka1 = GUICtrlRead...

$statystyka2 = GUICtrlRead...

$statystyka3 = GUICtrlRead...

ale po co, musisz stworzyć 3 zmienne i pisać do każdej z nich polecenia. Lepszym rozwiązaniem jest tablica:

$stat[0] = GUICtrlRead...

$stat[1] = GUICtrlRead...

$stat[2] = GUICtrlRead...

Ale gdybys miał 10 takich inputów to zamiast pisania 10 linijek kodu i tworzenia 10 różnych zmiennych możesz zapetlic odczytywanie danych do tablicy:

For $i = 0 To UBound($input) - 1

   $stat[$i] = GUICtrlRead($Input[$i])

Next

Z tym, że handle Inputów też muszą być tablicą, żeby indeks $i ktory startujac od 0 rosnie po 1 kroku czytał kolejne inputy do kolejnych komórek tablicy

 

i teraz zamiast

$statystyka1 = 30

$statystyka2 = 174

$statystyka3 = 56

masz jedna schludna zmienna tablice:

$stat = [30, 174, 56]

a jej kolejne wartości odczytujesz indeksem liczonym od 0

I cała wątpliwa magia mojej funkcji polega na tym, że pętlą, która zwiększa indeks po kazdym przejściu, dla kazdego odczytu (0 = 30, 1 = 174, 2 = 56, ... ) sprawdzam co zawiera combo obok tego inputu i instrukcją warunkową (jesli w combo jest hp to dodaj wartość inputu do hp, jeśli siła to do siły a jeśli zajebistość to do zajebistości) dodaję do statystyk. Ba dum tsss

sygna.png

Opublikowano

Okey, kapuje tylko mam problem bo dodałem to do swojego skryptu i nie chce coś działać w ogóle nie sumuje tego.

Przy dodwaniu jest taki kod:

    MsgBox(0, "Calculated", "HP: " & $calcHP + $stat[$i] & @CRLF & _                            "MANA: " & $calcMP & @CRLF & _                            "Kondycja: " & $calcKondycja & @CRLF & _                            "Sila: " & $calcSila & @CRLF & _                            "Zrecznosc: " & $calcZrecznosc & @CRLF & _                            "Moc: " & $calcMoc & @CRLF & _                            "Wiedza: " & $calcWiedza )

Bo jak robie jak u ciebie jest czyli $calcHP += $stat[$i] to wywala błąd z tym +=

 

Ps. denerwuje mnie już to nowe forum... Piszę posta i połowa znika po dodaniu.

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

operacja += to skrócony zapis dodawania więc przyjrzyj się jakie wartości i jakie typy wartości przechowują zmienne, które dodajesz, bo nie dodasz np. liczby zapisanej jako string z libczą w ten sposób.

Najlepiej wrzuć cały kod w spoilerze. Tą wersję z moją funckją.

sygna.png

Opublikowano
2 godziny temu, .Yoshiaki napisał:

operacja += to skrócony zapis dodawania więc przyjrzyj się jakie wartości i jakie typy wartości przechowują zmienne, które dodajesz, bo nie dodasz np. liczby zapisanej jako string z libczą w ten sposób.

Najlepiej wrzuć cały kod w spoilerze. Tą wersję z moją funckją.

Wrzucam tą funkcje do której dodałem ten twój kod: (do tego mi nie czyta nazwy HP i mana w combo)

	Func calculate()
    Local $calcHP = GUICtrlRead($hp)
    Local $calcMP = GUICtrlRead($mana)
	        $calcHP = Execute($calcHP & IniRead($f, $readcombo, "HP", "+0"))
        $calcMP = Execute($calcMP & IniRead($f, $readcombo, "MANA", "+0"))
        Next
        Local $stat[1], $i
        $stat[0] = GUICtrlRead($ipt1)
        For $i = 0 To UBound($stat) - 1 ; glowna petla opreujaca na kolejnych inputach
            Switch GUICtrlRead($cb[$i]) ; A teraz zaczyna się zabawa, instrukcją warunkową switch
                Case "HP" ;jeżeli combo wskazuje na HP, wtedy...
                    GUICtrlSetData($hp, "HP: "&$hp + $stat[$i]) ; ...liczba z inputa dodawana jest do hp
                Case "MANA" ;i podobnie w przypadku many
                    GUICtrlSetData($mana, "Mana: "&$mana + $stat[$i]) ; liczba z inputa jest dodana do ilosci many
            EndSwitch
    Next
	    MsgBox(0, "STATY", "> Statystyki" & @CRLF & _
                            "HP: " & $calcHP + $stat[$i] & @CRLF & _
                            "MANA: " & $calcMP + $stat[$i])
EndFunc   ;==>calculate

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano
Cytat

Najlepiej wrzuć cały kod w spoilerze.

Cytat

Wrzucam tą funkcje

Czy widzisz o co poprosiłem? Wrzuciłeś to, co napisałem ja sam z 2 linijkami kodu, w których występują zmienne o jakich w życiu nie słyszałem. I skąd mam się domyślić do czego służą? Z położenia Saturna na nocnym niebie?

 

A z tego co widzę to funkcja się w ogóle nie wykona bo jeżeli zadeklarowałeś tylko jedną wartość tablicy to ma ona długość 1, a wynik Ubound($stat) - 1 to w takim wypadku 1 - 1 = 0, stąd

pętla For $i = 0 To 0 .

sygna.png

Opublikowano
1 godzinę temu, .Yoshiaki napisał:

Czy widzisz o co poprosiłem? Wrzuciłeś to, co napisałem ja sam z 2 linijkami kodu, w których występują zmienne o jakich w życiu nie słyszałem. I skąd mam się domyślić do czego służą? Z położenia Saturna na nocnym niebie?

 

A z tego co widzę to funkcja się w ogóle nie wykona bo jeżeli zadeklarowałeś tylko jedną wartość tablicy to ma ona długość 1, a wynik Ubound($stat) - 1 to w takim wypadku 1 - 1 = 0, stąd

pętla For $i = 0 To 0 .

Proszę:

	#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <WinAPIFiles.au3>
#include <SkinCrafter.au3>
_LoadSkinCrafter("SkinCrafterDll.dll");Load SkinCrafter DLL
;Opt("GUIOnEventMode", 1)
	Global $g_hGUI2, $Button1, $Group1, $Combo1, $f, $readcombo, $cb[12], $ipt1, $ipt2, $Combo2, $Combo3, $Combo4, $Combo5, $Combo6, $Combo7, $Combo8, $Combo9, $Combo10, $Combo11, $Combo12, $hp, $mana, $kondycja, $sila, $zrecznosc, $moc, $wiedza, $sieczne, $obuchowe, $klute, $energia, $zimno, $ogien, $uroki, $helmhp, $helmmp, $helmkonda, $helmsila, $helmzreka, $helmmoc, $helmwiedza, $helmogien, $helmenergia, $helmzimno, $helmuroki, $zbrojahp, $zbrojamp, $zbrojakonda, $zbrojasila, $zbrojazreka, $zbrojamoc, $zbrojawiedza, $zbrojaogien, $zbrojaenergia, $zbrojauroki, $zbrojazimno, $legshp, $legsmp, $legskonda, $legssila, $legszreka, $legsmoc, $legswiedza, $legsogien, $legsenergia, $legsuroki, $legszimno, $butyhp, $butymp, $butykonda, $butysila, $butyzreka, $butymoc, $butywiedza, $butyogien, $butyenergia, $butyuroki, $butyzimno, $pelkahp, $pelkamp, $pelkakonda, $pelkasila, $pelkazreka, $pelkamoc, $pelkawiedza, $pelkaogien, $pelkaenergia, $pelkauroki, $pelkazimno, $amulethp, $amuletmp, $amuletkonda, $amuletsila, $amuletzreka, $amuletmoc, $amuletwiedza, $amuletogien, $amuletenergia, $amuleturoki, $amuletzimno, $pasekhp, $pasekmp, $pasekkonda, $paseksila, $pasekzreka, $pasekmoc, $pasekwiedza, $pasekogien, $pasekenergia, $pasekuroki, $pasekzimno, $pierek1hp, $pierek1mp, $pierek1konda, $pierek1sila, $pierek1zreka, $pierek1moc, $pierek1wiedza, $pierek1ogien, $pierek1energia, $pierek1uroki, $pierek1zimno, $pierek2hp, $pierek2mp, $pierek2konda, $pierek2sila, $pierek2zreka, $pierek2moc, $pierek2wiedza, $pierek2ogien, $pierek2energia, $pierek2uroki, $pierek2zimno, $bronhp, $bronmp, $bronkonda, $bronsila, $bronzreka, $bronmoc, $bronwiedza, $bronogien, $bronenergia, $bronuroki, $bronzimno, $tarczahp, $tarczamp, $tarczakonda, $tarczasila, $tarczazreka, $tarczamoc, $tarczawiedza, $tarczaogien, $tarczaenergia, $tarczauroki, $tarczazimno, $rekawicehp, $rekawicemp, $rekawicekonda, $rekawicesila, $rekawicezreka, $rekawicemoc, $rekawicewiedza, $rekawiceogien, $rekawiceenergia, $rekawiceuroki, $rekawicezimno, $plus1, $minus1, $plus2, $minus2, $plus3, $minus3, $plus4, $minus4, $plus5, $minus5, $plus6, $minus6, $plus7, $minus7, $input4, $Label144, $prof ; Predeclare these variables
Global $idCheckBox1
	gui1()
fill()
	While 1
	    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Button1
            calculate()
        Case $idCheckBox1
            On_Checkbox1()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
	WEnd
	;------------------------------------------------------------------------------------------
Func gui1()
    $hGUI1 = GUICreate("SYMSTAT", 300, 680, 100, 20)
    _InitializeSkinCrafter($hGUI1, "Despair.skf");Set skin
;    GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close_Main") ; Run this function when the main GUI [X] is clicked
    $Group1 = GUICtrlCreateGroup("Statystyki", 8, 8, 250, 290)
$Label145 = GUICtrlCreateLabel("Level:", 12, 266, 28, 17)
$prof = GUICtrlCreateCombo("Wybierz Profesje", 140, 265, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$hp = GUICtrlCreateInput("200", 90, 40, 105, 21, $ES_READONLY)
$mana = GUICtrlCreateInput("200", 90, 72, 105, 21, $ES_READONLY)
$Label1 = GUICtrlCreateLabel("HP", 16, 48, 70, 17)
$Label2 = GUICtrlCreateLabel("MANA", 16, 80, 70, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Ekwipunek", 8, 310, 290, 313)
$Combo1 = GUICtrlCreateCombo("Wybierz Item", 88, 337, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt1 = GUICtrlCreateInput("", 200, 337, 30, 21)
$cb[0] = GUICtrlCreateCombo("", 235, 337, 60, 60)
$Combo2 = GUICtrlCreateCombo("Wybierz Item", 88, 361, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt2 = GUICtrlCreateInput("", 200, 361, 30, 21)
$cb[1] = GUICtrlCreateCombo("", 235, 361, 60, 60)
$Label8 = GUICtrlCreateLabel("HELM", 16, 334, 70, 17)
$Combo3 = GUICtrlCreateCombo("Wybierz Item", 88, 385, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt3 = GUICtrlCreateInput("", 200, 385, 30, 21)
$cb[2] = GUICtrlCreateCombo("", 235, 385, 60, 60)
$Combo4 = GUICtrlCreateCombo("Wybierz Item", 88, 409, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt4 = GUICtrlCreateInput("", 200, 409, 30, 21)
$cb[3] = GUICtrlCreateCombo("", 235, 409, 60, 60)
$Combo5 = GUICtrlCreateCombo("Wybierz Item", 88, 432, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt5 = GUICtrlCreateInput("", 200, 432, 30, 21)
$cb[4] = GUICtrlCreateCombo("", 235, 432, 60, 60)
$Combo6 = GUICtrlCreateCombo("Wybierz Item", 88, 456, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt6 = GUICtrlCreateInput("", 200, 456, 30, 21)
$cb[5] = GUICtrlCreateCombo("", 235, 456, 60, 60)
$Combo7 = GUICtrlCreateCombo("Wybierz Item", 88, 479, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt7 = GUICtrlCreateInput("", 200, 479, 30, 21)
$cb[6] = GUICtrlCreateCombo("", 235, 479, 60, 60)
$Combo8 = GUICtrlCreateCombo("Wybierz Item", 88, 502, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt8 = GUICtrlCreateInput("", 200, 502, 30, 21)
$cb[7] = GUICtrlCreateCombo("", 235, 502, 60, 60)
$Combo9 = GUICtrlCreateCombo("Wybierz Item", 88, 525, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt9 = GUICtrlCreateInput("", 200, 525, 30, 21)
$cb[8] = GUICtrlCreateCombo("", 235, 525, 60, 60)
$Combo10 = GUICtrlCreateCombo("Wybierz Item", 88, 548, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt10 = GUICtrlCreateInput("", 200, 548, 30, 21)
$cb[9] = GUICtrlCreateCombo("", 235, 548, 60, 60)
$Combo11 = GUICtrlCreateCombo("Wybierz Item", 88, 572, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt11 = GUICtrlCreateInput("", 200, 572, 30, 21)
$cb[10] = GUICtrlCreateCombo("", 235, 572, 60, 60)
$Combo12 = GUICtrlCreateCombo("Wybierz Item", 88, 595, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt12 = GUICtrlCreateInput("", 200, 595, 30, 21)
$cb[11] = GUICtrlCreateCombo("", 235, 595, 60, 60)
$Label9 = GUICtrlCreateLabel("ZBROJA", 16, 358, 70, 17)
$Label10 = GUICtrlCreateLabel("SPODNIE", 16, 382, 70, 17)
$Label11 = GUICtrlCreateLabel("BUTY", 16, 406, 70, 17)
$Label12 = GUICtrlCreateLabel("PELERYNA", 16, 430, 70, 17)
$Label13 = GUICtrlCreateLabel("NASZYJNIK", 16, 454, 70, 17)
$Label14 = GUICtrlCreateLabel("PASEK", 16, 478, 70, 17)
$Label15 = GUICtrlCreateLabel("PIERSCIEN", 16, 502, 70, 17)
$Label16 = GUICtrlCreateLabel("SZALIK", 16, 526, 70, 17)
$Label17 = GUICtrlCreateLabel("BRON", 16, 550, 70, 17)
$Label18 = GUICtrlCreateLabel("NOGA", 16, 574, 70, 17)
$Label19 = GUICtrlCreateLabel("REKA", 16, 598, 70, 17)
$Button1 = GUICtrlCreateButton("KALKULUJ", 16, 630, 75, 41, $WS_GROUP)
$idCheckBox1 = GUICtrlCreateCheckbox("Sklepowki", 120, 630, 75, 41)
 ;   GUICtrlSetOnEvent(-1, "On_Checkbox1")
    GUISetState()
EndFunc   ;==>gui1
	
Func gui2()
    $g_hGUI2 = GUICreate("Sklepowe Przedmioty", 624, 629, 414, 52)
    GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close_Secondary") ; Run this function when the secondary GUI [X] is clicked
    $Helmet = GUICtrlCreateLabel(">> Helm <<", 8, 32, 100, 17)
$helmhp = GUICtrlCreateInput("0", 8, 56, 49, 21)
    GUISetState()
EndFunc   ;==>gui2
	
Func On_Close_Main()
    Exit
EndFunc   ;==>On_Close_Main
	
Func On_Close_Secondary()
    GUIDelete($g_hGUI2)
EndFunc   ;==>On_Close_Secondary
	
Func On_Checkbox1()
    If _IsChecked($idCheckBox1) Then
        gui2()
    Else
        On_Close_Secondary()
    EndIf
EndFunc   ;==>On_Button2
	
Func _IsChecked($idControlID)
    Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked
	Func fill()
    Local $f, $readsec, $string
	    Local $arr[13] = ["helm", "zbroja", "spodnie", "buty", "peleryna", "naszyjnik", "pasek", "pierscien_1", "pierscien_2", "bron", "tarcza", "rekawiczki", "profesja"]
	    For $i = 0 To UBound($arr) - 1
        $f = @ScriptDir & "\eq\" & $arr[$i] & ".ini"
        $readsec = IniReadSectionNames($f)
	        For $j = 1 To $readsec[0]
            $string &= $readsec[$j] & "|"
        Next
	        Switch $arr[$i]
            Case "helm"
                GUICtrlSetData($Combo1, $string)
            Case "zbroja"
                GUICtrlSetData($Combo2, $string)
            Case "spodnie"
                GUICtrlSetData($Combo3, $string)
            Case "buty"
                GUICtrlSetData($Combo4, $string)
            Case "peleryna"
                GUICtrlSetData($Combo5, $string)
            Case "naszyjnik"
                GUICtrlSetData($Combo6, $string)
            Case "pasek"
                GUICtrlSetData($Combo7, $string)
            Case "pierscien_1"
                GUICtrlSetData($Combo8, $string)
            Case "pierscien_2"
                GUICtrlSetData($Combo9, $string)
            Case "bron"
                GUICtrlSetData($Combo10, $string)
            Case "tarcza"
                GUICtrlSetData($Combo11, $string)
            Case "rekawiczki"
                GUICtrlSetData($Combo12, $string)
            Case "profesja"
                GUICtrlSetData($prof, $string)
        EndSwitch
	        $string = ""
	    Next
	EndFunc   ;==>fill
	Func calculate()
    Local $calcHP = GUICtrlRead($hp)
    Local $calcMP = GUICtrlRead($mana)
    $calcHP = Execute($calcHP & IniRead($f, $readcombo, "HP", "+0"))
    $calcMP = Execute($calcMP & IniRead($f, $readcombo, "MANA", "+0"))
        Local $stat[1], $i
        $stat[0] = GUICtrlRead($ipt1)
        For $i = 0 To UBound($stat) - 1 ; glowna petla opreujaca na kolejnych inputach
            Switch GUICtrlRead($cb[$i]) ; A teraz zaczyna sie zabawa, instrukcja warunkowa switch
                Case "HP" ;jezeli combo wskazuje na HP, wtedy...
                    GUICtrlSetData($hp, "HP: "&$hp + $stat[$i]) ; ...liczba z inputa dodawana jest do hp
                Case "MANA" ;i podobnie w przypadku many
                    GUICtrlSetData($mana, "Mana: "&$mana + $stat[$i]) ; liczba z inputa jest dodana do ilosci many
            EndSwitch
    Next
        MsgBox(0, "STATY", "> Statystyki" & @CRLF & _
                            "HP: " & $calcHP + $stat[$i] & @CRLF & _
                            "MANA: " & $calcMP + $stat[$i])
EndFunc   ;==>calculate
	

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

ref

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

@rychu321sorry, złapałem lenia. Proszę, teraz działa.

	#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <WinAPIFiles.au3>
;#include <SkinCrafter.au3>
;_LoadSkinCrafter("SkinCrafterDll.dll");Load SkinCrafter DLL
;Opt("GUIOnEventMode", 1)
    Global $g_hGUI2, $Button1, $Group1, $Combo1, $f, $readcombo, $cb[12], $ipt[12], $Combo2, $Combo3, $Combo4, $Combo5, $Combo6, $Combo7, $Combo8, $Combo9, $Combo10, $Combo11, $Combo12, $hp, $mana, $kondycja, $sila, $zrecznosc, $moc, $wiedza, $sieczne, $obuchowe, $klute, $energia, $zimno, $ogien, $uroki, $helmhp, $helmmp, $helmkonda, $helmsila, $helmzreka, $helmmoc, $helmwiedza, $helmogien, $helmenergia, $helmzimno, $helmuroki, $zbrojahp, $zbrojamp, $zbrojakonda, $zbrojasila, $zbrojazreka, $zbrojamoc, $zbrojawiedza, $zbrojaogien, $zbrojaenergia, $zbrojauroki, $zbrojazimno, $legshp, $legsmp, $legskonda, $legssila, $legszreka, $legsmoc, $legswiedza, $legsogien, $legsenergia, $legsuroki, $legszimno, $butyhp, $butymp, $butykonda, $butysila, $butyzreka, $butymoc, $butywiedza, $butyogien, $butyenergia, $butyuroki, $butyzimno, $pelkahp, $pelkamp, $pelkakonda, $pelkasila, $pelkazreka, $pelkamoc, $pelkawiedza, $pelkaogien, $pelkaenergia, $pelkauroki, $pelkazimno, $amulethp, $amuletmp, $amuletkonda, $amuletsila, $amuletzreka, $amuletmoc, $amuletwiedza, $amuletogien, $amuletenergia, $amuleturoki, $amuletzimno, $pasekhp, $pasekmp, $pasekkonda, $paseksila, $pasekzreka, $pasekmoc, $pasekwiedza, $pasekogien, $pasekenergia, $pasekuroki, $pasekzimno, $pierek1hp, $pierek1mp, $pierek1konda, $pierek1sila, $pierek1zreka, $pierek1moc, $pierek1wiedza, $pierek1ogien, $pierek1energia, $pierek1uroki, $pierek1zimno, $pierek2hp, $pierek2mp, $pierek2konda, $pierek2sila, $pierek2zreka, $pierek2moc, $pierek2wiedza, $pierek2ogien, $pierek2energia, $pierek2uroki, $pierek2zimno, $bronhp, $bronmp, $bronkonda, $bronsila, $bronzreka, $bronmoc, $bronwiedza, $bronogien, $bronenergia, $bronuroki, $bronzimno, $tarczahp, $tarczamp, $tarczakonda, $tarczasila, $tarczazreka, $tarczamoc, $tarczawiedza, $tarczaogien, $tarczaenergia, $tarczauroki, $tarczazimno, $rekawicehp, $rekawicemp, $rekawicekonda, $rekawicesila, $rekawicezreka, $rekawicemoc, $rekawicewiedza, $rekawiceogien, $rekawiceenergia, $rekawiceuroki, $rekawicezimno, $plus1, $minus1, $plus2, $minus2, $plus3, $minus3, $plus4, $minus4, $plus5, $minus5, $plus6, $minus6, $plus7, $minus7, $input4, $Label144, $prof ; Predeclare these variables
Global $idCheckBox1
    gui1()
fill()
    While 1
        $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Button1
            calculate()
        Case $idCheckBox1
            On_Checkbox1()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
    WEnd
    ;------------------------------------------------------------------------------------------
Func gui1()
    $hGUI1 = GUICreate("SYMSTAT", 300, 680, 100, 20)
    ;_InitializeSkinCrafter($hGUI1, "Despair.skf");Set skin
;    GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close_Main") ; Run this function when the main GUI [X] is clicked
    $Group1 = GUICtrlCreateGroup("Statystyki", 8, 8, 250, 290)
$Label145 = GUICtrlCreateLabel("Level:", 12, 266, 28, 17)
$prof = GUICtrlCreateCombo("Wybierz Profesje", 140, 265, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$hp = GUICtrlCreateInput("200", 90, 40, 105, 21, $ES_READONLY)
$mana = GUICtrlCreateInput("200", 90, 72, 105, 21, $ES_READONLY)
$Label1 = GUICtrlCreateLabel("HP", 16, 48, 70, 17)
$Label2 = GUICtrlCreateLabel("MANA", 16, 80, 70, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Ekwipunek", 8, 310, 290, 313)
$Combo1 = GUICtrlCreateCombo("Wybierz Item", 88, 337, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[0] = GUICtrlCreateInput("", 200, 337, 30, 21)
$cb[0] = GUICtrlCreateCombo("", 235, 337, 60, 60)
$Combo2 = GUICtrlCreateCombo("Wybierz Item", 88, 361, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[1] = GUICtrlCreateInput("", 200, 361, 30, 21)
$cb[1] = GUICtrlCreateCombo("", 235, 361, 60, 60)
$Label8 = GUICtrlCreateLabel("HELM", 16, 334, 70, 17)
$Combo3 = GUICtrlCreateCombo("Wybierz Item", 88, 385, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[2] = GUICtrlCreateInput("", 200, 385, 30, 21)
$cb[2] = GUICtrlCreateCombo("", 235, 385, 60, 60)
$Combo4 = GUICtrlCreateCombo("Wybierz Item", 88, 409, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[3] = GUICtrlCreateInput("", 200, 409, 30, 21)
$cb[3] = GUICtrlCreateCombo("", 235, 409, 60, 60)
$Combo5 = GUICtrlCreateCombo("Wybierz Item", 88, 432, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[4] = GUICtrlCreateInput("", 200, 432, 30, 21)
$cb[4] = GUICtrlCreateCombo("", 235, 432, 60, 60)
$Combo6 = GUICtrlCreateCombo("Wybierz Item", 88, 456, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[5] = GUICtrlCreateInput("", 200, 456, 30, 21)
$cb[5] = GUICtrlCreateCombo("", 235, 456, 60, 60)
$Combo7 = GUICtrlCreateCombo("Wybierz Item", 88, 479, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[6] = GUICtrlCreateInput("", 200, 479, 30, 21)
$cb[6] = GUICtrlCreateCombo("", 235, 479, 60, 60)
$Combo8 = GUICtrlCreateCombo("Wybierz Item", 88, 502, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[7] = GUICtrlCreateInput("", 200, 502, 30, 21)
$cb[7] = GUICtrlCreateCombo("", 235, 502, 60, 60)
$Combo9 = GUICtrlCreateCombo("Wybierz Item", 88, 525, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[8] = GUICtrlCreateInput("", 200, 525, 30, 21)
$cb[8] = GUICtrlCreateCombo("", 235, 525, 60, 60)
$Combo10 = GUICtrlCreateCombo("Wybierz Item", 88, 548, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[9] = GUICtrlCreateInput("", 200, 548, 30, 21)
$cb[9] = GUICtrlCreateCombo("", 235, 548, 60, 60)
$Combo11 = GUICtrlCreateCombo("Wybierz Item", 88, 572, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[10] = GUICtrlCreateInput("", 200, 572, 30, 21)
$cb[10] = GUICtrlCreateCombo("", 235, 572, 60, 60)
$Combo12 = GUICtrlCreateCombo("Wybierz Item", 88, 595, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[11] = GUICtrlCreateInput("", 200, 595, 30, 21)
$cb[11] = GUICtrlCreateCombo("", 235, 595, 60, 60)
$Label9 = GUICtrlCreateLabel("ZBROJA", 16, 358, 70, 17)
$Label10 = GUICtrlCreateLabel("SPODNIE", 16, 382, 70, 17)
$Label11 = GUICtrlCreateLabel("BUTY", 16, 406, 70, 17)
$Label12 = GUICtrlCreateLabel("PELERYNA", 16, 430, 70, 17)
$Label13 = GUICtrlCreateLabel("NASZYJNIK", 16, 454, 70, 17)
$Label14 = GUICtrlCreateLabel("PASEK", 16, 478, 70, 17)
$Label15 = GUICtrlCreateLabel("PIERSCIEN", 16, 502, 70, 17)
$Label16 = GUICtrlCreateLabel("SZALIK", 16, 526, 70, 17)
$Label17 = GUICtrlCreateLabel("BRON", 16, 550, 70, 17)
$Label18 = GUICtrlCreateLabel("NOGA", 16, 574, 70, 17)
$Label19 = GUICtrlCreateLabel("REKA", 16, 598, 70, 17)
$Button1 = GUICtrlCreateButton("KALKULUJ", 16, 630, 75, 41, $WS_GROUP)
$idCheckBox1 = GUICtrlCreateCheckbox("Sklepowki", 120, 630, 75, 41)
 ;   GUICtrlSetOnEvent(-1, "On_Checkbox1")
    GUISetState()
EndFunc   ;==>gui1
	Func gui2()
    $g_hGUI2 = GUICreate("Sklepowe Przedmioty", 624, 629, 414, 52)
    GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close_Secondary") ; Run this function when the secondary GUI [X] is clicked
    $Helmet = GUICtrlCreateLabel(">> Helm <<", 8, 32, 100, 17)
$helmhp = GUICtrlCreateInput("0", 8, 56, 49, 21)
    GUISetState()
EndFunc   ;==>gui2
	Func On_Close_Main()
    Exit
EndFunc   ;==>On_Close_Main
	Func On_Close_Secondary()
    GUIDelete($g_hGUI2)
EndFunc   ;==>On_Close_Secondary
	Func On_Checkbox1()
    If _IsChecked($idCheckBox1) Then
        gui2()
    Else
        On_Close_Secondary()
    EndIf
EndFunc   ;==>On_Button2
Func _IsChecked($idControlID)
    Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked
    Func fill()
    Local $f, $readsec, $string
        Local $arr[13] = ["helm", "zbroja", "spodnie", "buty", "peleryna", "naszyjnik", "pasek", "pierscien_1", "pierscien_2", "bron", "tarcza", "rekawiczki", "profesja"]
        For $i = 0 To UBound($arr) - 1
        $f = @ScriptDir & "\eq\" & $arr[$i] & ".ini"
        $readsec = IniReadSectionNames($f)
            For $j = 1 To $readsec[0]
            $string &= $readsec[$j] & "|"
        Next
            Switch $arr[$i]
            Case "helm"
                GUICtrlSetData($Combo1, $string)
            Case "zbroja"
                GUICtrlSetData($Combo2, $string)
            Case "spodnie"
                GUICtrlSetData($Combo3, $string)
            Case "buty"
                GUICtrlSetData($Combo4, $string)
            Case "peleryna"
                GUICtrlSetData($Combo5, $string)
            Case "naszyjnik"
                GUICtrlSetData($Combo6, $string)
            Case "pasek"
                GUICtrlSetData($Combo7, $string)
            Case "pierscien_1"
                GUICtrlSetData($Combo8, $string)
            Case "pierscien_2"
                GUICtrlSetData($Combo9, $string)
            Case "bron"
                GUICtrlSetData($Combo10, $string)
            Case "tarcza"
                GUICtrlSetData($Combo11, $string)
            Case "rekawiczki"
                GUICtrlSetData($Combo12, $string)
            Case "profesja"
                GUICtrlSetData($prof, $string)
        EndSwitch
            $string = ""
        Next
    EndFunc   ;==>fill
    Func calculate()
    Local $calcHP = GUICtrlRead($hp)
    Local $calcMP = GUICtrlRead($mana)
    ;$calcHP = Execute($calcHP & IniRead($f, $readcombo, "HP", "+0"))
    ;$calcMP = Execute($calcMP & IniRead($f, $readcombo, "MANA", "+0"))
        For $i = 0 To UBound($ipt) - 1
            Switch GUICtrlRead($cb[$i])
                Case "HP"
                    $calcHP += GUICtrlRead($ipt[$i])
                    ;GUICtrlSetData($hp, "HP: "&$hp + $stat[$i])
                Case "MANA"
                    $calcMP += GUICtrlRead($ipt[$i])
                    ;GUICtrlSetData($mana, "Mana: "&$mana + $stat[$i])
            EndSwitch
        Next
        GUICtrlSetData($hp, $calcHP)
        GUICtrlSetData($mana, $calcMP)
        MsgBox(0, "STATY", "> Statystyki" & @CRLF & _
                            "HP: " & $calcHP  & @CRLF & _
                            "MANA: " & $calcMP)
EndFunc   ;==>calculate

sygna.png

Opublikowano
4 godziny temu, .Yoshiaki napisał:

@rychu321sorry, złapałem lenia. Proszę, teraz działa.

 

  Ukryj treść

 

 



	#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <WinAPIFiles.au3>
;#include <SkinCrafter.au3>
;_LoadSkinCrafter("SkinCrafterDll.dll");Load SkinCrafter DLL
;Opt("GUIOnEventMode", 1)
    Global $g_hGUI2, $Button1, $Group1, $Combo1, $f, $readcombo, $cb[12], $ipt[12], $Combo2, $Combo3, $Combo4, $Combo5, $Combo6, $Combo7, $Combo8, $Combo9, $Combo10, $Combo11, $Combo12, $hp, $mana, $kondycja, $sila, $zrecznosc, $moc, $wiedza, $sieczne, $obuchowe, $klute, $energia, $zimno, $ogien, $uroki, $helmhp, $helmmp, $helmkonda, $helmsila, $helmzreka, $helmmoc, $helmwiedza, $helmogien, $helmenergia, $helmzimno, $helmuroki, $zbrojahp, $zbrojamp, $zbrojakonda, $zbrojasila, $zbrojazreka, $zbrojamoc, $zbrojawiedza, $zbrojaogien, $zbrojaenergia, $zbrojauroki, $zbrojazimno, $legshp, $legsmp, $legskonda, $legssila, $legszreka, $legsmoc, $legswiedza, $legsogien, $legsenergia, $legsuroki, $legszimno, $butyhp, $butymp, $butykonda, $butysila, $butyzreka, $butymoc, $butywiedza, $butyogien, $butyenergia, $butyuroki, $butyzimno, $pelkahp, $pelkamp, $pelkakonda, $pelkasila, $pelkazreka, $pelkamoc, $pelkawiedza, $pelkaogien, $pelkaenergia, $pelkauroki, $pelkazimno, $amulethp, $amuletmp, $amuletkonda, $amuletsila, $amuletzreka, $amuletmoc, $amuletwiedza, $amuletogien, $amuletenergia, $amuleturoki, $amuletzimno, $pasekhp, $pasekmp, $pasekkonda, $paseksila, $pasekzreka, $pasekmoc, $pasekwiedza, $pasekogien, $pasekenergia, $pasekuroki, $pasekzimno, $pierek1hp, $pierek1mp, $pierek1konda, $pierek1sila, $pierek1zreka, $pierek1moc, $pierek1wiedza, $pierek1ogien, $pierek1energia, $pierek1uroki, $pierek1zimno, $pierek2hp, $pierek2mp, $pierek2konda, $pierek2sila, $pierek2zreka, $pierek2moc, $pierek2wiedza, $pierek2ogien, $pierek2energia, $pierek2uroki, $pierek2zimno, $bronhp, $bronmp, $bronkonda, $bronsila, $bronzreka, $bronmoc, $bronwiedza, $bronogien, $bronenergia, $bronuroki, $bronzimno, $tarczahp, $tarczamp, $tarczakonda, $tarczasila, $tarczazreka, $tarczamoc, $tarczawiedza, $tarczaogien, $tarczaenergia, $tarczauroki, $tarczazimno, $rekawicehp, $rekawicemp, $rekawicekonda, $rekawicesila, $rekawicezreka, $rekawicemoc, $rekawicewiedza, $rekawiceogien, $rekawiceenergia, $rekawiceuroki, $rekawicezimno, $plus1, $minus1, $plus2, $minus2, $plus3, $minus3, $plus4, $minus4, $plus5, $minus5, $plus6, $minus6, $plus7, $minus7, $input4, $Label144, $prof ; Predeclare these variables
Global $idCheckBox1
    gui1()
fill()
    While 1
        $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $Button1
            calculate()
        Case $idCheckBox1
            On_Checkbox1()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
    WEnd
    ;------------------------------------------------------------------------------------------
Func gui1()
    $hGUI1 = GUICreate("SYMSTAT", 300, 680, 100, 20)
    ;_InitializeSkinCrafter($hGUI1, "Despair.skf");Set skin
;    GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close_Main") ; Run this function when the main GUI [X] is clicked
    $Group1 = GUICtrlCreateGroup("Statystyki", 8, 8, 250, 290)
$Label145 = GUICtrlCreateLabel("Level:", 12, 266, 28, 17)
$prof = GUICtrlCreateCombo("Wybierz Profesje", 140, 265, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$hp = GUICtrlCreateInput("200", 90, 40, 105, 21, $ES_READONLY)
$mana = GUICtrlCreateInput("200", 90, 72, 105, 21, $ES_READONLY)
$Label1 = GUICtrlCreateLabel("HP", 16, 48, 70, 17)
$Label2 = GUICtrlCreateLabel("MANA", 16, 80, 70, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Ekwipunek", 8, 310, 290, 313)
$Combo1 = GUICtrlCreateCombo("Wybierz Item", 88, 337, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[0] = GUICtrlCreateInput("", 200, 337, 30, 21)
$cb[0] = GUICtrlCreateCombo("", 235, 337, 60, 60)
$Combo2 = GUICtrlCreateCombo("Wybierz Item", 88, 361, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[1] = GUICtrlCreateInput("", 200, 361, 30, 21)
$cb[1] = GUICtrlCreateCombo("", 235, 361, 60, 60)
$Label8 = GUICtrlCreateLabel("HELM", 16, 334, 70, 17)
$Combo3 = GUICtrlCreateCombo("Wybierz Item", 88, 385, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[2] = GUICtrlCreateInput("", 200, 385, 30, 21)
$cb[2] = GUICtrlCreateCombo("", 235, 385, 60, 60)
$Combo4 = GUICtrlCreateCombo("Wybierz Item", 88, 409, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[3] = GUICtrlCreateInput("", 200, 409, 30, 21)
$cb[3] = GUICtrlCreateCombo("", 235, 409, 60, 60)
$Combo5 = GUICtrlCreateCombo("Wybierz Item", 88, 432, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[4] = GUICtrlCreateInput("", 200, 432, 30, 21)
$cb[4] = GUICtrlCreateCombo("", 235, 432, 60, 60)
$Combo6 = GUICtrlCreateCombo("Wybierz Item", 88, 456, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[5] = GUICtrlCreateInput("", 200, 456, 30, 21)
$cb[5] = GUICtrlCreateCombo("", 235, 456, 60, 60)
$Combo7 = GUICtrlCreateCombo("Wybierz Item", 88, 479, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[6] = GUICtrlCreateInput("", 200, 479, 30, 21)
$cb[6] = GUICtrlCreateCombo("", 235, 479, 60, 60)
$Combo8 = GUICtrlCreateCombo("Wybierz Item", 88, 502, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[7] = GUICtrlCreateInput("", 200, 502, 30, 21)
$cb[7] = GUICtrlCreateCombo("", 235, 502, 60, 60)
$Combo9 = GUICtrlCreateCombo("Wybierz Item", 88, 525, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[8] = GUICtrlCreateInput("", 200, 525, 30, 21)
$cb[8] = GUICtrlCreateCombo("", 235, 525, 60, 60)
$Combo10 = GUICtrlCreateCombo("Wybierz Item", 88, 548, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[9] = GUICtrlCreateInput("", 200, 548, 30, 21)
$cb[9] = GUICtrlCreateCombo("", 235, 548, 60, 60)
$Combo11 = GUICtrlCreateCombo("Wybierz Item", 88, 572, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[10] = GUICtrlCreateInput("", 200, 572, 30, 21)
$cb[10] = GUICtrlCreateCombo("", 235, 572, 60, 60)
$Combo12 = GUICtrlCreateCombo("Wybierz Item", 88, 595, 105, 25, BitOR($CBS_DROPDOWNLIST, $CBS_DROPDOWN, $CBS_AUTOHSCROLL))
$ipt[11] = GUICtrlCreateInput("", 200, 595, 30, 21)
$cb[11] = GUICtrlCreateCombo("", 235, 595, 60, 60)
$Label9 = GUICtrlCreateLabel("ZBROJA", 16, 358, 70, 17)
$Label10 = GUICtrlCreateLabel("SPODNIE", 16, 382, 70, 17)
$Label11 = GUICtrlCreateLabel("BUTY", 16, 406, 70, 17)
$Label12 = GUICtrlCreateLabel("PELERYNA", 16, 430, 70, 17)
$Label13 = GUICtrlCreateLabel("NASZYJNIK", 16, 454, 70, 17)
$Label14 = GUICtrlCreateLabel("PASEK", 16, 478, 70, 17)
$Label15 = GUICtrlCreateLabel("PIERSCIEN", 16, 502, 70, 17)
$Label16 = GUICtrlCreateLabel("SZALIK", 16, 526, 70, 17)
$Label17 = GUICtrlCreateLabel("BRON", 16, 550, 70, 17)
$Label18 = GUICtrlCreateLabel("NOGA", 16, 574, 70, 17)
$Label19 = GUICtrlCreateLabel("REKA", 16, 598, 70, 17)
$Button1 = GUICtrlCreateButton("KALKULUJ", 16, 630, 75, 41, $WS_GROUP)
$idCheckBox1 = GUICtrlCreateCheckbox("Sklepowki", 120, 630, 75, 41)
 ;   GUICtrlSetOnEvent(-1, "On_Checkbox1")
    GUISetState()
EndFunc   ;==>gui1
	Func gui2()
    $g_hGUI2 = GUICreate("Sklepowe Przedmioty", 624, 629, 414, 52)
    GUISetOnEvent($GUI_EVENT_CLOSE, "On_Close_Secondary") ; Run this function when the secondary GUI [X] is clicked
    $Helmet = GUICtrlCreateLabel(">> Helm <<", 8, 32, 100, 17)
$helmhp = GUICtrlCreateInput("0", 8, 56, 49, 21)
    GUISetState()
EndFunc   ;==>gui2
	Func On_Close_Main()
    Exit
EndFunc   ;==>On_Close_Main
	Func On_Close_Secondary()
    GUIDelete($g_hGUI2)
EndFunc   ;==>On_Close_Secondary
	Func On_Checkbox1()
    If _IsChecked($idCheckBox1) Then
        gui2()
    Else
        On_Close_Secondary()
    EndIf
EndFunc   ;==>On_Button2
Func _IsChecked($idControlID)
    Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc   ;==>_IsChecked
    Func fill()
    Local $f, $readsec, $string
        Local $arr[13] = ["helm", "zbroja", "spodnie", "buty", "peleryna", "naszyjnik", "pasek", "pierscien_1", "pierscien_2", "bron", "tarcza", "rekawiczki", "profesja"]
        For $i = 0 To UBound($arr) - 1
        $f = @ScriptDir & "\eq\" & $arr[$i] & ".ini"
        $readsec = IniReadSectionNames($f)
            For $j = 1 To $readsec[0]
            $string &= $readsec[$j] & "|"
        Next
            Switch $arr[$i]
            Case "helm"
                GUICtrlSetData($Combo1, $string)
            Case "zbroja"
                GUICtrlSetData($Combo2, $string)
            Case "spodnie"
                GUICtrlSetData($Combo3, $string)
            Case "buty"
                GUICtrlSetData($Combo4, $string)
            Case "peleryna"
                GUICtrlSetData($Combo5, $string)
            Case "naszyjnik"
                GUICtrlSetData($Combo6, $string)
            Case "pasek"
                GUICtrlSetData($Combo7, $string)
            Case "pierscien_1"
                GUICtrlSetData($Combo8, $string)
            Case "pierscien_2"
                GUICtrlSetData($Combo9, $string)
            Case "bron"
                GUICtrlSetData($Combo10, $string)
            Case "tarcza"
                GUICtrlSetData($Combo11, $string)
            Case "rekawiczki"
                GUICtrlSetData($Combo12, $string)
            Case "profesja"
                GUICtrlSetData($prof, $string)
        EndSwitch
            $string = ""
        Next
    EndFunc   ;==>fill
    Func calculate()
    Local $calcHP = GUICtrlRead($hp)
    Local $calcMP = GUICtrlRead($mana)
    ;$calcHP = Execute($calcHP & IniRead($f, $readcombo, "HP", "+0"))
    ;$calcMP = Execute($calcMP & IniRead($f, $readcombo, "MANA", "+0"))
        For $i = 0 To UBound($ipt) - 1
            Switch GUICtrlRead($cb[$i])
                Case "HP"
                    $calcHP += GUICtrlRead($ipt[$i])
                    ;GUICtrlSetData($hp, "HP: "&$hp + $stat[$i])
                Case "MANA"
                    $calcMP += GUICtrlRead($ipt[$i])
                    ;GUICtrlSetData($mana, "Mana: "&$mana + $stat[$i])
            EndSwitch
        Next
        GUICtrlSetData($hp, $calcHP)
        GUICtrlSetData($mana, $calcMP)
        MsgBox(0, "STATY", "> Statystyki" & @CRLF & _
                            "HP: " & $calcHP  & @CRLF & _
                            "MANA: " & $calcMP)
EndFunc   ;==>calculate

 

 

 

Mi wywala taki błąd jak chce uruchomić:

For $j = 1 To $readsec[0]
For $j = 1 To $readsec^ ERROR

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

@rychu321To już problem z Twojej funkcji.

IniReadSectionNames() zwraca tablicę z wartościami typu String, a dokładniej nazwami sekcji, skąd więc założenie, że pętla będzie działać? użyj funkcji Ubound(), która zwróci długość tablicy, jeśli taki miałeś zamiar.

 

Źle.

Naucz się magicznych funkcji jakimi są ConsoleWrite i If @error i sprawdź czy i co zwraca Ci $readsec[0]

Ja nie uruchamiałem tej funkcji bo nie mam pliku .ini ani nie potrzebowałem.

 

sygna.png

Opublikowano
1 godzinę temu, .Yoshiaki napisał:

@rychu321To już problem z Twojej funkcji.

IniReadSectionNames() zwraca tablicę z wartościami typu String, a dokładniej nazwami sekcji, skąd więc założenie, że pętla będzie działać? użyj funkcji Ubound(), która zwróci długość tablicy, jeśli taki miałeś zamiar.

 

Źle.

Naucz się magicznych funkcji jakimi są ConsoleWrite i If @error i sprawdź czy i co zwraca Ci $readsec[0]

Ja nie uruchamiałem tej funkcji bo nie mam pliku .ini ani nie potrzebowałem.

 

Moja wina nie przerzuciłem pliku do folderu z plikami .ini. Ale widzę, że ty to dziwnie zrobiłeś bo do swojego kodu użyłeś zmienncyh $calcHP i $calcMP przez co teraz nie działa funkcja od liczenia HP i MP z pliku .ini. A to miało być jak było tylko to twoje do tego mojego chciałem dodać. Do tego w liście combo i tak nie wyświetla mi do wyboru HP czy też MP.

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Opublikowano

W ten sposób to nie zadziała bo:

- zmienna $f jest zmienną lokalną w innej funkcji

- podałeś argumenty, które nie istnieją

 

Napraw to i usuń średniki a wszystko będzie działać poprawnie.

 

A co do drugiego, to wstaw ten kawałek kodu tuż przed końcem funkcji gui1(), przed GUISetState(); :

    For $l = 0 To UBound($cb) - 1
        GUICtrlSetData($cb[$l], "HP|MANA")
    Next

sygna.png

Opublikowano
2 godziny temu, .Yoshiaki napisał:

W ten sposób to nie zadziała bo:

- zmienna $f jest zmienną lokalną w innej funkcji

- podałeś argumenty, które nie istnieją

 

Napraw to i usuń średniki a wszystko będzie działać poprawnie.

 

A co do drugiego, to wstaw ten kawałek kodu tuż przed końcem funkcji gui1(), przed GUISetState(); :


    For $l = 0 To UBound($cb) - 1
        GUICtrlSetData($cb[$l], "HP|MANA")
    Next

Okey działa, teraz mam inny problem jak wywalić to, żeby nie zmieniało wartości w inpucie HP tym co jest w gui tylko w samym wyniku msgboxa. Do tego nie resetuje się liczba w msgboxie po jego zamknięciu. W sensie na start mamy 200 wpisuje w inputa 5 i wybieram HP po kliknięciu kalkuluj mam 205 i potem jak zamknę msgbox'a i znów klikne kalkuluj to już mam 210 a powinno być nadal 205.

Nie ważne poradziłem sobie. /cls

10 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 200 | 300 400 | 500 | 600 | 700 | 800 | 900 | 1000logoskillowcy.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...