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