[SNIPPET] SAMP TakeScreen & CleanScreens

Function to take a simple samp screenshot.
Code:
/*
    call @TakeScreen 0
*/
:TakeScreen
IF 0AA2: 0@ = "samp.dll"
THEN 0@ += 0x119CBC
    0A8C: writeMem 0@ sz 1 val 1 vp 0
END
/*
  -SAMPFUNCS
  0B2D: write_samp_memory offset 0x119CBC value 1 size 1
*/
RET 0

Code snippet on how to get clean screenshots.
Code:
{$CLEO}
0000:
REPEAT
    WAIT 0
UNTIL 0AA2: 0@ = "samp.dll"
0@ += 0x5D8C1 
0A8C: writeMem 0@ sz 1 val 0 vp 1    //This disables taking screens with F8
/*
  -SAMPFUNCS
  0B2D: write_samp_memory offset 0x5D8C1 value 0 size 1
*/

WHILE TRUE
    WAIT 0
    IF 0AB0: 119 //F8
    THEN
        /*
            Disable mods before taking a screenshot 
            ex: call @EnableWallhack 1 FALSE
        */
        WAIT 1 //get clean frame
        CALL @TakeScreen 0
        /*
            Re-enable mods
            ex: call @EnableWallhack 1 TRUE
        */
    ELSE     
        /* 
            your draw funcs 
            or whatever
        */
        03F0: enable_text_draw 1
        038E: draw_box_position 320.0 224.0 size 100.0 100.0 RGBA 100 100 100 255
    END
END


:TakeScreen
IF 0AA2: 0@ = "samp.dll"
THEN 0@ += 0x119CBC
    0A8C: writeMem 0@ sz 1 val 1 vp 0
END
/*
  -SAMPFUNCS
  0B2D: write_samp_memory offset 0x119CBC value 1 size 1
*/
RET 0
 

Fu$10N

Expert
Joined
Mar 5, 2014
Messages
1,101
Reaction score
9
Re: SAMP TakeScreen & CleanScreens

So with this, I can take a clean ss ?
Nice job  :urtheman:
 

Suicide Bomb

Active member
Joined
Jun 22, 2014
Messages
100
Reaction score
1
How do I implement the CleanScreen in the weapon finder cleo? Here is the source but I'm kinda newbie to CLEO.
Code:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 
03F0: enable_text_draw 1 
wait 5000 
13@ = 0

:Noname_11
wait 0 
if and 
0AB0: 75
0AB0: 51
then
    if 13@ == 1 // TURN OFF
    then
    13@ = 0
    else // TURN ON
    13@ = 1
    end
wait 500
end
if and
   Player.Defined($PLAYER_ACTOR)
   13@ == 1
else_jump @Noname_257 
0A8D: 29@ = read_memory 12010652 size 4 virtual_protect 0 
29@ += 4 
0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0 
30@ = 0 

:Noname_71
0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0 
29@ += 1 
if and
  31@ >= 0 
  128 > 31@ 
else_jump @Noname_232 
005A: 31@ += 30@ // (int) 
15@ = Object.Model(31@)
Object.StorePos(31@, 1@, 2@, 3@)
call @Noname_264 3 1@ 2@ 3@ 4@ 5@ 
for 14@ = 334 to 372 step 1
    if 
    003B: 15@ == 14@
    then
    0342: set_text_draw_centered 1 
    081C: draw_text_outline 1 RGBA 0 0 0 255 
    033F: set_text_draw_letter_size 0.3 1.0 
    0340: set_text_draw_RGBA 0 255 255 255 
    045A: draw_text_1number 4@ 5@ GXT 'NUMBER' number 15@  // ~1~
    end
end

:Noname_232
30@ += 256 
  30@ > 89344 
else_jump @Noname_71 

:Noname_257
jump @Noname_11 

:Noname_264
0AA7: call_function 7392816 num_params 6 pop 6 1 1 7[member=21661]S[/member] 6[member=21661]S[/member] 2[member=21661]S[/member] 0[member=21661]S[/member] 29@  
0073: 2@ /= 6@ // (float) 
0073: 2@ /= 4@ // (float) 
0073: 3@ /= 7@ // (float) 
0073: 3@ /= 4@ // (float) 
2@ *= 640.0 
3@ *= 448.0 
ret 2 2@ 3@
 

Zin

Expert
Joined
Aug 1, 2013
Messages
1,690
Reaction score
103
Can someone explain to me what the Clean Screens is about?
 
Joined
Dec 31, 2015
Messages
712
Reaction score
27
zin said:
Can someone explain to me what the Clean Screens is about?

You simply hook\patch or whatever the samp screenshot function so you can call it manually and hide all visual hacks before you take a screenshot, so it will be actually clean
 

Zin

Expert
Joined
Aug 1, 2013
Messages
1,690
Reaction score
103
so how do I use it say I want to use it for wallhack do I have to put it in the wallhack code and it will hide wallhack whenever I take screens?
 

Husnain

