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

Привет фанатам NoX !!! => Картостроение, скриптинг и моддинг => Моддинг => Тема начата: Dio от 02/08/2010 22:28:21

Название: Вопросы по UniMod-y
Отправлено: Dio от 02/08/2010 22:28:21
Тема посещена вопросам по UniMod-y
Название: Вопросы по UniMod-y
Отправлено: EvilWisp от 03/08/2010 10:37:35
Хочу пользоваться но не знаю как:) с Lua больших проблем не будет, знаю C#. Как я понял это все в основном для написания скриптов для карт, а как это можно использовать в самой игре, например я хочу измерить время каста заклинания, и сохранить ее в какую нибудь переменную.
Название: Вопросы по UniMod-y
Отправлено: Dio от 03/08/2010 11:14:09
измерить время каста спелла сложно. Надо считать сколько кадров прошло их запоминать и так далее..(мб сам сделаешь?).
а вот переменную создать не проблем.
Вот например хочешь ты измерить расстояние между двумя точками.
пишешь в консоли
setMe()
Команда для того что бы в переменную забить юзердату игрока. То есть после нее в переменной me будет лежать юзердата игрока
далее ставишь куда нить курсор и пишешь в консоли
x,y=playerMouse(me) playerMouse() команда которая определяет курсор игрока по его юзердате (1 параметр). То есть в первый параметр мы устанавливаем me. Функция возвращает 2 значения, которые забиваются в переменные x,y.
Перемести курсор в другое место и повтори операцию с переменными x1,y1.
Далее в консоли вводи
distance=math.sqrt((x-x1)^2+(y-y1)^2)в переменной distance будет лежать расстояние между двумя точками.
Название: Вопросы по UniMod-y
Отправлено: horrendous1 от 05/08/2010 15:47:41
Is there any possibility I can use these functions you and sim made in the map editor?
Название: Вопросы по UniMod-y
Отправлено: Dio от 05/08/2010 18:54:30
look at script in the UniMod.map. The function of run.lua or second.lua call with function Waypoint(">NameFunction()").


Так как это по идее звучит на русском


Посмотри на скрипты карты UniMod. Функции из run.lua или second.lua вызываются с помощью функции Waypoint(">ИмяФункции()").
Название: Вопросы по UniMod-y
Отправлено: TheSim от 06/08/2010 00:11:27
Moreover, you can use ANY valid LUA statement inside map editor - just put it in your map script
Waypoint(">x=1+1 print(x)")
Название: Вопросы по UniMod-y
Отправлено: TheSim от 11/08/2010 02:48:10
Из ближайших планов (пара дней)

 пользовательские элементы книги заклинаний == пользовательские спеллы
Название: Вопросы по UniMod-y
Отправлено: Ledi Gadiva от 17/08/2010 12:15:31
Обалдеть! словов столько умных, я поди и не разберусь... я устанавливаю игры кое как, не то что в системных папках копаться :(
Название: Вопросы по UniMod-y
Отправлено: setazer от 31/08/2010 08:12:29
Не разделяю всеобщей радости... У мя на 7ке UniMod после начала игры выдал чёрный экран, и не закрывался даже через диспетчер... (2 раза запускал - 2 раза такая фигня)
Название: Вопросы по UniMod-y
Отправлено: Dio от 31/08/2010 08:53:52
Патч Микса стоит? попробуй юзать и другие экзешники, которые в комплекте с модом
Название: Вопросы по UniMod-y
Отправлено: setazer от 31/08/2010 11:03:12
Патч Микса стоит? попробуй юзать и другие экзешники, которые в комплекте с модом
Как ни странно у мя на него фаервол ругался...
Отключил его - всё заработало

Весьмя интересный мод... Поиграть за лягушку - круто xD У мя даж ассоциация с Гаррис Модом - погонять на арбузе тож прикольно было=)
Название: Вопросы по UniMod-y
Отправлено: Nekon от 31/08/2010 11:32:07
Товарищ setazer, старайтесь не делать дабл постов. В случае если вы хотите что-то добавить к своему сообщению пользуйтесь кнопкой "Изменить"
Название: Вопросы по UniMod-y
Отправлено: setazer от 31/08/2010 11:47:49
Прошу прощения=) Я больше не буду :-[
Еще раз извиняюсь, но я бы убрал 2й пост, если бы знал где тут вообще их удалять - не по глазам мне что-то...
Название: Вопросы по UniMod-y
Отправлено: Evengard от 31/08/2010 13:31:03
Удалять посты может только администрация.
Объединю вручную оба поста.
Название: Вопросы по UniMod-y
Отправлено: Had Zeng от 31/08/2010 16:25:19
А у меня при создании персонажа в NoxPatched_UniMod.exe Вылет к списку игр =_=
Название: Вопросы по UniMod-y
Отправлено: TheSim от 01/09/2010 01:16:38
Ну дык до беты еще не доросли, но когда будет - там будет на что посмотреть.

А системных багов может быть довольно много, но чтобы их можно было исправить
лучше кидайте конфигурацию системы
Win7/Vista/XP, 32bit/64bit, UAC on/off [юак это та хрень, которая всех доставала в висте на каждый чих]
Версию нокса, используете ли патч микса, ноусиди и т.п
Название: Вопросы по UniMod-y
Отправлено: TheSim от 21/12/2010 22:47:02
Ура! Сегодня, 10 минут назад был успешно создан первый тестовый кастомный спелл!
Его единственной функциональностью явилось создание бочки с водой под курсором (пока без всяких спецэффектов),
однако это явный прогресс.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 22/12/2010 09:11:16
Это через UniMod или через IDA?)
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 22/12/2010 09:42:39
Думаю, большинство функций ЮниМода:
Название: Вопросы по UniMod-y
Отправлено: Dio от 22/12/2010 16:20:39
Не рекомендую некоторыми пользоватся, да и вроде в игре самой через консоль некоторые тут недоступны.

Через иду можно только смотреть, ну и регистры менять вроде
Название: Вопросы по UniMod-y
Отправлено: TheSim от 22/12/2010 17:12:16
Это через UniMod

Ну ты, Дио, отжег - перечислил блин - а что они значат - пускай народ сам гадает?

Вообще конечно надо хелп писать, но для этого надо что-нибудь доделать.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 22/12/2010 17:22:37
Перечислил то не Дио - а KiConjurer

А вообще вопрос - когда следующий релиз публичный?)
Название: Вопросы по UniMod-y
Отправлено: Dio от 22/12/2010 17:23:35
Когда все сделаем тогда и будет.
Название: Вопросы по UniMod-y
Отправлено: TheSim от 23/12/2010 00:43:08
Я думаю сделать промежуточный релиз как только доделаю кастомные спеллы, там куча мелких багов возникла после того как они появились.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 23/12/2010 15:13:52
Жду-не-дождусь))
 + Что делают функции netFakeText и playerOnSpell?
Название: Вопросы по UniMod-y
Отправлено: Dio от 23/12/2010 16:35:12
Ну нетФаке тебе не нужен да и он вроде из консоли не доступен. А плеер он спелл это фн которая нужна для реакции каст плера. Это видно из название.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 25/12/2010 09:35:04
Некоторые defaults-функции Юника:
Название: Вопросы по UniMod-y
Отправлено: TheSim от 27/12/2010 06:06:51
Работы все еще ведутся, вот последние результат - добавлена функциональность управления командами игроков.
Ближайший релиз будет  ДО нового года (т.е. на этой неделе)
Название: Вопросы по UniMod-y
Отправлено: Evengard от 27/12/2010 09:06:16
Ура! В топку АдминТулз буржуйский )
Название: Вопросы по UniMod-y
Отправлено: TheSim от 27/12/2010 12:04:20
Кстати, Евен - разбан и старт игры с режимами я ща сделал, так что могу тебе выдать дорелизную версию, в которой сможешь сделать управление серваком с панельки/форума
Название: Вопросы по UniMod-y
Отправлено: Dio от 27/12/2010 12:27:38
Я думаю мы не успеем еще много сделать
Название: Вопросы по UniMod-y
Отправлено: TheSim от 27/12/2010 13:06:53
На самом деле я много сделать и не хочу - хочу закончить с функциями для  управления сервером (там осталось довольно мало) и довести до ума кастомные спеллы (чтобы их можно было находу добавлять, и чтобы они не ломали обычные)

