Jup, der aktuelle nVidia Stable Treiber is Müll. Hab auf den neusten Beta Treiber geupdatet (326.41) seitdem läuft BF3 bei mir wieder problemlos. Beim Update hatte ich zwar kein Bild mehr bekommen, nach nem Neustart lief aber alles (vor dem Neustarten natürlich abgewartet, damit ich nicht die Treiberinstallation abwürge).
Keine Ahnung, wieso der Stable Treiber als stable gelistet ist.
Beiträge von Ineluki
-
-
Ich denke mal das hier sollte die Diskussion klären:
Spoiler anzeigen
Code
Alles anzeigenAUT_RESULT AutoIt_Script::F_StringSplit(VectorVariant &vParams, Variant &vResult) { int iCount, iElements, iIndex; int nPos, nFlag; char const *pcSearch, *pcDelim, *pcTmp; // pointer can change, but the pointed at stuff will not. Variant *pvTemp; // For speed, pre-allocate our string class to be same size as input string AString sElement((int)strlen(vParams[0].szValue())); if (vParams.size() < 3) nFlag = 0; else nFlag = vParams[2].nValue(); pcSearch = vParams[0].szValue(); pcDelim = vParams[1].szValue(); // Create array with single characters when the delimiter is empty if (pcDelim[0] == '\0') { iCount = 0; iIndex = 1; iElements = (int)strlen(pcSearch); Util_VariantArrayDim(&vResult, iElements+1); // create the array , String length + 1 pvTemp = Util_VariantArrayGetRef(&vResult, 0); // First element set to length *pvTemp = iElements; while (iCount < iElements) { sElement.assign(pcSearch, iCount, iCount + 1); pvTemp = Util_VariantArrayGetRef(&vResult, iIndex++); //Next element *pvTemp = sElement.c_str(); ++iCount; // Increase count } return AUT_OK; } switch (nFlag) { case 0: // default method - any characters in delimeter string delimit fields // Count how many times the delimiters occur iCount = 0; nPos = 0; while (pcSearch[nPos] != '\0') { if ( strchr(pcDelim, pcSearch[nPos]) ) ++iCount; // Increase count ++nPos; } break; case 1: // use exact delimeter string to delimit fields iCount=0; while (pcSearch != NULL) { pcSearch = strstr(pcSearch, pcDelim); if (pcSearch != NULL) { ++iCount; pcSearch += strlen(pcDelim); // skip by the length of the delimter } } // reset back to starting place pcSearch = vParams[0].szValue(); break; default: iCount = -1; } // Find any delimiters? if (iCount <= 0) { // Create array of 2 to return count = 1 and full string in element[1] Util_VariantArrayDim(&vResult, 2); pvTemp = Util_VariantArrayGetRef(&vResult, 0); //First element *pvTemp = 1; pvTemp = Util_VariantArrayGetRef(&vResult, 1); //Second element *pvTemp = pcSearch; SetFuncErrorCode(-iCount+1); // 1 for no delimiters, 2 for bad flag return AUT_OK; } // Number of string elements will be iCount number of delimiters + 1 (3 delims = 4 elements to return) iElements = iCount+1; // Create our return array (first element is number of strings return, so we need iElements+1 elements) Util_VariantArrayDim(&vResult, iElements+1); pvTemp = Util_VariantArrayGetRef(&vResult, 0); //First element *pvTemp = iElements; // Number of elements we will return // Go through the loop again but this time, make a note of the strings and store in our new array iCount = 0; nPos = 0; iIndex = 1; sElement = ""; bool bStored; while (iCount < iElements) { switch (nFlag) { case 0: bStored = false; if ( strchr(pcDelim, pcSearch[nPos]) ) // This works as \0 is also matched so overrun is prevented { pvTemp = Util_VariantArrayGetRef(&vResult, iIndex++); //Next element *pvTemp = sElement.c_str(); sElement = ""; bStored = true; ++iCount; // Increase count } if (bStored == false) sElement += pcSearch[nPos]; ++nPos; break; case 1: pcTmp = pcSearch; pcSearch = strstr(pcSearch, pcDelim); if (pcSearch != NULL) { sElement = ""; // copy all elements up to the beginning of the delimiter into sElement for (;pcTmp != pcSearch; ++pcTmp) sElement += *pcTmp; pcSearch += strlen(pcDelim); // skip by the length of the delimter } else sElement = pcTmp; // copy string into array pvTemp = Util_VariantArrayGetRef(&vResult, iIndex++); //Next element *pvTemp = sElement.c_str(); ++iCount; break; } // switch } // while (iCount < iElements) return AUT_OK; }
Ich persönlich sehe das kein RegEx.
Ist zwar von der 3.1.0 aber ich denke, da hat sich nichts geändert:
http://www.autoitscript.com/autoit3/files/…-v3.1.0-src.exe -
Da hast du gleich 2 Fehler gemacht...
1. Die MessageBox, die das Ergebnis anzeigt, beeiflusst das Ergebnis.
2. Du vergisst den Timer zurückzusetzenWenn man die beiden Punkte korrigiert sieht man, dass StringSplit schneller ist.
-
Du brauchst den Launcher nicht, um Minecraft zu starten. Man kann die java.exe mit nen paar Parametern starten un der Launcher is unnötig (der auch nichts anderes macht):
[autoit]Run('java -Xmx1024m -cp "%APPDATA%\.minecraft\bin\minecraft.jar;%APPDATA%\.minecraft\bin\lwjgl.jar;%APPDATA%\.minecraft\bin\lwjgl_util.jar;%APPDATA%\.minecraft\bin\jinput.jar" -Djava.library.path="%APPDATA%\.minecraft\bin\natives" net.minecraft.client.Minecraft username passwort')
[/autoit] -
In der _SetImageFromResource Funktion fehlt ein bisschen.
[autoit]
Vor dieser ZeileIf $Resfile <> -1 Then DllCall("Kernel32.dll", "int", "FreeLibrary", "str", $hmod)
[/autoit]kommt
[autoit]DllCall("kernel32.dll", "int", "UnLockResource", "int", $Mem)
[/autoit]Und am Ende der Funktion:
[autoit]$hmod = _WinAPI_FreeLibrary($Resfile)
[/autoit]Alles nur geraten und ungetestet
-
Versuchs mal, indem du das an den Scriptanfang tust:
[autoit]If Not IsAdmin() Then
[/autoit]
RunAs("Benutzer", "Domäne", "Passwort", 0, @ScriptFullPath)
Exit
EndIf -
Oder so:
[autoit]$sString="Irgendein langer langer String"& _
[/autoit]
"und der Rest vom langen String"
Edit: naja, zu spät... -
Ich glaube das wurde schonmal vorgeschlagen, aber es wurde nicht umgesetzt, weil die User dann am Ende nur hinter Likes her sind.
(Ich weiß nicht mehr ob esgenau so war)
So hab ich das auch in Erinnerung. Wenn ich mich richtig erinnere war das auch der Grund dafür, dass die Ränge abgeschafft wurden. -
Geht auch in einer Zeile
[autoit]; #FUNCTION# ======================================================================================
[/autoit]
; Name ..........: RunAu3()
; Description ...: Führt ein AutoIt Script aus.
; Syntax ........: RunAu3($sPath)
; Parameters ....: $sPath - Pfad zum Script.
; Author ........: SEuBo
; =================================================================================================
Func RunAu3($sPath) ; Author: SEuBo
RunWait('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & $sPath & '"')
EndFunc ;==>RunAu3 -
Weißt du eigt wie Ressourcenfressend die Unlimited Detail Engine ist? Da kriegste mit AutoIt bei einem animierten Objekt keine 15 Fps hin
-
In einer 2D Welt stimmt das. In einer 3D Welt musst man aber auch noch die Blickrichtung beachten
-
Ich frag mich, wonach du googlest... Bei mir steht gleich beim ersten Ergebnis:
"Collides a moving ellipsoid with a 3d world with gravity and returns the resulting new position of the ellipsoid." --> Wenn ich es richtig verstanden hab, berechnet die Funktion die Flugbahn eines Ellipsoid in einer 3D Welt und gibt die neuen Koordinaten zurück.
Parameter:
$h_Selector -> keine Ahnung was das ist, hab mich noch nie mit Irrlicht beschäftigt
ByRef $a_EllipsoidPosition -> Array mit den momentanen Koordinaten des Ellipsoid
ByRef $a_EllipsoidRadius -> Array mit den 3 Radien des Ellipsoid
ByRef $a_Velocity -> Eigentlich würde ich sagen, die Geschwindigkeit, aber es ist ein Array mit 3 Elementen
ByRef $a_Gravity -> Das gleiche wie beim vorhergehenden, eigentlich würde ich sagen Gravitationskraft, aber es ist wieder ein Array...
ByRef $f_SlidingSpeed -> Gleitgeschwindigkeit
ByRef $a_OutPosition -> Ein Array mit der neuen Position des Ellipsoid
ByRef $a_OutHitPosition -> Ein Array mit der neuen irgendwas
ByRef $i_OutFalling -> Die neue (Fallgeschwindigkeit?) -
Bei mir kommt der Error nicht. Wenn du mal in Marsis Post dir die genannte Zeile im Quellcode anguckst, wird dir auffallen, dass da nur ein Not steht.
-
Oder mit RegExpReplace:
[autoit]StringRegExpReplace($sText, "(\d*)\:", "")
[/autoit] -
Weiß zwar nicht, wo da der Sinn hinter ist, den DLLCall statt der internen Funktion zu nutzen aber naja...
[autoit]DllCall("winmm.dll", "bool", "PlaySound", "str", "PFAD", "HWND", 0, "DWORD", 0)
[/autoit] -
[autoit]
$WM_LBUTTONUP=0x0202
[/autoit] -
Juhu, eine neue Liste
Und sogar ich habs draufgeschafft -
[autoit]
#AutoIt3Wrapper_usex64=n
[/autoit]
an den Anfang vom Skript -
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <Constants.au3>
HotKeySet("{ESC}", "_Exit")
Local $vU32DLL = DllOpen("User32.dll"), $iGUIColorBG = 0xFFFFFFFF, $iGUIWidth = @DesktopWidth, $iGUIHeight = @DesktopHeight
$hWnd = GUICreate("Test", $iGUIWidth, $iGUIHeight, 0, 0, BitOR(0x80000000, 0x08000000), BitOR(0x00080000, 0x00000008, 0x00000080))
GUISetState()
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($iGUIWidth, $iGUIHeight, $hGraphic)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
$hDC = _WinAPI_GetDC($hWnd)
$hCDC = _WinAPI_CreateCompatibleDC($hDC)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", $iGUIWidth)
DllStructSetData($tSize, "Y", $iGUIHeight)
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", 255)
DllStructSetData($tBlend, "Format", 1)
$tPoint = DllStructCreate($tagPOINT)
$pPoint = DllStructGetPtr($tPoint)
DllStructSetData($tPoint, "X", 0)
DllStructSetData($tPoint, "Y", 0)
GUIRegisterMsg($WM_PAINT, "_ReDraw")
While sleep(20)
_GDIPlus_GraphicsClear($hBuffer, 0x00FFFFFF)
_GDIPlus_GraphicsDrawString($hBuffer, "FPS", 8, 8, "Arial", 20)
_ReDraw()
If BitOR(WinGetState($hWnd), 2) <> 2 Then _WinAPI_SetWindowPos($hWnd, $HWND_TOPMOST, 0, 0, 0, 0, BitOR($SWP_NOMOVE, $SWP_NOSIZE))
WEndFunc _ReDraw()
[/autoit]
Local $hBitmapTmp = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)
_WinAPI_SelectObject($hCDC, $hBitmapTmp)
_WinAPI_UpdateLayeredWindow($hWnd, $hDC, 0, $pSize, $hCDC, $pSource, 0, $pBlend, 2)
_WinAPI_DeleteObject($hBitmapTmp)
EndFunc
Func _Exit()
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_Shutdown()
DllClose($vU32DLL)
Exit
EndFunc
Ungefähr das hat name22 mal irgendwo gepostet, hab aber gehört, dass manche Spiele das blocken. -
[autoit]
_WinAPI_PtInRect
[/autoit]
Geht aber nur im 32 Bit Modus