var0[1]
var1[1]
затем? в окне ниже прописал:var0 = GetCaller()
var1 = Waypoint("Side")
MoveObject(var0,GetWaypointX(var1),GetWaypointY(var1))
сохранил, запустил - выкидывает в меню игры.var0 = GetCaller()
Enchant(var0,"ENCHANT_SHOCK",f0)
return
Перед этим убрал с карты вайпоинт, и назначил одну переменную:var0[1]
Та же проблема - выкидывает в меню хоста...
var7[1]
(c 4й по 6ю у меня забито другими скриптами)Gvar7 = 0
return
var0[1]
затем написал сам скрипт:var0 = Object("TrollDoor")
if Gvar7 == 0 jump 24
if Gvar7 == 1 jump 35
:24
UnlockDoor(var0)
Gvar7 = 1
:35
LockDoor(var0)
Gvar7 = 0
return
UnlockDoor(var0)
Gvar7 = 1
сразу выполняется::35
LockDoor(var0)
Gvar7 = 0
return
Т.е. дверь сразу же запирается :)var0 = Object("TrollDoor")
if Gvar7 == 0 jump 24
if Gvar7 == 1 jump 35
:24
UnlockDoor(var0)
Gvar7 = 1
jump 46
:35
LockDoor(var0)
Gvar7 = 0
:46
return
то есть работа скрипта не прекращается перед очередной меткой???Точно не знаю. Но раз заработало после моих изменений, то ДА :)
Цитироватьто есть работа скрипта не прекращается перед очередной меткой???Точно не знаю. Но раз заработало после моих изменений, то ДА :)
не забываем что координаты не могут целыми числамиРазве? А дробными (с постфиксом f, вроде) ? Или другое имелось в виду?
придумать алгоритм, который бы двигал пока что мувер по осямМожно по-подробнее: в чем задача и что не получается?
Зачем Gvar8 и var1 = Waypoint("A") ?1) были остатки прошлого скрипта
И что такого трудного было написать эти 4 строки?
какой они имели формат? подробное описание? или просто что есть функция и сколько оргументов, типа create(arg,arg)С описаниями, наверняка. Без них то и в самом редакторе посмотреть можно, только толку...
в данный момент этот список воспроизводится заново силами энных мапперов.Ндээ... Сохранять надо было.
Помогите осуществить давнюю "мечту": всегда хотелось сыгрануть в Nox за мага, с возможностью посечь одновременно файрболлом и волшебничьим метеором, как это делали личи (ну, наверное, так их зовут) в красных лохмотьях на Земле Мертвых. Скачал NXModeSuite, WinHack2, NoxTools.... Не получается разобраться
Наверняка, есть умеющие люди. Подскажите, пожалуйста.
Э, нет... Интерпретатор скриптов - сам NoX))))
с тем же успехом можно сказать что интерпретатор программного кода любого компилятора (того же бейсика) это сам компьютер
function CreateBarrelRandom()
local x,y
x=2927
y=2959
for i=1,40 do
createObject("barrel",x+math.random(-100,100),y+math.random(-100,100))
end
end
function burnPlayer()
local playerTable=playerList() -- пихаем всех игроков в таблицу
for i=1,#playerTable do
createObject('flame',unitPos(playerTable[i])) -- unitPos узнать координаты объекта
end
setTimeout(burnPlayer,60) -- вызываем фн каждые 60 кадров то есть 2 секунды
end
Вот рабочий код, мог бы чуть чуть додумать, я забыл поставить вызов определенного индекса массива. Ну код чуть дописал для красивости. setMe()
for o in getInv(me) do
print(getThingName(o))
end
function hasItem(Player,item)
for o in getInv(Player) do
if getThingName(o)==item then return true end
end
return false
end
или если надо именно определенный объект который есть в переменнойfunction hasItem(Player,item)
for o in getInv(Player) do
if o==item then return true end
end
return false
end
Вот я вначале иду в свойства двери и пишу в Script Name war10a:Doorzxdawar10a это название карты. если твоя карта называется не war10a то это часть имени объекта :) лучше не парься с этим и называй объекты просто, в твоем случае Doorzxda. должно сработать. еще, если ты хочешь использовать Gvar переменную ты ее должен объявить в Global'е, причем для этого должны быть объявлены все 200 предыдущих - оно тебе надо? не проще ли LockDoor(Object("Doorzxda")) ?
Вот я вначале иду в свойства двери и пишу в Script Name war10a:Doorzxdawar10a это название карты. если твоя карта называется не war10a то это часть имени объекта :) лучше не парься с этим и называй объекты просто, в твоем случае Doorzxda. должно сработать. еще, если ты хочешь использовать Gvar переменную ты ее должен объявить в Global'е, причем для этого должны быть объявлены все 200 предыдущих - оно тебе надо? не проще ли LockDoor(Object("Doorzxda")) ?
По идее выполняют ноксувую Си функцию. Я пытался, не могу понять в каком формате ему она нужна. Пробовал 0x450B70, она по идее стирает все из косноли.
У меня есть вопросик:) помните за конжа во второй главе нужно стрелять по бочкам в рамках соревнования? Подскажите как можно сделать рандомное раскидывание бочек? по площади или по прямой я разберусь.И через редактор тоже можно) Вот, к примеру, рандомно стреляющий луч:
Вот кусок скрипта из рычага:
Gvar4 = Gvar4 f+ RandomFloat(-46,46)
Gvar5 = Gvar5 f+ RandomFloat(-46,46)
MoveWaypoint(Gvar6,Gvar4,Gvar5)
Create("barrel",Gvar6)
return
Но бочка все равно создается в одном и том же месте. пробовал разные значения аргументов RandomFloat и Random.
Подскажите, может кто делал. Может средствами юнимода это гораздо проще сделать..
var0 = RandomFloat(f2861,f3394)
var1 = RandomFloat(f2631,f3164)
CastSpellFrom("SPELL_DEATH_RAY",GetWaypointX(Gvar4),GetWaypointY(Gvar4),var0,var1)
FrameTimer(20,3)
return
var0 = RandomFloat(f4,f32)
var1 = GetObjectX(GetCaller())
var2 = GetObjectY(GetCaller())
var5 = Random(1,2)
if not var5 == 2 jump 87
var3 = var1 f- var0
var4 = var2 f- var0
CastSpellFrom("SPELL_DEATH_RAY",GetWaypointX(Gvar4),GetWaypointY(Gvar4),var3,var4)
return
:87
var3 = var1 f+ var0
var4 = var2 f+ var0
CastSpellFrom("SPELL_DEATH_RAY",GetWaypointX(Gvar4),GetWaypointY(Gvar4),var3,var4)
return
У меня возник один вопрос: а можно ли как нибудь разблокировать такие скилы как: DETONATE, FEEBLE, PROTECTION_FROM_MAGIC, VILLAIN и WINK???SPELL_DETONATE - не имеет ни видимых эффектов, ни звуков.
Пока еще не придумали как от обычного плеера избавится и поселиться в моба, а вы тут уже про размножение)Кто не придумал, а к то и придумал )
Правильно говоришь - все флаги это один и тот же Flag - а прочие нужны только чтоб на карте в редакторе ставитьТ.е. при загрузке карты RedFlag, BlueFlag и т.п. должны интерпретироваться при загрузке карты Nox-ом как Flag соответствующего цвета?
хочу сделать так что бы маг - WIZ мог вызывать тварей как колдун в оригинальной кампании.
как это сделать?
Дио, не знаю, где-то мельком просто услышал что это, вроде как, новый взгляд на картостроение, от кого - не помню, По этому и спросил.
Вот какой вопрос:Да. Открой карту в редакторе, посмотри в скриптах. У каждого NPC есть скриптовое имя. Скриптами их заставляют ходить так: Wander(Object("balhblah")), Wander(Gvarx), Wander(varx)... Просто удали эти строки из функции.
При переносе карт кампании в сетевую игру в них всегда что-то начинает работать не так, обычно все можно исправить, но вот сейчас перенес и все НПСы начали ХОДИТЬ (причем в их моде осталось значение GUARD), по карте путей, можно это как-то исправить, не удаляя все маршрутные точки?
00 00 00 00 00 00
00 00 00 00 00 00
00 00 00 00 c8 00
Нужно в реестр внести запись о том что Нокс установлен, и нужно чтоб thing.bin был в этой папке, независимо от того, установлен ли сам Нокс или нет.
То есть, создаете в реестре в HKLM\Software раздел Westwood, в нём Nox, а в разделе Nox создаете строковый параметр InstallPath куда записываете например С:\\temp\\nox.exe. И уже в папку temp кидаете ваш thing.bin.
racoiaws
load КАРТА
работает как часы!
Нифига подобного!Не знаю не знаю я эту команду вводил несколько раз в оригинальной версии Nox и у меня ничего не грузилось :scratch_ones_head: Попробую ввести команду в NoxPatched...Код: [Выделить]racoiaws
работает как часы!
load КАРТА
Gvar18 += 1
Gvar92 = Gvar3
LookAtObject(Gvar55,GetHost())
LookAtObject(GetHost(),Gvar55)
Frozen(Gvar55,Gvar2)
MoveObject(Gvar26,f1310,f2900)
SetDialog(Gvar55,"NORMAL",66,67)
EnforceTalk(Gvar55,GetHost())
return
if not Gvar18 > 4 jump 48
if not HasItem(GetHost(),Gvar26) jump 40
JournalEdit(GetHost(),"War6Necro",4)
Frozen(GetHost(),Gvar2)
FrameTimer(45,57)
jump 46
:40
FrameTimer(3,69)
:46
jump 54
:48
FrameTimer(3,69)
:54
return
0b 00 00 00 43 6f 6e 30 37 61 2e 6d 61 70 00 00 38 a1 45 00 10 74 45
Тут-то в "43 6f 6e 30 37 61 2e 6d 61 70" закодировано в hex-е "con07a.map"0b 00 00 00 43 6f 6e 30 37 61 2e 6d 61 70 00 00 38 a1 45 00 10 74 45
0b 00 00 00
первые четыре байта (в обратном порядке!) это dword, вероятно, как сказал Evengard, длина имени файла. 43 6f 6e 30 37 61 2e 6d 61 70 00
Сказано 11, то берем 11... Вполне возможно, что это такой трюк, взять строку сразу с нулём на конце. Если это так, а ноль не сделать, то вам вероятно ждет вылет.FF (16) - байтПоправка
FF FF (16) - word
FF FF FF FF (16) - dword
Модбокс объекта InvisibleExitArea карты, из которой осуществляется переход (con05a), заменил на "0b 00 00 00 4e 65 63 30 36 61 2e 6d 61 70 00 00 b0 1f 45 00 00 45 44".Пробуй
Результат - всё равно вылетает...
0a 00 00 00 4e 65 63 30 36 61 2e 6d 61 70 00 b0 1f 45 00 00 45 44
ПоправкаА.. в скобках (16) я подразумевал систему счисления)) а так... это количество байт, понимаю, в переводе на 10-чную систему?
FF (255) - byte
FF FF (65535) - word
FF FF FF FF (4294967295) - dword
ПробуйВсё равно вылетает... (поставил другую, стандартную карту Wiz06a.map - всё заработало... но так не интересно!)))Код: [Выделить]0a 00 00 00 4e 65 63 30 36 61 2e 6d 61 70 00 b0 1f 45 00 00 45 44
Чего-то я не понял!Заработало в случае перехода на другую стандартную карту (wiz06a.map)
Заработало в каком случае?
Допустим ты переходишь с карты А на карту Б. Ты поменял модбокс на карте А, так чтобы он перемещал на карту С, и назвал карту Б картой С?
Причин масса, от неверно объявленной переменной, до не указанного типа предмета.Perfect: а так же некорректный модбокс, некорректный скрипт, некорректный объект, воля богов и луна в скорпионе.
Не надо извиняться, это же были вопросы по редактору. Всё в порядке.P.S. глядишь, скоро сделаешь какой-нибудь шедевр типа SkyColor, Library2 или Autumn.
SkyColor, Library2 или Autumn? Это ты о чём?)))
Ну и вообще редактор карт уныл чуть менее, чем полностью, поэтому там ОЧЕНЬ странные скрипты)
Основным недостатком было отсутствие у некоторых работ nxz-файлов.А за что этот файл, кстати, вообще отвечает, если для запуска карты достаточно файла .map?
mapSave( mapName )
А ты не думал, мил человек, что если бы у нас нашлись подобные вундеркинды, то давно бы уже сделали нормальный редактор сами?Вопрос даже не в нехватке вундеркиндов. А в наличии времени и мотивации заниматься подобной разработкой. Кто будет этим заниматься на бесплатной основе?
Но если научите - постараюсь сделать всё возможное))Чему научить надо?
Кто будет этим заниматься на бесплатной основе?Кирконжурер вроде что-то подобное начинал делать... пару лет назад.
о лично у меня есть сомнения по поводу того, что я его когда-нибудь увижу...Его и не целесообразно создавать. На сколько знаю проект "Нокс 2" был запущен (или все же нет?) в разработку на основе движка UE4. Мне кажется лучше помогать этому проекту.
пару лет назад.
...проект "Нокс 2" был запущен (или все же нет?) в разработку на основе движка UE4. Мне кажется лучше помогать этому проекту.По словам самих разрабов псевдонокса 2 проект мёртв.
Ну и всем кину, раз такое дело.вообще-то 2000 это 0x07D0, а 2100 это 0x0834, ничего не напоминает?
BlueElevator - 34 08 00 00 00 00 00 00 (extent 2000)
BlueElevatorPit - d0 07 00 00 (extent 2100)
Use F4Переведите это сообщение на русский язык. Также я уменьшаю вашу карму на единицу.
Schizz>Нажми F4P.S. Завершаем оффтоп.
Marsel>Добрый день. Не очень понял, это ответ?
Schizz>Нажмите кнопку F4 на вашей клавиатуре.
Я>Переведите это сообщение на русский язык. Также я уменьшаю вашу карму на единицу.
Schizz>(Трудно перевести, так как я плохо знаю английский)
Version: 0.0.9.40
The type initializer for 'NoxShared.ThingDb' threw an exception.
at NoxShared.ThingDb.get_FloorTileNames()
at NoxMapEditor.BlendDialog..ctor()
at NoxMapEditor.MapView..ctor()
at NoxMapEditor.MainWindow.InitializeComponent()
at NoxMapEditor.MainWindow..ctor()
at NoxMapEditor.MainWindow.Main()
UPD: Я скопировал файлы редактора карт в папку Nox, но всё равно не работает, та же ошибка. Может, у меня поломанный Nox, не работающий со многим. Или этот редактор старый (поломанный). Может, кто-нибудь поможет.Version: 0.0.9.50
Could not load file or assembly 'MapInterface, Version=1.0.4659.22365, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему. (Exception from HRESULT: 0x800736B1)
at NoxMapEditor.MainWindow..ctor()
at NoxMapEditor.MainWindow.Main()
Возможно, это вызвано незапущенным Nox или это другая причина, не знаю.
Привет!
У меня почему-то не запускается редактор карт для Nox. Прошу помощи.
<...>
Version: 1.0.6226.20009
Exception in main loop
Unable to read beyond the end of the stream.
at System.IO.__Error.EndOfFile()
at System.IO.BinaryReader.ReadByte()
at MapEditor.videobag.VideoBagStream.ReadPalette()
at MapEditor.videobag.VideoBagStream..ctor()
at MapEditor.videobag.VideoBagCachedProvider..ctor()
at MapEditor.render.MapViewRenderer.get_VideoBag()
P.S. Для работы редактора нужен запущенный Нокс или нет?
Понятно, у меня старый редактор карт Нокса, поэтому я устанавливаю его новую версию.
UPD: Редактор должен обязательно работать.
UPD2: После установки новой версии редактор всё ещё не работает. Нужна помощь с редактором карт. Текст ошибки:
<...>
P.S. Для работы редактора нужен запущенный Нокс или нет?
Какая версия Нокса у вас установлена?Nox 1.2 с установленным патчем Микса.
Nox 1.2 с установленным патчем Микса.
P.S. Почему же редактор карт заточен только под версию Нокса 1.2b?
Version: 1.0.6226.20009
Exception in main loop
Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Не удается найти указанный файл.
at NoxShared.NoxLzCompression.RebuildAlphabet()
at NoxShared.NoxLzCompression.DecompressImpl(Byte[] dst, Int32 dstLen)
at NoxShared.NoxLzCompression.Decompress(Byte[] src, Byte[] dst)
at MapEditor.videobag.VideoBagStream.GetBitmap(FileEntry fe, Int32& offsX, Int32& offsY)
at MapEditor.videobag.VideoBagCachedProvider.CacheBitmap(Int32 index)
Нужна помощь.Этот SchizzВлад. Пойми, Шизз является англоязычным. Он не русский. И он тебе скинул редактор карт с возможностью редактирования скриптов. А ты его так обливаешь грязью. Не забывай, сколько лет этой игре. Замечательно, если раз в день на форуме будет сообщение.сводит меня с умаговорить на английском. Вы почему не хотите говорить на русском?
Vladik26042007 пишет: Этот SchizzПонятно, Охотник.сводит меня с умаговорить на английском. Вы почему не хотите говорить на русском?
Влад. Пойми, Шизз является англоязычным. Он не русский...Не забывай, сколько лет этой игре. Замечательно, если раз в день на форуме будет сообщение.
И да, для пользования редактором карт нужно хнать английский.Мне не нужно знать английский для пользования редактором.
И он тебе скинул редактор карт с возможностью редактирования скриптов.Я не хочу скачать пока редактор карт с ссылки https://bit.ly/Nox_Map_Editor.
А ты его так обливаешь грязью.P.S. Не говорите "глупые" слова. :diablo: Спокойствие, только спокойствие! :friends:
omg use this editor: https://bit.ly/Nox_Map_EditorЭто новый редактор или старый? Правильно ли я понял, что буржуи запилили свой новый редактор и у нас есть альтернатива редактору Кирилла?
а то даже Саша Яблоков (Король Королевства делает свою карту)Эх, сейчас бы конкурс карт не помешал ::)
А что на этой карте можно сделать? Она ведь пустая. Даже Урчинов нет, хотя бы кнопку появления разнокомандных Урчинов сделай, и сделать карту как чат. (в одном месте тайлы не очень хорошо выглядят.)Выложи скрипт появления разнокомандных Урчинов, пожалуйста! И еще, заканчивайте карту NoxWorld! Прошу тебя!
BecomePet( Object("Urchin") )
AggressionLevel( Object("Urchin"), f0.83 )
return
превращается вAggressionLevel(BecomePet(Object("Urchin")),Object("Urchin"))
Как может синтаксис стандартных рабочих скриптов быть неправильным?Может и является. Потому что редактор самопальный, и оригинальные скрипты из кампании по большей части не расшифрованы. Лучше ориентируйся на скрипты мультиплеерных карт.