Current time: 30.11.2024, 10:12 Hello There, Guest! (LoginRegister)
Language: english | russian  

Thread Closed 
Threaded Mode | Linear Mode
WoG 3.59: планы по реализации, идеи и пр. вопросы
» [старая тема]
Author Message
Sav Offline

Posts: 2180
Post: #271

Для переменных нужно выделять память.
11.09.2010 18:07
Find all posts by this user
GhostManSD Offline

Posts: 1054
Post: #272

Для функций её нашли, а переменные не менее важны. К тому же, вдруг это можно реализовать в отдельной DLL.


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
11.09.2010 19:13
Visit this user's website Find all posts by this user
Sav Offline

Posts: 2180
Post: #273

Каждая переменная, даже неиспользуемая, - это область памяти, равная сколько-то (v по-моему 4) байтов. Номер функции же - это просто название и затраты памяти на увеличение их количества незначительны, если я правильно понимаю.
11.09.2010 19:39
Find all posts by this user
Berserker Offline
Administrators

Posts: 16657
Post: #274

Номер - это номер. Все ЕРМ события, будь то OB или FU имеют номер. Он находится в рамках от 0 до 2^31. Соответственно сам номер нигде ничего не занимает, а просто указывается при генерировании события.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.09.2010 20:20
Find all posts by this user
ROSOMAHA Offline

Posts: 67
Post: #275

какая версия героев WoG вышла уже последняя? Нигде не могу актуальной инфы на эту тему найти. Плиз напишите и дайте ссылку.
12.09.2010 11:50
Visit this user's website Find all posts by this user
Sav Offline

Posts: 2180
Post: #276

3.58f + Era. В личку кинул (оченьSm) краткое описание и ссылки.
12.09.2010 11:53
Find all posts by this user
etoprostoya Offline

Posts: 1809
Post: #277

(11.09.2010 02:17)GrayFace Wrote:  Большинство. Есть несколько несовместимостей, я их где-то здесь писал. 2 очень мелкие, а в одну могут попасться какие-то скрипты - в 3.58 локальные переменные инициализировались 0 при каждом вызове триггера, а в 3.59 - не инициализируются. Еще, вероятно, несовместимостей добавят баги Sm
Разве большинство? Что-то мне подсказывает, что в большинство серьёзных модов и карт-модов уже не возможно будет поиграть, так как там часто используются переменные, которые изначально предполагаются равными нулю.
13.09.2010 01:22
Find all posts by this user
GhostManSD Offline

Posts: 1054
Post: #278

Можно с самого начала запустить цикл, устанавливающий все переменные на 0.

!?FU99999;
!!VRvx16:S0;
!!VRzx16&x16<1001:S^^;
!#DO99999/1/10000/1:P;

Как-то так. При условии, что количество v- и z- переменных не увеличат (а хотелось бы побольше).
В идеале, если такое не повредит работоспособности игры, такое можно вшить в игру. Я не знаю, как это выглядит на LUA, поэтому написал на ERM.


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
13.09.2010 01:32
Visit this user's website Find all posts by this user
etoprostoya Offline

Posts: 1809
Post: #279

(13.09.2010 01:32)GhostManSD Wrote:  Можно с самого начала запустить цикл, устанавливающий все переменные на 0.
Для этого нужно изменять скрипты мода или карты. Не каждый игрок это сможет. Да и захочет ли? Проще остаться на 3.58f, в которой нет никаких проблем с такими скриптами.
13.09.2010 01:50
Find all posts by this user
GhostManSD Offline

Posts: 1054
Post: #280

etoprostoya, ты просто не дочитал до конца. Я описал сам принцип, подразумевая, что этот принцип будет вшит намертво в загрузку игры. Или хотя бы в загрузку карты.
Сейчас, кстати, понял, что лопухнулся. Сергей писал не про стандартные переменные, а про переменные y-# и y#. А они, к сожалению или счастью, для каждого триггера свои, и изменение их по принципу, изложенному выше (т.е. в отдельной функции), не изменит их в другой функции (т.е. с отличным от нуля номером FU#).


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
13.09.2010 02:03
Visit this user's website Find all posts by this user
GhostManSD Offline

Posts: 1054
Post: #281

Кстати, локальные переменные предназначены для длительного хранения? Например, я установил переменные y1 и y-1 для объекта x/y/l. Если я поброжу по карте месяцок-другой, активирую пару скриптов и вернусь к этому же объекту, я получу то самое значение?


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
13.09.2010 02:09
Visit this user's website Find all posts by this user
Valery Offline

Posts: 2196
Post: #282

(11.09.2010 02:17)GrayFace Wrote:  Большинство. Есть несколько несовместимостей, я их где-то здесь писал. 2 очень мелкие, а в одну могут попасться какие-то скрипты - в 3.58 локальные переменные инициализировались 0 при каждом вызове триггера, а в 3.59 - не инициализируются. Еще, вероятно, несовместимостей добавят баги Sm

If 3.59 + bonus not 100% compatible with 3.58 local variables scripts, very very very bad idea. Oh well...progress is not easy.Bad
13.09.2010 02:29
Find all posts by this user
Sav Offline

Posts: 2180
Post: #283

А зачем вообще не обнулять их? В этом есть какой-то смысл?
13.09.2010 09:33
Find all posts by this user
GrayFace Offline
Forum Moderators

Posts: 1233
Post: #284

(13.09.2010 01:22)etoprostoya Wrote:  Разве большинство? Что-то мне подсказывает, что в большинство серьёзных модов и карт-модов уже не возможно будет поиграть, так как там часто используются переменные, которые изначально предполагаются равными нулю.
Именно локальные предполагаются равными нулю?

(13.09.2010 01:50)etoprostoya Wrote:  
(13.09.2010 01:32)GhostManSD Wrote:  Можно с самого начала запустить цикл, устанавливающий все переменные на 0.
Для этого нужно изменять скрипты мода или карты. Не каждый игрок это сможет. Да и захочет ли? Проще остаться на 3.58f, в которой нет никаких проблем с такими скриптами.
На самом деле, можно будет даже для карт, которые не вогифицируются, выполнить код при загрузке.

(13.09.2010 02:09)GhostManSD Wrote:  Кстати, локальные переменные предназначены для длительного хранения? Например, я установил переменные y1 и y-1 для объекта x/y/l. Если я поброжу по карте месяцок-другой, активирую пару скриптов и вернусь к этому же объекту, я получу то самое значение?
У объектов нет локальных переменных. Для них есть переменные !!PO.

(13.09.2010 09:33)Sav Wrote:  А зачем вообще не обнулять их? В этом есть какой-то смысл?
Можно использовать их на протяжении нескольких триггеров. Особенно, с новой командой GoTo:
Code:
!?FU255;
!!VRy1:S100;

!?FU255&y1>0;
(...)
!!VRy1:-1;
!!FU:E-1; [goto]
В 3.58 после каждой !?FU255 локальные переменные занулялись.
Еще увеличивается быстродействие.

В общем, если есть карты и моды, для которых это важно, наверное, придется вернуть зануление. Мне все-равно уже мало нравится этот вариант GoTo.


Вся правда обо мне
15.09.2010 06:29
Find all posts by this user
etoprostoya Offline

Posts: 1809
Post: #285

Quote:Именно локальные предполагаются равными нулю?
Да.
Quote:В общем, если есть карты и моды, для которых это важно, наверное, придется вернуть зануление. Мне все-равно уже мало нравится этот вариант GoTo.
Это хорошо. Sm
15.09.2010 10:42
Find all posts by this user
« Next Oldest | Next Newest »
Thread Closed 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group