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

X-Ray extensions


Malandrinus

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

Вот, готовая пропатченая дллка:

А под какую версию игры эта дллка?

Вроде все эти плюшки есть только под ЧН, нет?

Поделиться этим сообщением


Ссылка на сообщение

X-Ray extensions развивается Malandrinus`ом. Он в команде ОГСЕ. Сейчас делают ОГСЕ под ТЧ - идут правки под ТЧ. Перейдут на ЧН - будут правки под ЧН :)

 

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

power-cat, что именно там страшно урезали в плане скриптовых правок?

Ну как же: lua_help.script в ЗП на 8кб меньше, чем в ТЧ :)

 

А так как-то так:

+ class vector2

- const story_ids::XXX

+ const callback::action_removed и callback::weapon_no_ammo

- const key_bindings::kCAM_4 и key_bindings::kCROUCH_TOGGLE

- class game_messages

- class game_phases

- class game_player_flags

+ const GAME_TYPE::eGameIDCaptureTheArtefact

+ const task::additional и task::storyline

- const ui_events::INVENTORY_ХХХ и тому подобное

+ class GameGraph__LEVEL_MAP__value_type

+ class MEMBERS__value_type

+ class award_pair_t

+ class best_scores_pair_t

+ clsid::XXX

+ const CSightParams::eSightTypeAnimationDirection

+ function FS_item::ModifDigitOnly

- class RPoint

+ class Patch_Dawnload_Progress

+ class rotation

+ class award_data

- class SZoneMapEntityData

- class TEX_INFO

- class game_PlayerState

+ class profile

+ function class action_base::weight

- class ZoneMapEntities

+ class suggest_nicks_cb

+ class account_profiles_cb

+ class login_operation_cb

+ class account_operation_cb

+ class found_email_cb

+ class store_operation_cb

+ function CAI_Bloodsucker::force_visibility_state(number);

+ function CALifeHumanBrain::can_choose_alife_tasks(boolean);

+ function CALifeMonsterBrain::can_choose_alife_tasks(boolean);

- function alife_simulator::object(const alife_simulator*, string);

+ CALifeSmartTerrainTask::CALifeSmartTerrainTask (number, number);

+ class CActor

+ class CAntirad

+ class CArtefact

+ function CXXXArtefact::SwitchVisibility(boolean);

+ function CXXXArtefact::FollowByPath(string, number, vector);

+ function CXXXArtefact::GetAfRank() const;

+ class CBottleItem

+ function CConsole::execute_deferred(CConsole*, string);

+ function cover_point::is_smart_cover(const cover_point*);

+ class CDestroyablePhysicsObject

- function CDialogHolder::start_stop_menu(CUIDialogWnd*, boolean);

- function CDialogHolder::MainInputReceiver();

+ class CPhraseScript

+ class CExplosiveItem

+ class CFoodItem

+ function CGameGraph::levels(const CGameGraph*);

~ class CGameTask сильно переделан.

+ class CGrenadeLauncher

~ class CHelicopter вроде как расширен значительно

+ class CInventoryBox

+ class CLevelChanger

- class CKinematicsAnimated

+ class CMainMenu

+ class CMedkit

+ class CPda

+ class CPhysicObject

- class CPhraseScript

+ class CRadioactiveZone

+ property cse_abstract::angle; и всем наследникам

- function XXX::FillProps(string, class xr_vector<class PropItem *,class xalloc<class PropItem *> >&);

+ class cse_alife_inventory_box

+ class cse_alife_item_weapon_auto_shotgun

~ class cse_alife_monster_abstract и наследники

+ class cse_alife_monster_rat

+ class cse_smart_cover

+ const anim::capture_prepare = 1;

+ property game_object::bleeding

+ function game_object::active_detector() const;

+ function game_object::actor_look_at_point(vector);

+ function game_object::add_animation(string, boolean, vector, vector, boolean);

+ function game_object::add_combat_sound(string, number, enum ESoundTypes, number, number, number, string);

+ function game_object::aim_bone_id() const;

+ function game_object::aim_bone_id(string);

+ function game_object::aim_time(game_object*);

+ function game_object::aim_time(game_object*, number);

+ function game_object::allow_break_talk_dialog(boolean);

+ function game_object::allow_sprint(boolean);

+ function game_object::apply_loophole_direction_distance() const;

+ function game_object::apply_loophole_direction_distance(number);

+ function game_object::attachable_item_load_attach(string);

+ function game_object::burer_get_force_gravi_attack();

+ function game_object::burer_set_force_gravi_attack(boolean);

+ function game_object::buy_item_condition_factor(number);

+ function game_object::can_select_weapon() const;

+ function game_object::can_select_weapon(boolean);

+ function game_object::can_throw_grenades() const;

+ function game_object::can_throw_grenades(boolean);

+ function game_object::character_icon();

+ function game_object::community_goodwill(string);

+ function game_object::deadbody_can_take(boolean);

+ function game_object::deadbody_can_take_status();

+ function game_object::deadbody_closed(boolean);

+ function game_object::deadbody_closed_status();

+ function game_object::death_sound_enabled() const;

+ function game_object::death_sound_enabled(boolean);

+ function game_object::disable_hit_marks() const;

+ function game_object::disable_hit_marks(boolean);

+ function game_object::disable_inv_upgrade();

+ function game_object::disable_show_hide_sounds(boolean);

+ function game_object::enable_inv_upgrade();

+ function game_object::enable_level_changer(boolean);

+ function game_object::enable_night_vision(boolean);

+ function game_object::enable_torch(boolean);

+ function game_object::find_best_cover(vector);

+ function game_object::force_set_goodwill(number, game_object*);

+ function game_object::force_stand_sleep_animation(number);

+ function game_object::force_visibility_state(number);

+ function game_object::get_artefact();

+ function game_object::get_bone_id(string) const;

+ function game_object::get_campfire();

- function game_object::get_bleeding() const;

+ function game_object::get_dest_smart_cover();

+ function game_object::get_dest_smart_cover_name();

+ function game_object::get_force_anti_aim();

- function game_object::get_info_time(string);

+ function game_object::get_movement_speed() const;

+ function game_object::get_physics_object();

+ function game_object::get_smart_cover_description() const;

+ function game_object::get_visibility_state();

+ function game_object::get_visual_name() const;

+ function game_object::give_game_news(string, string, string, number, number);

+ function game_object::give_game_news(string, string, string, number, number, number);

- function game_object::give_game_news(string, string, Frect, number, number);

+ function game_object::give_talk_message2(string, string, string, string);

+ function game_object::group_throw_time_interval() const;

+ function game_object::group_throw_time_interval(number);

+ function game_object::idle_max_time() const;

+ function game_object::idle_max_time(number);

+ function game_object::idle_min_time() const;

+ function game_object::idle_min_time(number);

+ function game_object::invulnerable() const;

+ function game_object::invulnerable(boolean);

+ function game_object::inv_box_can_take(boolean);

+ function game_object::inv_box_can_take_status();

+ function game_object::inv_box_closed(boolean, string);

+ function game_object::inv_box_closed_status();

+ function game_object::in_current_loophole_fov(vector) const;

+ function game_object::in_current_loophole_range(vector) const;

+ function game_object::in_loophole_fov(string, string, vector) const;

+ function game_object::in_loophole_range(string, string, vector) const;

+ function game_object::in_smart_cover() const;

+ function game_object::is_door_locked_for_npc() const;

+ function game_object::is_inv_upgrade_enabled();

+ function game_object::is_level_changer_enabled();

+ function game_object::is_there_items_to_pickup() const;

+ function game_object::iterate_inventory_box(function<void>, object);

+ function game_object::level_vertex_light(const number&) const;

+ function game_object::lock_door_for_npc();

+ function game_object::lookout_max_time() const;

+ function game_object::lookout_max_time(number);

+ function game_object::lookout_min_time() const;

+ function game_object::lookout_min_time(number);

+ function game_object::make_item_active(game_object*);

+ function game_object::movement_target_reached();

+ function game_object::night_vision_enabled() const;

+ function game_object::on_door_is_closed();

+ function game_object::on_door_is_open();

+ function game_object::poltergeist_get_actor_ignore();

+ function game_object::poltergeist_set_actor_ignore(boolean);

+ function game_object::register_door_for_npc();

+ function game_object::register_in_combat();

+ function game_object::release_stand_sleep_animation();

~ function game_object::run_talk_dialog(game_object*, boolean);

+ function game_object::set_active_task(CGameTask*);

+ function game_object::set_capture_anim(game_object*, string, const vector&, number);

+ function game_object::set_collision_off(boolean);

+ function game_object::set_community_goodwill(string, number);

- function game_object::set_character_reputation(number);

+ function game_object::set_dest_game_vertex_id(number);

+ function game_object::set_dest_loophole();

+ function game_object::set_dest_loophole(string);

+ function game_object::set_dest_smart_cover();

+ function game_object::set_dest_smart_cover(string);

+ function game_object::set_enemy(game_object*);

+ function game_object::set_force_anti_aim(boolean);

+ function game_object::set_home(number, number, number, boolean, number);

+ function game_object::set_level_changer_invitation(string);

+ function game_object::set_movement_selection_type(enum ESelectionType);

+ function game_object::set_npc_position(vector);

+ function game_object::set_smart_cover_target();

+ function game_object::set_smart_cover_target(game_object*);

+ function game_object::set_smart_cover_target(vector);

+ function game_object::set_smart_cover_target_default(boolean);

+ function game_object::set_smart_cover_target_fire();

+ function game_object::set_smart_cover_target_fire_no_lookout();

+ function game_object::set_smart_cover_target_idle();

+ function game_object::set_smart_cover_target_lookout();

+ function game_object::set_smart_cover_target_selector();

+ function game_object::set_smart_cover_target_selector(function<void>);

+ function game_object::set_smart_cover_target_selector(function<void>, object);

+ function game_object::set_sympathy(number);

+ function game_object::set_visual_memory_enabled(boolean);

+ function game_object::set_visual_name(string);

+ function game_object::set_vis_state(number);

+ function game_object::sniper_fire_mode() const;

+ function game_object::sniper_fire_mode(boolean);

+ function game_object::sniper_update_rate() const;

+ function game_object::sniper_update_rate(boolean);

+ function game_object::special_danger_move();

+ function game_object::special_danger_move(boolean);

+ function game_object::start_particles(string, string);

+ function game_object::stop_particles(string, string);

+ function game_object::suitable_smart_cover(game_object*);

+ function game_object::switch_to_upgrade();

+ function game_object::sympathy();

+ function game_object::take_items_enabled() const;

+ function game_object::take_items_enabled(boolean);

+ function game_object::torch_enabled() const;

+ function game_object::unlock_door_for_npc();

+ function game_object::unregister_door_for_npc();

+ function game_object::unregister_in_combat();

+ function game_object::use_smart_covers_only() const;

+ function game_object::use_smart_covers_only(boolean);

+ function game_object::weapon_grenadelauncher_status();

+ function game_object::weapon_is_grenadelauncher();

+ function game_object::weapon_is_scope();

+ function game_object::weapon_is_silencer();

+ function game_object::weapon_scope_status();

+ function game_object::weapon_silencer_status();

+ const hit::light_burn = 11;

+ const move::run_with_leader = 7;

+ const move::walk_with_leader = 6;

+ function sound_object::attach_tail(string);

+ function CScriptXmlInit::InitSleepStatic(string, CUIWindow*);

+ function CScriptXmlInit::InitTextWnd(string, CUIWindow*);

+ function CScriptXmlInit::InitProgressBar(string, CUIWindow*);

+ function CScriptXmlInit::InitListBox(string, CUIWindow*);

+ function CScriptXmlInit::InitMPPlayerName(string, CUIWindow*);

- function CScriptXmlInit::InitList(string, CUIWindow*);

- function CScriptXmlInit::ParseShTexInfo(string);

- function CScriptXmlInit::InitLabel(string, CUIWindow*);

- function CScriptXmlInit::InitAutoStaticGroup(string, CUIWindow*);

- function CScriptXmlInit::InitButton(string, CUIWindow*);

+ class CSilencer

+ const stalker_ids::sound_enemy_lost_no_allies = 12;

+ const stalker_ids::sound_enemy_lost_with_allies = 13;

+ const stalker_ids::sound_wounded = 18;

+ class CTorridZone

- class CUICaption

+ class CWeaponAmmo

+ class CWeaponAutomaticShotgun

+ class CZoneCampfire

+ class FactionState

- class IKinematicsAnimated

- class SGameTaskObjective

+ class smart_cover_object

+ class profile_store

+ function cast_planner(action_base*);

+ function IsDynamicMusic();

+ function IsGameTypeSingle();

+ function IsImportantSave();

+ function render_get_dx_level();

+ function valid_saved_game(string);

- function cast_action_to_planner(action_base*);

- function cast_alife_object_to_creature(cse_alife_object*);

- function cast_alife_object_to_trader_abstract(cse_alife_object*);

- function cast_planner_to_action(action_planner*);

- function GetTextureInfo(string, string);

- function GetTextureName(string);

- function GetTextureRect(string);

- function xrRender_test_r2_hw();

+ function level.change_game_time(number, number, number);

+ function level.get_wfx_time();

+ function level.hide_indicators_safe();

+ function level.high_cover_in_direction(number, const vector&);

+ function level.low_cover_in_direction(number, const vector&);

+ function level.show_weapon(boolean);

+ function level.start_weather_fx_from_time(string, number);

+ function level.stop_weather_fx();

+ function level.vertex_id(vector);

- function level.cover_in_direction(number, const vector&);

- function level.main_input_receiver();

- function level.start_stop_menu(CUIDialogWnd*, boolean);

 

 

Поделиться этим сообщением


Ссылка на сообщение

Geoset,

из папки bin masm32 скопируй в папку tools проекта ml.exe

 

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

abramcumner,

ну и можно перейти на сборку в той же студии.

Что-то типа такого:

http://narod.ru/disk/37410961001/xray-extensions.7z.html

Поделиться этим сообщением


Ссылка на сообщение

Shadows,

нормального метода типа set_max_weight не будет, если только сам не сделаешь. На каждый чих методов не наделаешь.

Malandrinus возможно сделает чтение/запись по абсолютному адресу, но и тогда придется за Х действий добираться до нужного значения

Поделиться этим сообщением


Ссылка на сообщение

И все-таки просчет и рисование дождя идет в экзешнике.

Максимальный угол наклона капель кстати 10 градусов и не менялся во всех играх серии.

 

Поделиться этим сообщением


Ссылка на сообщение

0023:04300515 xrRender_R2.dll

0023:04F30515 xrRender_R2.dll

то есть вылет в одном месте :) А различающиеся цифирки - работа Address Space Load Randomization

Поделиться этим сообщением


Ссылка на сообщение

@Earth2Space,

"правильное положение солнца" - это по идее правильной длины тени. Проверь тени утром или вечером.

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

У кого-нибудь ещё вылетает при смерти ГГ в автомобиле, на ЗП?

У всех вылетает. А после сейва/загрузки управление инвертируется :)

Поделиться этим сообщением


Ссылка на сообщение

До сих пор не поправили?? Там же просто имя метки в двух местах поменять. K.D., я же месяца два назад тебе про эту шнягу говорил в аське?..

Лучше в одном поменять, пост чуть ниже в ссылке macron`а на ГМ. Метки в процедурах нормальные. Ненормальная метка вне процедуры - проект так устроен, что она стала глобальной.

 

