You are not logged in.
Уже спрашивали на 135-139 страницах (или раньше). Либо там поищи, либо поиск по форуму юзай
Ничего не нашел! Пожалуйста, если не трудно, опишите тут еще раз. Заранее благодарен!!!=)
Я вот после того как написал, тоже по форуму поискал и ничего не нашёл (кроме четырёх постов, где спрашивают этот же вопрос). Попробуй написать в личку Sergey81, он этими делами занимался недавно.
Offline
Думаю никак. Так как перелазенье есть прыжок. Можно заставить прыгнуть, если актер находится возле забора.
Offline
У меня скопился вопрос. Каким опкодом снять с игрока одежду на определенной части тела?
Offline
У меня скопился вопрос. Каким опкодом снять с игрока одежду на определенной части тела?
Один вопрос, а уже скопился
Ну снять может и нельзя, но вот установить текстуру null, можно.
087B: set_player $PLAYER_CHAR clothes_texture "VEST" model "VEST" body_part 0
body_part назначения ищи в справке СБ.
Offline
У меня еще один вопрос. Я скачал отладчик olly dbg но не могу понять что к чему. Подскажите как с помошью этой проги искать адреса. Заранее спасибо.
Offline
Лучше скачай базу от listener и программу IDA для её чтения. В базе многие адреса и функции проименованы, что сильно облегчает исследование exe. Но всё равно работать с кодом в один момент не научишься - для этого необходимо приобрести опыт.
Offline
Продолжаю вести разработку First-Person мода. Возникла очень важная проблема. При включении во второй раз, камера "обрезает" игрока в радиусе 0.1-0.2 метра. Эксперименты показали, что виноват camera.Restore_WithJumpCut в коде выключения вида от первого лица. Вопрос состоит в том, как избежать этого самого "обрезания" модели игрока, либо как вернуть на место камеру после опкода 067B, чтобы при этом не возникало "обрезания"?
Вот скрины:
Last edited by Voron295 (16-06-2011 21:36)
Offline
Попробуйте вручную обнулить rwCamera->nearClipPlane.
Offline
Попробуйте вручную обнулить rwCamera->nearClipPlane.
А можно немного понятнее, это пока за пределами моих знаний xD
Кстати, Alien, вы не могли бы глянуть сюда и ответить на мой вопрос насчёт CLEO 4?
UPD. Как я понял, это функция, которую нужно вызвать одним из опкодов 0AA5-0AA8? Вот, что-то нашёл в базе listener'а:
.text:007EE1D0 _RwCameraSetNearClipPlane proc near ; CODE XREF: sub_45D760+609p .text:007EE1D0 ; _sub_50CB90+47p .text:007EE1D0 ; sub_50DD70+174p .text:007EE1D0 ; sub_50EB70+85Cp ... .text:007EE1D0 .text:007EE1D0 arg_0 = dword ptr 4 .text:007EE1D0 arg_4 = dword ptr 8 .text:007EE1D0 .text:007EE1D0 000 fld [esp+arg_4] .text:007EE1D4 000 push esi .text:007EE1D5 004 mov esi, [esp+4+arg_0] .text:007EE1D9 004 push esi .text:007EE1DA 008 fstp [esi+RwCamera.nearPlane] .text:007EE1E0 008 call _CameraUpdateZShiftScale .text:007EE1E5 008 mov eax, [esi+RwCamera.object.object.parent] .text:007EE1E8 008 add esp, 4 .text:007EE1EB 004 test eax, eax .text:007EE1ED 004 jz short loc_7EE1F8 .text:007EE1EF 004 push eax ; frame .text:007EE1F0 008 call _RwFrameUpdateObject .text:007EE1F5 008 add esp, 4 .text:007EE1F8 .text:007EE1F8 loc_7EE1F8: ; CODE XREF: _RwCameraSetNearClipPlane+1Dj .text:007EE1F8 004 mov eax, esi .text:007EE1FA 004 pop esi .text:007EE1FB 000 retn .text:007EE1FB _RwCameraSetNearClipPlane endp
Где-нибудь (может на этом форуме?) есть описание, как правильно вызвать из игры нужную функцию и т.п.? Или если кому не сложно - объясните пожалуйста. arg_0 и arg_4 - это параметры которые нужно в эту функцию (может это всё-таки подругому называется, исправьте меня если что-то не так) передать, я не ошибаюсь? Как понять за что они отвечают? Мнда, мне ещё учиться и учиться...
Last edited by Voron295 (18-06-2011 20:16)
Offline
Посмотри места где есть вызовы данной ф-ции, т.к. сложно сказать что эти два параметра делают.
Offline
Где-нибудь (может на этом форуме?) есть описание, как правильно вызвать из игры нужную функцию и т.п.? Или если кому не сложно - объясните пожалуйста. arg_0 и arg_4 - это параметры которые нужно в эту функцию (может это всё-таки подругому называется, исправьте меня если что-то не так) передать, я не ошибаюсь?
Offline
t]Посмотри места где есть вызовы данной ф-ции, т.к. сложно сказать что эти два параметра делают.
Так каким опкодом её вызывать? Судя по этим словам:
Попробуйте вручную обнулить
один из параметров должен быть равен нулю...
Offline
Спасибо!
t]Посмотри места где есть вызовы данной ф-ции, т.к. сложно сказать что эти два параметра делают.
Хмм...
.text:0045DD69 08C call _RwCameraSetNearClipPlane
и где тут параметры?
UPD. Я попробовал так:
0AA5: call 0x7EE1D0 num_params 0 pop 1
Ничего не изменилось. Кстати, после нескольких нажатий клавиши (я написал коротенький скрипт, чтобы опкод 0AA5 выполнялся при нажатии клавиши) игра вылетела...
Last edited by Voron295 (18-06-2011 22:07)
Offline
и где тут параметры?
Щёлкни по названию вызываемой функции - в окне отобразится её код. Наверху, перед началом кода, будет показана структура переменных этой функции (stack frame). Переменные, имеющие положительное смещение - это и есть параметры, передаваемые в данную функцию.
Я попробовал так:
Параметр "pop" должен быть равен "num_params" (изучи внимательно тему, на которую я указал, и ссылки, размещённые в ней).
Offline
@Den_spb - вы не могли бы сейчас мне просто помочь, изучив эту функцию, либо выяснить каким способом можно избежать бага указанного в одном из предыдущих моих сообщений, а то...
а то я пообещал мод 20-го числа выложить, как-то не хочется выкладывать с таким багом...
А потом я возьмусь за теорию и постараюсь изучить работу с IDA как можно доскональнее . Просто мне сейчас ещё нужно закончить 5-ую версию моего паркур-мода, в котором будет этот самый вид от первого лица. Поэтому у меня сейчас нет времени изучать это, нужно заняться паркур-модом. Если вы мне поможете с этим, просите что хотите (в пределах моих возможностей конечно)
Last edited by Voron295 (20-06-2011 09:51)
Offline
@Voron295
(Если я правильно понял суть проблемы=))
Попробуй так
Camera.SetBehindPlayer Camera.Restore_WithJumpCut
Если не поможет, то можно попытаться сначала камеру поместить в какие-нибудь координаты позади игрока с направлением на координаты, где находится игрок и потом предыдущий вариант.
Offline
Я так понял константы - это аналог глобальных переменных. Их можнь использовать в клео скриптах без ограничений. Если да тогда вопрос зачем нужны глобальные клео переменные?
Offline
@Voron295
Это что хотьба от певрого лица?
Offline
Я так понял константы - это аналог глобальных переменных. Их можнь использовать в клео скриптах без ограничений. Если да тогда вопрос зачем нужны глобальные клео переменные?
Глобальная переменная - структура данных, значение которой можно прочитать и изменить в любой части приложения, из любого потока (глобально).
Константа - виртуальная (после компиляции их уже нет) структура (или не совсем), доступная в пределах одного потока (локально).
Вообще эти две абсолютно разные структуры используют для одинаковых целей - чтобы дать переменной имя. Только глобальные переменные в Клео использовать нельзя, поэтому используют константы. Тут константа представляет из себя как-бы заглушку для имени локальной переменной.
Offline