1

Тема: Дополнительный параметр в addMessageToChatWindow

Приветствую мастера.
Нужно в фунцию добавить цвет сообщения, знаю что такое возможно, но каким образом не понимаю, пробывал добавить параметр, двигать его, ничего не выходит, либо не выводит сообщение, либо системного цвета. Помогите.


addMessageToChatWindow2(Color, wText) {
    wText := "" wText

    if(!checkHandles())
        return false
    
    dwFunc := dwSAMP + FUNC_SAMP_ADDTOCHATWND
    dwChatInfo := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return false
    }
    
    callWithParams(hGTA, dwFunc, [["p", dwChatInfo], ["s", wText], ["i", Color]], true)
    
    ErrorLevel := ERROR_OK
    return true
}

2

Re: Дополнительный параметр в addMessageToChatWindow

addChatMessage(wText) {
    wText := "" wText

    if(!checkHandles())
        return false
    
    dwFunc := dwSAMP + FUNC_SAMP_ADDTOCHATWND
    dwChatInfo := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return false
    }
    
    callWithParams(hGTA, dwFunc, [["p", dwChatInfo], ["s", wText]], true)
    
    ErrorLevel := ERROR_OK
    return true
}

Затем просто делаешь так

addChatMessage("{AFEEEE}asd!")

3

Re: Дополнительный параметр в addMessageToChatWindow

ghost29 для особо умных говорю, нужно чтобы цвет задавался в параметре и изменял цвет всего сообщения, т.е. и /timestamp.

4

Re: Дополнительный параметр в addMessageToChatWindow

HexToDec(str)
{   
    local newStr := ""
    static comp := {0:0, 1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7, 8:8, 9:9, "a":10, "b":11, "c":12, "d":13, "e":14, "f":15}
    StringLower, str, str
    str := RegExReplace(str, "^0x|[^a-f0-9]+", "")
    Loop, % StrLen(str)
        newStr .= SubStr(str, (StrLen(str)-A_Index)+1, 1)
    newStr := StrSplit(newStr, "")
    local ret := 0
    for i,char in newStr
        ret += comp[char]*(16**(i-1))
    return ret
}
addMessageToChatWindow2(Color, wText) {
    wText := "" wText

    if(!checkHandles())
        return false
    
    VarSetCapacity(data2, 4, 0)
    NumPut(HexToDec(Color),data2,0,"Int")
    VarSetCapacity(data1, 4, 0)
    NumPut(4289316068,data1,0,"Int") 
    dwFunc := dwSAMP + FUNC_SAMP_ADDTOCHATWND
    Addrr := readDWORD(hGTA, dwSAMP+ADDR_SAMP_CHATMSG_PTR)
    WriteRaw(hGTA, Addrr + 0x12A, &data2, 4)
    dwChatInfo := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR)
    if(ErrorLevel) {
        ErrorLevel := ERROR_READ_MEMORY
        return false
    }
    
    callWithParams(hGTA, dwFunc, [["p", dwChatInfo], ["s", wText]], true)
    ErrorLevel := ERROR_OK
    WriteRaw(hGTA, Addrr + 0x12A, &data1, 4)
    return true
}
addMessageToChatWindow2("FFFFFF", "Hello my {FFD700}FRIENDS{FFFFFF}!")