[Помощь] Баг диалогов samp-udf - Форум Cheat-Master.ru
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
[Помощь] Баг диалогов 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 дней на СМ)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Статистика Форума