SkyLoader 53 Опубликовано 14 Февраля 2011 malandrinus, а ты level-ф-ции восстановил или с нуля начал? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 16 Февраля 2011 _Призрак_, я имел ввиду то, что эти команды были вырезаны, или он их с нуля зарегистрировал, а потом начал туда передавать аргументы? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 16 Февраля 2011 (изменено) _Призрак_, не знаешь, где можно прочитать про методы иды? Ну эти: mov, call, push, jmp. DiXares, у разрабов Изменено 16 Февраля 2011 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 21 Июня 2011 Ф-ций действительно много добавил. Как вариант, мое предложение - добавить скриптовую ф-цию назначения и получения шейдера модели объекта. Сам вызов ф-ции можно посмотреть в функции смены видимости кровососа. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 21 Июня 2011 amik, хм... я сейчас посмотрел функцию, там есть вызов смены шейдера. Но я вспомнил, что модель меняется. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 24 Октября 2011 (изменено) Кто-нибудь разбирал функцию bind_to_dik? Что в итоге она делает? Я только понял, что вроде туда надо передавать action_id. ----------------------- malandrinus, а, спасибо, ясно. Изменено 24 Октября 2011 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 9 Ноября 2011 У кого-нибудь работает db.actor:actor_body_state()? У меня все время возвращает число 40 с чем-то тысяч. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 9 Ноября 2011 malandrinus, да, что-то не подумал посмотреть смещение, спасибо Еще два вопроса: 1) Могут ли изменены параметры худа оружия, а именно position? Я пробовал перебором проверить, но что-то много похожих параметров нашел, буду еще искать. 2) Мне сказали, что в r16 можно управлять видимость костей любых моделей (не обязательно оружия), но могу ошибаться. Как эта функция называется? Я смотрел строение ф-ции set_wpn_bone_visible(), но там ты поставил проверку CScriptGameObject__IsWeapon, значит это не та ф-ция. Darkscape, Как уже сказал malandrinus, надо пользоваться ф-цией get_actor_int. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 10 Ноября 2011 Кстати, не представляю, как можно получить состояние тела актора с помощью ф-ции get_actor_int. Ведь неизвестно, какое число он передает при разных состояниях тела. Можно как-нибудь математически узнать, какое число нужно поставить в get_actor_int для получения состояния тела? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 8 Декабря 2011 _Призрак_, Наверное ошибаюсь, но думаю, что для стринговых изменений созданы ф-ции get/set_wpn_shared_str и get/set_actor_shared_str. Хотя, посмотрев, строение ф-ции теперь думаю, это вряд ли нужные ф-ции. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 29 Декабря 2011 malandrinus, Хм... решил потестить ф-цию alife():teleport_object("", pos, lvx, gvx, parent_id). И не совсем понял, как ее использовать. Судя по строению функция принимает секцию (section_ = dword ptr 0Ch), зачем? Как можно определить по секции объект? Второе, в вызове ф-ции из оригинала у тебя передается (unsigned __int16 id). Может ты перепутал section_ и id? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 2 Января 2012 И еще, можешь объяснить, что делает ф-ция obj:get/set_actor_shared_str()? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 5 Января 2012 (изменено) malandrinus, непися телепортирует, спасибо. А вот с db.actor:get_actor_shared_str(n) проблема: перебором пробовал получить хоть какое-то значение актора, но в итоге всегда получалось nil. Изменено 5 Января 2012 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 8 Января 2012 Andrey07071977, в r18 есть правка активации 8 слота, только не понятно, зачем она нужна. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 24 Января 2012 Просьба добавить ф-цию изменения положения худа. Ф-ция получения координат есть, а изменения - нет. Понимаю, что функция получения большая, но все же, было бы неплохо, много чего можно будет сделать. И все-таки неплохо было бы сделать управление видимостью костей не только для оружия. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 25 Января 2012 *Shoker*, манипуляции. Ну, например, сделать по формуле скриптовую раскачку оружия. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 2 Февраля 2012 Если кому надо, написал тут несколько функций новых: 1. Исправленная и переписанная ф-ция получения состояния актора: В game_object_fix.asm заменить ф-цию CScriptGameObject__ActorBodyState на эту: CScriptGameObject__ActorBodyState proc push ebp mov ebp, esp and esp, 0FFFFFFF8h push ecx call CScriptGameObject__IsActor test eax, eax jz short exit_fail ;--------------- mov eax, [eax+1428] jmp exit_ok exit_fail: xor eax, eax exit_ok: pop ecx mov esp, ebp pop ebp retn CScriptGameObject__ActorBodyState endp 2. "get_cam_effector", "get_pp_effector" - получить активность камеры/постпроцесса по айди: 1)В конце файла xrgame_stubs.asm дописать: org 10458864h - shift CCameraManager__GetCamEffector dword ? org 10458478h - shift CCameraManager__GetPpEffector dword ? org 10190CF7h - shift register__ns__int__int: 2) В level_ns_fix.asm после строк: call get_snd_volume_register; регистрируем функцию с прототипом как у get_snd_volume ;-------------------------------------- дописать: ;------------< регистрируем функцию получения активности эффекта камеры по айди >------ pop ecx pop ecx mov eax, esp push offset GetCamEffector push offset aGet_cam_effector; "get_cam_effector" push eax call register__ns__int__int ;-------------------------------------- ;------------< регистрируем функцию получения активности pp эффекта по айди >------ pop ecx pop ecx mov eax, esp push offset GetPpEffector push offset aGet_pp_effector; "get_pp_effector" push eax call register__ns__int__int ;-------------------------------------- 3) После строк: ; для get_target_dist mov ecx, eax call esi дописать: ; для get_cam_effector mov ecx, eax call esi ; для get_pp_effector mov ecx, eax call esi 4) В конце файла дописать: GetCamEffector proc id = dword ptr 4 mov edx, [esp+id] and edx, 0FFFFh mov ecx, g_Actor mov ecx, [ecx+554h] push edx call ds:CCameraManager__GetCamEffector test eax, eax jnz short exit xor al, al retn exit: mov al, 1 retn GetCamEffector endp GetPpEffector proc id = dword ptr 4 mov ecx, g_Actor mov edx, [esp+id] mov ecx, [ecx+554h] push edx call ds:CCameraManager__GetPpEffector test eax, eax jnz short exit xor al, al retn exit: mov al, 1 retn GetPpEffector endp aGet_cam_effector db "get_cam_effector", 0 aGet_pp_effector db "get_pp_effector", 0 Есть еще функции получения/назначения видимости объекта, но назначение требует теста. Также вскоре допишу фунцию, чтобы в окне продажи предметы в слотах зеленым выделялись. Может и Маландринус добавит ф-ции в себе, если захочет. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 7 Февраля 2012 Andrey07071977, Какие параметры принимает actor_body_state? И эта функция никакие аргументы не принимает. И, кстати, данная функция работает только на версии r18 и ниже. Для r20 нужно CScriptGameObject__IsActor заменить на CScriptGameObject__CActor. Число которое возвращают эти функции (отличное от нуля) что-то означает По идее, возвращать они должны 0 или 1. 1 - это как-бы true (эффект проигрывается по данному айди), 0 - false. Просто у меня не получилось сделать возвращение boolean значения. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 8 Февраля 2012 Andrey07071977, у меня все работает. Подобная ошибка встречается при нехватке памяти. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 9 Февраля 2012 (изменено) Andrey07071977, если бы я не проверял, я бы не написал, что вызов надо заменить для версии r20. Перед написанием поста еще раз проверил. Хм... Есть предположение, что я в посте написал русскую C в Cactor. Попробуй переписать. ColR_iT, часть добавленных функций прокомментировал _Призрак_ где-то в середине темы. ... Не заметил, что уже написали про хелп. Изменено 9 Февраля 2012 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение