[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018 - Страница 16 - Форум Cheat-Master.ru
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Разработка] SAMP UDF | Дорабатываем вместе! | От 04.02.2018
[CM]MurKotik Дата: Воскресенье, 25.06.2017, 17:17 | Сообщение # 226
Murkot Develop
Сообщений: 252
Статус: Offline
Ghost29, Добавил
aknqkzxlcs_21, Добавил но сменил на setChatState


-------------------

Ушёл в себя, вернусь поздно и пьяный!
Coockie Дата: Воскресенье, 25.06.2017, 22:26 | Сообщение # 227
Новичок
Сообщений: 27
Статус: Offline
Просьба обновить функцию curl()
Ссылка - http://dumpz.org/2620004/
Что нового:
Делает проверку на интернет-соединение
Делает проверку на пустоту адреса
Получает сжатый текст в .zip архиве, что сокращает трафик в 2-3 раза.
Делает проверку на пустоту ответа.
По желанию можно включить полный ответ ошибки (error_msg = true)
Пример:
Код

var := curl("GET", "http://vk.com/")
MsgBox, % var

Или:
Код

var := curl("POST", "http://api.vk.com/method/messages.Send?user_id=422487082&message=Hello!")
MsgBox, % var

Или (с включенными пояснениями ошибок):
Код

var := curl("GET", "http://localhost", true)
MsgBox, % var


Сообщение отредактировал Coockie - Воскресенье, 25.06.2017, 23:05
Ksardas Дата: Понедельник, 26.06.2017, 08:57 | Сообщение # 228
麵包和共振
Сообщений: 1311
Статус: Offline
Годно,+ заслужил,спасибо!
happy
[CM]MurKotik Дата: Вторник, 27.06.2017, 08:22 | Сообщение # 229
Murkot Develop
Сообщений: 252
Статус: Offline
Coockie, +

-------------------

Ушёл в себя, вернусь поздно и пьяный!
aknqkzxlcs_21 Дата: Пятница, 30.06.2017, 20:25 | Сообщение # 230
Боец
Сообщений: 57
Статус: Offline
Цитата [CM ()
MurKotik;4284415]aknqkzxlcs_21, Добавил но сменил на setChatState

get - получить (получить состояние чата), set - установить (установить состояние чата)
название функции setChatState() , чтобы получить состояние чата, будет некорректным

getChatLineEx(номер строки) - читает чат из памяти, а не из чатлога

getChatLineEx() - вернет последнюю строку из чата, тоже самое - getChatLineEx(0)
номер строки от 0 до 99
чем выше номер, тем выше строка

Код
getChatLineEx(line := 0) {
    ; 0x152 - offset for first message
    ; 0xFC - size of a message
    ; 99 - max count of a messages
    if(!checkHandles())
        return
    dwPtr := dwSAMP + ADDR_SAMP_CHATMSG_PTR
    dwAddress := readDWORD(hGTA, dwPtr)
    if(ErrorLevel)
        return
    msg := readString(hGTA, dwAddress + 0x152 + ( (99-line) * 0xFC), 0xFC)
    if(ErrorLevel)
        return
    return msg
}


Сообщение отредактировал aknqkzxlcs_21 - Пятница, 30.06.2017, 20:29
tumkin Дата: Пятница, 30.06.2017, 20:30 | Сообщение # 231
Tumkin Project
Сообщений: 1186
Статус: Offline
aknqkzxlcs_21, на основе этого можно еще допилить функцию подмены строк в чатлоге, или же удаление (смещение массива делать)

tumkin Дата: Пятница, 30.06.2017, 20:39 | Сообщение # 232
Tumkin Project
Сообщений: 1186
Статус: Offline
И еще несколько вопросов. Зачем в SAMP UDF функци curl? если она никак не относится к GTA (SAMP)
save(chatlog) - как я понял это просто сохранение чатлога с определенной датой. Неверное описание, и функцию можно было бы переименовать saveChatLog
ProcessWriteMemory, ProcessReadMemory эти функции уже есть и в стандартном самп удф.


aknqkzxlcs_21 Дата: Пятница, 30.06.2017, 23:25 | Сообщение # 233
Боец
Сообщений: 57
Статус: Offline
Цитата tumkin ()
aknqkzxlcs_21, на основе этого можно еще допилить функцию подмены строк в чатлоге, или же удаление (смещение массива делать)

setChatLine уже есть, её и переделал в getChatLineEx по просьбе человека
getChatLine тоже есть, но читает из чатлога по расположению %A_MyDocuments%\GTA San Andreas User Files\SAMP\chatlog.txt что может вызывать у многих проблемы

смещение (удаление строки из чата) будет сделать гораздо труднее, но может осилю

про curl и save согласен, такие функции делаются независимо от udf, а так только нагружают его


Сообщение отредактировал aknqkzxlcs_21 - Пятница, 30.06.2017, 23:27
tumkin Дата: Суббота, 01.07.2017, 03:03 | Сообщение # 234
Tumkin Project
Сообщений: 1186
Статус: Offline
Цитата aknqkzxlcs_21 ()
смещение (удаление строки из чата) будет сделать гораздо труднее, но может осилю

записать массив строк(весь), удалить строку (заменить пустой), те что выше ниже, записать сразу весь массив numput.

Код
М
A
УДАЛЯЕМ
В
А


Код
М
А
-
В
А


Код
М
А
В
А


Как-то так, осилить можно, зная размер структуры.
Я даже бы и сам мог сделать, но сейчас пытаюсь решить проблему с зависанием окна сампа когда часто перезаписываешь float данные. Да и может как-нибудь на днях можно было бы оптимизировать сам SAMP UDF там много функций, которые однотипны.


aknqkzxlcs_21 Дата: Суббота, 01.07.2017, 07:10 | Сообщение # 235
Боец
Сообщений: 57
Статус: Offline
сделал наброски, удаляет последнюю строку из чата, работает долго, нужно поработать над ней еще
Код
removeChatLine(line := 0)
{
    if(!checkHandles())
        return false
    if(!dwAddress := readDWORD(hGTA, dwSAMP + ADDR_SAMP_CHATMSG_PTR))
        return false
    loop % 100 - line
    {
        a := ""
        dwLine := dwAddress + 0x132 + ( (99 - A_Index - line) * 0xFC )
        loop 0xFC
        {
            byte := substr(inttohex(Memory_ReadByte(hGTA, dwLine++)), 3)
            a .= (strlen(byte) == 1 ? "0" : "") byte
        }
        dwLine := dwAddress + 0x132 + ( (100 - A_Index - line) * 0xFC )
        writeBytes(hGTA, dwLine, a)
    }
    sendinput {f7 3} ; 3 - без соба, 4 - есть собейт
    return true
}


upd: removeChatLine() удаляет последнюю строку как и removeChatLine(0)
removeChatLine(1) - предпоследнюю строку, 2 - третью снизу и так далее

upd:
использование:
removeChatLine() или removeChatLine(номер строки)
примечание: номер строки от 0 до 99


Сообщение отредактировал aknqkzxlcs_21 - Суббота, 01.07.2017, 08:00
[CM]MurKotik Дата: Суббота, 01.07.2017, 11:26 | Сообщение # 236
Murkot Develop
Сообщений: 252
Статус: Offline
Цитата aknqkzxlcs_21 ()
get - получить (получить состояние чата), set - установить (установить состояние чата)
название функции setChatState() , чтобы получить состояние чата, будет некорректным


Окей, верну на get )

Цитата tumkin ()
И еще несколько вопросов. Зачем в SAMP UDF функци curl? если она никак не относится к GTA (SAMP)


Уберу из основного УДФА, создадим отдельный инклуид

Цитата tumkin ()
save(chatlog) - как я понял это просто сохранение чатлога с определенной датой. Неверное описание, и функцию можно было бы переименовать saveChatLog


исправил

Цитата tumkin ()
ProcessWriteMemory, ProcessReadMemory эти функции уже есть и в стандартном самп удф.


Пока уберать не буду

aknqkzxlcs_21, Добавил


-------------------

Ушёл в себя, вернусь поздно и пьяный!
Coockie Дата: Суббота, 01.07.2017, 18:48 | Сообщение # 237
Новичок
Сообщений: 27
Статус: Offline
Объясните кто-нибудь 0нектоТ пж
http://prntscr.com/fqeshd
[CM]MurKotik Дата: Воскресенье, 02.07.2017, 16:31 | Сообщение # 238
Murkot Develop
Сообщений: 252
Статус: Offline
Coockie, Это я затупил )) исправлю ша

-------------------

Ушёл в себя, вернусь поздно и пьяный!
Coockie Дата: Воскресенье, 02.07.2017, 18:37 | Сообщение # 239
Новичок
Сообщений: 27
Статус: Offline
[CM]MurKotik, спс!)!)!))!)
aknqkzxlcs_21 Дата: Воскресенье, 02.07.2017, 22:56 | Сообщение # 240
Боец
Сообщений: 57
Статус: Offline
NOP_SetPlayerPos() - если включен, то сервер не может вас телепортировать куда-либо (спасибо komnatq за наводку)
еще наделаю нопов чуть позже

Код
NOP_SetPlayerPos(tog := -1)
{
    if(!checkHandles())
        return -1
    dwAddress := dwSAMP+0x15970
    byte := readMem(hGTA, dwAddress, 1, "byte")
    if((tog == -1 && byte != 195) || tog == true || tog == 1)
    {
        writeBytes(hGTA, dwAddress, "C390")
        return true
    } else if((tog == -1 && byte == 195) || !tog)
    {
        writeBytes(hGTA, dwAddress, "E910")
        return false
    }
    return -1
}
Поиск:
Статистика Форума