Ну и чуток улучшить демо-карту.
Можно кстати на нее вывести лабиринт в один из больших кусков, только сначала пол надо покрасить
Название: Вопросы по UniMod-y
Отправлено: TheSim от 27/12/2010 20:47:09
Новые функции для управления сервером (специально для Евена)
Название: Вопросы по UniMod-y
Отправлено: TheSim от 30/12/2010 03:29:36
дополнительные админские функции
Название: Вопросы по UniMod-y
Отправлено: TheSim от 31/12/2010 17:03:55
Так и не успели!
Я думаю мы не успеем еще много сделать
Название: Вопросы по UniMod-y
Отправлено: Dio от 31/12/2010 18:05:51
еще как минимум все доделать и автообновление...
Название: Вопросы по UniMod-y
Отправлено: TheSim от 03/01/2011 05:40:09
<Сensored>


МОЯ БАЗА.... ОНА РАССЫПАЛАСЬ!!!
Дио, Евен, когда я высылал вам последнюю версию? а то моя от 21.11 последний бэкап

unseen: мат на форуме запрещён независимо от повода и статуса.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 03/01/2011 07:26:52
Буду дома только 6го, проверю если надо еще будет
Название: Вопросы по UniMod-y
Отправлено: Dio от 05/01/2011 22:42:37
Вот черт... У меня тут хрень с компом опять какая то случилась. Оставил без пресмотра так сказать. Пишу с мобилы. Щас буду выяснять симптомы болезни и выписывать рецепты по лечению)
Название: Вопросы по UniMod-y
Отправлено: TheSim от 05/01/2011 22:49:36
Кстати привет Дио, как сделать две фракции мобов, воюющие между собою и на каких левелах они есть?
Название: Вопросы по UniMod-y
Отправлено: Dio от 05/01/2011 23:25:20
Я комп оживил, вообще можно как то но я не знаю. Вообще смотри битву ховада с злобными урчинами. Или всякие карты mix-a eu_resp.
Название: Вопросы по UniMod-y
Отправлено: Katarsis от 06/01/2011 11:27:22
карта, основанная на битве двух команд монстров (http://rapidshare.com/files/441063918/BoW.rar)
Название: Вопросы по UniMod-y
Отправлено: Had Zeng от 06/01/2011 14:36:58
На BoW нет монстров. Монстры на NWars.
Название: Вопросы по UniMod-y
Отправлено: Katarsis от 06/01/2011 15:54:13
ведь хотел проверить перед закачкой... да и сам бы мог закачать NWars, раз уж заметил...
http://rapidshare.com/files/441098480/Nwars.rar (http://rapidshare.com/files/441098480/Nwars.rar)
Название: Вопросы по UniMod-y
Отправлено: TheSim от 06/01/2011 16:41:38
Спасибо!

P.S. Dio - динамические диалоги я доработал, но почему-то в Editbox моргает не там где пишешь, не знаешь как поправить, ты в нем вроде хорошо разобрался?

Название: Вопросы по UniMod-y
Отправлено: Dio от 06/01/2011 20:48:15
блиииннн это все потому что я сделал проверку на консоль у нее номер 0, кароче легче прок переделать, или задать наконец номер консоли, вообщем я посмотрю.
Название: Вопросы по UniMod-y
Отправлено: TheSim от 14/01/2011 02:25:11
Еще из вопросов для Дио - теряются нажатия при попадании в эдитбокс - т.е. если создать кастомный диалог и тыкнуть в эдит - то F1 например не достает консоль пока диалог не закроется. Подозреваю что связано с фокусом и сообщениями 0x4000 или 0x4003 - не видал таких?
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/01/2011 07:33:32
ммм ну незнаю. Консоль вроде норм пашет на ф1 отвлекается..
Название: Вопросы по UniMod-y
Отправлено: TheSim от 15/01/2011 06:05:45
Чуток разобрался с параметром B  и сделал Advanced - карандаш. Но еще надо Vari прикрутить, а то все уж очень одинаково выглядит.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 15/01/2011 08:55:23
Можно ли сделать так, чтобы при касте ОПРЕДЕЛЕННОГО спелла вызывалась фн?
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 15/01/2011 10:18:24
+ Как снять у какого-либо юнита жизни?
Название: Вопросы по UniMod-y
Отправлено: TheSim от 15/01/2011 11:31:37
второй параметр в playerOnSpell приходит или 3й, если не поменялось. Зависит от того, какой функцией ловишь.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 15/01/2011 12:35:36
Все, разобрался. playerOnSpell[me]=testspl вызывает testspl аж с шестью параметрами...
testspl(userdata caster, nil, true/false(protective/others?), № spell, x mouse, y mouse)
 + Так можно, к примеру, Фантома доделать ^_^[/me]
Название: Вопросы по UniMod-y
Отправлено: TheSim от 16/01/2011 13:29:45
в первой альфе вроде никак нельзя было.

Кстати надо сделать пожалуй редактирование maxHP/MP/maxMP, а также функцию нанесения дамака с учетом брони.
Название: Вопросы по UniMod-y
Отправлено: TheSim от 19/01/2011 12:58:22
редактирование Хп сделал, дамак нет еще.

Надо пожалуй еще альфу выпустить, а то куча всего есть а что к бете и не готово

Дио, как объявишься! давай действительно завтра еще одну альфу выпустим, нам для этого надо:
- проверку версии
- октлючить спеллы
- чут-чуть пригладить тайлы
Название: Вопросы по UniMod-y
Отправлено: TheSim от 21/01/2011 10:15:14
Функцию проверки версии добавил.
Надо только придумать, когда ее вызывать - у нас есть сообщение playerOnConnect ?
Про использование почитай коментарий к коммиту
Название: Вопросы по UniMod-y
Отправлено: Dio от 21/01/2011 14:55:31
playerOnJoin вроде. +на загрузку юнимода
Название: Вопросы по UniMod-y
Отправлено: TheSim от 21/01/2011 17:38:43
onJoin именно на джойн плеера, но со стороны сервера, нужную функцию клиента я сегодня утром уже написал и закомитил
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 29/01/2011 20:40:20
Надо пожалуй еще альфу выпустить, а то куча всего есть а что к бете и не готово
Как я понимаю, идея с выпуском второй альфы забыта?(

Название: Вопросы по UniMod-y
Отправлено: Dio от 29/01/2011 21:47:35
Блин мы не рабы и не роботы, все время над юнимодом работать не можем. У Сима - работы, у меня школа...
Название: Вопросы по UniMod-y
Отправлено: TheSim от 22/03/2011 11:23:38
Существенное достижение - загрузка кастомных рисунков (весьма пригодится для спеллов и прочего)
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 22/03/2011 12:44:29
Отлично.  :clapping: 


Реализована только загрузка и отображение картинки? Выводится на экране поверх всего, что в игре или является частью карты картинка?


PS. Плюсанул. :)
Название: Вопросы по UniMod-y
Отправлено: TheSim от 22/03/2011 13:30:45
Именно загрузка. Может быть использована везде, где нужна картинка (например иконка к спеллу).

Отображение реализовано путем создания окна с картинкой в качестве фона:
local x,y=120,50

function ni(s)
    if s==nil then  return end
    local w={w=40,h=40}
    w.x=x
    w.y=y
    w.image=s
    wndCreate(w)
    x = x + 50
    if x>400 then x=10; y=y+50 end
end

Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 22/03/2011 13:50:45
wndCreate(w) :
Окно устанавливается поверх нокса?
Название: Вопросы по UniMod-y
Отправлено: Dio от 22/03/2011 14:08:43
а как оно может не поверх нокса? это же ноксовое окно...
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 22/03/2011 14:13:12
а как оно может не поверх нокса? это же ноксовое окно...
А я подумал, что имелось ввиду не внутриигровое окно. Во я глупый... :-[ 
Название: Вопросы по UniMod-y
Отправлено: TheSim от 22/03/2011 14:22:41
Это такое же окно нокса, как и любое окно в ноксе (книга заклинаний, консоль или там настройки сервера)

В текущей публичной версии юнимода (0.5) показанная функция работает, нехватает только imgLoad
Поэтому так можно показывать любые имеющиеся картинки по имени
Название: Вопросы по UniMod-y
Отправлено: TheSim от 27/04/2011 00:21:56
Слышь, Дио, ты знаешь как работать с клавиатурой для окон, надо продумать и приделать хоткеи для tileDlg()


Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 14/05/2011 12:10:38
Я где-то откопал исходный код дефолтных функций юнимода..
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/05/2011 13:05:05
Он есть в строковом формате в UniMod.dll. В новой версии некоторые функции были удалены, а некоторые перенесены в autoexec.lua. екоторые удаленные я выкладывал на сайте гильдии `Light`...
Название: Вопросы по UniMod-y
Отправлено: horrendous1 от 14/05/2011 13:46:06
About something different,
I request an english UniMod function list readme.
aka UMFLR..
Because, I have no idea how to make a player put in userdata.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 14/05/2011 14:03:03
What do you mean by "player put"? Maybe I can help?
Название: Вопросы по UniMod-y
Отправлено: horrendous1 от 14/05/2011 15:20:02
Eh well, actually, I just want to make a player a variable. :P
Like, by extent, by username, by whatever, but I want him in a variable, so that I can use functions on them like Freeze and so forth
Название: Вопросы по UniMod-y
Отправлено: Evengard от 14/05/2011 15:34:14
It is a bit complicated.
But see that example:
players=playerList()
for k,v in pairs(players) do -- here we just loop through all the players on the server. The player's userdata is stored in v
if playerInfo(v).name=="martin" then -- here we got the name of the player.
-- do some stuff here...
someFunc(v)
done
done

For a list of all the params you can do that: print(json.encode(playerInfo(playerList()[1]))) in console

Basically userdatas are accessible by this way: playerList()[1], playerList()[2] etc, so playerList() returns a table of userdatas. A table in LUA is something like an Array in other programming languages.
Название: Вопросы по UniMod-y
Отправлено: horrendous1 от 16/05/2011 16:22:05
That seems understandable, thanks for the info.


Although,
if playerInfo(v).name=="martin" then
does this search through that array for the player name called martin, or the westwood online name?
does it actually check the name from the .plr file?
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 16/05/2011 17:07:22
That seems understandable, thanks for the info.


Although,
if playerInfo(v).name=="martin" then
does this search through that array for the player name called martin, or the westwood online name?
does it actually check the name from the .plr file?
It checks 'player info' field 'name', from a specified player's ptr. You can also check names of all players in game's memory, from a 'player info' or a 'player table' memory, it starts at 0x0062F9A4, every player entry length is 0x12DC, and host player number is 30. (31?)
0x12DC * 0x1E + 0x0062F9A4 + 0x1D70 (displayed player's nick)
Название: Вопросы по UniMod-y
Отправлено: Evengard от 16/05/2011 23:32:09
it is 31 :)

Just run print(json.encode(playerInfo(playerList()[1]))) and you will get the list of all availabble fields. v.name is the player name specified in plr file. for the WOL name it is v.wol
Название: Вопросы по UniMod-y
Отправлено: EvilWisp от 31/05/2011 09:01:20
Написал в теме noxmanager, что хотелось бы уметь сохранять лог консоли в файл, и потом подумал, что средствами юнимода это будет сделать проще, или может вобще это уже можно сделать?
В корневой папке сделать файл *.txt, в который все время будет писатся лог консоли..
Останется только решить - это будет зашибательски или супер мега круто? :)
Название: Вопросы по UniMod-y
Отправлено: Dio от 31/05/2011 09:27:47
Вроде уже ж сделали сохранения лога...
Название: Вопросы по UniMod-y
Отправлено: EvilWisp от 31/05/2011 10:00:49
А каким образом он происходит? видимо я что-то упустил..
Название: Вопросы по UniMod-y
Отправлено: Evengard от 31/05/2011 12:00:16
Вообще то это реально сделать и без помощи ЮниМода - как это сделал на сервере я.
1. В консоле игры вбиваем "set sysop <пароль>"
2. В консоле игры вбиваем "telnet on <порт>"
3. Запускаем виндовую консоль
4. Вбиваем в неё "telnet localhost <порт> > C:\MyLovelyFolder\MyLovelyLog.txt"
5. Вводим пароль
Ну и потом мы получаем возможность как вводить команды, так и видеть то, что есть.
Название: Вопросы по UniMod-y
Отправлено: EvilWisp от 31/05/2011 12:11:48
А я на сервере так смогу сделать?
Ведь на noxworld-mail уже стоит твоя настройка вывода консоли.
Получается это можно только на своем хосте сделать? а мне нужно брать лог из своей консоли на любом хосте
Название: Вопросы по UniMod-y
Отправлено: Evengard от 31/05/2011 12:16:46
Ну вообще то это для своего хоста только можно сделать.
Название: Вопросы по UniMod-y
Отправлено: Dio от 01/06/2011 20:28:22
Помогая Ларбоссу с его менеджером (консоль лог), у меня появилась идея. А что если сделать лог чисто сообщений игроков с сохранением в файл? Просто консоль лог не бесконечен, да и найти там что надо бывает сложно.
Надо или нет?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 01/06/2011 22:09:32
Надо. Сам об этом думал. Возможно даже не в файл сохранение (это с помощью стандартных функций ЛУА можно сделать) а дать АПИ (а ля какой нибудь хук)
Название: Вопросы по UniMod-y
Отправлено: Dio от 01/06/2011 23:20:22
Я думаю получать все в настоящем времени, то есть как пост ушел от когото, и дошел до клиента, и напечатался в консоли, то вызвалась фн, которой передалась строка. Так пойдет?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 02/06/2011 00:52:43
думаю да.
Название: Вопросы по UniMod-y
Отправлено: EvilWisp от 02/06/2011 04:18:28
И на фраги тоже сделать фн. Хотя с ними наверно сложнее.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 02/06/2011 06:17:18
уже есть давно ^^
Название: Вопросы по UniMod-y
Отправлено: TheSim от 02/06/2011 10:09:30
Только мы это кажись не отрелизили?
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 02/06/2011 11:30:26
Это здорово, теперь можно будет видеть, кто матерится.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 02/06/2011 14:21:10
Чёрт, действительно, не отрелизили... Надо подумать над этим...
Название: Вопросы по UniMod-y
Отправлено: Dio от 02/06/2011 14:31:38
всмысле? Ее делали после релиза, вот когда Эвен предложил статистику, я ее сделал, и написал код вроде...
Название: Вопросы по UniMod-y
Отправлено: Evengard от 02/06/2011 21:52:11
дык пора новый релиз клепать-с... У мну там интересный экзешник появился, кину вам его для изучения - автоматически создает игру на Воле - если имплементнем его в юнимоде, с возможностью создания и просто локальной - то мб стоит релизить новую версию... Ну и о рефакторинге хттп гета надо подумать, а то там дупликейт кода шибко много
Название: Вопросы по UniMod-y
Отправлено: Dio от 03/06/2011 10:24:38
Да мы хотели просто в новом релизе редактор сделать, как основную фишку


UPD: Сделал хук, можешь забрать
Название: Вопросы по UniMod-y
Отправлено: Dio от 20/06/2011 17:47:31
Сделал стеновую часть редактора UniMod-a
Пускайте слюнки картостроители и ждите...


DemoWall.mp4 (http://dl.noxworld.ru/videos/DemoWall.mp4) (5,2 Mb)
Название: Вопросы по UniMod-y
Отправлено: EvilWisp от 21/06/2011 09:56:03
Выглядит очень круто)
А как сохранить карту потом?
Название: Вопросы по UniMod-y
Отправлено: Dio от 21/06/2011 10:02:39
Функция есть уже, правда с ней обнаружились баги, ща исправляем.

Я так подумал, и решил что еще добавлять в редактор стен буду.
Название: Вопросы по UniMod-y
Отправлено: horrendous1 от 26/06/2011 01:51:09
That's cool.
There is an easy way to save maps. It's done by changing the map you want to edit to a first level of a campaign. (wiz01a, war01a or con01a and be sure to make a backup.)
Then start playing, and editing. Simply save, and your edits will be saved somewhere in your save folder.
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 08/07/2011 10:27:26
меня кирил с юни модом познакомил, и у меня появилась тройка вопросов...
1) как пользоваться реакциями? с такими как unitOnColide всё просто: посылаешь ей функцию и она её пробивает в нужный случай... а в таких как unitOnDamage такой опции нет... что делать если я хочу чтоб когда какого то игрока бъют вызывалась мной написанная функция?
2) как создавать собственные предметы и заклинания? так как TheSim сделал?
3) где можно узнать все возможные функции, хексовые параметры (такие как посылаются в функцию netFxPoint), и все параметры игрока или объекта?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 08/07/2011 11:03:29
1) unitOnDamage (если я верно помню) - это хук. То есть ты сам определяешь эту функцию
unitOnDamage=function()
-- something
end
И она будет вызвана когда собственно потребуется.
2) ХЗ
3) Конкретизируй. Данных много, непонятно что именно выкладывать
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 08/07/2011 11:16:42
1) именно так я и пробовал, не получается...
кстати я пробовал создать в файле autoexec.lua вторую функцию OnFirstFrame она не была вызвана...
предполагаю что вызов функции идёт по порядку написания а след функции (перегрузки) срабатывать не будут
3) нуу, в общем то я хотел узнать про все, ну раз данных действительно настолько много, буду спрашивать по частям)
дя начала хотелось бы узнать эффекты...
то есть ихние хексовые номера и описания)
Название: Вопросы по UniMod-y
Отправлено: Evengard от 08/07/2011 11:32:15
Если Дио раньше не запостит, попробую когда с работы вернусь глянуть :)

