NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
IP сервера изменён! Новый IP: 45.144.64.229. Сервер также доступен через Westwood Online (XWIS, игру через сервер)


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Сообщения - det

Страниц: [1]
1
В форуме бажина что не дает править сообщения.
Последняя и пофикшеная версия скрипта - тут
https://github.com/ovitente/nox-unimod-scripts/blob/main/mana-regen.lua

2
Скрипт для регена маны
Большая благодарность Xandros!

Конкретно этот я вызываю через F5
добавив в autoexec.luaconExec("bind F5 \"dofile(\'mana-regen.lua\')\"")
Принцип работы
Работает 30 секунд.
Сам определяет текущий максимум маны и останавливается.
Количество маны регенящейся за кадр редактируется на этой строчке
unitMana(player, math.min(maxmana, currentMana + 2))Желающие могут убрать ограничение работы в 30 сек. Но тогда скрипт надо подгрузить только 1 раз, иначе последующие он будет накладываться и существенно ускорять реген аж до закрытия игры.

Сам скрипт под спойлером
Spoiler (click to show/hide)

3
Да, задача больше написать рабочий скрипт на юнимоде, что бы рабочий вариант, который можно расшарить для всех.
Если конкретнее, то нужно что бы мана регенелась так же как возле кристалла маны (но медленнее медленнее). Только без кристаллов)

4
Не думаю, в идеале хотелось бы просто регенить ману практически сразу после затраты, и регулировать таймаут и скорость ее итерации(регена).
Вот и спрашиваю что может понадобится что бы это реализовать, конечно для меня это трудновато пока, но если ни у кого нет готового решения, то прийдется делать самому, но пока не знаю как.

5
А действительно, как можно соорудить реген маны?
Мне не доступно накодить это в С, но я массу уже наковырял через NXModSuite правя игровые файлы *.bin и играясь со спавном разных предметов с любыми параметрами, но вот регем маны пока не приобрел.

Я заметил, что чем выше макс ману ставлю в gamedata.bin, например 4000, тем быстрее она восстанавливается.
Но хочется поиграть с оригинальным колвом 170, но что бы был скрипт который ее регенит.

Как вот например мне скинул один хороший человек. Он мне сказал что без его версии юнимода работать не будет ибо нету AddMana.
У кого есть юнимод в котором это будет работать?
Или может весь нокс? Сбросьте пожалуйста.

local uc = getPtrPtr(owner, 0x2EC)
    local plrAction = getPtrByte(uc, 0x58)
    -- Если игрок не двигается, каждый третий фрейм добавляем единицу маны
    if (plrAction == 13 or plrAction == 10) then
        if (math.mod(getFrameCounter(), 3) == 2) then
            playerAddMana(owner, 1)
        end
    end

6

С помощью KirConjurer реализовал возможность перенаправлять нажатия любой клавиши мышки и клавиатуры на игровые Fки, или что угодно.

Это в autoexec.lua
conExec("bind F1 \"dofile(\'f1.lua\')\"");
conExec("bind F2 \"dofile(\'f2.lua\')\"");
conExec("bind F3 \"dofile(\'f3.lua\')\"");
conExec("bind F4 \"dofile(\'f4.lua\')\"");
conExec("bind F5 \"dofile(\'f5.lua\')\"");
conExec("bind F6 \"dofile(\'f6.lua\')\"");
conExec("bind F7 \"dofile(\'f7.lua\')\"");
conExec("bind F8 \"dofile(\'f8.lua\')\"");
conExec("bind F9 \"dofile(\'f9.lua\')\"");
conExec("bind F10 \"dofile(\'f10.lua\')\"");
conExec("bind F11 \"dofile(\'f11.lua\')\"");
conExec("bind F12 \"dofile(\'f12.lua\')\"");

А потом перехватываю их хатками (AutoHotkey)
;Скрипт будет работать пока работает gamu.exe иначе перейдет в режим "сна" до запуска Nox
; ОТПРАВЛЯЯ КНОПКИ НАДО ИСПОЛЬЗОВАТЬ МАЛЕНЬКИЕ, ИНАЧЕ БОЛЬШИЕ ПОТРЕБУЮТ ЕЩЕ НАЖАТИЯ ШИФТА.
SetTimer, KeepRunning

