(15.03.2020 16:43)Bes Wrote: мне главное понять так какой формат данных там устанавливается, таблицы построек схожи, в одной номера строений до 40, во второй с указанием битовых значений и порядок нумерации отличный от первой таблицы.
Всё правильно: в B1 номера строений представлены в виде двух флаговых значений, первое аккумулирует здания с номерами 0..31, второе - 32..43.
Вот таблица флаговых значений битов (из исходников Тифона):
Code:
Школа1ур = 1 ;00 -0
Школа2ур = 2 ;01 -0
Школа3ур = 4 ;02 -0
Школа4ур = 8 ;03 -0
Школа5ур = 16 ;04 -0
Таверна = 32 ;05 -1
Верфь = 64 ;06 -2
Форт1 = 128 ;07 -3
Форт2 = 256 ;08 -3
Форт3 = 512 ;09 -3
Управа1 = 1024 ;10 -4
Управа2 = 2048 ;11 -4
Управа3 = 4096 ;12 -4
Управа4 = 8192 ;13 -4
Рынок1 = 16384 ;14 -5
Рынок2 = 32768 ;15 -6
Кузница = 65536 ;16 -7
;Special1
t1Маяк = 131072 ;17 -8
t2Пруд = 131072 ;17
t369Торговцы = 131072 ;17
t4Тучи_UP = 131072 ;17
t5Вуаль = 131072 ;17
t7Ход = 131072 ;17
t8Клетка = 131072 ;17
Фан1 = 131072 ;17
;end
DwBonus1 = 262144 ;18 -9
DwBonus1up = 524288 ;19 -9
Лодка_построена = 1048576 ;20 -13
;Special2
t1Конюшни = 2097152 ;21 -10
t2Фонтан = 2097152 ;21
t3Смотровая = 2097152 ;21
t4Тучи = 2097152 ;21
t5Усилитель = 2097152 ;21
t6Вихрь = 2097152 ;21
t7Гильдия = 2097152 ;21
t8Знаки = 2097152 ;21
t9Университет = 2097152 ;21
t10Порох.Склад = 2097152 ;21
Фан2 = 2097152 ;21
;Special3
t1Братство = 4194304 ;22 -11
t2Сокровищница = 4194304 ;22
t3Библиотека = 4194304 ;22
t4Врата = 4194304 ;22
t5Трансформатор = 4194304 ;22
t6Портал = 4194304 ;22
t7Двор = 4194304 ;22
t8Обелиск = 4194304 ;22
t10Гильд.Воров = 4194304 ;22
Фан3 = 4194304 ;22
;Special4
t1Родник = 8388608 ;23 -12
t2х_з = 8388608 ;23
t3Стена = 8388608 ;23
t4Орден = 8388608 ;23
t5Некротрон = 8388608 ;23
t6Академия = 8388608 ;23
t7Храм = 8388608 ;23
t8Мельница = 8388608 ;23
t10Грот = 8388608 ;23
Фан4 = 8388608 ;23
;end
DwBonus2 = 16777216 ;24
DwBonus2up = 33554432 ;25
Грааль = 67108864 ;26
;t2х_з = 134217728 ;27
;t2х_з = 268435456 ;28
;t2х_з = 536870912 ;29
Dw1 = 1073741824 ;30
Dw2 = 2147483648 ;31
Dw3 = 1 ;32
Dw4 = 2 ;33
Dw5 = 4 ;34
Dw6 = 8 ;35
Dw7 = 16 ;36
Dw1up = 32 ;37
Dw2up = 64 ;38
Dw3up = 128 ;39
Dw4up = 256 ;40
Dw5up = 512 ;41
Dw6up = 1024 ;42
Dw7up = 2048 ;43
Значения флагов суммируются, получая итоговое значение, которое потом можно установить командой B1 для каждой постройки в городе, в итоге получив дерево зависимости строительства зданий:
Code:
;Школа1ур
dd 0, 0
;Школа2ур
dd Школа1ур, 0
;Школа3ур
dd Школа2ур, 0
;Школа4ур
dd Школа3ур, 0
;Школа5ур-------------notused
dd 0, 0
;Таверна
dd 0, 0
;Верфь
dd 0, 0
;Форт1
dd 0, 0
;Форт2
dd Форт1, 0
;Форт3
dd Форт2, 0
;Управа1
dd 0, 0
;Управа2
dd Управа1+Таверна, 0
;Управа3
dd Управа2+Таверна+Школа1ур+Рынок1+Кузница, 0
;Управа4
dd Управа3+Таверна+Школа1ур+Рынок1+Кузница+Форт3, 0
;Рынок1
dd 0, 0
;Рынок2
dd Рынок1, 0
;Кузница
dd 0, 0
;t10х_з-------------notused
dd 0, 0
;DwBonus1 Кабак
dd Dw2, 0
;DwBonus1up
dd 0, Dw2up
;Лодка_построена
dd 0, 0
;t10Порох.Склад-------------как-то наверное можно сделать, х.з.
dd 0, Dw3up
;t10Гильд.Воров
dd Таверна, 0
;t10Грот
dd Рынок1, 0
;DwBonus2 Насест
dd 0, Dw4
;DwBonus2up
dd 0, Dw4up
;Грааль
dd 0, 0
;х_з-------------notused
dd 0, 0
;х_з-------------notused
dd 0, 0
;х_з-------------notused
dd 0, 0
;Dw1 Водопад Нимф
dd Форт1, 0
;Dw2 Хижины Матросов
dd Форт1+Dw1, 0
;Dw3 Фрегат
dd Форт1+Dw2+Кузница, 0
;Dw4 Гнездо Ассид
dd Форт1+Dw2, 0
;Dw5 Башня Морей
dd Форт1+Школа1ур, Dw3
;Dw6 Форт Никсов
dd Форт1, Dw4
;Dw7 Водоворот Змеев
dd Форт1+Школа2ур, Dw5+Dw6
;Dw1up
dd Dw1, 0
;Dw2up
dd Dw2, 0
;Dw3up
dd 0, Dw3
;Dw4up
dd 0, Dw4
;Dw5up
dd 0, Dw5
;Dw6up
dd 0, Dw6
;Dw7up
dd Школа3ур, Dw7
Команда B2 оперирует непосредственно номерами зданий (0..43), т.е. скриптёру не нужно конвертировать их во флаговые значения и суммировать (команда сделает это автоматически перед установкой флагов в таблицу города).
(This post was last modified: 15.03.2020 17:50 by XEPOMAHT.)
|