Seite 2 von 4

Verfasst: 24.05.2007 16:08
von Kaeru Gaman
was auch logisch und einsehbar ist.
ich wollte einfach nur nachhaken, was AND meinte mit seiner 1...

Verfasst: 24.05.2007 17:19
von AND51
OK, dann wär das (mit der 1) ja geklärt. Und wie geht's weiter?

Verfasst: 25.05.2007 09:28
von real
Genau, und was meint eigentlich Programie dazu?

Verfasst: 25.05.2007 18:04
von K.Putt
Ich weiss nicht, ob ich jetzt den falschen Ansatz habe,
ich habe mir mal einen einfaches Crosshair programmiert das ich über
ein 3D Fullscreen gelegt habe.

Ich habe dazu einfach SetPixel_() genutzt, Text könnte man auch mit
TextOut_() setzen.
Das ist sicherlich nicht die "schönste" Variante, funktioniert aber flimmerfrei.
Für umfangreichere grafiken ist es womöglich nicht mehr so geeignet für kleinere Sachen reicht es aber aus, komt sicher auch auf CPU Auslastung an.

MSDN CDC Member Functions

http://msdn2.microsoft.com/en-us/librar ... S.71).aspx

Verfasst: 26.05.2007 13:36
von real
Du hast aber schon bemerkt, dass Programmie in ein anderes Spiel reinzeichnen will.

Und da geht das, was Du vorgeschlagen hast, definitiv nicht (und schon gar nicht flimmerfrei).

Verfasst: 27.05.2007 21:54
von Programie
real hat geschrieben:Schau Dir mal den Speedometer-Mod fuer GTA an, in dem ein Analog-Tachometer in's Spiel eingeblendet wird. (Der Quellcode ist verfuegbar unter http://www.pawfectfilms.com/mods/speedo_src.zip)
So etwas Ähnliches möchte ich machen.
Es soll nicht nur ein Text/String auf dem Screen des Spiels dargestellt werden, sondern auch ein Bild (Wie bei dem Speedometer).

Aber es gibt noch ein "kleines" Problem: Ich verstehe kein C#-Code (oder was das ist). :(

Aber sonst: Danke für die Antworten! :allright:

PS: Kann man den C#-Code zu PureBasic-Code irgendwie "übersetzen"?

Achja, das mit dem Overlay hat leider nicht funktioniert. :(

Verfasst: 29.05.2007 01:32
von K.Putt
real hat geschrieben:Du hast aber schon bemerkt, dass Programmie in ein anderes Spiel reinzeichnen will.

Und da geht das, was Du vorgeschlagen hast, definitiv nicht (und schon gar nicht flimmerfrei).
Schon klar,

1. definitiv nicht
2. schon gar nicht flimmerfrei

Komisch ist nur dass es bei mir geht,
aber die Antwort hast Du sicherlich schon:

1. es gibt mich gar nicht
2. schon gar nicht im PB Forum.
;-)

Du hättest vielleicht zuerst einfach mal nach Code fragen sollen :twisted:

Das hier ist ein ColorBot mit automatischer Positionierung der Maus
und zeichnen eines Fadenkreuzes in jeder beliebigen 3D FullScreen-
Anwendung.

Man starte das Spiel, dann diese Anwendung, scharf gemacht wird das Tool beim ersten Rechtsklick mit der Maus.

Enjoy.

Code: Alles auswählen

Titel$= "NameDesSpiels"				;Titel der Anwendung/Fenstername (Taskmanager)

;OpenConsole()
;EnableGraphicalConsole(#True)			;Bildschirmgrösse (ich hatte es auskommentiert, weiss nicht mehr warum)
;wx.w=GetSystemMetrics_(#SM_CXFULLSCREEN)	
;wy.w=GetSystemMetrics_(#SM_CYFULLSCREEN)
     
wx=1280
wy=1024
    
WindowID = FindWindow_(#Null, Titel$)
dc= GetDC_(WindowID)
     
center_x = wx/2-1
center_y = wy/2-2
halfsize = 20/2
    
Repeat

If GetAsyncKeyState_(#VK_RBUTTON)<>0
	If counter=0
  		WindowID = FindWindow_(#Null, Titel$)
  		If WindowID = 0 
      			Debug "Window not Exists"
    		EndIf
    	WindowDC.l = GetWindowDC_(#Null)
    	counter=1
  	EndIf
  
sleeptime = 1
range=16
r=8
While GetAsyncKeyState_(#VK_ESCAPE) <> -32767
	For i= 0 To range
      		For k= 0 To range
        		x=center_x-r+i
        		y=center_y-r+k
        		Colour = GetPixel_(GetDC_(WindowID), x, y)

			If colour=16185078
               			movex=r-range+i
          			movey=r-range+k        
          			mouse_event_(#MOUSEEVENTF_MOVE, movex,movey, 0, 0 )
          			;Sleep_(sleeptime) 
        		EndIf
        
           		For X2= center_x-range/2 To center_x+range/2
      				SetPixel_(dc, X2, center_y-range/2, RGB(55,100,200))
       				SetPixel_(dc, X2, center_y+range/2, RGB(55,100,200))
    			Next
    
    			For Y2= center_y-range/2 To center_y+range/2
      				SetPixel_(dc,  center_x-range/2,Y2, RGB(55,100,200))
    				SetPixel_(dc,  center_x+range/2,Y2, RGB(55,100,200))  
			Next
            
    		ReleaseDC_(WindowID, dc)  
        	;Delay(1) 
        	Next
    	Next
Wend
EndIf
;Delay(1)
ForEver 
;CloseConsole()
End 

Verfasst: 29.05.2007 01:42
von Kaeru Gaman
K.Putt hat geschrieben:Komisch ist nur dass es bei mir geht,
aber die Antwort hast Du sicherlich schon:

1. es gibt mich gar nicht
2. schon gar nicht im PB Forum.
;-)
Bild
...und damit gewinnst du den Sarcasm-of-the-Day-Award...

Verfasst: 29.05.2007 01:50
von K.Putt
Hehe, sorry :-)

Du hast schneller geantwortet als ich meinen Code zurechtgebogen habe,
meine Antwort hatte ich natürlich zum Beweis ergänzt.

Verfasst: 29.05.2007 11:47
von D@nte
Der Source von K.Putt ist ja ganz nett aber ist es mit dem auch irgendwie möglich komplexe Zeichenketten direkt auf den Screen zu bringen oder muss man da jeden Buchstaben einzeln mit Pixeln darstellen?!

Und flimmer frei ist der Source trotzdem nit...