[Помощь] Баг диалогов samp-udf
|
|
[CM]DonHomka |
Дата: Вторник, 14.02.2017, 14:15 | Сообщение # 1
|
Любитель
Сообщений: 39
Статус: Offline
|
Приветствую мастеров этого портала. Долгое время никто не уделял время проблеме с диалогами. Видите ли, у меня и у некоторых моих пользователей возникла огромная проблема с ShowDialog(), а именно при попытке показать диалог игра банально зависала.
Код showDialog(style, caption, text, button1, button2 = "", id = 1) { style += 0 style := Floor(style) id += 0 id := Floor(id) caption := "" caption text := "" text button1 := "" button1 button2 := "" button2
if (id < 0 || id > 32767 || style < 0 || style > 5 || StrLen(caption) > 64 || StrLen(text) > 4096 || StrLen(button1) > 10 || StrLen(button2) > 10) return false
if (!checkHandles()) return false
dwFunc := dwSAMP + FUNC_SAMP_SHOWDIALOG
dwAddress := readDWORD(hGTA, dwSAMP + SAMP_DIALOG_STRUCT_PTR) if (ErrorLevel || !dwAddress) { ErrorLevel := ERROR_READ_MEMORY return false }
writeString(hGTA, pParam5, caption) if (ErrorLevel) return false writeString(hGTA, pParam1, text) if (ErrorLevel) return false writeString(hGTA, pParam5 + 512, button1) if (ErrorLevel) return false writeString(hGTA, pParam5+StrLen(caption)+1, button2) if (ErrorLevel) return false
;mov + 7 * push + call + retn dwLen := 5 + 7 * 5 + 5 + 1 VarSetCapacity(injectData, dwLen, 0)
NumPut(0xB9, injectData, 0, "UChar") ;0 + 1 ;mov ecx NumPut(dwAddress, injectData, 1, "UInt") ;1 + 4 NumPut(0x68, injectData, 5, "UChar") ;5 + 1 ;push send NumPut(0, injectData, 6, "UInt") ;6 + 4 NumPut(0x68, injectData, 10, "UChar") ;10 + 1 ;push button2 NumPut(pParam5+StrLen(caption)+1, injectData, 11, "UInt") ;11 + 4 NumPut(0x68, injectData, 15, "UChar") ;15 + 1 ;push button1 NumPut(pParam5 + 512, injectData, 16, "UInt") ;16 + 4 NumPut(0x68, injectData, 20, "UChar") ;20 + 1 ;push text NumPut(pParam1, injectData, 21, "UInt") ;21 + 4 NumPut(0x68, injectData, 25, "UChar") ;25 + 1 ;push caption NumPut(pParam5, injectData, 26, "UInt") ;26 + 4 NumPut(0x68, injectData, 30, "UChar") ;30 + 1 ;push style NumPut(style, injectData, 31, "UInt") ;31 + 4 NumPut(0x68, injectData, 35, "UChar") ;35 + 1 ;push id NumPut(id, injectData, 36, "UInt") ;36 + 4
NumPut(0xE8, injectData, 40, "UChar") ;40 + 1 ;call offset := dwFunc - (pInjectFunc + 45) NumPut(offset, injectData, 41, "Int") ;41 + 4 NumPut(0xC3, injectData, 45, "UChar") ;45 + 1 ;retn
writeRaw(hGTA, pInjectFunc, &injectData, dwLen) if (ErrorLevel) return false
hThread := createRemoteThread(hGTA, 0, 0, pInjectFunc, 0, 0, 0) if (ErrorLevel) return false waitForSingleObject(hThread, 0xFFFFFFFF) closeProcess(hThread)
return true } Как я только не эксперементировал с функцией, менял значения, типы данных, дописывал свои наработки. Всё в пустую. ГТА чистая. Стиллеров нет. Надеюсь на вашу помощь господа.
|
|
|
|
McFree_ |
Дата: Вторник, 14.02.2017, 14:55 | Сообщение # 2
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
Скажу честно, не зная как правильно работать с памятью не стоит лезть в UDF. Чем тебя стандартная функция не устроила?
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
[CM]DonHomka |
Дата: Вторник, 14.02.2017, 14:59 | Сообщение # 3
|
Любитель
Сообщений: 39
Статус: Offline
|
McFree_, а это не стандартная функция? Она как раз и подводит. Менял код чтобы хоть как-то попробывать исправить ситуацию. Игра как зависала, так и зависает.
|
|
|
|
McFree_ |
Дата: Вторник, 14.02.2017, 16:13 | Сообщение # 4
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
[CM]DonHomka, строку скинь с диалогом который ты выводить пытаешься
Помогаю новичкам! По всем вопросам в ЛС!
Сообщение отредактировал McFree_ - Вторник, 14.02.2017, 16:13 |
|
|
|
[CM]DonHomka |
Дата: Вторник, 14.02.2017, 17:58 | Сообщение # 5
|
Любитель
Сообщений: 39
Статус: Offline
|
Код showDialog(0, "{FFC801}Помощь", "{FFFFFF}/uhelp`t`t`tИнформация`n/i [id игрока]`t`tКраткая информация о игроке`n------------------------------------------------------------------------------------------`n/ck add [ранг]`t`tДобавить несколько игроков на проверку`n/ck list`t`t`tПоказать список игроков на проверке`n/ck list 1`t`tПоказать в чате игроков на проверке`n/ck off`t`t`tПрекратить проверку всех игроков`n/ck [id игрока]`t`tДобавть/удалить отдельного игрока`n------------------------------------------------------------------------------------------`n/cn [id игрока]`t`tКопировать ник игрока`n/cn [id игрока] 1`tКопировать РП ник игрока`n`t`t`t`t`t`t* Используйте CTRL+V`n------------------------------------------------------------------------------------------`nГорячие клавиши / бинды:`nCTRL + D`t`t/ck add`nCTRL + L`t`t/ck list`nCTRL + O`t`t/ck off", "Закрыть") Забыл сказать что ИНОГДА, окно показывается без каких либо проблем. Но это редкая удача.
|
|
|
|
McFree_ |
Дата: Вторник, 14.02.2017, 19:21 | Сообщение # 6
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
[CM]DonHomka, попробуй так:
Код showDialog(0, "{FFC801}Помощь", "{FFFFFF}/uhelp`t`t`tИнформация`n/i [id игрока]`t`tКраткая информация о игроке`n------------------------------------------------------------------------------------------`n/ck add [ранг]`t`tДобавить несколько игроков на проверку`n/ck list`t`t`tПоказать список игроков на проверке`n/ck list 1`t`tПоказать в чате игроков на проверке`n/ck off`t`t`tПрекратить проверку всех игроков`n/ck [id игрока]`t`tДобавть/удалить отдельного игрока`n------------------------------------------------------------------------------------------`n/cn [id игрока]`t`tКопировать ник игрока`n/cn [id игрока] 1`tКопировать РП ник игрока`n`t`t`t`t`t`t* Используйте CTRL+V`n------------------------------------------------------------------------------------------`nГорячие клавиши / бинды:`nCTRL + D`t`t/ck add`nCTRL + L`t`t/ck list`nCTRL + O`t`t/ck off", "Закрыть", "", "0")
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
[CM]DonHomka |
Дата: Вторник, 14.02.2017, 19:55 | Сообщение # 7
|
Любитель
Сообщений: 39
Статус: Offline
|
McFree_, нету разницы. И "0" бессмыслено, ибо в инклюде всё равно в число приобразуется
|
|
|
|
McFree_ |
Дата: Вторник, 14.02.2017, 20:21 | Сообщение # 8
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
[CM]DonHomka, всякое бывает, процессор мощный?
Помогаю новичкам! По всем вопросам в ЛС!
Сообщение отредактировал McFree_ - Вторник, 14.02.2017, 20:21 |
|
|
|
CZAR |
Дата: Вторник, 14.02.2017, 20:22 | Сообщение # 9
|
Czar Of Scripts
Сообщений: 1373
Статус: Offline
|
А что если так:
Код text = ( {FFFFFF}/uhelp`t`t`tИнформация /i [id игрока]`t`tКраткая информация о игроке ------------------------------------------------------------------------------------------ /ck add [ранг]`t`tДобавить несколько игроков на проверку /ck list`t`t`tПоказать список игроков на проверке /ck list 1`t`tПоказать в чате игроков на проверке /ck off`t`t`tПрекратить проверку всех игроков /ck [id игрока]`t`tДобавть/удалить отдельного игрока ------------------------------------------------------------------------------------------ /cn [id игрока]`t`tКопировать ник игрока /cn [id игрока] 1`tКопировать РП ник игрока`n`t`t`t`t`t`t* Используйте CTRL+V ------------------------------------------------------------------------------------------ Горячие клавиши / бинды: CTRL + D`t`t/ck add CTRL + L`t`t/ck list CTRL + O`t`t/ck off ) showDialog(0, "{FFC801}Помощь", text, "Закрыть")
Я в ВК Ушел в веб.
• Ничего не покупаю. • Способы не проверяю.
У меня теперь новый домен, если ссылка не работает - напишите.
Гарант Cheat-Master: *тема* AHK [S-RP] House Finder / House Teleporter [SAMP] Online Counter [S-RP] [For Event] Show Star [S-RP] AntiCasino [S-RP] [BOT] Auto Fisher + Auto Find Worm + Auto Cook [S-RP] [BOT] /dance Winner | Делаем розыгрыши среди участников темы. SAMP-UDF [AHK Урок] Выбор в диалогах мышкой и enter`ом [SAMP] Быстрый ответ на СМС [ERP] Помощник для адвоката [DRP] FakeTime Достижения: - 26.02.2017 - 03.01.2018 - 26.05.2018 - 22.09.2018 - 04.04.2019
|
|
|
|
McFree_ |
Дата: Вторник, 14.02.2017, 21:19 | Сообщение # 10
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
Как варант еще проверить версию AHK,GTA,SAMP,Наличие обновлений Windows, С++ redist library, DirectX 10 версии
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
[CM]DonHomka |
Дата: Вторник, 14.02.2017, 21:47 | Сообщение # 11
|
Любитель
Сообщений: 39
Статус: Offline
|
Phoenixxx_Czar, Не вижу разницы, да и если даже так - зависло при первой же попытке Добавлено (14.02.2017, 21:47) --------------------------------------------- McFree_, С++ redist library что это? Процессор не очень мощный. В сампе 50-60 фпс. Раньше, примерно на версии R11/R12 всё равботало. Откуда посоветуешь скачать ГТА?
|
|
|
|
McFree_ |
Дата: Вторник, 14.02.2017, 23:07 | Сообщение # 12
|
В рядах СМ.
Сообщений: 321
Статус: Offline
|
[CM]DonHomka, Ссылка (тыкабельно)
Помогаю новичкам! По всем вопросам в ЛС!
|
|
|
|
[CM]DonHomka |
Дата: Вторник, 14.02.2017, 23:36 | Сообщение # 13
|
Любитель
Сообщений: 39
Статус: Offline
|
McFree_, увы. Результат тот же. Надо подбирать ключик под мой ПК. Единственная функция которая меня подвела. Остальное безотказно работает
|
|
|
|
[CM]MurKotik |
Дата: Пятница, 24.02.2017, 06:25 | Сообщение # 14
|
Murkot Develop
Сообщений: 252
Статус: Offline
|
Такая проблема есть попробуй AntiCrash() Юзать при выводе, многим помогает.
-------------------
Ушёл в себя, вернусь поздно и пьяный!
Сообщение отредактировал [CM]MurKotik - Пятница, 24.02.2017, 06:32 |
|
|
|
cm_baryga |
Дата: Вторник, 14.03.2017, 14:03 | Сообщение # 15
|
Боец
Сообщений: 118
Статус: Offline
|
спс круто
320 дней на СМ)
|
|
|
|