Types of Sign Check and Sources , etc...

fex

Member
Joined
Aug 5, 2018
Messages
9
Reaction score
0
@Parazitas can you please modify it for this type of dialog? i can't use sampfuncs because of the server's samp version and im using 0.3dl thanks (number on the dialog box is randomly generated but its always 6 digits)
 

Attachments

  • 1643924054630.png
    1643924054630.png
    46.4 KB · Views: 33

Parazitas

God
Staff member
Joined
Jan 2, 2017
Messages
3,315
Solutions
7
Reaction score
935
Location
Lithuania
@Parazitas can you please modify it for this type of dialog? i can't use sampfuncs because of the server's samp version and im using 0.3dl thanks (number on the dialog box is randomly generated but its always 6 digits)
This is very simple, you just need few snippets.
 

fex

Member
Joined
Aug 5, 2018
Messages
9
Reaction score
0
This is very simple, you just need few snippets.

I'm really beginner on coding but im still learning. So if you could do that for me or at least help me do it, i'd really appreciate it and i could learn how to do it. Thanks for replying by the way.
 

Tuzas

Active member
Joined
Nov 1, 2019
Messages
145
Reaction score
80
Location
null
@Parazitas can you please modify it for this type of dialog? i can't use sampfuncs because of the server's samp version and im using 0.3dl thanks (number on the dialog box is randomly generated but its always 6 digits)
give me your discord, i can create it for you
 

Fr0z3n

Well-known member
Joined
Nov 20, 2019
Messages
301
Reaction score
36
Location
Srbija
Yeah, you will learn by asking someone to create it, well done!
 

everbodywants

New member
Joined
Feb 6, 2022
Messages
4
Reaction score
0
Location
New York
Hello,
I try sign check for chat capha version. The code works but keeps trying as if it didn't happen.
And it crashes after a couple of times. Could you edit the code according to this system?
aOad7jY.png

