Перейти к контенту
Malandrinus

X-Ray extensions

Рекомендуемые сообщения

break

Я лучше открою для себя удобный и понятный для навигации интерфейс, а не запрятанные в дебрях раздела ссылки.

Большинство смотрит в Downloads, а в разделе Source при открытии ничего не видно, и не каждый догадается там в Changes перейти.

(да его и не видно было сперва)

За линк спасибо.

 

_Призрак_

Как я понял, dll-ку надо собирать самому.

http://code.google.com/p/xray-extensions/s...2F3795_cs_10010

 

Качать нужные файлы и из них патчить или есть готовые dll-ки?

Кто нибудь допишите\обновите в шапку где смотреть новые версии.

 

*******************

 

Так-с, кто подскажет как теперь скачать эти правки. :crazy:

 

*******************

Разобрался. SVN клиент нужен. Какой же там на сайте неудобный доступ к информации + не отображает русские символы в коде.

Ну ладно...

 

Изменено пользователем *Shoker*

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Качаешь TortoiseSVN

http://tortoisesvn.net/downloads.html

 

Дальше как тут:

http://microsin.ru/content/view/1239/1/

 

SVN Checkout - Обзор хранилища

 

Только вводишь этот путь:

http://xray-extensions.googlecode.com/svn/trunk/

 

Ну или попробуй напрямую через браузер по файлу сохранять. Дальше пока не разобрался, качаю.

 

***************************

Кстати, с крякнутой версией игры парвки работать будут или нет, я не понмю NoDVD длл-ки затрагивал или нет.

Изменено пользователем *Shoker*
  • Нравится 1

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Так-с, вообще дальше качаешь всю папку trunk и всё. Дальше как и раньше. Для нужной игры кидаешь длл-ку в папку (в папку от нужной игры кажись) и пускаешь батник на сборку.

 

Только вот как я понял описания изменений там нету, и надо читать .asm файлы чтобы разобраться.

 

 

Добавлено через 6 мин.:

_Призрак_

Откуда номера callback-ов ты взял?

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

*Shoker*, Notepad++ тебе в пощь!

 

Добавлено через 2 мин.:

Если не трудно, кинь дллку готовую на 1.6.02 в лс. Спасибо заранее. Чет это все слишком сложно...

Изменено пользователем ziStam

Legend of Stalker

Ссылка на комментарий

Составил список откопанных функций для ЧН. Тут не все но вроде большинство, и есть вопросы:

 

 

Callbacks:

self.object:set_callback(123, self.on_key, self) -- нажатие клавиши

self.object:set_callback(124, self.on_key_free, self) -- отпускание клавиши

self.object:set_callback(125, self.on_key_hold, self) -- удержание клавиши

self.object:set_callback(126, self.on_wheel_rotation, self) -- вращение колесика мыши

self.object:set_callback(127, self.on_mouse_move, self) -- движение мыши

self.object:set_callback(130, self.item_to_belt, self) -- перемещение предмета на пояс

self.object:set_callback(131, self.item_to_backpack, self) -- перемещение предмета в рюкзак

self.object:set_callback(132, self.item_to_slot, self) -- перемещение предмета в слот

self.object:set_callback(callback.hit, self.actor_hit_callback, self)

 

Но как определить, какие параметры они передают?

 

Game object: ( exmpl obj:get_fuel(), db.actor:GetMousePos() )

* GetMousePos - по идее возвращает координаты мыши, но в каком формате? (vector2() ?)

* belt_object_count - кол-во навешанных объектов на поясе?

* get_fuel - топлиов

* get_fuel_consumption - потребление

* get_fuel_tank - объём бака

* set_fuel - ставим уровень

* set_fuel_consumption

* set_character_name - Установка имени персонажа

* item_on_belt (?) - получаем предмет с пояса, а передавать что, порядковый номер или слот?

 

Global ( exmpl log2("test") )

* регистрация функции "bind_to_dik" - отлов нажатия клавишь? Как использовать?

* set_extensions_flags - ?

* get_extensions_flags - ?

* log1() - Что она даёт.

* flush1() - наличие функции мне не понятно, flush работает и в оригинале (хотя нет, я путаю его с консольным, а что даёт этот тогда)

* log2() - test (?)

 

Level:

* level.get_target_dist() -- получаем расстояние от ГГ до точки, куда смотрит прицел

* level.get_target_obj() -- аналогично, но уже объект куда сомтрит прицел

* set_ph_time_factor\get_ph_time_factor - установка ph_timefactor ( exmpl level.set_ph_time_factor(20) )

* set_fov\get_fov - установка угла обзора (exmpl level.set_fov())

 

