Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 16:17

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



GUIOnEventMode - 2. GUI aufrufen

Discussion on GUIOnEventMode - 2. GUI aufrufen within the AutoIt forum part of the Coders Den category.

Reply
 
Old 10/30/2010, 23:24   #16
 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,241
Received Thanks: 848
Quote:
Originally Posted by pinguin94 View Post
Alle Modifier in ein Array laden und dann einfach immer den Index aufrufen o.O
Würde trotzdem in nem Gewusel enden... die If/Switch-Abfragen bleiben ja :x
mipez is offline  
Old 10/30/2010, 23:31   #17
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
mit einem n elementigem array kann man n abfragen auf eine reduzieren (code technisch)...
lolkop is offline  
Old 10/30/2010, 23:40   #18
 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,241
Received Thanks: 848
Quote:
Originally Posted by lolkop View Post
mit einem n elementigem array kann man n abfragen auf eine reduzieren (code technisch)...
Hm also die Einträge der Combobox numerisch n zuweisen?
Gib mal bitte ein Beispiel, kann mir das nicht wirklich vorstellen oô
mipez is offline  
Old 10/30/2010, 23:52   #19
 
ZaZiZu's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 832
Received Thanks: 136
Quote:
Originally Posted by mipez View Post
Hm also die Einträge der Combobox numerisch n zuweisen?
Gib mal bitte ein Beispiel, kann mir das nicht wirklich vorstellen oô


man kann ganz simpel gleiche sachen mit nur 1ner variable machen

€dit: hier ma beispiel, müsst glaub ich gehen

€dit: nicht hauen, wenns nicht ganz richtig ist xD ist immerhin kurz nach mitternacht
ZaZiZu is offline  
Old 10/31/2010, 00:08   #20
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
naja wie gesagt ich würde das ganze über arrays lösen.
dabei kannst du alles in einer zeile speichern, und die abfrage beträgt immer 3 zeilen.

an dem beispiel vom vorposter würde das zb so aussehen:
Code:
Func _calculate($sdex,$slvl,$mod_wep,$mod_job)
	Local $imodx[19] = [0.08,0.16,0.24,0.32,0.4,0.48,0.56,0.64,0.72,0.8,0.88,0.96,1.04,1.12,1.2,1.3,1.38,1.5,1.5]
	If StringIsDigit($slvl) And $slvl >= 1 And StringIsDigit($sdex) And $sdex >= 15 Then
		$step1 = Round(($slvl / 8 + $sdex * 4) * $mod_wep + $mod_job - 3)
		If $step1 < 187 Then
			$imod = $step1 * 0.1
			For $i=0 To 18
				If $imod>$i And $imod<$i+1 Then
					$step3 = Round(Round(50 / (200 - $step1) * 0.5 + $imodx[$i],2) * 50)
					MsgBox(0,"","Your Attackspeed in % is:" & @crlf &$step3)
					ExitLoop
				EndIf
			Next
		Else
			MsgBox(0,"","Failed, over 187")
		EndIf
	Else
		MsgBox(0,"","Failed, wrong Parameters")
	EndIf
EndFunc
lolkop is offline  
Old 10/31/2010, 10:20   #21
 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,241
Received Thanks: 848
Quote:
Originally Posted by lolkop View Post
naja wie gesagt ich würde das ganze über arrays lösen.
dabei kannst du alles in einer zeile speichern, und die abfrage beträgt immer 3 zeilen.

an dem beispiel vom vorposter würde das zb so aussehen:
Code:
Func _calculate($sdex,$slvl,$mod_wep,$mod_job)
	Local $imodx[19] = [0.08,0.16,0.24,0.32,0.4,0.48,0.56,0.64,0.72,0.8,0.88,0.96,1.04,1.12,1.2,1.3,1.38,1.5,1.5]
	If StringIsDigit($slvl) And $slvl >= 1 And StringIsDigit($sdex) And $sdex >= 15 Then
		$step1 = Round(($slvl / 8 + $sdex * 4) * $mod_wep + $mod_job - 3)
		If $step1 < 187 Then
			$imod = $step1 * 0.1
			For $i=0 To 18
				If $imod>$i And $imod<$i+1 Then
					$step3 = Round(Round(50 / (200 - $step1) * 0.5 + $imodx[$i],2) * 50)
					MsgBox(0,"","Your Attackspeed in % is:" & @crlf &$step3)
					ExitLoop
				EndIf
			Next
		Else
			MsgBox(0,"","Failed, over 187")
		EndIf
	Else
		MsgBox(0,"","Failed, wrong Parameters")
	EndIf
EndFunc
Heißt also ich müsste bei den ComboBoxen prinzipiell das gleiche machen...

EDIT: Hab was Gutes gefunden: _GUICtrlComboBoxEx_AddString(), damit kann ich dem String einen Parameter zuordnen...
Hier mal der Zwischenstand:
Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIComboBoxEx.au3>

$Form2 = GUICreate("", 117, 171)
$Dex = GUICtrlCreateInput("Dex", 8, 40, 97, 25)
$Level = GUICtrlCreateInput("Level", 8, 8, 97, 25)
;combobox1 start
$Job = _GUICtrlComboBoxEx_Create($Form2,"",8, 104, 97, 120)
Global $jtz[13] = ["Vagrant","Mercenary","Acrobat","Assist","Magician","Knight","Blade","Jester","Ranger","Ringmaster","Billposter","Psykeeper","Elementor"]
Global $tjob[13] = [75,80,75,70,65,60,90,85,75,70,85,70,70]
_GUICtrlComboBoxEx_BeginUpdate($Job)
For $j = 0 To 12
_GUICtrlComboBoxEx_AddString($Job,$jtz[$j],-1,-1,-1,-1,$tjob[$j])
Next
_GUICtrlComboBoxEx_EndUpdate($Job)
;combobox1 end 
;combobox2 start
$Weapon = _GUICtrlComboBoxEx_Create($Form2,"",8,72,97,120)
Global $jsz[10] = ["Sword (One Handed)","Sword (Two Handed)","Axe (One Handed)","Axe (Two Handed)","Stick","Knuckle","Wand","Staff","Yoyo","Bow"]
Global $twep[10] = [0.085,0.035,0.06,0.030,0.05,0.07,0.025,0.045,0.075,0.07]
_GUICtrlComboBoxEx_BeginUpdate($Weapon)
For $j = 0 To 9
_GUICtrlComboBoxEx_AddString($Weapon,$jsz[$j],-1,-1,-1,-1,$twep[$j])
Next
_GUICtrlComboBoxEx_EndUpdate($Weapon)
;combobox2 end
$Calculate = GUICtrlCreateButton("Calculate", 16, 136, 89, 25)
GUISetState(@SW_SHOW)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Calculate
			$read1 = GUICtrlRead($Dex)
			$read2 = GUICtrlRead($Level)
			$read3 = _GUICtrlComboBoxEx_GetCurSel($Job)
			$read4 = _GUICtrlComboBoxEx_GetCurSel($Weapon)
			
			$jparam = _GUICtrlComboBoxEx_GetItemParam($Job,$read3)
			$wparam = _GUICtrlComboBoxEx_GetItemParam($Weapon,$read4)
			_calculate($read1,$read2,$wparam,$jparam)
	EndSwitch
WEnd

Func _calculate($sdex,$slvl,$mod_wep,$mod_job)
	Local $imodx[19] = [0.08,0.16,0.24,0.32,0.4,0.48,0.56,0.64,0.72,0.8,0.88,0.96,1.04,1.12,1.2,1.3,1.38,1.5,1.5]
	If StringIsDigit($slvl) And $slvl >= 1 And StringIsDigit($sdex) And $sdex >= 15 Then
		$step1 = Round(($slvl / 8 + $sdex * 4) * $mod_wep + $mod_job - 3)
		If $step1 < 187 Then
			$imod = $step1 * 0.1
			For $i=0 To 18
				If $imod>$i And $imod<$i+1 Then
					$step3 = Round(Round(50 / (200 - $step1) * 0.5 + $imodx[$i],2) * 50)
					MsgBox(0,"","Your Attackspeed in % is:" & @crlf &$step3)
					ExitLoop
				EndIf
			Next
		Else
			MsgBox(0,"","Failed, over 187")
		EndIf
	Else
		MsgBox(0,"","Failed, wrong Parameters")
	EndIf
