Current time: 04.03.2025, 22:22 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERM-консоль
» chalk.dll
Author Message
Bes Offline

Posts: 5459
Post: #10

(01.08.2020 03:28)Berserker Wrote:  Да и плагин такой написать на ЕРМ — десяток строк.
вот знаешь ты как меня подковырнуть, пришлось эти десятки строк себе придумывать (и красоту ещё себе отдельно вылепливать, а это лишнее время, я ж без неё не могу)

  1. ZVSE
  2. ; нажав [TAB], будет появляться диалог ввода, где можно писать ЕРМ-команды и выполнять их после ввода
  3. !?FU(OnKeyPressed)&x1=9;
  4. !!VRx2:S1; lock standart action [TAB]
  5. !!VRz1:S^%T(cce.hint)^; текст над областью ввода (временно в z1)
  6. !!FU(ERM_input):P1/?y1; вызываем диалог ввода
  7. !!VRx2&y1=-2:S0; unlock standart action [TAB]
  8. !?FU(ERM_input);
  9. ; x1 - EnableEscButton: BOOLEAN
  10. ; x2 - контроль кнопки Отмена
  11. !!VRz-1:S^%T(cce.caption)^;
  12. !!VRz-2:S^^; заглушка для остальных строк wog-диалога
  13. !!IF:D9/-1/1/-2/-2/-2/-2/-2/-2/-2/-2/-2/-2/-2/-2/-2;
  14. !!IF:F9/-2/-2/-2/-2/x1;
  15. !!IF:E1/9; вывод диалога id=9, v1 хранит выбор в диалоге
  16. ; Текст с окна ввода автоматом попадает в z1
  17. !!VRx2&v1=-1:S-2;
  18. !!FU&v1=-1:E; нажата кнопка Отмена
  19. !!SN:F^ExecErmCmd^/z1; вызов ф-ции исполнения ЕРМ-кода
  20. ; далее введёные команды дублируем в ЛОГ игры
  21. !!SN:Kz1/?y1; получить длину строки
  22. !!SN&y1=0:G[в лог]; прыжок через весь код далее, если ничего не ввели или только один символ
  23. ; <-- блок для переноса ерм-кода, если было введено более одного ресивера
  24. !!VRz-3:S^;^; искомый символ это ;
  25. !!VRy1&y1>0:-1; учитываем что нумерация символов идёт с нуля
  26. !!re i/0/y1:; цикл поиска символа из z-3
  27. !!SN:Kz1/i/?z8; получение символа по порядку из z1
  28. !!VRz8:M1/z8/0/1; сохранить только первый символ (БАГ: SN:K даёт 2 символа)
  29. !!co&z8<>z-3:; завершить текущий круг цикла (символа ; пока нет)
  30. !!VRz9:S^
  31. ^; записать в z9 перенос строки
  32. !!SN:Kz1/i/z9; заменяем символ ; (его позиция сейчас в счётчике цикла) на перенос строки
  33. !!en:;
  34. ; --> end
  35. [:в лог]
  36. !!IF:L1; показать z1 в ЛОГе, что вводили

Учитывая ограничение в 30 символов (на сегодня), более двух команд подрят не написать, так что перенос сделал для одного раза. Ок, убрал ограничитель, учитывая, что, по-правде, можно и три, но это скорее из разряда тестинга диалога, чем из практической плоскости. Короче сам себя переубедил
Хотел было ещё и !! чтоб в логе видны были, да хрен с ними подумал, это уже перебор будет с перфекционизмом 96
06.08.2020 20:22
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
ERM-консоль - Bes - 31.10.2012, 20:59
RE: ERM-консоль, chalk.dll - Bes - 01.08.2020, 01:19
RE: ERM-консоль, chalk.dll - Berserker - 01.08.2020, 03:28
RE: ERM-консоль, chalk.dll - Bes - 06.08.2020 20:22
RE: ERM-консоль, chalk.dll - Bes - 06.08.2020, 20:38
RE: ERM-консоль, chalk.dll - Berserker - 07.08.2020, 01:10
RE: Вопросы по моддингу - Bes - 20.06.2014, 23:57
RE: Вопросы по моддингу - Berserker - 22.06.2014, 03:29
ERM-консоль, chalk.dll - kozelrus - 18.08.2016, 04:17
RE: Ваши вопросы по ERM-скриптам - feanor - 18.08.2016, 13:13
RE: Ваши вопросы по ERM-скриптам - kozelrus - 18.08.2016, 21:41
RE: Ваши вопросы по ERM-скриптам - gamecreator - 18.08.2016, 22:39

Forum Jump:

Powered by MyBB Copyright © 2002-2025 MyBB Group