YourMother2 0 Posted May 24, 2006 Yes Babes! On the top of my wish list is an undetectable Mass Selection Feature or MultiCommand. I am using Inhale´s mass selection in every game and at least twice a day I get discovered by this ****ing penguin plug users. They see who is responsible for the replay corruption and they now that I am using multi command or at least any hack. Here are some screenshots of my last 3 days playing sc: So my biggest wish is to make it undetectable. More details: - usability like dt´s mass selection hack. Press Alt - selection is on - mass command - automatically mass selection is off - also mulitcommanding buildings - multi train - please use as mc button ALT and DON´T USE "~". ~ on my non-English keyboard is very very hard to reach. you must press ALT-Gr and a-button-on-the-back-of-my-keyboard. So ply simple use ALT - Disable default workers probes, drones, SCVs and Overloads from multi command. I accidentally very often multi commanding this kind of units. And this is really painful ... and of no use. If you need a code - here is one (I think this is of the old damned666: :1000178B pushad ; Preserve registers :1000178C cmp byte ptr [100032C8], 01 ; Is multicommand on? :10001793 jne 1000181C ; If not jump to the end :10001799 mov dword ptr [10003820], ecx ; Store command parameters pointer :1000179F mov byte ptr [10003824], dl ; Store command type :100017A5 mov eax, 0068F3E0 ; First selected unit :100017AA mov eax, dword ptr [eax] ; Get first selection unit pointer :100017AC mov dword ptr [1000381A], eax ; Store first selection :100017B1 mov bl, byte ptr [eax+64] ; Get unit type :100017B4 mov byte ptr [1000381E], bl ; Store Unit type :100017BA mov bl, byte ptr [eax+4C] ; Get unit owner :100017BD mov byte ptr [1000381F], bl ; Store unit owner :100017C3 mov ecx, 005BC6A8 ; unit list pointer :100017C8 mov dword ptr [10003390], 00000000; counter?? :100017D2 jmp 10001810 ; jump to unit list cycle * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001813(C) | :100017D4 push ecx ; Store unit params pointer :100017D5 mov bl, byte ptr [ecx+64] ; Get unit type :100017D8 cmp byte ptr [1000381E], bl ; check unit type :100017DE jne 1000180C ; jump if not the same type :100017E0 mov bl, byte ptr [ecx+4C] ; get unit owner :100017E3 cmp byte ptr [1000381F], bl ; check unit owner :100017E9 jne 1000180C ; jump if not the same owner :100017EB push ecx ; Store unit params again :100017EC push 00000001 ; number of units to select :100017EE call 10001085 ; local function to set selection :100017F3 mov ecx, dword ptr [10003820] ; restore unit params pointer :100017F9 movzx edx, byte ptr [10003824]; restore command type :10001800 call dword ptr [10003008] ; call command function :10001806 inc dword ptr [10003390] ; counter?? * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:100017DE(C), :100017E9(C) | :1000180C pop ecx :1000180D mov ecx, dword ptr [ecx+04] ; Get pointer to previous unit * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:100017D2(U) | :10001810 cmp ecx, 00000000 ; Is pointer null? Are we done? :10001813 jne 100017D4 ; If not start over :10001815 popad ; else restore registers :10001816 jmp dword ptr [10003379] ; jump back to sc * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:10001793(C) | :1000181C call dword ptr [10003008] ; Call original command :10001822 popad ; restore registers :10001823 jmp dword ptr [10003379] ; jump back to sc and MultiCmd proc pushad ; Preserve registers cmp MultiCommand, 01 ; Is multicommand on? jne MA_END ; If not jump to end mov eax, PlrNumOffset mov al, byte ptr [eax] ; Get your player number mov PlrNum, al ; Store Player number mov ParamsPtr, ecx ; Store command parameters pointer mov CommandByte, dl ; Store command type mov eax, FirstSelection mov eax, dword ptr [eax]; Get first selection unit pointer mov cl, byte ptr [eax+064h]; Get unit type mov UnitType, cl ; Store Unit type mov ebp, UnitStructStart; Unit list pointer mov ebp, dword ptr [ebp]; Get unit struct start MA1: mov al, byte ptr [ebp+04Ch]; Get unit owner cmp al, PlrNum ; Check unit owner jne MA2 ; jump if not the same owner mov al, byte ptr [ebp+064h]; Get unit type cmp al, UnitType ; Check unit type jne MA2 ; jump if not the same type xor ecx, ecx mov cl, 01 ; Number of units to select mov CurrentUnit, ebp lea edx, CurrentUnit ; unit to select call dword ptr [SetSelection]; Set Selection function sub esp, 00000008h mov ecx, ParamsPtr ; set command parameters pointer movzx edx, CommandByte ; set command type call dword ptr [IssueCommand]; call command function MA2: mov ebp, dword ptr [ebp]; Get pointer to next unit test ebp, ebp ; Is pointer null? Are we done? jnz MA1 ; If not start over mov MultiCommand, 00 ; Turn off MultiCommand MA_END: popad ; restore registers add esp, 0000000Ch ; fix stack pointer ret 0010h ; return to sc MultiCmd endp Here a small How-to-do: Here is a run down of what you should look into. 1. Learn how to use olly 2. get dxwnd to run starcraft in windowed mode 3. open starcraft with dxwnd, open olly and attach. Look at the memory address 00697EC4. This is where the current selected units ID is stored. If its 00 then select a unit and look again. Now right click on the unit id and select "follow in dump". You are now at Starcrafts linked list of Unit ID's. All Units on the map have an ID and they are all linked together. For example, if the ID is 0063DOFO then 0063DOFO + 4 will be the next Unit ID. If you look at the memory addresses below the Unit ID you will find about 25 spots with information about that unit. Learn ASM and see what you can do with this information. I will give you a major hint....When writing a multicommand, you want to make the same type of unit do the same thing as the originally selected unit. So you will be looking for unit type. Now of course you dont want to tell a unit to do something if its not your unit. So you will also need to find the units owner. So if you figure out where the units type is in this format (Unit ID + ??) and the same for the units owner, your almost there. Let me know if you would like help after you figure out this information. There are still some major things to do so feel free to ask for help once you get to this point. So I would appreciate an undectable mc/ ms very much! Thx! Share this post Link to post
striker 35 Posted May 24, 2006 If it was possible it would have been done by now I think. Plues just disable multicommand. I only turn on Map hack cause Penguin Plug cannot detect that hack. Share this post Link to post
NickF 1 Posted May 24, 2006 I'm pretty sure its impossible, but I'm not usre on how penguin works. If it detects weather or not more than 12 units were commanded, then you can't make it undetectable. Anyway, who cares if penguin newbs know you are ? Share this post Link to post
YourMother2 0 Posted May 25, 2006 Yes, I know you can turn of mass selection/ Multicommand. Please don´t explain me how this works. I am no idiot. But I don´t want to turn it off cause it´s powerfull. And when you get detected 3 times a day it´s bothering (even when my friends still are thinking that I am NO cheater ^^). So I think there is a method to slow it down: artificially slow the multicommand down: 12 units, wait 0.05 secs, next 12 units, wait 0.05 secs, .... Or even better randomize it: 6 units, wait 0.1 secs, 11 units, wait 0.05 secs, 10 units wait 0.07 secs, ... This way you not able to see it afterwards in BWChart. BTW: if unit-id=Probe then DO NOTHING When I see the code it couldn´t be so hard to do something like this. But I can´t script ... or not in this language. This would be a really usefull feature! Share this post Link to post
taras 0 Posted May 25, 2006 I Always use inhale mass selection hack.They cant tell you your using it.You select many units o.0 Share this post Link to post
-FIGJAM- 0 Posted August 5, 2006 yourmother2 your selection hack mst been shit as mine was neva detected and i play with 3ppl with pp(wish i still had it damm patch) Share this post Link to post
Brownie Man 41 Posted August 5, 2006 to tell u the truth, no1 needs pp to tell ur multicommanding, it sof Æ’ucking obvious. alll the units move to attack u, u send a dropship to his main, and he "accedently" attacks withh a hydra and all the rest come back. Or like us c 170 rines in perfect order just moveing around, or even if get vission of some's base u c all thier vuilding lights turn on at asame time, or like 20 hatches hatching larvae at the same time.. i never use multicommand... unless i am crazy hackying, like a mineral hack.. which by then i have probably gon thru some precatuions. Such as spoofing, and even now pp has anti spoof thingy. Also i use accoutns that i made at my cuzins house, i unno uf these thing's help but... meh i do it anways. Share this post Link to post