EndFunc
Problem is, dass es iMo fast nur 42% anzeigt, egal was ich eingebe oô
Iwie scheint _GUICtrlComboBoxEx_AddString($Weapon,$jsz[$j],-1,-1,-1,-1,$twep[$j]) die 0.0... in 0 umzuwandeln oô
mipez is offline  
Old 10/31/2010, 21:39   #22
 
elite*gold: 0
Join Date: Feb 2009
Posts: 542
Received Thanks: 112
ne frage, wieso mit gui onevent ein gui aufrufen? geht das net einfacher das gui das man aufrufen will in eine funktion zu packen und die funktion aufrufen?
maxi39 is offline  
Old 11/01/2010, 11:50   #23
 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,241
Received Thanks: 848
Quote:
Originally Posted by maxi39 View Post
ne frage, wieso mit gui onevent ein gui aufrufen? geht das net einfacher das gui das man aufrufen will in eine funktion zu packen und die funktion aufrufen?
Kommt aufs Gleiche raus^^

Btw. zu meinem _GUICtrlComboBoxEx_AddString()-Problem, es kann nur ne Integer als Value-Parameter eingegeben werden... *1000 / 1000 halt xD
mipez is offline  
Reply


Similar Threads Similar Threads
GUIOnEventMode AUtoIt Hilfe!
04/21/2010 - AutoIt - 2 Replies
Hallo Leute, ich bin gerade dabei mich in AutoIt einzulesen! Jedoch habe ich ein kleines Probelm. Ich leide das Script in einer Endlos Schleife und nach langem recherchieren habe ich herausgefunden dass das Programm in einer endlosschleife nicht mehr reagieren kann :( Dann bin ich auf den GUIOnEventMode gestoßen.Es wurde beschrieben,dass man damit auch in solchen situationen das script noch steuern kann...jedoch wenn ich es einbaue weis ich nicht wo und es funktioniert auch nicht richtig :(...
[VC++] Formular in Dll aufrufen
06/14/2009 - C/C++ - 9 Replies
Hi, ich habe vor kurzem ein wenig mit C++ angefangen. Nun bin ich auf ein Problem gestoßen, bei dem mir auch Google nicht weiterhilft (wahrscheinlich benutze ich einfach nur die falschen Suchbegriffe). Ich will eine Dll in einen anderen Prozess injecten und diese dann ein Formular öffnen lassen. In Delphi habe ich das mit folgendem Code hinbekommen: begin if appHandle = 0 then apphandle := GetActiveWindow; Application.Handle := appHandle; try Form1 :=...
Website aufrufen
05/18/2009 - AutoIt - 7 Replies
Hey @ all, Ich bin mir zwar sicher, dass das hier schonmal irgendwo gepostet wurde, aber dennoch frage ich mich wie man eine gewisse Webseite in AutoIt aufrufen kann. Man sollte die Seite zudem mit dem Standard eingerichteten Webrowser öffen. Glaube, dass war irgendwas mit RUN(.. Komm grad bloß net drauf Danke schonmal
[Help] Items aufrufen ?
09/09/2008 - Flyff Private Server - 2 Replies
Hay, habe mir nun paar items und mobs in die datenbank eingefügt. aber wie rufe ich sie ingame ab ? also das ich die suits und so bekommen ?? help pls !
GMtool per console aufrufen?!
02/11/2005 - General Gaming Discussion - 23 Replies
Ich hab mal ein paar programm files mit win32dasm angeguckt und hab da ein paar consolen befehle ausgeschnüffelt... /exec zum beispiel. einfach mal aus spass /exec terminal&#092;missions&#092;pak_rm_mission s.tsc eingegeben und ... was kommt? Don't spam! Nur eine Chat Message pro Sekunde ist erlaubt. Don't spam! Nur eine Chat Message pro Sekunde ist erlaubt. wenn ich den pfad oder dateinamen aber änder, auf was was es halt nicht gibt, sagt er er konnte es nicht öffnen. Also er muss schon...



All times are GMT +2. The time now is 16:17.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.