 |
|
| Автор |
Сообщение |
|
| 17-09-2009 17:05 GMT3 час. #1038333 |
erlik Зачем дропать? :lok5) Напиши ему скрипт чтоб когда он его съел включался. А чтобы не елось (не исчезало) надо поставить eat_partition = -1 чтобы порций еды стало бесконечное кол-во.
добавлено спустя 4 минут
erlik насчет пояса: я могу это придумать, я могу это написать. Но не на LUA. :-(
добавлено спустя 12 минут
Где расписана работа предмета "ПДА Меченый"? Именно такое Название а не обычный ПДА из items.ltx |
отредактировал(а) blackraven6: 17-09-2009 17:23 GMT3 час.
|
|
|
| 17-09-2009 17:36 GMT3 час. #1038354 |
blackraven6
так это он для примера еду (консерву) привел. Ему надо просто чтоб при использовании опред. вещи активировался скрипт. А проверка на это делается через функцию дроп, либо надо делать для предмета интерактивное меню и на новые кнопки вешать активацию скрипта - это сложнее.
Других вариантов я не знаю.
eat_partition = -1 это конечно интересное предложение, но обычно все делается через обратный спавн использованной вещи.
А чем lua сложнее других языков программирования ? Я вот месяц назад вообще никакого даже близко не знал...:-) |
|
|
|
| 17-09-2009 18:25 GMT3 час. #1038402 |
erlik Прописываешь эту НЕ консерву как аптечку без лечения и других эффектов. Деаешь ее бесконечно используемой через eat_partition = -1. И вуаля! Там будет писаться не съесть а использовать!
PS а с чего ты начал луа изучать? Ну там написал простой скриптик, книгу прочитал или еще чего?
добавлено спустя 5 минут
Где расписана работа предмета "ПДА Меченый"? Именно такое Название а не обычный ПДА из items.ltx |
отредактировал(а) blackraven6: 17-09-2009 18:30 GMT3 час.
|
|
|
| 17-09-2009 19:24 GMT3 час. #1038422 |
blackraven6
Можно и так - не спорю, тока почему то все модмейкеры для спальника и рем. набора используют другой вариант.
|
|
|
|
| 17-09-2009 19:28 GMT3 час. #1038426 |
erlik, blackraven6 спасибо за подсказку)
Парни, у меня ещё один вопрос возник: я поковырялся в inventory_new.xml и нашёл там вот такой кусочек кода:
Это кнопка на выход. Мне в рюкзаке надо сделать ещё одну кнопку, но чтобы при нажатии срабатывал мой скрипт, т.е. был не выход из инвентаря, а активация моего сценария. Но вот в выше приведённом коде я никакой связи со скриптами не нашёл :-( Может я чего не понимаю?.. |
|
|
|
| 17-09-2009 20:16 GMT3 час. #1038462 |
white_wind93
Одного hml файла с координатами текстур и текстом надписи - мало. Кстати лучше использовать свой отдельный файл, в котором надо создать секции с новыми кнопками: где пишутся имена текстур, координаты, размер рамки и текст надписи.
В качестве образца глянь файл ui_sleep.hml - если такой есть в АМК.
Связь надписи, которую ты привел и действия такая: этот кусочек кода - связан со скриптом, который активируется при нажатии на кнопку "выход" и производит действие убрать "инвентарный худ."
Для создания новых интерактивных элементов - то бишь тех же кнопочек-надписей типа "использовать" - тока своих, нужен специальный скрипт. Именно в него и ставится указание, на файл hml с секцяими новых интерактивных элементов.
Он у меня есть, но я пока разбираюсь как он работает. Можешь сам посмотреть в амкашном модуле спальника. Я его из симбиона взял - там коды тоже из АМК. В принципе его можно переделать под свои нужды, но не совсем ясна одна вещь - как этот скрипт привязывается к конкретному итемсу. |
|
|
|
| 17-09-2009 20:37 GMT3 час. #1038474 |
В принципе его можно переделать под свои нужды, но не совсем ясна одна вещь - как этот скрипт привязывается к конкретному итемсу.
Угу, я тоже смотрел, но так и не понял, как активируется сон через спальник :lok5)... Надо будет ещё покопаться... |
|
|
|
| 17-09-2009 20:46 GMT3 час. #1038478 |
white_wind93 Не скрипты привязываются к кнопкам, а кнопки к скриптам. Этот файл всего лишь создает картинку кнопки. А в файлек скрипта задается кнопка.
Люди а где настраивается как будут отображаться точки стакеров на радаре и будут ли отображатся красные точки. Как их отключить? |
|
|
|
| 17-09-2009 20:57 GMT3 час. #1038487 |
blackraven6 config\ui\map_spots_relations.xml Тут посмотри. |
|
|
|
| 17-09-2009 21:10 GMT3 час. #1038497 |
erlik, я наверно чет не понял. В bind_stalker.script я вот это:
function actor_binder:on_item_drop (obj)
level_tasks.proceed(self.object)
game_stats.update_drop_item (obj, self.object)
end
заменил вот на это:
function actor_binder:on_item_drop (obj)
local section = obj:section()
if section == "matras" then
ui_cheat.spawn_item_in_inv()
end
А вот сам ui_cheat.script:
function spawn_item_in_inv(section,npc)
alife():create("af_medusa", db.actor():position(), 1, db.actor:game_vertex(), db.actor:id())
end
По идеи, должна заспавниться медуза у актора в рюкзаке, а у меня игра виснет при старте так, что даже через диспечер не получается вырубить сталкер &P Я наверно что-то не так опять сделал :-( ... |
|
|
|
| 17-09-2009 21:43 GMT3 час. #1038526 |
white_wind93 скрипты пишутся не в актор биндере. а в отдельных файлах. В биндере пишется ссылка на скрипт для апдейта, сэйва или лоада. |
|
|
|
| 17-09-2009 22:25 GMT3 час. #1038558 |
white_wind93
не надо ничего Заменять. Надо добавить.
Чтобы было так :
function actor_binder:on_item_drop (obj)
local section = obj:section()
if section == "matras" then
ui_cheat.spawn_item_in_inv()
end
level_tasks.proceed(self.object) --\ это все остается, так как нужно для игры.
--game_stats.update_drop_item (obj, self.object)
end
короче я щас сделал все нужные операции для новых кнопочек: добавил новый итемс - рем.набор, прописал его сидору, сделал скрипт ремонта, в хмл вписал секции новых кнопочек, переделал скрипт для инициации новых интерактивных элементов меню - привязал к кнопочкам скрипты на ремонт...но зараза вылетает из-за апдейта функции проверки наличия рем. набора у эктора.
Может кто знает как с этим чертовым интерфейсом надо работать? И как к итемсу привязывается новое меню?
В общем исправил пару ошибок - теперь ниче не вылетает, но новое меню так и не появилось. Обидно, однако...так что вопрос как привязать это меню к конкретному итемсу в инвентаре эктора остается в силе. |
отредактировал(а) erlik: 18-09-2009 00:12 GMT3 час.
|
|
|
| 18-09-2009 00:04 GMT3 час. #1038581 |
Привет
Ребята нужно сделать функцию для ТЧ что бы при взятии квестового предмета спавнились НПС противники.
И еще нужна функция что бы при убийстве квестового НПС происходил спавн НПС.
Подскажите пожалуйста какой вид могут иметь эти функции. |
|
|
|
| 18-09-2009 00:37 GMT3 час. #1038589 |
karavan
function name()
local actor = db.actor
if actor and actor:object("имя_вещи") == nil then
return
else
for i = 1, 10 do
alife():create("имя_чувака",vector():set(х,y,z),level_vertex_id, game_vertex_id) --\ тут пишешь координаты и вертексы, где должен заспавниться чувак. Для кол-ва - ставишь нужное число вместо 10
end
end
end
функцию ставишь на апдейт в файл bind_stalker
в функцию function actor_binder:update(delta)
типа так
имя_файла.name()
поправил чуть-чуть функцию
function name_2()
local npc1
npc1 = level_object_by_sid(sid) --\ пишем в скобочках сид квестового непися
if npc1 and npc1:alive() then
return
else
for i = 1, 10 do
alife():create("имя_чувака",vector():set(х,y,z),level_vertex_id, game_vertex_id)
end
end
end
число sid можно узнать в файле game_story_ids
эту функцию также надо ставить на апдейт
за правильность последней функции не уверен, но вроде так делается проверка на живость или мертвость :-)
добавлено спустя 2 минут
manunj
я все это видел - скрипт такой же переделал для себя :-) но все равно спасибо - завтра еще раз все проверю.
заметил небольшое упущение у себя - может быть из-за него и не появляется меню.
Так что не зря выложил тот скрипт :-) Спасибо. |
отредактировал(а) erlik: 18-09-2009 10:25 GMT3 час.
|
|
|
| 18-09-2009 09:17 GMT3 час. #1038649 |
Блин, помогите пожалуйста кто-нибудь. Сегодня решил заняться удалением заданий, сначала у Волка. Все сделал, вместо стартавого диалога типа "Отвали, я занят" сделал другой (просто текс изменил), решил сделать, чтобы показывался только один раз, т.е. говоришь "Хорошо" и больше этот диалог не увидиш, сделал вот так:
Но игра даже в главное меню отказывается заходить, объясните пожалуйста почему.
|
|
|
|
| 18-09-2009 09:53 GMT3 час. #1038662 |
FaithGTX
ты где то в диалоге тэг неправильно написал. Проверь.
лог читается как "ошибка чтения конца тэга". То есть скорей всего где то в тэге не поставил такой знак / При такой ошибке hml парсер игры как раз и не дает даже в меню войти для загрузки. Так что в следующи раз знай, что если также вылетать будет - значит где то с тэгом в диалоге или тексте напортачил :-) |
|
|
|
| 18-09-2009 10:06 GMT3 час. #1038664 |
Вопрос. Как менять сюжетные задания?
Наприер, встретить петруху. В каких файлах и скриптах надо ковырятся, чтоб задание изменилось на принести придмет петрухе, а за это он тебе про АТП раскажет? |
|
|
|
| 18-09-2009 11:22 GMT3 час. #1038703 |
erlik Все, починил. Лишний "\" был... |
|
|
|
| 18-09-2009 15:16 GMT3 час. #1038853 |
erlik, сделал всё как ты сказал, а игра слетает при попытке использовать объект, вот код ошибки:
Может в самом ui_cheat.script ошибка со спавном?
|
|
|
|
| 18-09-2009 17:26 GMT3 час. #1039000 |
Всем привет!
Подскажите,в каком файле искать инвентарь убитых?(и можно ли его заменить,не начиная новую игру?) |
|
|
|
| 18-09-2009 17:46 GMT3 час. #1039023 |
Alex Rodriguez, заменить не начиная новую игру нельзя, если это уникальные неписи, а если обычные, т.е. генерируемые, то смотри здесь - death_items_by_communities.ltx |
|
|
|
| 18-09-2009 17:46 GMT3 час. #1039024 |
white_wind93
вместо этого - откуда такая запись ?!
function spawn_item_in_inv(section,npc)
alife():create("af_medusa", db.actor():position(), 1, db.actor:game_vertex(), db.actor:id())
end
Ладно еще 1 вместо левел вертекса, так в написании гейм_вертекса ошибка. Надо просто писать вертексы эктора и его id и все - для спавна рюказк.
лучше пиши так
function spawn_item_in_inv()
alife():create("af_medusa", db.actor():position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
в скобочках ниче писать не надо,так как ты не используешь мой вариант с передачей данных в основную функцию, а сразу пишешь функцию с данными. |
|
|
|
| 18-09-2009 18:21 GMT3 час. #1039062 |
erlik, я не знаю... Всё равно вылетает с той же ошибкой :-G |
|
|
|
| 18-09-2009 18:34 GMT3 час. #1039070 |
white_wind93
Блин ты внимательнее следи за написанием имен глобальных переменных - а то я думаю что у тебя с этим все верно и сам ошибку не вижу.
Исправь db.actor():position() на
db.actor:position() |
|
|
|
| 18-09-2009 20:46 GMT3 час. #1039271 |
так,чё-то я окончательно запутался!допустим,чуваки,стреляющиеся по сюжету с вояками,дабы спасти Крота-это уникальные персы?Я циферки кое-где поменял,загрузил-всё так же.Чтобы у всех персов было то что я подправлю,надо начать новую игру?ладно я всё равно хотел сначала начать...
А ещё где-нидь чё-нидь надо менять? |
|
|
|
| 18-09-2009 21:31 GMT3 час. #1039322 |
SALER ПОМОГИ скачас с нета програму для редактирования параметров оружия. брони, медикаментов и прочее Я ни как немогу найти где находится файлы с бронькой в папке с игрой облазил всё не нашёл... |
|
|
|
| 18-09-2009 21:37 GMT3 час. #1039329 |
Что за бред?
За что отвечает строка position_threshold в настройках гулага (желательно по подробнее)? |
|
|
|
| 18-09-2009 22:11 GMT3 час. #1039378 |
erlik
Затестил твою фунцию
function name()
local actor = db.actor
if actor and actor:object("wpn_pm") == nil then
return
else
for i = 1, 10 do
local obj = alife():create("agr_soldier_regular",vector():set(-243,-20,-129),13586,8)
end
end
end
Все работает, но только военные спавнятся каждую секунду наличия у ГГ ПМ-а.
Подскажи как сделать что бы спавн происходил один раз?
Спасибо. |
|
|
|
| 18-09-2009 22:58 GMT3 час. #1039415 |
karavan
надо в этой функции поставить условие в виде отсутствия инфопоршня, а затем его выдать.
Тогда цикл спавна будет сделан тока один раз.
function name()
local actor = db.actor
local item = db.actor:object("wpn_pm")
if actor and item == nil then
return
elseif item and actor:dont_has_info("info") then
for i = 1, 10 do
local obj = alife():create("agr_soldier_regular",vector():set(-243,-20,-129),13586,8)
actor:give_info_portion("info")
end
end
end
пишешь поршень с любым именем в файл info_portion. Как - знаешь думаю.
выдачу поршня actor:give_info_portion("info") возможно надо будет поставить перед последним end если первый вариант не заспавнит нужное кол-во неписей.
и для второй функции тоже надо доп. условие в виде поршня прописать.
добавлено спустя 2 минут
FaithGTX
файлы XML трогал?
тэг wnd где-то трогал? там и ищи... |
отредактировал(а) erlik: 18-09-2009 23:13 GMT3 час.
|
|
|
| 18-09-2009 23:21 GMT3 час. #1039434 |
erlik
Написал по твоему примеру.
function name_2()
local npc1
npc1 = level_object_by_sid(889)
if npc1 and npc1:alive() then
return
else
for i = 1, 10 do
alife():create("yan_zombied_respawn_1",vector():set(-34,-10,-71),244091,111)
end
end
end
Игра вылетает при загрузке. Где нужно прописать (889) в АллСпавне или game_story_ids, а главное как правельно? |
|
|
Эта тема закрыта, публикация новых сообщений недоступна.
| | |
|