You are not logged in.
Offline
Получить структ педа, добавить смещение, прочитать структ убийцы (4 байта). Сверить структ убийцы со структом игрока.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
DK22Pac wrote:Получить структ педа, добавить смещение, прочитать структ убийцы (4 байта). Сверить структ убийцы со структом игрока.
ввиде кода пример можешь?
Если у тебя есть хэндл убитого педа, то вот:
// Предположим, что хэндл убитого педа записан в 0@ 0A96: 1@ = actor 0@ struct 0A96: 2@ = actor $PLAYER_ACTOR struct 1@ += 0x764 0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0 if 003B: 2@ == 3@ // Сравниваем указатели then // Тут твой код, если именно игрок убил педа end
Last edited by Voron295 (27-12-2013 22:58)
Offline
RitrS wrote:DK22Pac wrote:Получить структ педа, добавить смещение, прочитать структ убийцы (4 байта). Сверить структ убийцы со структом игрока.
ввиде кода пример можешь?
Если у тебя есть хэндл убитого педа, то вот:
// Предположим, что хэндл убитого педа записан в 0@ 0A96: 1@ = actor 0@ struct 0A96: 2@ = actor $PLAYER_ACTOR struct 1@ += 0x764 0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0 if 003B: 2@ == 3@ // Сравниваем указатели then // Тут твой код, если имено игрок убил педа end
спасибо
Offline
Я перенёс несколько внешних скриптов из оригинального мэйна в свой. Вроде работают все, кроме скрипта парашюта. Код запуска тоже скопировал из оригинала:
:MAIN_6638 if Actor.HasWeapon($PLAYER_ACTOR, 46) else_jump @MAIN_6718 0926: $SCRIPT_STATUS = external_script_status 0 (PLAYER_PARACHUTE) if $SCRIPT_STATUS == 0 else_jump @MAIN_6711 08A9: load_external_script 0 (PLAYER_PARACHUTE) if 08AB: external_script 0 (PLAYER_PARACHUTE) loaded else_jump @MAIN_6711 0913: run_external_script 0 (PLAYER_PARACHUTE) :MAIN_6711 jump @MAIN_6726 :MAIN_6718 090F: end_external_script 0 (PLAYER_PARACHUTE)
Пробовал вставлять fade 0 1000 между некоторыми строками, чтобы понять, срабатывают ли эти проверки. Так вот, когда поставил его перед 0913:, потемнения не было. Выходит, что проверка 08AB: не срабатывает, т.е. скрипт просто не загружается! Но он один такой, остальные работают нормально. Кто-нибудь знает, в чём может быть проблема?
И ещё такой вопрос. Можно ли сделать, чтобы копы не могли арестовать игрока? Чтоб только стреляли в него, но не арестовывали?
Offline
Уверен, что твой скрипт имеет нулевой номер?
Да. Сначала он был под другим номером, но когда я увидел, что он не работает, поставил его в начале чтобы был тот же номер, что и в оригинале.
DEFINE EXTERNAL_SCRIPTS 50 // Use -1 in order not to compile AAA script DEFINE SCRIPT PLAYER_PARACHUTE AT @PLCHUTE // 0
//-------------External script 0 (PLAYER_PARACHUTE)--------------- :PLCHUTE thread 'PLCHUTE'
Но не помогло.
Offline
0ad3: 8@ = "http:%c%cадресс сайта/php/record.php?Nickname=%s&Kills=%d&Deaths=%d&Model=%d&Exp=%d&CompID=%d&IpS=%s" 47 47 9@ ScoreKill ScoreDeath Model Experience 7@ 15@
Я выделяю и очищаю память, но строку я могу найти в памяти СА. Как это можно обойти?
Last edited by Dark_Knight (16-01-2014 16:58)
Offline
Offline
Dark_Knight wrote:Я выделяю и очищаю память, но строку я могу найти в памяти СА. Как это можно обойти?
Прежде чем выгружать память, обнули её.
0ac8: 8@ = 512 0ad3: 8@ 0ac9: 8@
Так же? Не работает.
Offline
Offline
Нет. Обнулить, значит приравнять весь диапазон памяти к нулю.
Например так:0A8C: write_memory 0@ size 512 value 0 virtual_protect 0Где 0@ - указатель на твою память, а 512 нужно поменять на размер выделенной памяти.
0ac8: 0@ = 512 0ad3: 0@ = "Test" 0a8c: 0@ 512 0 0 0ac9
tak?
Offline
Доброго времени суток. Конкретно темы о SA Limit Adjuster не нашел, поэтому решил спросить здесь.
На данный момент, у меня установлено лишь два плагина: ASI Loader от Sneaky и SA Limit Adjuster от Sacky (до этого стояла еще и библиотека CLEO 4, которая как раз недавно обновилась; думал, что проблема в ней, но ошибался).
Игра не запускается вообще. Стоит стимовская версия игры с экзешником 1.0 US (тот, который размером в 14 383 616 байт). Пробовал ставить другую версию - не помогло.
Версия лоадера - та, которая сейчас идет с клео, версия SALA - альфа 8 с фиксом загрузки dll.
И на десерт - собственно, крэшдамп:
GTA:SA Crashed, Debug Info Follows: GTA Info: Version: US 1.0 Last File Loaded: Last Library Loaded: Error: Unknown Assembly Info: Exception At Address: 0x007F67CF Exception Code: 0xc0000005 (EXCEPTION_ACCESS_VIOLATION) Registers: EAX: 0x03800CC0 EBX: 0x00000000 ECX: 0xDDDDDDDD EDX: 0x00000500 ESI: 0x03824290 EDI: 0x00C9C078 EBP: 0x00000000 ESP: 0x0028F8C8
Заранее спасибо за помощь.
Небольшой оффтопик: давно потерял надежду, что найду живой форум о скриптинге в SA. Рад, что наткнулся на вас
Offline
Собственно, проблема в чём? Вылетает из-за Limit Adjuster'а? Выложи его куда-нибудь, потестим. Пробуй ставить аси-лоадер, который идёт с CLEO обычно.
Исходя из крэшдампа, ничего конкретного сказать нельзя. Вылет происходит в районе функции рендера поверхности, насколько я понял.
Offline
Собственно, проблема в чём? Вылетает из-за Limit Adjuster'а? Выложи его куда-нибудь, потестим. Пробуй ставить аси-лоадер, который идёт с CLEO обычно.
Исходя из крэшдампа, ничего конкретного сказать нельзя. Вылет происходит в районе функции рендера поверхности, насколько я понял.
Да-да, похоже, именно из-за аджастера. Убираю его длл из папки - все работает, возвращаю - снова крэш.
Архив с ним внизу. В архиве (дополнительно к файлам SALA) лежит лог загрузки. Может, по нему можно будет сказать большее.
P.S. с помощью великого гугла по коду ошибки набрел на единственную страничку, на которой говорилось, что эта ошибка возникает, если на Windows Vista/7/8 выбрать в игре 16-битную цветность. Пробовал менять на 32, потом обратно на 16, пробовал разные разрешения - не помогло.
Last edited by Mr. Rollton (17-01-2014 22:12)
Offline
P.S. с помощью великого гугла по коду ошибки набрел на единственную страничку, на которой говорилось, что эта ошибка возникает, если на Windows Vista/7/8 выбрать в игре 16-битную цветность
Код ошибки может играть роль только в данном конкретном случае. Он может встретиться в самых различных программах и играх, так что нет смысла искать что-либо в интернете по этому поводу.
Поставил себе этот лимит аджастер - игра прекрасно работает. Попробуй, как я и сказал, поставить аси-лоадер, который идёт в комплекте с CLEO.
Offline
Попробуй, как я и сказал, поставить аси-лоадер, который идёт в комплекте с CLEO.
Скачал с главной страницы, поставил - все равно не работает. Может, какая-нибудь аппаратная или программная несовместимость?
Offline
Скачал с главной страницы, поставил - все равно не работает. Может, какая-нибудь аппаратная или программная несовместимость?
Единственное, что я мог бы предположить - наличие других модификаций, которые могут вызывать конфликт... но ты вроде написал, что у тебя только аси-лоадер и лимит аджастер. Аппаратная несовместимость тут не может иметь место. Программная - тоже вряд ли. Даже не знаю, что не так. Возможно кто-то другой сталкивался с подобными проблемами, нужны более опытные люди, вобщем.
Offline
Единственное, что я мог бы предположить - наличие других модификаций, которые могут вызывать конфликт... но ты вроде написал, что у тебя только аси-лоадер и лимит аджастер. Аппаратная несовместимость тут не может иметь место. Программная - тоже вряд ли. Даже не знаю, что не так. Возможно кто-то другой сталкивался с подобными проблемами, нужны более опытные люди, вобщем.
Да, я тоже думал, что вроде бы ничего не должно конфликтовать, но мало ли.
И дамп не дает практически никакой информации. Я уже и не знаю, что делать. Переустанавливал игру два или три раза =\
Тогда, может быть, есть какая-нибудь альтернатива для снятия лимитов? Я знаю, что есть отдельный stream memory fix, но он имеет только одну функцию из тех, что нужны мне.
И если не секрет, какой операционной системой пользуешься, Ворон?
Offline
Тогда, может быть, есть какая-нибудь альтернатива для снятия лимитов? Я знаю, что есть отдельный stream memory fix, но он имеет только одну функцию из тех, что нужны мне.
Есть SALimitAdjuster от Alexander'а. Прикреплю его. Он правит сам экзешник игры.
И если не секрет, какой операционной системой пользуешься, Ворон?
Windows 7 x64
Offline
Есть SALimitAdjuster от Alexander'а. Прикреплю его. Он правит сам экзешник игры.
Похоже, он позволяет править только Dynamic Limits.
Может, есть другие форумы на примете? Тут, похоже, только между нами диалог идет, другие и не заглядывают
Offline
Может, есть другие форумы на примете?
Может GTA Forums подойдёт? Правда это не русский форум.
А вообще, какие лимиты тебя интересуют?
Last edited by Voron295 (19-01-2014 18:59)
Offline
Там все основные лимиты патчатся одной заменой числа.
SA Limit Adjuster писался ещё во времена мамонтов, а потому устарел, и его ошибки никто исправлять не будет. Там куча лимитов патчится, и, как мне показалось, работоспособность большой части из тех патчей авторами не проверялась.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk
Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv
Offline
Может GTA Forums подойдёт? Правда это не русский форум.
Уже был там, тема о самом Limit Adjuster'е умерла, но вопрос все же задал, может, ответит кто.
А вообще, какие лимиты тебя интересуют?
В первую очередь интересуют Streaming Memory, Streaming Vehicles, CarMods и Vehicle Models.
Вообще, эти лимиты нужны мне для добавления (не замены) автомобилей и возможности их тюнинга собственными деталями.
Ну а Streaming Memory - чуть ли не must have для HQ-моддеров.
SA Limit Adjuster писался ещё во времена мамонтов, а потому устарел, и его ошибки никто исправлять не будет. Там куча лимитов патчится, и, как мне показалось, работоспособность большой части из тех патчей авторами не проверялась.
С одной стороны, подавляющее большинство лимитов, которые позволяет менять этот аджастер, меня не интересуют. С другой - только в этом аджастере есть те, которые нужны мне. Так что я даже и не знаю, что делать =\ Не хотелось бы останавливать "творческий процесс" из-за нерабочей утилиты.
Offline