Current time: 27.11.2024, 06:50 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Авторам плагинов
» Заметки по ERA API
Author Message
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #13

(20.11.2020 13:04)feanor Wrote:  Не решает проблему с новой частью таблицы.

Резать таблицы в памяти на части - плохая идея. Сразу и оригинальный код слетит к майкрософту, а не только UN:C. Да и любые обращения к таким вещам как к единой таблице будут приводить к ошибкам. Поэтому такие варварские воговско-хотовские методы фрагментации таблиц - зло, которого необходимо избегать на ERA. На MoP например такие вещи вырезаны нафиг.

(20.11.2020 13:04)feanor Wrote:  Потом появляется плагин на расширение городов. Он эту таблицу переносит, регистирует редирект блока, заполняет данные десятого города..
И на десятом городе скрипт начинает в лучшем случае не работать (если он правит данные где-то за верхней границей массива, но там ничего важного нет), в обычном - ронять игру (если правит данные за верхней границей массива, но там критичное), в худшем - работать неправильно (если он пытатся брать данные из мусора за верхней границей).

Отчего ж будет работать не правильно? Редитект блок укажет новый адрес начала этой таблицы. Таблица уже заполнена готовыми данными непосредственно в самой dll и имеет в памяти следующий вид:

Code:
Town_SiegeTowersArmy = $
;<<<ЗАМОК>>>
dd CR_Арбалетчик,    780, 238, 648, 566, 596, 80, 6609B0h
;<<<ОПЛОТ>>>
dd CR_Эльф,        786, 240, 625, 563, 595, 81, 660998h
;<<<БАШНЯ>>>
dd CR_Маг,        753, 251, 609, 578, 600, 92, 660914h
;<<<ИНФЕРНО>>>
dd CR_Гог,        765, 230, 623, 565, 595, 80, 660974h
;<<<НЕКРОПОЛИС>>>
dd CR_Лич,        755, 365, 625, 570, 593, 90, 660968h
;<<<ТЕМНИЦА>>>
dd CR_Созерцатель,    785, 217, 625, 560, 596, 80, 66095Ch
;<<<ЦИТАДЕЛЬ>>>
dd CR_Орк,        785, 222, 615, 557, 596, 80, 660950h
;<<<КРЕПОСТЬ>>>
dd CR_Ящер,        795, 230, 626, 575, 580, 85, 660938h
;<<<СОПРЯЖЕНИЕ>>>
dd CR_Элементаль_Шторма,783, 225, 636, 575, 595, 105, 6608FCh
;<<<ПРИЧАЛ>>>
dd CR_Пират,        780, 238, 648, 566, 596, 80, ZShot194

Хотим заменить Пиратов на Жриц любви Моря? Получаем новый адрес + размер строки * номер города. Скрипт на UN:C теоретически должен сработать без глюков.
(This post was last modified: 20.11.2020 14:38 by XEPOMAHT.)
20.11.2020 13:21
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Авторам плагинов - Berserker - 19.11.2020, 17:39
RE: Авторам плагинов - XEPOMAHT - 19.11.2020, 18:40
RE: Авторам плагинов - Berserker - 19.11.2020, 19:12
RE: Авторам плагинов - XEPOMAHT - 19.11.2020, 20:38
RE: Авторам плагинов - feanor - 19.11.2020, 22:58
RE: Авторам плагинов - Berserker - 19.11.2020, 23:20
RE: Авторам плагинов - Berserker - 19.11.2020, 23:29
RE: Авторам плагинов - XEPOMAHT - 20.11.2020, 00:58
RE: Авторам плагинов - Berserker - 20.11.2020, 01:15
RE: Авторам плагинов - feanor - 20.11.2020, 01:54
RE: Авторам плагинов - Berserker - 20.11.2020, 02:41
RE: Авторам плагинов - feanor - 20.11.2020, 13:04
RE: Авторам плагинов - XEPOMAHT - 20.11.2020 13:21
RE: Авторам плагинов - Berserker - 20.11.2020, 17:39

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group