Well-known member
Joined
May 20, 2016
Messages
228
Reaction score
9
Location
Mars
zin said:
Can someone explain to me what the Clean Screens is about?
It just simply replaces the old-ass method of taking screenshots in samp which takes 100 years to capture is now done by taking 1s and with high quality.  :sadpepe: :sadpepe:
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,117
Solutions
5
Reaction score
882
Location
Lithuania
100% - Working without SAMPFUNCS
Example - 0.3.7 R3

Explain.:
PHP:
{$CLEO .cs}

0000: NOP

wait 10000

while true
wait 0

IF
0AB0: 119
then
    0AB1: @CleanScreens 0
end

end

:CleanScreens
0AA2: 1@ = "samp.dll"
1@ += 0x26E894
0A8D: 1@ = readMem 1@ sz 4 vp 0
0A8C: writeMem 1@ sz 4 vl 1 vp 0
0A8E: 2@ = 1@ + 0xC
0A8C: writeMem 2@ sz 4 vl 950.0 vp 0
wait 200
0A8C: writeMem 1@ sz 4 vl 0 vp 0
0A8C: writeMem 2@ sz 4 vl 60.0 vp 0
0AB2: ret 0

Snippet.:
PHP:
:CleanScreens
0AA2: 1@ = "samp.dll"
1@ += 0x26E894
0A8D: 1@ = readMem 1@ sz 4 vp 0
0A8C: writeMem 1@ sz 4 vl 1 vp 0
0A8E: 2@ = 1@ + 0xC
0A8C: writeMem 2@ sz 4 vl 950.0 vp 0
wait 200
0A8C: writeMem 1@ sz 4 vl 0 vp 0
0A8C: writeMem 2@ sz 4 vl 60.0 vp 0
0AB2: ret 0

PHP:
:TakeScreenShoot
//0AB1: @TakeScreenShot 0
{
    0.3.7 - R3
}
IF 0AA2: 0@ = "samp.dll"
THEN 0@ += 0x12DD3C
    0A8C: writeMem 0@ sz 1 val 1 vp 0
END
0AB2: 0
 
Last edited:

truongvi2013

Active member
Joined
May 26, 2016
Messages
82
Reaction score
10
Location
Vietnam
100% - Working without SAMPFUNCS
Example - 0.3.7 R3

Explain.:
PHP:
{$CLEO .cs}

0000: NOP

wait 10000

while true
wait 0

IF
0AB0: 119
then
    0AB1: @CleanScreens 0
end

end

:CleanScreens
0AA2: 1@ = "samp.dll"
1@ += 0x26E894
0A8D: 1@ = readMem 1@ sz 4 vp 0
0A8C: writeMem 1@ sz 4 vl 1 vp 0
0A8E: 2@ = 1@ + 0xC
0A8C: writeMem 2@ sz 4 vl 950.0 vp 0
wait 200
0A8C: writeMem 1@ sz 4 vl 0 vp 0
0A8C: writeMem 2@ sz 4 vl 60.0 vp 0
0AB2: ret 0

Snippet.:
PHP:
:CleanScreens
0AA2: 1@ = "samp.dll"
1@ += 0x26E894
0A8D: 1@ = readMem 1@ sz 4 vp 0
0A8C: writeMem 1@ sz 4 vl 1 vp 0
0A8E: 2@ = 1@ + 0xC
0A8C: writeMem 2@ sz 4 vl 950.0 vp 0
wait 200
0A8C: writeMem 1@ sz 4 vl 0 vp 0
0A8C: writeMem 2@ sz 4 vl 60.0 vp 0
0AB2: ret 0

PHP:
:TakeScreenShoot
//0AB1: @TakeScreenShot 0
{
    0.3.7 - R3
}
IF 0AA2: 0@ = "samp.dll"
THEN 0@ += 0x12DD3C
    0A8C: writeMem 0@ sz 1 val 1 vp 0
END
0AB2: 0
Do you have 0.3.dl offset for this? tried searching GG...
 

Parazitas

God
Joined
Jan 2, 2017
Messages
3,117
Solutions
5
Reaction score
882
Location
Lithuania
Do you have 0.3.dl offset for this? tried searching GG...
It's Samp Scoreboard[TAB] pointer + text offsets.
@truongvi2013
PHP:
:CleanScreens
{
    0.3.DL
}
0AA2: 1@ = "samp.dll"
1@ += 0x2AC9DC
0A8D: 1@ = readMem 1@ sz 4 vp 0
0A8C: writeMem 1@ sz 4 vl 1 vp 0
0A8E: 2@ = 1@ + 0xC
0A8C: writeMem 2@ sz 4 vl 950.0 vp 0
wait 200
0A8C: writeMem 1@ sz 4 vl 0 vp 0
0A8C: writeMem 2@ sz 4 vl 60.0 vp 0
0AB2: ret 0

PHP:
:TakeScreenShoot
//0AB1: @TakeScreenShot 0
{
    0.3.DL
}
IF 0AA2: 0@ = "samp.dll"
THEN 0@ += 0x16BE7C
    0A8C: writeMem 0@ sz 1 val 1 vp 0
END
0AB2: 0
 
Last edited:
Top