Re: Cover the screen black
Does nobody know how to cover the screen black...? It sounds like a simple thing.. :cry:
Re: Cover the screen black
If you cannot get that far then how do you propose to the other parts of your task.
Not to mention GTA3 and GTA:VC share nothing in common when it comes to the world map so I don't get what you are doing.
Anyway, you need to set focus onto a DC which is the size of the screen and 100% black.
Re: Cover the screen black
Both the maps have airports. Thats all I need to know.
I've spent a lot of time in researching both the games and finding offsets, I know how to teleport the player, I know how to hack my way through both menus. While you're questioning whether or not I'm capable of doing something I have already clearly stated I knew how to do, please do tell me what covering the screen black has to do with memory hacking the game? Do you think a black screen would give a rats ass if the two maps had anything in common?
You don't get what I'm doing? Here, I guess some people are slower then others.
1) I drive to the airport.
2) I press a button at the counter.
3) My program detects I have pressed a button near the airport and plays a cutscene of me flying away in an airplane.
4) My program covers the screen black
5) My program secretly exits the game and loads GTA3, hacking its way through the menu and loading the game.
6) Once the game is loaded, it plays a cutscene of an airplane landing at the GTA3 airport. The player then steps out of the airplane and you can now play.
Thats as detailed as it gets, chief. If you still don't understand then maybe you aren't fit to help. As I just said, some people are just slower then others.
Re: Cover the screen black
Create 2 TLVERTEX polygons that's the size of the whole screen and together, they should create a rectangle. Next, you alphablend them, and in the area where you created the geometry (Like the function CreateTLVertex() that you might have spotted over in DirectX4VB), you use D3DColorRGBA() in the area where you color the polygon, which should be black. Then in a loop you cycle though its Alpha values in that D3DColorRGBA function within the CreateTLVertex(). Cycling from 255 to 0 should fade in while 0 to 255 should fade out. Hope this helps.
Re: Cover the screen black
Well other than the foul language which can get you a warning or banned...
Personally, I don't believe you, I've seen the questions you've asked before.
Anyway, I have played both of those and used all the hacks provided and played with them fully.
Chances are you using some hack, all you want to is inject a black screen, in which case is quite simple using DirectX, OpenGL, BitBlt GUI, or even a fullscreen window which is black could do it.... Also hacking the menus as far as I remember was simply adding a command line..
But I do not wish to help you, so good luck.
Re: Cover the screen black
Quote:
Originally Posted by Halsafar
Well other than the foul language which can get you a warning or banned...
Personally, I don't believe you, I've seen the questions you've asked before.
Anyway, I have played both of those and used all the hacks provided and played with them fully.
Chances are you using some hack, all you want to is inject a black screen, in which case is quite simple using DirectX, OpenGL, BitBlt GUI, or even a fullscreen window which is black could do it.... Also hacking the menus as far as I remember was simply adding a command line..
But I do not wish to help you, so good luck.
What I have previously asked has had nothing to do with memory hacking. People aren't banned for saying 'ass', by the way.
Re: Cover the screen black
Not banned, but warned, then banned.
Rules clearly states no cursing.
Although it is not astericking it out so.
I did check out your page, nice work I must admit. Although there is already a multiplayer patch for VC and 3 that I have used before and worked fine.
As for your black screen, I can program something for you which you can for example run, and have display a blank screen, then thread will sleep waiting for a event to be triggered from your program, when that event is triggered the black screen will disappear and the program will close thus showing yours.
It will just require a bit of process to process communication when it comes to the event triggering, otherwise they would be independant.
C++ right?
Re: Cover the screen black
Quote:
Originally Posted by Halsafar
I did check out your page, nice work I must admit. Although there is already a multiplayer patch for VC and 3 that I have used before and worked fine.
Thanks, but if this other multiplayer patch you're talking about is "Multi Theft Auto".. well, the lag in that mod makes the game completely unplayable. Not to mention the desync, crashes, etc.
I'm attempting this in VB.
Re: Cover the screen black
I do not remeber which one I used, it was last year sometime.
But it was somewhat popular, there was still an active server running.
Me and my friend played fine.
Well, first I must agrue with VB and how useless it is, but beside that. Do you know how to send messages between process' in VB?
Do you know how to shell an exe and gets its process handle?
If you do then I can provide you with a very small and simple exe to blank the screen you can shell and send a simple message once your done with it. It may take a bit though, I gotta look over bitblt again since I aint used that since I programmed in VB :) and how to make sure the window holds focus no matter what.
BitBlt may not be the best choice now that I think about, it may be possible to utilize some other techniques.
Re: Cover the screen black
Yes I know how to shell an exe and get its processhandle - but I dont HAVE TO shell it to get its processhandle. I can just use some simple FindWindow, GetWindowProcessId, OpenProcess API stuff to get a processhandle based on the window title.
Or I can use enumeration and get a processhandle based on exe name, either way, thats easy to get.
Send message between processes? Like IPC? In what format?
Api? Winsock? SendMessage?
Re: Cover the screen black
No winsock, you will need some API of course...
SendMessage may work, but may be a bit annoying to work out since we would need to send a unique message to the blank screen, the blank screen would need to know the message to jump on it and since unique messages are registered at runtime it will be different each time. Communicating that unique message DWORD to each window would be a bother.
So, I'll look into how easily I can use Events.
See I can CreateEvent in the blank screen, then use OpenEvent in your program to get a handle to the created event.
The blank screen will be sleeping waiting for that event to signal, when it is the blank screen will wake up and shutdown.
Simple process, we'll just need a unique string to identify the event.... In which case I believe the same goes for the message actually.
More things to check:
Can you use ::RegisterWindowMessage()?
Do you know to get the HWND of the window in the program I will create?
My better idea stands: We Register a unique message under the same string in both programs, that way the return WILL be the same, I have used this trick before. Then if you get the window hwnd of the blank screen you can at anytime SendMessage(hwnd, UniqueMsg, 0, 0); and the blank screen will shutdown. Very easy, and a very useful blank screen.