KeepRunning:

  WinGet, szProcessName, ProcessName, A
; Имя исполняемого файла GAMU.EXE. Если вы его меняли, измените его также и здесь, иначе макрос не будет работать.
  if szProcessName = GAMU.EXE
  {
    Suspend, off
  }
  else
  {
    Suspend, on
  }
return

; Первая боковая клавиша мышки
XButton1::
   Send {F1}
return

; Вторая боковая клавиша мышки
XButton2::
   Send, {c down}
   Sleep 30
   Send, {c up}
return

Numpad5::
   Send, {F2 down}
   Sleep 30
   Send, {F2 Up}
return

; Мана
CapsLock::
   Send {F4}
return

7
Огромное спасибо!
Это именно то, что мне было нужно!)

8
3. Можно налажить зачарование на предмет сразу как его создаешь

itemEnchants(item, <до пяти энчантов подряд как строки через запятую>);

энчанты идут по именам как называются в системе. Возможно нужно обязательно сунуть первыми цвета.

А не мог бы ты очень пожалуйста привести пару примеров, что бы я хоть уловил суть)
Какие имена в системе? В какой системе?


Просто сейчас мой файл спавна предметов выглядит так:
setMe()
x,y=playerMouse(me)
obj = createObject('LeatherBoots',x,y)
itemEnchants(obj, 14, ENCHANT_PROTECT_FROM_ELECTRICITY)
ID зачарования брал отсюда

Сапоги спавнятся, но без свойств,  в консоли чисто, кроме умолчательного dofile deprecated...
Как правильно передать обьект функции?
Например создать меч бющий огнем 4-го уровня.

P.S. Есть ли какой нибудь чат по этому форуму, или где можно было бы более оперативно узнавать такие вещи у людей добрых? )

9
Скажите пожалуйста, а как биндить команды на любые кнопки клавиатуры?
И что бы после перезапуска игры они не стирались.
В идеале на боковую кнопку мышки, но это я могу сделать и сам, через AutoHotkey.

10
Спасибо, правда я надеялся это сделать возможностями юнимода, через lua, а с C++ я не знаком, увы)
Как альтернатива я смог вычислить значения в памяти через cheat engine, там на луа скрипт написать уже можно.
И естественно задать нужные параметры для скорости восстановления, модификаторы и пр.
Да и удобно, что можно воспользоваться встроенным генератором уже трейнера экзешника, своего, без вирей.

11
С первым пунктом помог Evengard.

Что бы получить хп и вывести значение на экран необходимо
x = unitHP(playerGetByName("det"))
conExec("say "..x)
где det это имя персонажа
А если вывести просто в консоль то print(x)

12
Здравствуйте.

Мне захотелось поиграться с моддингом, и оказалось что с документацией вообще очень грустно.
Подскажите пожалуйста по следующим вопросам, в основном касаются юнимода.
Документацию по нему, к сожалению небольшую, уже прочитал. В основном это описание функций и атрибутов.
Играю только кампанию пока что.

1.  Как корректно использовать функцию unitHP(userdata Unit, number HP) ?
Что значат слова userdata и number в данном случае?

Я хотел считывать значение хп юнита, а именно своего персонажа с ником det, и выводить значение в консоль, или словно персонаж это "сказал" в чат, то есть над ним появился пузырь такой, в контуре которого выведется значение. Вроде say unitHP.
Я пытался это сделать функцией netClientPrint(userdata Player, string Text [, number Color]), но мне не понятно как работает и она.
Патался использовал ее так
unitHP(userdata det, HP)
netClientPrint(userdata det, string HP [, 14])
И почему запятая после первой квадратной скобки? Непонятно тоже.
Увы не работает.
Это мне нужно для отладки других вещей.

2. Существуют ли функции, или каким образом, используя только луа скриптинг можно возвращать значения маны персонажа, для последующей манипуляции ее значением?
К примеру увеличение скорости регена маны.
Если это можно сделать без скриптинга, очень прошу подскажите какой файлик редактировать, ибо я перекопал пока все что знал и увы, не нашел.