onFirstFrame там ж уже есть она. Она через setTimeout вызывается жеж, глянь в прилагаемом к ЮниМоду autoexec.lua как оно реализовано.

Перегрузки действительно не работает - только работающая функция будет та что последняя, не первая.
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 08/07/2011 11:57:44
onFirstFrame там ж уже есть она. Она через setTimeout вызывается жеж, глянь в прилагаемом к ЮниМоду autoexec.lua как оно реализовано.

Перегрузки действительно не работает - только работающая функция будет та что последняя, не первая.
вот та что там была:
function onFirstFrame()
   print('loaded Autoexec.lua')
end

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

спасибо за помощь)

а с перегрузками я решил сделать так:

off = {}
function onFirstFrame()
   print('loaded Autoexec.lua')
   for n=1,#off do
      off[n]() -- пробиваем каждую функцию хранящаяся в таблице... (перегрузка)
   end
end
а потом в случае чего можно будет просто сделать:
table.insert(off,<a new onfirstframe function>) -- добавка функции


добавлено через 3 минуты:
function unitOnDamage(Me, Him, By, Value, Type)
print('some one has been damaged))')
end
что здесь не так?
я захожу в игру и наступаю на шипы... и ничего оно не пишет... имя скопировал...
Название: Вопросы по UniMod-y
Отправлено: Evengard от 08/07/2011 12:08:15
Я думал это имплементнуть непосредственно в ЮниМоде, руки ток не доходят :) Регистрация хука, ну всё верно. Этакий коллбек из хука

