| 
 
				 (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.)
 |