Остальное:

; скрывание миникарты - какая функция?

; Затычка на game_rank (вернёт 0)

 

Что то ещё забыл.

 

 

Изменено пользователем *Shoker*

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Никто не разбирался с функциями:

get_wpn_bone_id
set_wpn_bone_visible
get_wpn_bone_visible

В частности, что необходимо передавать(string и integer понятно), но что именно?

Ссылка на комментарий

Вот мой help:

self.object:set_callback(123, self.on_key, self)            -- нажатие клавиши. Принимает числовое значение
self.object:set_callback(124, self.on_key_free, self)        -- отпускание клавиши. Принимает числовое значение
self.object:set_callback(125, self.on_key_hold, self)        -- удержание клавиши. Принимает числовое значение
self.object:set_callback(126, self.on_wheel_rotation, self)    -- вращение колесика мыши. Принимает числовое значение, на которое было прокрученно колесико мыши
self.object:set_callback(127, self.on_mouse_move, self)        -- движение мыши. Принимает какие то число.
self.object:set_callback(130, self.item_to_belt, self)        -- перемещение предмета на пояс. Принимает объект
self.object:set_callback(131, self.item_to_backpack, self)    -- перемещение предмета в рюкзак. Принимает объект
self.object:set_callback(132, self.item_to_slot, self)        -- перемещение предмета в слот. Принимает объект
self.object:set_callback(callback.hit, self.actor_hit_callback, self)       --Стрельба по актору. Принимает: (obj, amount, local_direction, who, bone_index). Вообщем все то что и для сталкеров

 

 

 

alife():teleport_object("", pos, lvid, gvid, npc_id)        --Телепортируем объект. 1 параметр - затычка. 
db.actor:item_on_belt(1)                                    --Получаем объект по его номеру на поясе
db.actor:item_on_ruck(2)                                    --Получает объект по его номеру в рюкзаке
db.actor:move_to_ruck(db.actor:item_in_slot(1))        --Перемещаем объект в рюкзак
db.actor:move_to_belt(db.actor:item_in_slot(1))        --Перемещаем объект на пояс
db.actor:move_to_slot(db.actor:object("test"))        --Перемещаем объект в слот
db.actor:move_to_slot_and_activate(db.actor:object("test"))        --Перемещаем объект в слот и активируем
db.actor:can_move_to_ruck(db.actor:item_in_slot(1))        --Перемещаем объект в рюкзак
db.actor:can_move_to_belt(db.actor:item_in_slot(1))        --Перемещаем объект на пояс
db.actor:can_move_to_slot(db.actor:object("test"))        --Перемещаем объект в слот
db.actor:get_actor_float(1440)                            --Получение некоторых значений с плавающей запятой
db.actor:get_actor_int(nil, 1480)            --Получение некоторых целых и логических значений. В данном случае режим прицеливания
db.actor:set_actor_float(nil, 1.1, 1440)                --Установка некоторых значений
db.actor:item_in_slot(1):get_wpn_int(nil, 1408)            --Получение некоторых целых и логических значений
db.actor:item_in_slot(1):set_wpn_int(1408, v)            --Установка некоторых значений
db.actor:is_on_belt(db.actor:object("test"))            --Находится ли предмет на поясе
db.actor:is_in_ruck(db.actor:object("test"))            --Находится ли предмет в рюкзаке
db.actor:is_in_slot(db.actor:object("test"))            --Находится ли предмет в слоту

car --game_object
car:get_fuel()                                            --Возвращает дробное число литров в баке
car:set_fuel(20.0)                                        --Выставляет дробное число литров в баке
car:get_fuel_consumption()                                --Возвращает дробное число потребления бензина
car:set_fuel_consumption(20.0)                            --Выставляет дробное число потребления бензина
car:get_fuel_tank()                                        --Возвращает дробное число объем бака
car:set_fuel_tank(20.0)                                    --Выставляет дробное число объем бака
db.actor:belt_count()                                    --Возвращает количество предметов на поясе
db.actor:ruck_count()                                    --Возвращает количество предметов в рюкзаке
db.actor:slot_number()                                    --Возвращает количество слотов
db.actor:get_inventory_weight()                            --Возвращает вес рюкзака
db.actor:set_sprint_factor(5.0)                            --Выставляем коэффициент скрипта
db.actor:get_sprint_factor()                            --Возвращаем коэффициент скрипта
db.actor:actor_body_state()                                --Возвращает число, характеризующие положение тела актора