На самом деле в autoexec.lua есть ещё одна хрень.

setTimeout(onFirstFrame, 1)

Поищи. Именно так она вызывается.
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 08/07/2011 12:20:38
setTimeout(onFirstFrame, 1)
хм, да есть))
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 08/07/2011 13:03:50
function unitOnDamage(Me, Him, By, Value, Type)
   print('some one has been damaged))')
end
что здесь не так?
я захожу в игру и наступаю на шипы... и ничего оно не пишет... имя скопировал...
а с этим что делать?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 08/07/2011 13:09:59
ХЗ, надо смотреть. Я просто на работе, у мну тут исходников ЮниМода нету :)
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 08/07/2011 13:13:16
ясно, спасибо)

п.с самый прикол это что функцию можно вызвать в консоли хD
Название: Вопросы по UniMod-y
Отправлено: Dio от 08/07/2011 15:49:58
1. c unitOnDamage все просто вроде unitOnDamage(unit,function(Unit2,whoDamaged))) то есть unit это кому мы ее даем, Unit2 это тот с кем вызывается фн, (тот у кого она, то есть тот кого ударили), а whoDamaged это ессно тот кто ударил.
2. Данный функционал не доделан.
3. все эффекты вот
А вот все параметры объекта выложить не могу, когда все станет с ними известно списки выложим, а щас обращайтесь лично)
Название: Вопросы по UniMod-y
Отправлено: Dio от 10/07/2011 22:30:50
Отлично бага с сохранением карты, которая не давала мне спать исправлена!

Название: Вопросы по UniMod-y
Отправлено: TheSim от 10/07/2011 23:54:30
Дио, где мапа? )))
[[С меня можешь требовать рисовалку]]

А также буду требовать объяснения, в чем была причина баги.
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 15/07/2011 12:08:16
выложите пожалуйста нубу список номеров клавиш (включая мышиные) для фн:
playerOnInput[Player](pl*,number c*, userdata targ*)
что нужно в Player и что pl?
п.с вопрос, а от куда вы узнаёте все эти данные?
Название: Вопросы по UniMod-y
Отправлено: TheSim от 15/07/2011 12:38:13
6=lclick, 2 = rclick 7=jump
Засунь туда фн, которая отправляет в print номер клавиши и понажимай разные.

