Current time: 22.11.2024, 16:24 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERM-Справочник v2.9+
» поддержка WoG3.58f / TE / ERA2 команд
Author Message
myoffice91 Offline
Moderators

Posts: 88
Post: #121

Quote:Ресейвер CM (инфо по кликам мышки)
F$
Флаги для кликов мышью
37 - CTRL+ALT+SHIFT+левая кнопка мыши
36 - CTRL+ALT+левая кнопка мыши



  1. Heroes 3 MoP Fan-Patch 3.14
  2. MoP Key Delete RandomMap
  3. TavernVideos BIK ASM
01.10.2019 19:20
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #122

(01.10.2019 19:20)myoffice91 Wrote:  
Quote:Ресейвер CM (инфо по кликам мышки)
F$
Флаги для кликов мышью
37 - CTRL+ALT+SHIFT+левая кнопка мыши
36 - CTRL+ALT+левая кнопка мыши
Ну конечно!
В хелпе же написано, что номера можно комбинировать
CTRL+ALT+SHIFT+ЛКМ = 37 = (4+32+1+0)
CTRL+ALT+ЛКМ = 36 = (4+32+0)

ERM Help Wrote:F$
Флаги для кликов мышью
    0 = левая кнопка мыши
    1 = Shift+ левая кнопка мыши
    4 = Ctrl + левая кнопка мыши
    32 = Alt + левая кнопка мыши
    512 = правая кнопка мыши
Номера можно комбинировать, например, 5 будет означать, что должны быть нажаты Shift + Ctrl + левая кнопка мыши. Правая кнопка не может быть ни с чем комбинирована.


game bug fixes extended.dll || My Plugins || My GitHub
01.10.2019 19:47
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #123

(15.05.2019 08:29)wessonsm Wrote:  Если я не ошибаюсь, есть серьезная ошибка в русском описании команды !!OW:W
...
На самом деле команда !!OW:W#1/$1; возвращает в $1 количество городов под контролем игрока #1.
(15.05.2019 11:21)XEPOMAHT Wrote:     команда позволяет считывать/изменять _PlayerSetup_.HasTowns, а это... количество городов у игрока.
уточните, сколько городов можно установить? и нужно ли замечание в справке сделать по поводу установки кол-ва городов, когда поставят число больше чем есть по факту... будут ли ошибки игры?

wessonsm Wrote:P.S. Очень долго искал в справочнике описание конструкции if-el-en.
Оказывается, в списке ресиверов сверху она обозначена как I/E (буквы заглавные почему-то). Неочевидно от слова "совсем".
А в списке ресиверов справа (кнопка "Ресейверы") ее вообще нет.
исправил, что касается самой кнопки, я подумаю, может и стоит её переделать по понятнее

(15.05.2019 12:29)wessonsm Wrote:  Кстати, я тут еще подумал, неплохо было бы иметь русский вариант справочника в .html, а не в .chm.
я думаю можно и в самом html выкладывать параллельно с *.chm, на Я.диске сделал
15.01.2020 11:40
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #124

(15.01.2020 11:40)Bes Wrote:  уточните, сколько городов можно установить? и нужно ли замечание в справке сделать по поводу установки кол-ва городов, когда поставят число больше чем есть по факту... будут ли ошибки игры?

48. Больше ни редактор, ни игра, ни вог поставить не дадут (хотя можно ставить и больше, но для этого придётся расширять все таблицы городов).
15.01.2020 12:02
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #125

XEPOMAHT, понятно, но что будет при выставлении > 48 ?
вылет? или молчаливое игнорирование игрой такого значения?

что будет возвращаться при отсутствии у игрока городов? 0
а если игрок мёртв? 0или -1 ?
это чтобы я правильно указал диапазон... я так понимаю он должен быть в тексте как 0..48
(This post was last modified: 15.01.2020 12:10 by Bes.)
15.01.2020 12:06
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #126

(15.01.2020 12:06)Bes Wrote:  XEPOMAHT, понятно, но что будет при выставлении > 48 ?
вылет? или молчаливое игнорирование игрой такого значения?

Скорее всего игра может падать - в коде вога проверки на диапазон отсутствуют, т.е. проверять придётся скриптёру.

(15.01.2020 12:06)Bes Wrote:  что будет возвращаться при отсутствии у игрока городов? 0
а если игрок мёртв? 0или -1 ?

0

(15.01.2020 12:06)Bes Wrote:  это чтобы я правильно указал диапазон... я так понимаю он должен быть в тексте как 0..48

0..48
(This post was last modified: 15.01.2020 13:14 by XEPOMAHT.)
15.01.2020 12:40
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #127