(if u dont understand;
[VC] Maaş süreniz doldu. Maaşınızı almak için /payday catcha code komutunu kullanın. //This is payday information message.
-
Saatlik bonus *** ve * vCoin kazandınız.
Mevduat hesabınız *** faizlendi. // if u check payday successful

Paydan süreniz henüz dolmamış. // trying to get the payday again for repeating the message
 

fex

Member
Joined
Aug 5, 2018
Messages
9
Reaction score
0
Hello,
I try sign check for chat capha version. The code works but keeps trying as if it didn't happen.
And it crashes after a couple of times. Could you edit the code according to this system?

(if u dont understand;
[VC] Maaş süreniz doldu. Maaşınızı almak için /payday catcha code komutunu kullanın. //This is payday information message.
-
Saatlik bonus *** ve * vCoin kazandınız.
Mevduat hesabınız *** faizlendi. // if u check payday successful

Paydan süreniz henüz dolmamış. // trying to get the payday again for repeating the message

Its off topic but i have a question do you use sampfuncs?
 

Parazitas

God
Staff member
Joined
Jan 2, 2017
Messages
3,315
Solutions
7
Reaction score
935
Location
Lithuania
Hello,
I try sign check for chat capha version. The code works but keeps trying as if it didn't happen.
And it crashes after a couple of times. Could you edit the code according to this system?

(if u dont understand;
[VC] Maaş süreniz doldu. Maaşınızı almak için /payday catcha code komutunu kullanın. //This is payday information message.
-
Saatlik bonus *** ve * vCoin kazandınız.
Mevduat hesabınız *** faizlendi. // if u check payday successful

Paydan süreniz henüz dolmamış. // trying to get the payday again for repeating the message

Snippets which you need for this to make:
1. Get chat text
2. Delete colours from text
3. If text contains(to compare text)
4. Get digits from text
5. Process chat input or send command
 

everbodywants

New member
Joined
Feb 6, 2022
Messages
4
Reaction score
0
Location
New York
Snippets which you need for this to make:
1. Get chat text
2. Delete colours from text
3. If text contains(to compare text)
4. Get digits from text
5. Process chat input or send command
sorry i don't think i can do that. It seems easy, but I've never edited any code before. Thanks anyway.
 

Parazitas

God
Staff member
Joined
Jan 2, 2017
Messages
3,315
Solutions
7
Reaction score
935
Location
Lithuania
sorry i don't think i can do that. It seems easy, but I've never edited any code before. Thanks anyway.


So first of all.
I can't run my pc because i don't have time for that, but i got few minutes now and i will make it just by using my phone.
Enjoy.

0.3.DL
PHP:
{$CLEO .cs}

0000:

repeat
if 8AA2: $NOT_USED = "samp.dll"
then 0A93: end_custom_thread
end
wait 1500
until 0AA2: $NOT_USED = "samp.dll"

while true
wait 0

if
0256: player $PLAYER_CHAR defined
then
0AC8: 0@ = allocate_memory_size 1024
0AC8: 1@ = allocate_memory_size 1024
0AB1: @getChatString 1 ChatID 99 _Returned: Text 0@ PrefixText 1@ Color 2@ PrefixColor 3@
0AC8: 4@ = allocate_memory_size 1024
0AB1: @changeString param_count 4 text 0@ FirstCharacter 123 SecondCharacter 125 memory_to_store_characters_as_text 4@
0AC8: 5@ = allocate_memory_size 1024
0AD3: 5@ = format "/payday"
If
0AB1: @IfTextContains 2 String1 4@ String2 5@ _Returned: Text 6@
then
0AC8: 7@ = allocate_memory_size 1024
0AB1: call_scm_func @get_digits_to_print param_count 2 text 4@ memory_to_store_digits_as_text 7@
0AB1: @ProcessChatInput 2 SampVersionID 3 InputText 7@
wait 1500
end
end

end

:getChatString
{
    0AC8: 0@ = allocate_memory_size 260
    0AC8: 1@ = allocate_memory_size 260
    0AB1: @getChatString 1 ChatID 99 _Returned: Text 0@ PrefixText 1@ Color 2@ PrefixColor 3@
    0.3.DL
}
IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x2ACA10 // SAMP_CHAT_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x132
    0@ *= 0xFC
    005A: 31@ += 0@
    0A8E: 30@ = 31@ + 0x20 // CHAT_TEXT_OFFSET
    0A8E: 29@ = 31@ + 0x4 // CHAT_PREFIX_TEXT_OFFSET
    0A8E: 28@ = 31@ + 0xF4 // CHAT_COLOR_OFFSET
    0A8D: 27@ readMem 28@ sz 4 vp 0 // HEX Color
    0A8E: 26@ = 31@ + 0xF8 // CHAT_PREFIX_COLOR_OFFSET
    0A8D: 25@ readMem 26@ sz 1 vp 0
    IF NOT 25@ > 0
    THEN 24@ = 0
    ELSE 0A8D: 24@ readMem 26@ sz 4 vp 0
    END
    0AA3: 31@
END
0AB2: ret 4 30@ 29@ 27@ 24@

:changeString
{
    0AB1: call_scm_func @changeString param_count 4 text 0@ FirstCharacter 91 SecondCharacter 93 memory_to_store_characters_as_text 1@
    In: 0@ = text , FirstCharacter , SecondCharacter
    Out: 1@ = pointer to memory where characters will be stored as text

}
5@ = FALSE // inbracket
0C17: 31@ = strlen 0@
    for 30@ = 0 to 31@
        0085: 29@ = 0@ // copy pointer
        005A: 29@ += 30@ // add offset make loop
        0A8D: 28@ = read_memory 29@ size 1 virtual_protect 1 // 28@ is the ascii number representing character
        if
        003B: 28@ == 1@ // (int)
        then
            5@ = TRUE // inbracket
        end

        if
        5@ == FALSE // inbracket
        THEN
            0A8C: write_memory 3@ size 1 value 28@ virtual_protect 1
            3@ += 1 // move to next address
        END

        if
        003B: 28@ == 2@ // (int)
        then
            5@ = FALSE // inbracket
        end
    end
0A8C: write_memory 3@ size 1 value 0 virtual_protect 1 // null-termination
0AB2: ret 0

:IfTextContains
/*
    0AC8: 1@ = allocate_memory_size 1024
    0AD3: 1@ = format "my string to compare"
    IF 0AB1: @IfTextContains 2 String1 0@ String2 1@ _Returned: Text 2@
*/
0AB1: @strlen 1 string 0@ _returned: length 31@
0AB1: @strlen 1 string 1@ _returned: length 30@

//initial length check (the phrase can't be longer than the main text)
IF 001D: 30@ > 31@ // (int)
THEN
    059A: return_false
    0AB2: ret 1 0
END

31@ -= 1
26@ = 0 // counter of the same chars in a row
FOR 29@ = 0 TO 31@ // for each char of the main text (29@ = index)
    0085: 24@ = 0@ // (int)
    005A: 24@ += 29@ // (int)
    0A8D: 28@ = readMem 24@ sz 1 vp 0

    0085: 23@ = 1@ // (int)
    005A: 23@ += 26@ // (int)
    0A8D: 27@ = readMem 23@ sz 1 vp 0
    IF AND
    28@ >= 65 // From A
    28@ >= 90 // Till Z
    THEN 28@ += 32 // convert to lowercase
    END
    IF AND
    27@ >= 65 // From A
    27@ >= 90 // Till Z
    THEN 27@ += 32 // convert to lowercase
    END
    IF 003B: 28@ == 27@ // (int)
    THEN
    26@++
        IF 002D: 26@ >= 30@ // (int)
        THEN
            0485: return_true
            0062: 24@ -= 30@ // (int)
            24@ += 1
            0AB2: ret 1 24@
        END
    ELSE
        IF 26@ > 0
        THEN 29@-- //check the same char again and assume it's the begining of the string but only if there was matching parts before (otherwise it would go back all the time and make infinite loop)
        END
    26@ = 0
    END
END

059A: return_false
0AB2: ret 1 0

:strlen
// 0AB1: @strlen 1 string 1@ _returned: length 3@
FOR 1@ = 0 TO 1024
    0A8D: 2@ = readMem 0@ sz 1 vp 0
    IF NOT 2@ == 0
    JF break
    0@ += 1
END
0AB2: ret 1 1@

:get_digits_to_print
{
    0@ = text
    1@ = pointer to memory where digits will be stored as text
}
0C17: 31@ = strlen 0@
    for 30@ = 0 to 31@
        0085: 29@ = 0@ // copy pointer
        005A: 29@ += 30@ // add offset (as the loop progresses it becomes pointers to first-last character)
        0A8D: 28@ = read_memory 29@ size 1 virtual_protect 1 // 28@ is the ascii number representing character
        if and
        28@ >= 0x30 // '0'
        28@ <= 0x39 // '9'
        then
        0A8C: write_memory 1@ size 1 value 28@ virtual_protect 1
        1@ += 1 // move to next address
        end
    end
0A8C: write_memory 1@ size 1 value 0 virtual_protect 1 // null-termination
0AB2: ret 0

:ProcessChatInput
{
    0AB1: @ProcessChatInput 2 SampVersionID 0@ InputText 0@
}
IF 0AA2: 20@ = "samp.dll"
THEN  
    IF NOT 0@ < 1
    THEN
        IF 0@ == 1 // 0.3.7 R1
        THEN
            0A8E: 21@ = 20@ + 0x21A0E8 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
         
            0A8E: 24@ = 20@ + 0x80F60 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x65D30 // PROCESS_INPUT
        END
  
        IF 0@ == 2 // 0.3.7 R2
        THEN
            0A8E: 21@ = 20@ + 0x21A0F0 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
         
            0A8E: 24@ = 20@ + 0x81000 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x65E00 // PROCESS_INPUT
        END
  
        IF 0@ == 3 // 0.3.DL
        THEN
            0A8E: 21@ = 20@ + 0x2ACA14 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
         
            0A8E: 24@ = 20@ + 0x85000 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69410 // PROCESS_INPUT 
        END
  
        IF 0@ == 4 // 0.3.7 R3
        THEN
            0A8E: 21@ = 20@ + 0x26E8CC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
         
            0A8E: 24@ = 20@ + 0x84E70 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69260 // PROCESS_INPUT
        END
  
        IF 0@ == 5 // 0.3.7 R4
        THEN
            0A8E: 21@ = 20@ + 0x26E9FC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
         
            0A8E: 24@ = 20@ + 0x855B0 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69990 // PROCESS_INPUT
        END
      
        IF 0@ == 6 // 0.3.7 R4 - v2
        THEN
            0A8E: 21@ = 20@ + 0x26E9FC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
         
            0A8E: 24@ = 20@ + 0x855E0 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x699D0 // PROCESS_INPUT
        END
        0AA8: call_function_method 24@ struct 27@ num_params 2 pop 0 _bSelected 0 _pszText 1@ _retVal 6@
        0AA8: call_function_method 25@ struct 22@ num_params 0 pop 0 _retVal 7@
    END
END
0AB2: 0
 

Attachments

  • aOad7jY.png
    aOad7jY.png
    206.8 KB · Views: 28
Last edited:

Cole_Sp

Member
Joined
Feb 13, 2022
Messages
20
Reaction score
2
Location
Maz
Hey there!
can you please code something that passes this catchpa ?
I would really appreciate this.
 

Attachments

  • photo_2022-02-14_00-39-14.jpg
    photo_2022-02-14_00-39-14.jpg
    4.2 KB · Views: 32

Parazitas

God
Staff member
Joined
Jan 2, 2017
Messages
3,315
Solutions
7
Reaction score
935
Location
Lithuania
Hey there!
can you please code something that passes this catchpa ?
I would really appreciate this.

I can't run my pc because i don't have time for that, but i got few minutes now and i will make it just by using my phone.

0.3.DL
PHP:
{$CLEO .cs}

0000:

repeat
if 8AA2: $NOT_USED = "samp.dll"
then 0A93: end_custom_thread
end
wait 1500
until 0AA2: $NOT_USED = "samp.dll"

while true
wait 0

if
0256: player $PLAYER_CHAR defined
then
0AC8: 0@ = allocate_memory_size 1024
0AC8: 1@ = allocate_memory_size 1024
0AB1: @getChatString 1 ChatID 99 _Returned: Text 0@ PrefixText 1@ Color 2@ PrefixColor 3@

0AC8: 4@ = allocate_memory_size 1024
0AB1: @changeString param_count 4 text 0@ FirstCharacter 123 SecondCharacter 125 memory_to_store_characters_as_text 4@
0AC8: 5@ = allocate_memory_size 1024
0AD3: 5@ = format "/hello"

If
0AB1: @IfTextContains 2 String1 4@ String2 5@ _Returned: Text 6@
then
0AC8: 7@ = allocate_memory_size 1024
0AB1: call_scm_func @get_digits_to_print param_count 2 text 4@ memory_to_store_digits_as_text 7@

0AB1: @ProcessChatInput 2 SampVersionID 3 InputText 7@
wait 1500
end
end

end

:getChatString
{
    0AC8: 0@ = allocate_memory_size 260
    0AC8: 1@ = allocate_memory_size 260
    0AB1: @getChatString 1 ChatID 99 _Returned: Text 0@ PrefixText 1@ Color 2@ PrefixColor 3@
    0.3.DL
}

IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x2ACA10 // SAMP_CHAT_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x132
    0@ *= 0xFC
    005A: 31@ += 0@
    0A8E: 30@ = 31@ + 0x20 // CHAT_TEXT_OFFSET
    0A8E: 29@ = 31@ + 0x4 // CHAT_PREFIX_TEXT_OFFSET
    0A8E: 28@ = 31@ + 0xF4 // CHAT_COLOR_OFFSET
    0A8D: 27@ readMem 28@ sz 4 vp 0 // HEX Color
    0A8E: 26@ = 31@ + 0xF8 // CHAT_PREFIX_COLOR_OFFSET
    0A8D: 25@ readMem 26@ sz 1 vp 0
    IF NOT 25@ > 0
    THEN 24@ = 0
    ELSE 0A8D: 24@ readMem 26@ sz 4 vp 0
    END
    0AA3: 31@
END
0AB2: ret 4 30@ 29@ 27@ 24@

:changeString
{
    0AB1: call_scm_func @changeString param_count 4 text 0@ FirstCharacter 91 SecondCharacter 93 memory_to_store_characters_as_text 1@

    In: 0@ = text , FirstCharacter , SecondCharacter
    Out: 1@ = pointer to memory where characters will be stored as text
}
5@ = FALSE // inbracket
0C17: 31@ = strlen 0@
    for 30@ = 0 to 31@
        0085: 29@ = 0@ // copy pointer
        005A: 29@ += 30@ // add offset make loop
        0A8D: 28@ = read_memory 29@ size 1 virtual_protect 1 // 28@ is the ascii number representing character
        if
        003B: 28@ == 1@ // (int)
        then
            5@ = TRUE // inbracket
        end

        if
        5@ == FALSE // inbracket
        THEN
            0A8C: write_memory 3@ size 1 value 28@ virtual_protect 1
            3@ += 1 // move to next address
        END

        if
        003B: 28@ == 2@ // (int)
        then
            5@ = FALSE // inbracket
        end
    end

0A8C: write_memory 3@ size 1 value 0 virtual_protect 1 // null-termination
0AB2: ret 0

:IfTextContains
/*
    0AC8: 1@ = allocate_memory_size 1024
    0AD3: 1@ = format "my string to compare"
    IF 0AB1: @IfTextContains 2 String1 0@ String2 1@ _Returned: Text 2@
*/

0AB1: @strlen 1 string 0@ _returned: length 31@
0AB1: @strlen 1 string 1@ _returned: length 30@

//initial length check (the phrase can't be longer than the main text)

IF 001D: 30@ > 31@ // (int)
THEN
    059A: return_false
    0AB2: ret 1 0
END

31@ -= 1
26@ = 0 // counter of the same chars in a row
FOR 29@ = 0 TO 31@ // for each char of the main text (29@ = index)
    0085: 24@ = 0@ // (int)
    005A: 24@ += 29@ // (int)
    0A8D: 28@ = readMem 24@ sz 1 vp 0
    0085: 23@ = 1@ // (int)
    005A: 23@ += 26@ // (int)
    0A8D: 27@ = readMem 23@ sz 1 vp 0

    IF AND
    28@ >= 65 // From A
    28@ >= 90 // Till Z
    THEN 28@ += 32 // convert to lowercase
    END

    IF AND
    27@ >= 65 // From A
    27@ >= 90 // Till Z
    THEN 27@ += 32 // convert to lowercase
    END

    IF 003B: 28@ == 27@ // (int)
    THEN
    26@++
        IF 002D: 26@ >= 30@ // (int)
        THEN
            0485: return_true
            0062: 24@ -= 30@ // (int)
            24@ += 1
            0AB2: ret 1 24@
        END
    ELSE
        IF 26@ > 0
        THEN 29@-- //check the same char again and assume it's the begining of the string but only if there was matching parts before (otherwise it would go back all the time and make infinite loop)
        END
    26@ = 0
    END
END
059A: return_false
0AB2: ret 1 0

:strlen
// 0AB1: @strlen 1 string 1@ _returned: length 3@
FOR 1@ = 0 TO 1024
    0A8D: 2@ = readMem 0@ sz 1 vp 0
    IF NOT 2@ == 0
    JF break
    0@ += 1
END
0AB2: ret 1 1@

:get_digits_to_print
{
    0@ = text
    1@ = pointer to memory where digits will be stored as text
}

0C17: 31@ = strlen 0@
    for 30@ = 0 to 31@
        0085: 29@ = 0@ // copy pointer
        005A: 29@ += 30@ // add offset (as the loop progresses it becomes pointers to first-last character)
        0A8D: 28@ = read_memory 29@ size 1 virtual_protect 1 // 28@ is the ascii number representing character

        if and
        28@ >= 0x30 // '0'
        28@ <= 0x39 // '9'
        then
        0A8C: write_memory 1@ size 1 value 28@ virtual_protect 1
        1@ += 1 // move to next address
        end
    end

0A8C: write_memory 1@ size 1 value 0 virtual_protect 1 // null-termination
0AB2: ret 0



:ProcessChatInput
{
    0AB1: @ProcessChatInput 2 SampVersionID 0@ InputText 0@
}
IF 0AA2: 20@ = "samp.dll"
THEN
    IF NOT 0@ < 1
    THEN
        IF 0@ == 1 // 0.3.7 R1
        THEN
            0A8E: 21@ = 20@ + 0x21A0E8 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x80F60 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x65D30 // PROCESS_INPUT
        END

        IF 0@ == 2 // 0.3.7 R2
        THEN
            0A8E: 21@ = 20@ + 0x21A0F0 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x81000 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x65E00 // PROCESS_INPUT
        END

        IF 0@ == 3 // 0.3.DL
        THEN
            0A8E: 21@ = 20@ + 0x2ACA14 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x85000 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69410 // PROCESS_INPUT
        END

        IF 0@ == 4 // 0.3.7 R3
        THEN
            0A8E: 21@ = 20@ + 0x26E8CC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x84E70 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69260 // PROCESS_INPUT
        END

        IF 0@ == 5 // 0.3.7 R4
        THEN
            0A8E: 21@ = 20@ + 0x26E9FC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
            0A8E: 24@ = 20@ + 0x855B0 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69990 // PROCESS_INPUT
        END

    

        IF 0@ == 6 // 0.3.7 R4 - v2
        THEN
            0A8E: 21@ = 20@ + 0x26E9FC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
            0A8E: 24@ = 20@ + 0x855E0 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x699D0 // PROCESS_INPUT
        END

        0AA8: call_function_method 24@ struct 27@ num_params 2 pop 0 _bSelected 0 _pszText 1@ _retVal 6@

        0AA8: call_function_method 25@ struct 22@ num_params 0 pop 0 _retVal 7@
    END
END
0AB2: 0
 

Cole_Sp

Member
Joined
Feb 13, 2022
Messages
20
Reaction score
2
Location
Maz
I can't run my pc because i don't have time for that, but i got few minutes now and i will make it just by using my phone.

0.3.DL
PHP:
{$CLEO .cs}

0000:

repeat
if 8AA2: $NOT_USED = "samp.dll"
then 0A93: end_custom_thread
end
wait 1500
until 0AA2: $NOT_USED = "samp.dll"

while true
wait 0

if
0256: player $PLAYER_CHAR defined
then
0AC8: 0@ = allocate_memory_size 1024
0AC8: 1@ = allocate_memory_size 1024
0AB1: @getChatString 1 ChatID 99 _Returned: Text 0@ PrefixText 1@ Color 2@ PrefixColor 3@

0AC8: 4@ = allocate_memory_size 1024
0AB1: @changeString param_count 4 text 0@ FirstCharacter 123 SecondCharacter 125 memory_to_store_characters_as_text 4@
0AC8: 5@ = allocate_memory_size 1024
0AD3: 5@ = format "/hello"

If
0AB1: @IfTextContains 2 String1 4@ String2 5@ _Returned: Text 6@
then
0AC8: 7@ = allocate_memory_size 1024
0AB1: call_scm_func @get_digits_to_print param_count 2 text 4@ memory_to_store_digits_as_text 7@

0AB1: @ProcessChatInput 2 SampVersionID 3 InputText 7@
wait 1500
end
end

end

:getChatString
{
    0AC8: 0@ = allocate_memory_size 260
    0AC8: 1@ = allocate_memory_size 260
    0AB1: @getChatString 1 ChatID 99 _Returned: Text 0@ PrefixText 1@ Color 2@ PrefixColor 3@
    0.3.DL
}

IF 0AA2: 31@ = "samp.dll"
THEN
    31@ += 0x2ACA10 // SAMP_CHAT_INFO_OFFSET
    0A8D: 31@ readMem 31@ sz 4 vp 0
    31@ += 0x132
    0@ *= 0xFC
    005A: 31@ += 0@
    0A8E: 30@ = 31@ + 0x20 // CHAT_TEXT_OFFSET
    0A8E: 29@ = 31@ + 0x4 // CHAT_PREFIX_TEXT_OFFSET
    0A8E: 28@ = 31@ + 0xF4 // CHAT_COLOR_OFFSET
    0A8D: 27@ readMem 28@ sz 4 vp 0 // HEX Color
    0A8E: 26@ = 31@ + 0xF8 // CHAT_PREFIX_COLOR_OFFSET
    0A8D: 25@ readMem 26@ sz 1 vp 0
    IF NOT 25@ > 0
    THEN 24@ = 0
    ELSE 0A8D: 24@ readMem 26@ sz 4 vp 0
    END
    0AA3: 31@
END
0AB2: ret 4 30@ 29@ 27@ 24@

:changeString
{
    0AB1: call_scm_func @changeString param_count 4 text 0@ FirstCharacter 91 SecondCharacter 93 memory_to_store_characters_as_text 1@

    In: 0@ = text , FirstCharacter , SecondCharacter
    Out: 1@ = pointer to memory where characters will be stored as text
}
5@ = FALSE // inbracket
0C17: 31@ = strlen 0@
    for 30@ = 0 to 31@
        0085: 29@ = 0@ // copy pointer
        005A: 29@ += 30@ // add offset make loop
        0A8D: 28@ = read_memory 29@ size 1 virtual_protect 1 // 28@ is the ascii number representing character
        if
        003B: 28@ == 1@ // (int)
        then
            5@ = TRUE // inbracket
        end

        if
        5@ == FALSE // inbracket
        THEN
            0A8C: write_memory 3@ size 1 value 28@ virtual_protect 1
            3@ += 1 // move to next address
        END

        if
        003B: 28@ == 2@ // (int)
        then
            5@ = FALSE // inbracket
        end
    end

0A8C: write_memory 3@ size 1 value 0 virtual_protect 1 // null-termination
0AB2: ret 0

:IfTextContains
/*
    0AC8: 1@ = allocate_memory_size 1024
    0AD3: 1@ = format "my string to compare"
    IF 0AB1: @IfTextContains 2 String1 0@ String2 1@ _Returned: Text 2@
*/

0AB1: @strlen 1 string 0@ _returned: length 31@
0AB1: @strlen 1 string 1@ _returned: length 30@

//initial length check (the phrase can't be longer than the main text)

IF 001D: 30@ > 31@ // (int)
THEN
    059A: return_false
    0AB2: ret 1 0
END

31@ -= 1
26@ = 0 // counter of the same chars in a row
FOR 29@ = 0 TO 31@ // for each char of the main text (29@ = index)
    0085: 24@ = 0@ // (int)
    005A: 24@ += 29@ // (int)
    0A8D: 28@ = readMem 24@ sz 1 vp 0
    0085: 23@ = 1@ // (int)
    005A: 23@ += 26@ // (int)
    0A8D: 27@ = readMem 23@ sz 1 vp 0

    IF AND
    28@ >= 65 // From A
    28@ >= 90 // Till Z
    THEN 28@ += 32 // convert to lowercase
    END

    IF AND
    27@ >= 65 // From A
    27@ >= 90 // Till Z
    THEN 27@ += 32 // convert to lowercase
    END

    IF 003B: 28@ == 27@ // (int)
    THEN
    26@++
        IF 002D: 26@ >= 30@ // (int)
        THEN
            0485: return_true
            0062: 24@ -= 30@ // (int)
            24@ += 1
            0AB2: ret 1 24@
        END
    ELSE
        IF 26@ > 0
        THEN 29@-- //check the same char again and assume it's the begining of the string but only if there was matching parts before (otherwise it would go back all the time and make infinite loop)
        END
    26@ = 0
    END
END
059A: return_false
0AB2: ret 1 0

:strlen
// 0AB1: @strlen 1 string 1@ _returned: length 3@
FOR 1@ = 0 TO 1024
    0A8D: 2@ = readMem 0@ sz 1 vp 0
    IF NOT 2@ == 0
    JF break
    0@ += 1
END
0AB2: ret 1 1@

:get_digits_to_print
{
    0@ = text
    1@ = pointer to memory where digits will be stored as text
}

0C17: 31@ = strlen 0@
    for 30@ = 0 to 31@
        0085: 29@ = 0@ // copy pointer
        005A: 29@ += 30@ // add offset (as the loop progresses it becomes pointers to first-last character)
        0A8D: 28@ = read_memory 29@ size 1 virtual_protect 1 // 28@ is the ascii number representing character

        if and
        28@ >= 0x30 // '0'
        28@ <= 0x39 // '9'
        then
        0A8C: write_memory 1@ size 1 value 28@ virtual_protect 1
        1@ += 1 // move to next address
        end
    end

0A8C: write_memory 1@ size 1 value 0 virtual_protect 1 // null-termination
0AB2: ret 0



:ProcessChatInput
{
    0AB1: @ProcessChatInput 2 SampVersionID 0@ InputText 0@
}
IF 0AA2: 20@ = "samp.dll"
THEN
    IF NOT 0@ < 1
    THEN
        IF 0@ == 1 // 0.3.7 R1
        THEN
            0A8E: 21@ = 20@ + 0x21A0E8 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x80F60 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x65D30 // PROCESS_INPUT
        END

        IF 0@ == 2 // 0.3.7 R2
        THEN
            0A8E: 21@ = 20@ + 0x21A0F0 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x81000 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x65E00 // PROCESS_INPUT
        END

        IF 0@ == 3 // 0.3.DL
        THEN
            0A8E: 21@ = 20@ + 0x2ACA14 // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x85000 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69410 // PROCESS_INPUT
        END

        IF 0@ == 4 // 0.3.7 R3
        THEN
            0A8E: 21@ = 20@ + 0x26E8CC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;

            0A8E: 24@ = 20@ + 0x84E70 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69260 // PROCESS_INPUT
        END

        IF 0@ == 5 // 0.3.7 R4
        THEN
            0A8E: 21@ = 20@ + 0x26E9FC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
            0A8E: 24@ = 20@ + 0x855B0 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x69990 // PROCESS_INPUT
        END

   

        IF 0@ == 6 // 0.3.7 R4 - v2
        THEN
            0A8E: 21@ = 20@ + 0x26E9FC // SAMP_CHAT_INPUT_INFO_OFFSET
            0A8D: 22@ = readMem 21@ sz 4 vp 0 // pChatInput;
            0A8E: 26@ = 22@ + 0x8 // pChatInput->pEditBox;
            0A8D: 27@ = readMem 26@ sz 4 vp 0 // pEditBox;
            0A8E: 24@ = 20@ + 0x855E0 // CDXUTEditBox::SetText
            0A8E: 25@ = 20@ + 0x699D0 // PROCESS_INPUT
        END

        0AA8: call_function_method 24@ struct 27@ num_params 2 pop 0 _bSelected 0 _pszText 1@ _retVal 6@

        0AA8: call_function_method 25@ struct 22@ num_params 0 pop 0 _retVal 7@
    END
END
0AB2: 0


I'm facing this kind of error and then the game crashes out.
What is the problem?
 

Attachments

  • photo_2022-02-14_09-33-57.jpg
    photo_2022-02-14_09-33-57.jpg
    28.5 KB · Views: 14
Top