Медленно, но верно разбираем нокс )
часть находим в коде, часть выясняем путем экспериментов
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 15/07/2011 12:39:46
ясно, спасибо.
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 22/07/2011 11:50:42
как использовать спелл кодовым путём?
Название: Вопросы по UniMod-y
Отправлено: Dio от 22/07/2011 12:52:26
spellApply(userdata,int spell,userdata,userdata, int x, int y) последние два параметра не обязательны
Название: Вопросы по UniMod-y
Отправлено: Romaner811 от 29/07/2011 11:31:06
спасибо
а можно по подробнее о параметрах?
за ранее спасибо!)
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 16/08/2011 21:23:13
unitMove(userdata,*point)
1. userdata - откуда брать значение для этого параметра?
2. ScriptFunctionList.cs - извиняюсь, а где этот файл найти?
Название: Вопросы по UniMod-y
Отправлено: Dio от 16/08/2011 21:31:11
userdata это указатель на объект, точнее на его основную структуру.
NoxTools\scripts\functions
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 16/08/2011 21:59:28
Как мне этот самый указатель получить? Например, указатель на себя. В этом деле я дилетант.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 16/08/2011 22:15:59
В UniMode это setMe() )
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 16/08/2011 23:50:00
setme() У меня не пашет, версия 0.5, много функций вообще не работает в юнике. Во дела.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 17/08/2011 00:22:25
Вообще есть некая переменная по адресу 0x85319C, в которой лежит твой netcode (тип - short, 2 байта). Соответственно с помощью Юника перебираешь просто все структуры (первый юнит плеера получаешь через void* playerFirstUnit() 0x4DA7C0, возвращает указатель на userdata как раз, потом void* playerNextUnit(void* prevUdata) 0x4DA7F0, один единственный аргумент - юзердата предыдущего игрока. Сам неткод игрока лежит вот так (код на С++):
void **PP=(void **)(((char*)udata)+0x2EC);
PP=(void**)(((char*)*PP)+0x114);
byte *P=(byte*)(*PP);
int NetCode=*((short*)(P+0x80C));
Соответственно если твой неткод совпадает с неткодом юзердаты - значит в этой юзердате ты.
Название: Вопросы по UniMod-y
Отправлено: Dio от 17/08/2011 08:50:45
ололошеньки.
во первых setMe()
во вторых ты посмотри есть ли она в autoexec.lua...
есть еще способ доставания по координатам, но... можно вопрос? Зачем тебе их так много?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 17/08/2011 12:12:32
Дио, давай скайп чини, мне с тобой поговорить надо
Название: Вопросы по UniMod-y
Отправлено: horrendous1 от 31/08/2011 21:48:53
A simple question (hopefully)..
I want to use the makeFrog script to turn myself into a certain creature. (urchinshaman to be precisely)
However, I want instead of turning myself into
   local frog=createObject('Horrendous',100,100)
into an already existing object in that map. It'd be the easyest to simply get his extent.
But I don't know how if unimod supports this. If there's any other way to get into an existing creature on the map than I'd like to know.
Название: Вопросы по UniMod-y
Отправлено: Ergo от 25/09/2011 11:51:12
Dio

Таки добрался до проб ЮниМода. Насколько я понял в autoexec.lua лежал все функции которые можно выполнить в игре. Но как? я ввожу название функции в консоль (куда еще можно?), мне выводит:


ERROR
= null


Что я делаю не так? И может по ЮниМоду мануал? а то еще запарю вопросами, разобраться то хочется
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/09/2011 12:24:32
1. autoexec.lua это просто луа файл (обычный текстовый с раширением .lua) который по дефлоту загружает юнимод из корневой папки при хосте игры.
Вообще луа файлом можно делать сколько угодно, добавлять их командой dofile(str)
2. В луа файлах код пишется на языке луа, причем все должно быть написано без единой ошибки. Если ри выполнение кода найдется ошибка то его выполнение остановится а в консоли будет написано что то типо autoexec:97 error blalbalba....
Если весь код верен то можно например ввести любую функцию из него типо "setMe" и он напишет что то типо
=function 0xblalbalbal
что бы выполнить функцию надо написать "setMe()"
Название: Вопросы по UniMod-y
Отправлено: Ergo от 25/09/2011 12:40:22
Вощем я добавил ту функцию про вызов Лича, которую ты писал, в autoexec.lua, в самый низ после всех функций.
Зашел в игру используя NoxPatched_UniMod.exe. Запустил первую миссию за колдуна, ввел в консоль:

(http://img38.imageshack.us/img38/2610/123lpn.jpg)

Что я делаю не так?
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/09/2011 12:50:17
ты точно скачал этот файл http://dl.noxworld.ru/UniMod/lua/autoexec.lua?
Надеюсь что ты хостер?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 25/09/2011 12:50:56
У тебя не скачан последний autoexec.lua с функцией setMe.
Название: Вопросы по UniMod-y
Отправлено: Ergo от 25/09/2011 12:53:10
Вот содержание моего файла (я его скачивал из темы с ЮниМодом
Цитировать
Надеюсь что ты хостер?


Стоп ) а что только в сетевой игре можно пользоваться функциями? я хотел именно в компании попробовать. Или про какой ты хост спрашиваешь?


P.S. Шрифт менял не сам. После публикации в сообщении появляются теги  без моего ведома
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/09/2011 12:56:35
Можно юзать тогда когда ты сервер. (соло или мульт не играет роли)
тебе надо ввести в консоль "createLich()" если не сработает, то "dofile'autoexec.lua'" а потом опять "createLich()"
Название: Вопросы по UniMod-y
Отправлено: Ergo от 25/09/2011 13:03:09
Попробовал захостить в сети.


(http://img853.imageshack.us/img853/6863/234yw.jpg)
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/09/2011 13:06:42
внимательней
dofile'autoexec.lua' а не dofile'autoexec.lua
Название: Вопросы по UniMod-y
Отправлено: Ergo от 25/09/2011 13:11:33
Сработало! Спасибо Дио.
У меня эти кавычки еще в PHP вызывали негодование )


И последние два вопроса:
1. Где почитать ман по LUA?
2. Как называются другие монстры которых нету в книге, но их можно вызвать? имеется в виду, у них же есть свои ID, как у лича например. Где их посмотреть? Например дриада, воин вампир, урчин шаман и так далее.
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/09/2011 13:17:26
http://www.lua.ru/doc/
Можно посмотреть в редакторе, с помощью NoxPacker-a или навести на моба мышкой и ввести print(getThingName(getThingType(atMouse()))) (как вариант написать фн)
function howYourName()
if me==nil then setMe() end
local a=atMouse()
if a~=nil then
print(getThingName(getThingType(a)))
end
end
Название: Вопросы по UniMod-y
Отправлено: Cемён от 04/01/2012 17:24:58
Ага, установил. Выдаёт: ... не на найден файл "mms32.Dll" (Ну и всякая всячина).
Ладно, записал в папку с игрой- могу спокойно играть в нокс, и никаких изменений( и от всех ярлыков пазапускал)...
Название: Вопросы по UniMod-y
Отправлено: Dio от 04/01/2012 22:15:45
Не очень понимаю причем тут юнимод и какая то системная длл.
Изменения есть. Читай заглавный пост этой темы (http://forum.noxworld.ru/kartostroenie-skripting-modding/unimod-relizy/)
Название: Вопросы по UniMod-y
Отправлено: Cемён от 06/01/2012 09:04:29
Ага,блин, запустил. И система на компе слетела. Ща с ноута пишу. :angry2:
Название: Вопросы по UniMod-y
Отправлено: Nekon от 06/01/2012 09:59:16
Юнимод не затрагивает никаких системных фаилов. Так что виноваты не создатели Юнимода - а ваша криворукость.
Название: Вопросы по UniMod-y
Отправлено: Norten от 06/01/2012 10:31:45
 :agree: мдеее, Некон верно заметил, популярная нынче тема среди юзверей...
от себя добавлю (процитирую одного хлопца на днях, разговор в личке)
Цитировать
Norten Дмитрий: прив
Norten Дмитрий: АЙДА В НОКС
Саша Яблочко: Нокс мммм не работает
Саша Яблочко: Ну тогда прийдется минять систему так как здесь некоректная установка пишет
Вывод - что-то не работает? Зачем париться, просто смени систему (а лучше комп)
Название: Вопросы по UniMod-y
Отправлено: Perfect от 06/01/2012 11:30:29
Ага,блин, запустил. И система на компе слетела. Ща с ноута пишу. :angry2:
Не вижу связи между этими двумя событиями. Ты проверил комп на вирусы, как я тебе изначально писал?
Название: Вопросы по UniMod-y
Отправлено: Squall от 06/01/2012 12:15:47
Помнится, товарищ говорил, что у него и так были вирусы на компе и он был осведомлен?.. Или это был кто-то другой...

Dio: Хватит оффтопить. Можете предположить что этот юзер троль (лучше в другой теме).
Название: Вопросы по UniMod-y
Отправлено: Perfect от 06/01/2012 13:37:38
Стоит ли ждать от Юнимода возможности вызова скрипта редактора карт? На самом деле, считаю это весьма полезной штуковиной.
Название: Вопросы по UniMod-y
Отправлено: Dio от 06/01/2012 13:47:14
нет не стоит.
Не вижу в этом никакого смысл если честно.
Скрипты редактора и так используют функции игры, а их использует и юнимод.
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/02/2012 12:37:55
Garett может ликовать!
Наконец исправил дурацкую багу, при которой монстры сбрасывали свой агрессион левел, когда их заставляли ходить (На самом деле бага куда глубже).
Прошу Evengard-a залить обновление на сервер
Название: Вопросы по UniMod-y
Отправлено: Evengard от 25/02/2012 15:08:54
Залил, опробуем-с...
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/02/2012 15:34:54
Протестировали. Работает.
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 25/02/2012 16:11:03
Отличная работа.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 10:31:41

Есть кое-какие недочёты и ошибки в функции управления сервером formGame(t)
Новые функции для управления сервером (специально для Евена)


formGame( t ) - меняет карту или настройки игры по следующей таблицеt={ map="bunker", timelimit=5, fraglimit=15, mode='arena'} - любой параметр необязателен


режимы: arena, kotr, ctf, highlander, gameball, quest
1. Режим quest НЕ РАБОТАЕТ.
2. Смена режима игры происходит ТОЛЬКО при смене карты.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/04/2012 10:47:16
Мгновенно сменить режим можно через gameFlags.
Это такое число, содержащее информацию об игре.
Попробуй(те) запустить разные режимы, вызвать "ph(gameFlags())", записать результат,
и потом вызвать gameFlags(число-соотв-режиму). Пусть не точно, но работает.
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 12:34:53
этот метод опасен и не точен.
А зачем вообще менять режим не меня карта? С разными режимамия, она может по разному грузиться...
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 12:36:32
Благодарю.
У меня возникли ещё вопросы:
1. Можно ли создавать объект NPC и задать ему некоторые свойства (в редакторе карт этим занимается поле модбокса)?
2. Нельзя ли пояснить подробнее, как рисуется картинка? Я пытался загрузить её, но безрезультатно.
3. Могу ли я создав окно изменить его свойства (например изображение на заднем фоне)?
4. Можно ли менять какие-нибудь характеристики (макс. здоровья, макс. маны, текущая мана, сила, скорость, максимальный вес поклажи) у игрока? Если да то какие из них (хп меняется. Об этом здесь написано. А как менять остальное?)
5. При подъёме предмета, вызывается ли какое-нибудь событие? Если да, то можно ли отменить поднятие?
6 (знаю, что дурацкий вопрос, но всё же) Будучи наблюдателем за питомцами, реально ли сделать подъём предметов, нанесение удара, прыжок, произнесение заклинания, установку ловушки\бомбера?
7. Могу ли я писать текст из csf'ки?

To Dio:
Мне нужен. Если быть точнее, то для написания мода. И мне нужно, чтобы из практически ЛЮБОЙ карты я мог перейти из режима текущего в режим Team Elimination.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/04/2012 12:41:48
1. прямыми средствами юнимода в настоящее время, насколько я знаю нельзя, но можно через память (его же средствами)
4. тоже можно, через память
5. вызывается, unitOnPickup в юнимоде
интересует - пиши в лс, дам адреса. тут не могу, забанят.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 14/04/2012 13:05:32
formGame в следующей версии юнимода будет отличаться.
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 13:06:51
1. Обертки нет, но можно всякими setPtr...
2. Ну картинка грузится элементарно

dlg={
x=450,
y=250,
w=100,
h=100,
bgcolor="#0",
status="ENABLED+IMAGE",
image="UIButtonSm"}
wndCreate(dlg)
если грузить из внешнего файла
то все то же самое только надо еще и загрузить
fileLoad(fileName) -- (имя файла, файл обязательно должно быть tbz2!)
imgLoad(fileName,imgName) -- imgName - это то название картинке, которое будет использоваться в игре
3. wndSetAttr(table wnd,str atribut, str) -- последний параметр значение не которое будете менять
4. Опять таки, нет обертки как таковой, в следующих версиях будет
5. unitOnPickup
6. не очень понимаю вопрос
7. Не делали, не считаем нужным.

Мб проще реализовать функционал режима?
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 13:46:51
Dio, попробую перефразировать:
"будучи лягушкой", к примеру, я смогу поднимать предметы и вообще взаимодействовать с игровым миром, как newPlayer?
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/04/2012 13:48:00
Да, ведь указатель события меняется - то у вещи, а не у игрока.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 13:53:15
файл обязательно должно быть tbz2!
Т.е. мне нужно конвертировать в этот формат?
Да, и путь к файлу относительно какой папки?

И не совсем понял про функционал режима...
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 14:04:30
Вообще то нет. Просто камера из другого объекта и все. Другое дело что разработчики сделали так что бы вроде ничего сделать нельзя было. Спеллы читать нельзя это точно.
относительно корневой вроде.
tbz2 это архив такой, можно 7zip-ом сделать например. еще пойдет tar.bz2

Ну просто реализовать функционал какой ты хочешь и все
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/04/2012 14:37:59
Вопрос по NPC.
Почему после создания их не видно? У них отсутствует какой-то флаг? если да, то какой?
Ведь цвета то уже есть...
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 14:45:52
Спеллы читать нельзя это точно.
Печально. Значит мода не будет точно.
Ну просто реализовать функционал какой ты хочешь и все
Через астму??? Я точно не смогу! Это неблагодарное дело! Ведь мод наверняка повисел, повисел бы и ушел!
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 14:50:03
Не знаю почему невидимы, мб их инфа каким то спец пакетом шлется.
Зачем через ассемблер?
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/04/2012 14:54:06
А, да, есть MSG_REPORT_NPC но я ведь хост...
Вопрос по ЮниМоду - можно ли разбить int на байты и записать в память первые три?
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 14:55:14
Ну а как реализовать это не используя Unimode? На него была вся надежда.
Впрочем надо порыться в памяти.
Ассемблер может всё.
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 14:56:08
ты сначала объясни чего ты хочешь
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 14/04/2012 14:58:48
Ну можно ловить нажатия клавиш, а потом выполнять заклинания на лягушке.
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 15:11:56
playerOnInput
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 15:13:58
Это тяжело объяснить.
Мне нужно сделать так, чтобы возможности моба и игрока были практически равные. Т.е. моб мог управляться также как и игрок. Мог колдовать, бить, ходить, поднимать предметы и т.п.

playerOnInput ловит кнопки мыши?
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 16:54:37
Ну это реально, но очень геморойно реализовать сейчас.
Ловит стандартные действия типо атаки, прыжка, читай документацию
Название: Вопросы по UniMod-y
Отправлено: 2530 от 14/04/2012 17:31:30
Документация - это мануал по луа? Или есть ещё что-нибудь полезное?
Название: Вопросы по UniMod-y
Отправлено: Dio от 14/04/2012 17:43:01
в архиве с юнимодом смотри файл ворда
Название: Вопросы по UniMod-y
Отправлено: 2530 от 30/04/2012 18:11:34
Вопрос по юнимоду: могу ли я перезагружать функции? Например: есть некоторая функция Rage() в файле "pinkie.lua". Допустим, она вызывает некоторую "X" последовательность команд .  Имеется также некоторая функция Rage() в файле "pyro.lua". Она вызывает Y последовательность команд. Изначально грузится файл "puro.lua".
Могу ли я сделать так, что после загрузки файла "pinkie.lua" и вызова Rage() у меня грузилась именно Y последовательность, а не X?


P.S>Прошу прощения за дурацкий пример. Как пример писал первое, что пришло в голову :D
Название: Вопросы по UniMod-y
Отправлено: Dio от 01/05/2012 10:23:20
Не очень понимаю смысла этого танца с бубном.
В любом случае если объявить функцию в файле как local, то ее нельзя вызывать ниоткуда как кроме из файла
Название: Вопросы по UniMod-y
Отправлено: 2530 от 01/05/2012 12:06:18

Чёрт, немного ошибся в тексте поста. Я уже разобрался с этим моментом. Функции можно менять во время игры.
Название: Вопросы по UniMod-y
Отправлено: NoxMag от 02/07/2012 09:47:00
Как разблокировать спеллы которых нет в игре? Объясните все поподробней пожалуйста.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 02/07/2012 09:55:52
1. Это не относится к UniMod-у
2. FAQ когда научимся читать? ТЫК (http://forum.noxworld.ru/skachat-nox-faq-vazhnaja-informacija/faq-po-moddingu/#msg101234)

А пока предупреждение 15% за нарушение правила 3.7.
Название: Вопросы по UniMod-y
Отправлено: Dio от 30/08/2012 16:53:40
Прошу отписать о багах в сетевой (и не только) игре, которых вы хотели бы не видеть. Исправлю.
Название: Вопросы по UniMod-y
Отправлено: Squall от 07/09/2012 12:36:39
Просьба пофиксить баг с заклинаниями (якорь, блинк, ожог, мб ещё какие-то, не помню) в мультиплеере, когда они рандомно банятся и приходится их заново открывать. Говорят, истоки где-то в картах Perfect-а...
Название: Вопросы по UniMod-y
Отправлено: Dio от 07/09/2012 13:38:39
Можно поподробнее, при каких условиях вызывается баг?
Название: Вопросы по UniMod-y
Отправлено: Squall от 07/09/2012 13:43:53
Я неспроста написал "рандомно")
В том-то и дело, что науке современной это малоизвестно. Абсолютно точно помню, что на deepfrze когда играли с Нортеном дуэль ночью, вдруг заблокировались эти спеллы (карта была поставлена вне очереди, до неё проблем не было, когда по мапциклу шли карты).
До сего момента на вовкиной карте Memories постоянно самостоятельно блокировались эти заклинания, потом на это просто забили и убрали её из мапцикла, как малоиграбельную.

Perfect: не просто забили, а убрали по моей просьбе.
Название: Вопросы по UniMod-y
Отправлено: Dio от 10/09/2012 06:53:53
Дело думаю не в юнимоде, а в том, что именно на этих картах запрещены заклинания. Пусть Эвен по удаляет рулы.
Название: Вопросы по UniMod-y
Отправлено: Perfect от 25/09/2012 13:09:52
В ЮниМоде заметил мерзопакостную фичу. Звуки (Amb*) не имеют сглаживания. Или это только у меня?
Название: Вопросы по UniMod-y
Отправлено: Dio от 25/09/2012 14:28:08
не понял о чем ты. Поподробнее пожалуйста.
Название: Вопросы по UniMod-y
Отправлено: Perfect от 25/09/2012 15:08:20
Проблему решил банальным увеличением игровой громкости. lol
Название: Вопросы по UniMod-y
Отправлено: TheSim от 02/10/2012 18:19:49
Похоже суть в том, что formGame забывает читать Rul файлы иногда
Название: Вопросы по UniMod-y
Отправлено: Dio от 02/10/2012 18:55:50
нет, нет. Все прозаичней. На этих картах как раз стояли рулы, запрещающие заклинания.
Название: Вопросы по UniMod-y
Отправлено: TheSim от 06/10/2012 21:55:13
Кстати может стоит добавить в formGame подтаблицу с заклинаниями? чтобы запрещать/разрешать по желанию хоста? Вообще я где-то видел клевую систему фичреквестов, когда любой может создать фичреквест и ставят лайки "хотим этого/не хотим этого"
Название: Вопросы по UniMod-y
Отправлено: Lаrboss от 06/10/2012 22:04:05
Будет полезно.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 08/10/2012 09:58:44
Кстати может стоит добавить в formGame подтаблицу с заклинаниями? чтобы запрещать/разрешать по желанию хоста? Вообще я где-то видел клевую систему фичреквестов, когда любой может создать фичреквест и ставят лайки "хотим этого/не хотим этого"

Reformal чтоль?
Название: Вопросы по UniMod-y
Отправлено: TheSim от 08/10/2012 11:54:57
Вроде того, только не ясно зачем обращатся к сторонней службе
Название: Вопросы по UniMod-y
Отправлено: 2530 от 24/03/2013 20:06:06
Я заметил, что в Unimod 0.6 допущено самовольное изменение GUI разработчиками. Мод для всех, а не только для вас.
Теперь подробнее.

Когда я тестировал gamemode Гаретта я столкнулся с проблемой перехода в наблюдение за моим существом, так как кто-то из разработчиков убрал это меню, заменив его на свитч поведения по ЛКМ+Banish по ПКМ. Настоятельно требую вернуть меню назад или увести нововведение в опциональную категорию (т.е. позволить включать\отключать).
Настолько не надо Nox модифицировать. Вы также не учли ситуацию, когда игрок по случайности промахнётся мышкой и сменит состояние, например. Или ещё хуже изгонит.
P.S>Возможно изменение ходит давно, но всё же.
P.P.S>Только сейчас заметил, что промахнулся темой. Перенесите, пожалуйста, и извините за эту ошибку
Название: Вопросы по UniMod-y
Отправлено: Evengard от 24/03/2013 21:24:44
Эта функция отключаема. Посмотрите в файлах переменную creatureSummonWhatDo. Попробуйте с ней поиграться (конкретно как надо настраивать не помню), то ли creatureSummonWhatDo=nil, то ли creatureSummonWhatDo=2 должно вернуть всё как было.
Название: Вопросы по UniMod-y
Отправлено: Perfect от 24/03/2013 22:17:14
Об этом надо было заранее говорить, во время релиза. Недосмотрели))
Название: Вопросы по UniMod-y
Отправлено: 2530 от 25/03/2013 07:21:04
Всё. Я поправил. Вообще там 3 состояния:


creatureSummonWhatDo=nil - включает требуемое меню
creatureSummonWhatDo=1 - отключает меню, заменяя его на свитч между Сопровождением, Охраной и Охотой по ЛКМ+изгнание по ПКМ
creatureSummonWhatDo=2 - отключает меню, заменяя его на свитч между Сопровождением и Охраной по ЛКМ+изгнание по ПКМ


Интересно, а сколько ещё таких фич вы запрятали в autoexec.lua?
Название: Вопросы по UniMod-y
Отправлено: neckromant от 26/03/2013 07:47:11
Скажите кто-нибудь как запускать Unimod и надо ли какие нибудь файлы...
Название: Вопросы по UniMod-y
Отправлено: Perfect от 26/03/2013 13:24:24
1. Скачать.
2. Поместить в папку с Ноксом.
3. Нажать на значок NoxPatched_UniMod.exe
4. ? ? ? ? ?
5. Выгода.
Название: Вопросы по UniMod-y
Отправлено: TheSim от 26/03/2013 13:42:12
Слушай, Dio, а ты спецпосохи делал - они "честные"?
Т.е. у них заряды кончаются, есть подпись "Staff of something terrible", от кристалов релоадятся?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 16/04/2013 10:35:51
Откровенно говоря команды cr и setMe устарели (как минимум, по моему мнению). Её реализацию можно посмотреть в lua файлах (она не захардкодена в ЮниМоде, её можно менять без рекомпиляции DLL-ки).

Я пользуюсь напрямую createObject, playerGetByName и playerMouse (возможно ошибаюсь в названии последней).
Название: Вопросы по UniMod-y
Отправлено: 2530 от 16/04/2013 13:33:02
Понятно. Тогда я переделаю функцию.


А как наложить на игрока энчант (если можно)?
Название: Вопросы по UniMod-y
Отправлено: 2530 от 16/04/2013 15:14:49
И как получить статы игрока?
Название: Вопросы по UniMod-y
Отправлено: TheSim от 17/04/2013 22:17:08
playersList кажется. Вообще исходники опубликованы, там можно все найти
Название: Вопросы по UniMod-y
Отправлено: Evengard от 17/04/2013 23:07:16
А помом playerInfo. Функции надо передать юзердату игрока, например команда playerGetByName её по имени игрока ищет
Название: Вопросы по UniMod-y
Отправлено: 2530 от 18/04/2013 02:06:08
То что playerInfo я уже понял. Я не могу понять какой параметр нужно подставить вместо ???, чтоб получить статы:
playerInfo(playerInfo(playerGetByName(hostname)).???
Название: Вопросы по UniMod-y
Отправлено: Evengard от 18/04/2013 08:01:37
Зачем дважды playerInfo?

playerInfo(playerGetByName("2530"))

Или playerInfo(playerGetById(31)) (под номером 31 всегда хост)
Название: Вопросы по UniMod-y
Отправлено: Evengard от 18/04/2013 08:04:27
А, а для вывода того что дает playerInfo например заюзай print(json.encode(playerInfo(...)))
Название: Вопросы по UniMod-y
Отправлено: 2530 от 18/04/2013 16:47:16
Кстати, функция unitHP работает неправильно... Там выводится идиотически огромное число (6-7 значное), которое равным нулю не становится, когда умрёшь.

Да, я опечатался. Я писал прошлый пост убегая в школу.

Я написал код типа:
isWorking=false
txt=nil
x=0
y=0
function DrawString(text,tx,ty)
txt=text
x=tx
y=ty
isWorking=true
print('Рисуем строку')
StringRedraw()
end
function StringRedraw()
if isWorking == true then stringDraw(txt,x,y);setTimeout(StringRedraw,1) end
end
function RemoveString()
isWorking=false
print('Ф-ция остановлена')
end
Но функция не работает должным образом. Что у меня не правильно? stringDraw - строка рисуется в игровом мире или только на экране? Я не вижу строку нигде.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 17/05/2013 17:19:41
У меня есть 4 вопроса по реакциям:
1. По реакции playerOnSpell. Мне не совсем понятно как её использовать. Я пробовал делать так, как указано в этой теме: Nox не реагирует на спеллы. Можете разъяснить попродробнее как она работает?

2. Реакция playerOnJoin. Информация, приходящая в функцию, является юзердатой чего-то, но точно не игрока!
Код:
playerOnJoin=function(plr)
print('Welcome to my server, '..playerInfo(plr).name)
end
...не выполняется и выдаёт ошибку типа: userdata is not a player! Попытка чтения координат привела к результату (0;0). Что приходит в plr?

3. netOnResp. Что она возвращает и как с ней работать?

4. Чем отличается clientOnJoin от playerOnJoin?
Помогите, пожалуйста!
Название: Вопросы по UniMod-y
Отправлено: Evengard от 22/05/2013 10:11:20
1. Без идей, никогда не использовал и реализовывал не я, ждём Дио или Сима. Там передаёт кто кастовал, на кого кастовал, и ещё какие-то параметры спелла. Возвращаемое значение - если 0 то Нокс идёт стандартным обработчиком спелла, если 1 - то по умолчанию считает все проверки пройденными (все обработчики спелла выполнены), если -1 - то значит наоборот что-то произошло, что запрещает колдование спелла.
Честно не знаю, как этим пользоваться на практике.
2. Вот тут надо проверять, возможно я накосячил и не обернул в ещё одну функцию. Приходит, видимо, действительно не те данные, надо смотреть и возможно фиксить.
3. Это обработчик кастомных ЮниМод пакетов, врядли он тебе понадобится.
4. Точно не знаю, не я делал, но помоему это когда клиент только подсоединился, но сервер ещё ему объект плеер не создал. В неё не передаётся никаких данных.
Название: Вопросы по UniMod-y
Отправлено: TheSim от 24/05/2013 11:33:09
1)
Не помню, читать исходники надо.
https://github.com/Evengard/UniMod/blob/master/player.cpp

Параметры такие:

Кто(юнит), Цель(юнит),  dir, какой спелл, x,y

dir - это кажется "направление каста", то что через шифт меняется, когда можно хил послать мухой.

Только кажется для скорости playerOnSpell это не функция, а таблица

playerOnSpell =
{
 [unit] = function(unit, targ,dir,spell,x,y) end,
}
Название: Вопросы по UniMod-y
Отправлено: 2530 от 17/10/2014 13:25:47
Пора освежить тему.

Есть ли в Unimod функция для изменения строк? Или только побайтовым методом?
Название: Вопросы по UniMod-y
Отправлено: Evengard от 17/10/2014 14:49:13
Эм. В смысле? Поясни на каком языке и что конкретно.
Название: Вопросы по UniMod-y
Отправлено: Dio от 17/10/2014 16:29:20
Regex-ов в Lua нет, но есть свой набор инструментов.
http://www.lua.org/manual/5.1/manual.html#5.4

UPD: под regex-ами имел ввиду ту огромную библиотеку из С++.
Так всякие шаблоны есть.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 18/10/2014 08:57:52
Виноват, коряво поставил вопрос.

Мне нужно поменять строку в памяти Nox. Могу ли я поменять в памяти строку одной-двумя функциями, имея при себе только указатель на первый символ этой строки?
Название: Вопросы по UniMod-y
Отправлено: Dio от 18/10/2014 10:24:29
Думаю, только setPtr... getPtr...
Так как сдвигов в юнимоде нет, то наверное лучше всего читать по байтам.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 18/10/2014 11:15:31
Спасибо.
Можно ли как-нибудь изменить размер этой строки в памяти? Допустим, мне нужна строка подлиннее. Как я могу это сделать? Я слышал только про функцию выделения памяти memAlloc(size_t)
Название: Вопросы по UniMod-y
Отправлено: Dio от 18/10/2014 11:58:50
Есть приемлемый вариант:
Если к строке Nox обращается через указатель, который лежит где-то в памяти. Тогда ты можешь изменить значения указателя на свою строку(память можно для этого выделить с помощью memAlloc).
Название: Вопросы по UniMod-y
Отправлено: Evengard от 18/10/2014 13:37:52
господи, вы чего? из сей строка это обычный набо. байт! если новая строка меньше или равно чем старая - обычный strcpy!
Название: Вопросы по UniMod-y
Отправлено: Dio от 18/10/2014 13:48:48
Ты выносил в луа strcpy?
Название: Вопросы по UniMod-y
Отправлено: 2530 от 18/10/2014 14:26:10
Меня тоже волнует сей вопрос.
... строка это обычный набо. байт! если новая строка меньше или равно чем старая - обычный strcpy!
Я же всё-таки не нуб зелёный в программировании и прекрасно знаю что такое строка. Если строка меньше или равна, то тут у меня проблем нет. А речь шла о том, есть ли в Unimod функция аля strcpy и есть ли возможность расширить эту строку. Вот и всё.
Название: Вопросы по UniMod-y
Отправлено: Evengard от 18/10/2014 14:35:11
Расширить нету. Нету ж такой магической штуки, которая бы взяла и заменила все указатели на адрес в памяти. Есть шанс, что действительно как и написал Дио - есть место в памяти, где находится адрес этой строки. И тогда его можно подменить.

Дио, а причём тут Луа? Мы щас вроде просто про ЮниМод говорили. Безотносительно выводу этого в Луа.
Название: Вопросы по UniMod-y
Отправлено: Dio от 18/10/2014 14:46:55
Ну раз речь идёт о UniMod-е, то логично, что мы говорим именно про Lua часть. Иначе бы вопрос звучал так: "Есть ли в С функция для изменения строк?"
Название: Вопросы по UniMod-y
Отправлено: Evengard от 18/10/2014 17:28:08
Вопрос про то, чтобы интегрировать некую функциональность в юнимод, а не то что можно сделать с юнимодом.
Название: Вопросы по UniMod-y
Отправлено: Dio от 18/10/2014 17:41:03
Пора освежить тему.

Есть ли в Unimod функция для изменения строк? Или только побайтовым методом?
Вроде, мы всё еще обсуждаем этот вопрос.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 29/10/2014 13:20:18
Появились вопросы касательно вызова заклинаний:
1. Какой набор параметров функций поменяет мне уровень заклинания?
Вариант "цель, заклинание, владелец, источник, уровень" почему-то не работает - кулак мести по-прежнему бьёт 200 урона.
2. Как правильно вызвать заклинание молнии? Под правильным вызовом я подразумеваю что молния будет продолжать бить, а не сделает один удар на 2 единицы и прекратится.
3. Как задать количество маны, имеющееся на момент каста? Очень нужно для правильной работы Obliteration и Drain Mana.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 31/10/2014 13:27:09
Ещё вопрос:
4. Как включать\отключать объекты? Например для SentryGlobe.
5. Как повернуть объект не смещая его с места? Для той же SentryGlobe.
Название: Вопросы по UniMod-y
Отправлено: Dio от 01/11/2014 14:09:18
1. spellApply список параметров
target(userdata), type(number), carrier(userdata), source(userdata)
Если пятый параметр number, то и шестой должен быть number (это будут координаты x,y)
Если пятый параметр не число, то он не используется. Следующие параметры:
power или какая-то userdata, или и то и другое.
2. Не знаю как. Можно попробовать через setTimeout её постоянно кастовать.
3. Хорошего способа нет. Наверняка, KirConjurer копал в этом направлении.
4. Скорее всего, лучше вызывать функцию 0x4e4670. Как - к Кириллу.
5. Тебе нужно найти угол и перемести его в 255-ричный. Есть даже функция directGet(x,y,x1,y1). А потом записать его по смещению (как в word-ы) 0x7C и 0x7E.
Но sentryGlobe, вроде, статик, так-что сомневаюсь, что получится.
Название: Вопросы по UniMod-y
Отправлено: 2530 от 01/11/2014 16:42:07
По пункту 2: пробовал - звучит ужасно. Она просто каждый кадр бьёт на 2 очка, а затем идёт earrape из звуков невозможности каста.
Спасибо за ответ
Название: Вопросы по UniMod-y
Отправлено: 2530 от 10/11/2014 11:17:20
2 вопроса:
1. Как ограничить область видимости у игрока?
2. Какое системное имя у блокиратора пути?
Название: Вопросы по UniMod-y
Отправлено: Dio от 10/11/2014 18:57:46
Не понял первого вопроса.
Не знаю, что такое "блокиратор пути".
Название: Вопросы по UniMod-y
Отправлено: 2530 от 10/11/2014 21:37:54
1. Управление чёрной областью.
2. Это специальный объект, не позволяющий игроку пройти там, где он стоит
Название: Вопросы по UniMod-y
Отправлено: Dio от 10/11/2014 22:42:49
1. Ничего специального в unimod-e для этого нет.
2. Не знаю.
Название: Вопросы по UniMod-y
Отправлено: Perfect от 11/11/2014 15:28:17
2. Extent{Box, Cylinder}{Small,Medium,Large}[Short]
Название: Вопросы по UniMod-y
Отправлено: TheSim от 13/11/2014 01:25:50
Кстати ограничение области видимости - это было бы круто, но это клиентский код по идее.
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 17/11/2014 18:55:45
Ещё вопрос:
4. Как включать\отключать объекты? Например для SentryGlobe.
5. Как повернуть объект не смещая его с места? Для той же SentryGlobe.
Я когда-то выкладывал свой unitUtil.lua - там есть такие полезные мелочи
function unitSetOn(unit)
   return ptrCall2(0x4E75B0, unit, oneUserdata)
end

function unitSetOff(unit)
   return ptrCall2(0x4E7600, unit, oneUserdata)
end
поворот SentryGlobe (угол задается в радианах)
unitc=getPtrPtr(sentryGlobe, 0x2EC)
setPtrInt(unitc, 0, angle)
setPtrInt(unitc, 8, angle)
-- если нужно задать скорость вращения (радиан за фрейм)
setPtrInt(unitc, 4, speed)
Кстати, у меня тоже есть вопрос-предложение:
Сегодня мне захотелось запилить кастомные энчанты (на предметы), а конкретнее - увеличение силы на 1 фрейм при ударе оружием
Открыв сорцы юнимода, я обнаружил функцию itemMakeEnchant (как я понял, не доработана - можно ставить хендлер только на ENGAGE/DISENGAGEEFFECT)
Но, при проверке даже это не сработало:
Рубашка, зачарованная EnchTest2, окрашивается в черный цвет, но ничего не происходит.

UPD: я недосмотрел - зачар поставил на первое место (а они срабатывают только с 3+)
itemEnchant(i, "","","EnchTest2") работает
Предложение - добавить возможность создавать свои энчанты (пусть даже без синхронизации у клиентов) в UniMod2
Название: Вопросы по UniMod-y
Отправлено: KirConjurer от 24/11/2014 18:37:34
Как заставить unitFlyActivate, playerOnSpell, unitOnCastList, noxOnCreateAt работать из консоли (вне server.lua)
(фикс)

_G.noxOnCreateAt = function() print('noxOnCreateAt') end
_G.playerOnSpell = {}
_G.playerOnSpell[me] = function() print('spell') return 0 end