item --game object
item:is_inventory_item()                                --Проверка на тип "инвентарный предмет"
item:is_weapon_gl()                                        --Проверка на тип оружие с возможностью установки подствольника
item:is_weapon()                                        --Проверка на тип оружие
item:is_actor()                                            --Проверка на тип актор
db.actor:get_camera_fov()                                --Возвращает число FOV
db.actor:set_camera_fov(90.0)                            --Выставляет число FOV
db.actor:set_actor_visual("actors\\monolit\\stalker_mo_mask")    --Выставляет визуал актора
log1("MY TEST LOG")                                        --Замена функции log

 

 

 

get_wpn_gl_int
get_wpn_bone_id                                    --Получает некоторое строку и число, возвращает число
set_wpn_bone_visible                            --Получает некоторое строку и число, возвращает число
get_wpn_bone_visible                            --Получает некоторое строку и число, возвращаетчисло
get_wpn_float                                    --Получает некоторое число, возвращает число                            
set_wpn_float                                    --Получает nil дробное число и целое число
get_custom_monster_float                        --Получает целое число, возврашает дробное число
get_custom_monster_int                            --Получает строку и целое число, возвращает целое число
set_actor_shared_str                            --Получает строку и целое число, возвращает целое число
get_actor_shared_str                            --Возвращает строку
bind_to_dik                                        --Непонятная функция
set_extensions_flags                            --Непонятная функция
get_extensions_flags                            --Непонятная функция
set_game_time                                    --Получает два дробных значения, ничего не возвращает

 

 

 

 

 

 

А, да, там где в функции передается nil - это тупо затычка, так и должно быть

Изменено пользователем _Призрак_

Freedom

Ссылка на комментарий

Вот это дело по-хорошему полагается писать на вики самого проекта, желательно на двух языках - русский/английский.

Ссылка на комментарий

Английский я не так хорошо знаю как хотелось, но со временем я переведу хелп на английский и закину его на вики. Но только когда узнаю по точней все параметры

Freedom

Ссылка на комментарий

Сейчас хотя бы для своих на русском все расписать, а на забугорных камрадов пока что класть с прикладом.

Ссылка на комментарий

oWpn:get_wpn_int(nil,iPos)
oWpn:set_wpn_int(iPos,iValue)

oWpn - онлайн-объект, который является оружие.

iPos - позиция в памяти

iValue - значение, на которое меняем

Далее пример с описаниями:

local oWpn = db.actor:object("wpn_ak74") -- получаем как объект АК, который есть в инвентаре
local iMagSize = oWpn:get_wpn_int(nil, 1408) -- позиция 1408 для оружия отвечает за объем магазина, получаем текущий объем
log1(iMagSize) -- выводим его в лог
oWpn:set_wpn_int(1408,38) -- устанавливаем объем магазина 38 патронов(при загрузке собьётся)

Ссылка на комментарий

Real Wolf

Спасибо за такой подробный разбор :)

Но откуда такая информация, и главное откуда взята цифра 1408 и где можно узнать другие?

Или делать перебором через get, хотя это немного громоздко будет, да и врятле в оружии учитывается так много параметров.

Изменено пользователем *Shoker*

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

Не знаю. Позиции для чтения\записи параметров оружия, которые я разобрал:

1408 - Максимальный объем магазина

160 - Цена автомата

 

Параметры записываются сразу же, но при загрузке сбиваются.

Ссылка на комментарий

Позиции в памяти для оружия:

160 - cost

940 - scope_status

944 - silencer_status

948 - grenade_launcher_status

1408 - ammo_mag_size

 

748 - hit_power

764 - hit_impulse

768 - bullet_speed

772 - fire_distance

1328 - cam_dispertion_frac

1340 - fire_dispersion_condition_factor

1348 - misfire_condition_k

1880 - dispersion_start

 

Ссылка на комментарий

"dll" для SHOC 1006 версии.

Правки версии "r15", плюс добавлены "get_target_dist()" и "get_target_obj()".

Работает, но пока мало тестированная. Собирал не я.

Кого интересуют эти функции - пожалуйста.

Есть просьба: погонять другие правки, и если что не так - отписаться.

 

r15plus_xrGame.zip

 

Добавлено через 154 мин.:

Плюс к предидущему - исходники: _http://rghost.ru/9370871

всё легко

Ссылка на комментарий

Чота не выходит "собрать" патчик...

Кликаю в папке 3312_shoc_10006 файл make_src_dll.cmd, как указано в readme., но толку 0...

Системе не удаётся найти указанный путь
...\3312_shoc_10006\mydll.obj
...\3312_shoc_10006\mydll.exp
...\3312_shoc_10006\mydll.lib

Я что-то не так делаю?

Жизнью в России довольны две категории людей: те, кто не в курсе и те, кто в доле.
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...