[Разработка] 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
|
Годно,+ заслужил,спасибо!
|
|
|
|
[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.
Как-то так, осилить можно, зная размер структуры. Я даже бы и сам мог сделать, но сейчас пытаюсь решить проблему с зависанием окна сампа когда часто перезаписываешь 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 }
|
|
|
|