3. Каким образом можно спавнить уже зачарованные предметы? К примеру "Посох Молний Перезарядки", просто по id ForceWand спавнится обычный неперезаряжаемый посох.

13
Увы, не нашел, плохо искал )
Зато теперь список отсортирован)
К стати мне не удалось найти id оружия для мага, которое зачаровано, например "посох полний перезарядки", обычный я спавнить могу, а вот перезарядки как то не нашел.

А вот где бы можно найти список функций по юнимоду, что бы написать функцию для постоянного контроля кол-ва маны, для ускорения ее восстановления, методом итерации, да любым способом. Нужны функции для работы с маной и жизнями, для управления ими, а код на луа я написать смогу, несмотря на то, что только начал осваивать этот язык. Примеров найду и адаптирую функцию, нужны только верные переменные, или функции, что бы подсмотреть методику.

То же с жизнями, что бы они восстанавливались оперативно, но при получении урона - реген прекращался, на некоторое время после получения урона, а потом восстанавливал постепенно.

14
Странно, у меня раскладка не переключается через скроллок.
На радостях возможности альттабится благодаря sdl фиксу из юнимода, я сделал для вас, товарищи, список всех книг заклятий что выдолбил из клавиатуры:

Появляются они у курсора, командой
Цитировать
crSpell(НОМЕР)

НЕ все цифры создают рабочую книгу, ниже список работающих, и приводящих к вылету из игры.



Spoiler: Колдун (click to show/hide)
Spoiler: Маг (click to show/hide)
Spoiler: Вылеты (click to show/hide)
Остановился на 144, для воина способности видимо получаются по другому, как найду как - отпишусь.

На этом список закончился. Если нужно - переведу на англ и размещу в соответствующей теме.


Помогите мне пожалуйста с вопросами что я описал выше (кто может), уж очень хочется пройти одну из любимых игр с интересом "по-своему" ))

15
Спасибо большое за такой быстрый ответ, я даже успел найти это же решение на другом источнике.
К сожалению ваш вариант мне не подошел, потому что умолчательное имя персонажа я оставил на русском, а в игре переключиться или скопипайстить русского "Джек" мне не удалось.


Другой вариант выглядит так.
В начале функцией в консоли игры
setMe()
x,y=playerMouse(me)
получаем координаты, а потом
createObject("OblivionOrb",x,y)
Эти три строчки я внес в пустой текстовый файл с расширением .lua а в игре просто выполняю
dofile('ИМЯ_ФАЙЛА.lua')
Вот список id обьектов что мне удалось найти пока что.
А вот список id именно предметов .

Подскажите пожалуйста по еще нескольким вопросам:
1. Каким образом можно уменьшить затратность маны именно заклинанием молнии?
Потому что в конфигаг я находил только кол-во маны для обычных заклинаний.
2. Хотелось бы реализовать быстрое автоматическое восполнение маны, может луа скриптом? Но я не умею писать на нем к сожалению.
3. Можно ли сделать Посох молний самозаряжающимся?
4. Где можно найти наиболее полный список id предметов?
5. Как можно суммонить себе spellbooks, книги с заклинаниями? Потому что функция crSpell(spellN) конечно создает книги, например crSpell(SPELL_MAGIC_MISSILE), но игра говорит что я не могу ее использовать (при этом 2 уровня уже есть). Оказывается spellN означает номер, по этому книги не читабельны вообще. Но я не знаю где найти номера этих id получается.
Я сейчас подбором выписываю все заклинания, и отпишусь по результату.

16
Здравствуйте.
Я снова поставил нокс, дабы пройти кампанию спустя много лет, еще раз.
Но на это траз мне хочется поиграться с конфигами, с этим проблем нет, все необходимое я нашел. Только редактор карт вылетает.
Юнимод установил (правда он не запускается через NoxPatched_UniMod.exe, только через NoCD_U.exe), но как использовать эти функции в кампании?
В autoexec.lua я добавил функцию добавления предмета в инвентарь, хотел добавить посох ярости сразу или что нибудь еще, но не знаю как вызывать эту функцию.
Spoiler (click to show/hide)

Страниц: [1]

Страница сгенерирована за 0.084 секунд. Запросов: 17.