(15.01.2020 12:40)XEPOMAHT Wrote:  
(15.01.2020 12:06)Bes Wrote:  это чтобы я правильно указал диапазон... я так понимаю он должен быть в тексте как 0..48
0..48
Эмм...
Может всё таки 0...47 (это и есть 48 городов)
А 0...48 (это 49 городов)


game bug fixes extended.dll || My Plugins || My GitHub
15.01.2020 14:15
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #128

(15.01.2020 14:15)igrik Wrote:  Может всё таки 0...47 (это и есть 48 городов)
А 0...48 (это 49 городов)

Там не номер города, а их количество, т.е. -1 - установит количество городов, равному номеру текущего (по сути баг, так нельзя), 0 - городов нет, 1 - 1 город и т.д. По сути, надо было делать 2 отдельные команды, а не лепить в одну, чтобы скриптёры не путались.
15.01.2020 14:21
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #129

(15.01.2020 14:21)XEPOMAHT Wrote:  Там не номер города, а их количество, т.е. -1 - установит количество городов, равному номеру текущего (по сути баг, так нельзя), 0 - городов нет, 1 - 1 город и т.д. По сути, надо было делать 2 отдельные команды, а не лепить в одну, чтобы скриптёры не путались.
Я это понимаю. Просто ты указал неверный диапазон 0...48. Я поправил тебя и указал, что правильный диапазон 0...47

Справка по моему мнению должна гласить так
Quote:W#1/$1
Получить количество городов под контролем игрока
    #1 – игрок
    $1 – количество городов у игрока


--------------------------------------------------------------------------------

W#1/#2/$1
Установить/проверить порядковый номер города на карте из таблицы городов игрока #1
    #1 – игрок
    #2 – номер города в таблице городов игрока (0…47)
    $1 – установить или проверить номер города на карте (0…47)


game bug fixes extended.dll || My Plugins || My GitHub
15.01.2020 14:39
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #130

Я в коде Эры, кажись, вычисляю номер города по месту в массиве. А так, видимо, делать нельзя. Но если номер города не идентичен индексу в массиве, то доступ к структуре города можно получить только линейным поиском. Странная команда. Для чего она нужна? Такое бывает в героях, чтобы номер города на карте отличался от его индекса в массиве городов в нормальном случае?


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
15.01.2020 16:01
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #131

(15.01.2020 16:01)Berserker Wrote:  Такое бывает в героях, чтобы номер города на карте отличался от его индекса в массиве городов в нормальном случае?
Я думаю что нет, не отличается. Просто, как я понимаю, ты говоришь о массиве городов в игровом менеджере 0x699538
Доступ к структуре города правильно получать (0x699538->0x21614) + 360 * town_id)
Вот town_id как раз и есть номер города на карте.

А в справке в команде OW:W речь идет конкретно о стуктуре игрока (красный, синий и т.д.), в которой в каждой есть свой массив с кол-вом городов под контролем игрока и массивом городов byte[48], в которых индекс (это номер города в списке у конкретного игрока) и значением (номер города на карте town_id ).
Надеюсь я правильно донёс смысл.

Что-то типо этого: получить структуру третьего города у красного игрока:
Code:
BYTE town_id = o_GameMgr->Player[0].towns_ids[2];
_Town_* town = o_GameMgr->(0x21614) + 360 * town_id;


game bug fixes extended.dll || My Plugins || My GitHub
15.01.2020 16:32
Visit this user's website Find all posts by this user Quote this message in a reply
wessonsm Offline

Posts: 792
Post: #132

Quote:Я это понимаю. Просто ты указал неверный диапазон 0...48. Я поправил тебя и указал, что правильный диапазон 0...47
Я думаю, 0..47 - правильный диапазон для номера города.
0..48 - правильный диапазон для количества городов.
Если к-ство городов 1, он имеет номер 0,
если к-ство городов 2, они имеют номера 0 и 1 и так далее.
..
если к-ство городов 48, они имеют номера 0..47.
(This post was last modified: 15.01.2020 17:17 by wessonsm.)
15.01.2020 17:08
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #133

igrik, всё, понял. Номер города в визуальном списке игрока. Спасибо.


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

Posts: 5422
Post: #134

(15.01.2020 14:39)igrik Wrote:  Справка по моему мнению должна гласить так
Quote:W#1/$1
Получить количество городов под контролем игрока
    #1 – игрок
    $1 – количество городов у игрока
igrik, если у героя 48 городов (в визуальном списке), то проверка этой командой вернёт ему именно число 48. не 47 же?! потому и говорим про диапазон 0..48
Ab
16.01.2020 03:58
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #135

Image: 71d7b31e5055.png
Цвета текстовой подложки - номера подставлять в поле background color (Click to View)
... далее проверять не стал, думаю и незачем, собственно...
(This post was last modified: 15.02.2020 21:44 by Bes.)
15.02.2020 20:43
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group