Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
SinSin

Обращение к классу в 5_Mission из 4_World

Каким образом можно запустить функцию класса, находящегося в окружении 5_Mission

class SomeCustomClassName extends UIScriptedMenu {

из класса в 4_World?

 

Пробовал в лоб

ref SomeCustomClassName someCustomClassName;

но безуспешно.

Share this post


Link to post
Share on other sites

15 answers to this question

Recommended Posts

  • 0

никак, на этапе запуска 4_World сервер еще не знает раздела 5_Mission как такового впринципе, ровно как и классов с функциями в нем. Т.е. он попросту их еще не успел подгрузить. Иными словами, из 4_World не обратиться в 5_Mission. Можно лишь в обратном порядке только.

Share this post


Link to post
Share on other sites



  • 0
6 часов назад, 123new сказал:

никак, на этапе запуска 4_World сервер еще не знает раздела 5_Mission как такового впринципе, ровно как и классов с функциями в нем. Т.е. он попросту их еще не успел подгрузить. Иными словами, из 4_World не обратиться в 5_Mission. Можно лишь в обратном порядке только.

ну
есть варианты )))

GetGame().GetMission().ЧеНамТамНадо();

Share this post


Link to post
Share on other sites
  • 0
29 минут назад, BorizzK сказал:

ну
есть варианты )))

GetGame().GetMission().ЧеНамТамНадо();

ну при условии что это GetMission вообще и не в том же самом моде находится, насколько знаю)

 

Share this post


Link to post
Share on other sites
  • 0
1 минуту назад, 123new сказал:

ну при условии что это GetMission вообще и не в том же самом моде находится, насколько знаю)

 

не понял

штатная нативная функция GetMission  вернет ссыль на текущую миссию либо NULL

 

Share this post


Link to post
Share on other sites
  • 0
51 минуту назад, BorizzK сказал:

не понял

штатная нативная функция GetMission  вернет ссыль на текущую миссию либо NULL

 

я к тому. что это при условии, что человеку нужен код из миссии родной игры, или из другого мода, а не его же мода, который он в миссии объявит. у и при условии, что ему именно к миссии надо обратиться, а не к какому-то своему кастомному классу ли типу переменной из 5_Mission

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, BorizzK сказал:

ну
есть варианты )))

GetGame().GetMission().ЧеНамТамНадо();

Таким образом нельзя обращаться к кастомным классам, увы.

Share this post


Link to post
Share on other sites
  • 0
2 часа назад, SinSin сказал:

Таким образом нельзя обращаться к кастомным классам, увы.

речь шла про миссию

а не кастомный класс

но

в миссии можно поместить функцию и ссылку и вертать ссылку функцией из миссии

GetGame().GetMission().GetMyMissionClass();

 

ну вобщем как-то так

 

я правда по другому сделал через свой класс конфига

работает

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, 123new сказал:

я к тому. что это при условии, что человеку нужен код из миссии родной игры, или из другого мода, а не его же мода, который он в миссии объявит. у и при условии, что ему именно к миссии надо обратиться, а не к какому-то своему кастомному классу ли типу переменной из 5_Mission

честно - чет какой-то сумбур

 

обьясните - что надо КОНКРЕТНОООО!!!!

Share this post


Link to post
Share on other sites
  • 0
26 минут назад, BorizzK сказал:

честно - чет какой-то сумбур

 

обьясните - что надо КОНКРЕТНОООО!!!!

согласен)

27 минут назад, BorizzK сказал:

речь шла про миссию

а не кастомный класс

но

в миссии можно поместить функцию и ссылку и вертать ссылку функцией из миссии

GetGame().GetMission().GetMyMissionClass();

 

ну вобщем как-то так

 

я правда по другому сделал через свой класс конфига

работает

я делал подругому, сам класс свой заводил в 4_World например и заводил или нужные функции, или функции пустышки, а в 5_Mission просто уже добавлял в этот класс все необходимое. Тоже работает.

Share this post


Link to post
Share on other sites
  • 0

То что топикстартер хочет я описал выше

Он только не описал для чего

Share this post


Link to post
Share on other sites
  • 0

Топикстартер хочет обратиться с классу графического интерфейса описанному в модуле Mission из модуля World.

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

 

ЗЫ

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

Edited by SteelRat (see edit history)

Share this post


Link to post
Share on other sites
  • 0
4 часа назад, SteelRat сказал:

Топикстартер хочет обратиться с классу графического интерфейса описанному в модуле Mission из модуля World.

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

 

ЗЫ

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

Я выкрутился использованием глобальной переменной, объявленной в 3_Game, которая меняется в 4_World и отслеживается в 5_Mission.

Так и общаемся.

Share this post


Link to post
Share on other sites
  • 0

В принципе, это и есть тот танец с бубном.

Только более правильным, как бы считается в контексте объектно ориентированного программирования, создать в Game или World, по вкусу, базовый класс для вашего интерфейса, объявить внутри него виртуальные функции какие требуются, под виртуальными нужно понимать применительно к дайзет тупо пустые функции, объявить некий набор переменных если требуется, и уже в Mission описать сами интерфейсы требуемые вам используя в качестве базового класса для них созданный в World, и уже в модуле Mission переопределить виртуальные функции в их конкретной реализации. И вы сможете вполне корректно размещать сами классы интерфейса по феньшую, и иметь возможность обращаться к содержимому в этих классах из World. 

Share this post


Link to post
Share on other sites
  • 0
17.09.2020 в 08:15, SteelRat сказал:

В принципе, это и есть тот танец с бубном.

Только более правильным, как бы считается в контексте объектно ориентированного программирования, создать в Game или World, по вкусу, базовый класс для вашего интерфейса, объявить внутри него виртуальные функции какие требуются, под виртуальными нужно понимать применительно к дайзет тупо пустые функции, объявить некий набор переменных если требуется, и уже в Mission описать сами интерфейсы требуемые вам используя в качестве базового класса для них созданный в World, и уже в модуле Mission переопределить виртуальные функции в их конкретной реализации. И вы сможете вполне корректно размещать сами классы интерфейса по феньшую, и иметь возможность обращаться к содержимому в этих классах из World. 

Немного тяжело понять на практике, о чем идет речь, поскольку программированию учусь самостоятельно на базе доступного кода.

Share this post


Link to post
Share on other sites
  • 0

Такие темы сами по себе не очень комфортны для восприятия), в смысле когда требуется обратиться к тому что на момент времени не существует в принципе. И по факту нет универсальных решений при таких раскладах, почти всегда каждый отдельно взятый случай требует поиска своих оптимальных решений.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.