I forgot what this site is even and I return to this gem wtf sobfox imma go cry broEnjoy!
Download in the video description
I forgot what this site is even and I return to this gem wtf sobfox imma go cry broEnjoy!
Download in the video description
pls help me this auto sign check , i use 0.3DL and make cleo press "DAY" = on/off , 60sec auto /paydayAny
Pic??
This is very simple, you just need few snippets.@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.
give me your discord, i can create it for you@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
give me your discord, i can create it for you
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
noIts off topic but i have a question do you use sampfuncs?
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
sorry i don't think i can do that. It seems easy, but I've never edited any code before. Thanks anyway.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.
{$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
Hey there!
can you please code something that passes this catchpa ?
I would really appreciate this.
{$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 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 will check laterI'm facing this kind of error and then the game crashes out.
What is the problem?