А так, я бы перевел наоборот все в солюшен для VS: там и свежие masm`ы и дллки все уже установлены, патчинг засовывается в post build event и точно также собирается одной кнопкой.

Поделиться этим сообщением


Ссылка на сообщение

Кто автор этой правки? Подписывались бы в asm файлах...

svn blame все расскажет

Поделиться этим сообщением


Ссылка на сообщение

1. Нет единого и принятого всеми собираемого проекта движка. Т.е. проекты то есть, но вот "единого и принятого всеми" пока нету.

И не нужен. Каждый ведет свой проект. Понравилась фишка - вытаскиваешь к себе из другого проекта.

 

Что в итоге, учитывая уже иные реалии модостроя, приведёт к стагнации проекта (вы просто не дозовётесь никого, чтобы внести даже самую мелкую правку).

Это уже давно обдумано. Потерялись авторы - делаешь форк и спокойно вносишь свою правку. Если авторы появятся и захотят, заберут правку обратно.
  • Согласен 2
  • Не согласен 1

Поделиться этим сообщением


Ссылка на сообщение

@Andrey07071977, неа.

Вроде как надо убрать в коде ограничение на виртуальный радиус ламп(можно в xp-dev поискать коммит по этому ключевому слову), и в модели перенести источник света внутрь лампы.

Поделиться этим сообщением


Ссылка на сообщение

@Malandrinus, а вы не записываете изменения в описание ревизии?

Конечно записывают. Malandrinus и предлагал почитать описания ревизий:

надо открыть лог и найти там нужную правку

@abramcumner, если так подумать, то самом деле вообще не верится в силу сообщества в данном случае.

А зачем верить, надо брать и делать самому. Как делали xray-tools, xray-extensions, да и просто моды. А народ подтянется.

 

Но только под конкретный проект. Всё иное обречено на заведомый провал.

Конечно, проект первичен. От него и надо плясать - нужны ли правки движка, какие если нужны. Единственное, что вся разработка должны быть открыта - так и прогресс виден и люди всякого не навыдумывают. Такое у меня сейчас ощущение :)
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

2)правка теней от травы для ЗП доведена до ума?

Выясни. 

 

4)можно ли шейдэр тесселяции прилепить к материалу стены или к другим статическим объектам или это без работы топором по движку не получится?? :)

Выясни.

 

Чем так привлекателен движок ТЧ что с него до сих пор не слезут? ЗП же с Дайректиксом 11 и шейдермоделями поновее

По историческим причинам на ТЧ больше модов/наработок.

Ну и для ТЧ практически всегда найдется человек, который уже это делал. А на ЗП придется самому выяснять :)

  • Согласен 2

Поделиться этим сообщением


Ссылка на сообщение

@Struck,с кучей синтаксических ошибок, но собираем.

Да, с++ в студиях все стандартнее и стандартнее. Ошибки правятся за 5 минут.
  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

тебе малиновые штаны не жмут случаем? На что ты в той ссылке предлагаешь посмотреть? На "Page not found" github-а или на "Nothing found" яндекса?

на проект в стиле x-ray extensions :biggrin:

Ради нас же старается - закрыл проект, чтобы головку при чтении не сломали.

 

И эта дичь ведь на полном серьезе пишется.

Изменено пользователем abramcumner
  • Не нравится 1
  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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