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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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

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


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

Там же есть кнопка "Export to Github". Уже нажимали на нее?

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


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

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

Выясни. 

 

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

Выясни.

 

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

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

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

  • Согласен 2

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


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

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

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

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


Ссылка на сообщение
Этот совсем глючный. А более новые просто глючные, для модов их использовать нельзя.
  • Согласен 1

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


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

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

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

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

 

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

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

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


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

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