Пользователей: 1
Гостей: 1322
Всего: 1323

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
Ma$ter
    
Посты: 477
Откуда: Tamboff
Возраст:
22-06-2010 04:12 GMT3 час. #1275605   
Тут Николай Феникс писал несколько станиц назад функцию для начисления очков за попадания. Функция мне понятна но я не могу понять вот эти строчки:
if who and amount > 0.01 and bone_index > 0 then
if who:id() == db.actor:id() then --/ для актора
Можете объяснить зачем это нужно?


Знание assembler, C/C++, Pascal, Lua.
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
22-06-2010 09:36 GMT3 час. #1275652   
Я заспавнил метку такой **5001c54314580bda8be6**xt)
ObjId=obj.id
end
[/code]

И совершенно не получается ее потом убрать.Пробовал несколько способов:
[code]
--Пробовал так:
function delete_spot(ObId)
level.map_remove_object_spot(ObId,"blue_location")
end

И так:
function delete_spot(ObId)
if level.map_has_object_spot(ObId,"blue_location") then
level.map_remove_object_spot(ObId,"blue_location")
end
end

--Есть такая функция, но тоже не удаляет:
function remove_tema_likvidator_metka()
for a=1,65534 do
local obj = alife():object(a)
if obj then
if obj and obj:name() == "pda_merc_killer_glav" then
level.map_remove_object_spot(obj.id,"crlc_big")
break
end
end
end
end
[/code]

Функции не вылетают, а тупо не срабатывают.:obstenu:...Уже почти месяц пробую удалить - без результатов...
Подскажите, пожалста, функцию, которая удалила бы метку, заспавненую этой функцией?:
[code]local ObjId=0
function pda_killer_spawn()
local obj= alife():create("pda_merc_killer_glav",vector():set(-223.700,-7.678,-129.688),17000,281)
local text = "Типа текст"
level.map_add_object_spot_ser(obj.id, "blue_location", text)
ObjId=obj.id
end[/code]


Новые фишки для сталкера(см. журнал)
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-06-2010 10:26 GMT3 час. #1275674   
Stalk15

Функции не вылетают, а тупо не срабатывают

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

Тебе же вчера популярно объяснили что метка, во первых вешается на айди объекта, а во вторых дабы имелась возможность впоследствии удалить данную метку, необходимо позаботиться о том, чтобы айди объекта записанное в определенную переменную еще было и СОХРАНЕНО (изучай функции и методы сталкера - давно уже составлен подробный фак(справочник) по ним - и на вики и сайте АМК) - так как после перезагрузки все несохраненные значения переменных (динамически полученные в игре) теряются и переменным при старте игры присваиваются их первоначальные значения (если они имелись)

Вот ты передаешь в функцию некую переменную ObjId - а чему равно значение данной переменной?
если эта функция пользуется той версией переменной ObjId в которой ей по дефолту присвоено значение 0, то тогда ясно почему у тебя не вылетает от твоих попыток - 0 все таки не nil.

Однако да будет наконец всем известно что 0 это айди Меченого (а значение 0 в скриптах обычно присваивается числовым переменным при их инициации просто для удобства).
И раз на Меченом нет данной метки, но и удалять нечего. А если бы была - то удалилась бы именно метка на ГГ.

Удалить свою метку заспавненную функцией pda_killer_spawn() по записанному айди ты больше не сможешь - так как значение айди твоего NPC давно потеряно. Остается перебор всех айди.

Теперь по функции перебора всех айди - ты не заметил что метку ты заспавнил одного типа "blue_location", а пытаешься удалить "crlc_big" ?
а во вторых в методе удаления метки достаточно сделать так
level.map_remove_object_spot(a, правильный тип метки )
переменная a в данной функции и равняется всем айди игры поочередно - то есть в процессе перебора айди циклом ей последовательно присваиваются айди(числовые идентификаторы) объектов игры.
И убери дублирующую строчку if obj then - и end в конце.
--------------------------------------------------------------------------------------------------------------------------
PS : а твоего NPC действительно в allspawn зовут "pda_merc_killer_glav" ? Ведь ты же его спавнил скриптом. Тогда откуда имя?

А все понял - ты не тот метод используешь для проверки NPC . :-)
"pda_merc_killer_glav" это имя из профиля я так понимаю?

отредактировал(а) erlik: 22-06-2010 10:40 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
22-06-2010 10:40 GMT3 час. #1275682   
скрипты можно писать в любом файле папки D:\Games\S.T.A.L.K.E.R. - Shadow of Chernobyl\gamedata\scripts... ?
или разница есть. если есть, то как создать свой собственный скриптовый файл для простоты проверки?


Мафия не прощает оскорблений...
Artos
    
Посты: 4176
Откуда:
Возраст: 65
22-06-2010 10:43 GMT3 час. #1275684   
И дополню erlik'а, метка НЕ спавнится, а устанавливается на объект, используя его ID.

Stalk15 , не нужно быть косноязычным! То как ты выражаешь свои мысли/вопросы - говорит о том, что и как ты думаешь. Судя по твоим постам, у тебя от долбления головой об стенку (:obstenu:) давно уже каша в голове. И не ужели ты не поймешь сам что от того что ты будешь долбить стенку головой - и мозгов не прибавится и толку будет ноль.
За то время, которое ты уже уделяешь ковырянию со скриптами давно бы потратил немного времи на 'азбуку', чтобы уметь 'читать/писать'. Ты же - пытаешься только тупо применить знакомые начертания знакомых буковок, каждый раз делая ошибки.


musnuk
Странный вопрос. Собственно взглянуть в любой мод, в котором есть скрипты от модмейкеров отличные от разрабовских, и увидеть подтверждение своему предположению - сложно?
Только в имени своего файла используй 'разрешенные' символы и не обзывай уже имеющимся в игре или зарезервированным для иных нужд именем.

отредактировал(а) Artos: 22-06-2010 10:55 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
22-06-2010 10:51 GMT3 час. #1275691   
erlik
"pda_merc_killer_glav" - это предмет(ПДА)


Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
22-06-2010 11:00 GMT3 час. #1275695   
Stalk15
Ну тогда перечитай все, что написал erlik и, изменив в твоей функции " remove_tema_likvidator_metka" две строки:
  if obj and obj:name() == "pda_merc_killer_glav" then
    level.map_remove_object_spot(obj.id,"crlc_big")

на:
  if obj and obj:section_name() == "pda_merc_killer_glav" then
    level.map_remove_object_spot(obj.id,"blue_location")

может и получишь желаемое.

Если еще и поймешь суть исправлений и свои ошибки - сможешь не наступать на эти грабли в XX-дцатый раз!

Если же ответишь себе (и нам) на вопрос:
"А почему бы не применить вместо 'obj:section_name()' - попроще: 'obj:section()'?"
, то ... твои мозги начинают хоть о чем то думать/вспоминать и есть надежда, что твои (и наши) потуги не напрасны. :-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
22-06-2010 11:11 GMT3 час. #1275703   
Artos, erlik
Спасибо, метка удалилась...И спасибо за пояснение работы функции, хоть немного начал понимать принцип работы функций:-)
--------------------------------------------------------------------------------------

Artos
Да, есть:ye)
--------------------
Эээ....Я не совсем понял вопроса...Мне на свой вопрос ответить?..Или принцип работы функции сказать?
-------------------------------------------------------------------------------------
Ну яж не так уж сильно поннимаю...Но попробую ответтить=)...
...Ну-у....Если написать obj:section_name(), то движок поймет, что это имя секции обьекта...А obj:section() - это просто распознается, как 'секция обькта',...эээ...А правильно будет 'имя секции обьекта'..Ну, как-то так...

отредактировал(а) Stalk15: 22-06-2010 11:54 GMT3 час.

Новые фишки для сталкера(см. журнал)
Artos
    
Посты: 4176
Откуда:
Возраст: 65
22-06-2010 11:15 GMT3 час. #1275706   
Stalk15
Ну так ответ на заданный выше вопрос у тебя есть?
Тогда мы поймем - начал ты 'читать и понимать' или просто продолжаешь 'долбить стенку'. :-)

P.S. Ну и ...? Озвучь, плз, для нас "сирых"!

"А почему бы не применить вместо 'obj:section_name()' - попроще: 'obj:section()'?"
(имеется ввиду: в твоей подправленной функции 'remove_tema_likvidator_metka')

P.P.S. Мда-а-а, сколь же еще тебе 'в стенку биться' ... :-(
"Движок ... распознает ..." - бред! Это ты его (движок) сам спрашиваешь (даешь запрос)! И ... как и в топике, мямлишь то, чего ни ты не понимаешь ни движок.

obj:section_name() - метод применим для получения имени секции в случае серверного объекта (server_object), т.е. obj - серверный объект! Именно он у тебя получен в твоей функции через:
  local obj = alife():object(a)'

obj:section() - все тоже самое, но метод применим к клиентским объектам (game_object), которые могут быть получены типа:
  local obj = level.object_by_id(a)'

Неправильное применение метода относительно объекта -> фатальные ошибки!

Т.к. ты спавнил свой КПК секцией и спавнил скриптом, то имя объекта ( obj:name() ) НЕ будет эквивалентно твоей секции, т.к. в имени к ней добавляется ID. Именно в этом была твоя первоначальная ошибка.

Печально, что ты продолжаешь ковыряться вслепую. :-( Могу только сказать, что твои вопросы у меня все меньше вызывают желания отвечать ...

отредактировал(а) Artos: 22-06-2010 13:18 GMT3 час.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
22-06-2010 12:45 GMT3 час. #1275767   
как сделать чтобы к ГГ подходил НПС и появлялось окно с диалогом?


Artos
    
Посты: 4176
Откуда:
Возраст: 65
22-06-2010 13:02 GMT3 час. #1275782   
Николай ФеНиКс
Диалог должен быть разрешен в схеме "xr_meet.script", а для этого нередко в логике требуется НЕ запрещать диалоги в соответствующих ситуациях.
Если у НПС нет иных раздражителей/занятостей - то диалог дефолтно разрешен.
Для 'появления окна' - нажми 'F', ежели 'забыл' чО нужно делать. ;-)


"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..." ©Машина времени
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
22-06-2010 13:34 GMT3 час. #1275805   
Stalk15
попробуй вот так спавнить и удаля**5001c54314580bda8be6** type)
-- del_variable("x_marker_type_"..obj_id)
-- del_variable("x_marker_text_"..obj_id)
end
end[/code]



Artos


возможно ты не понял=)
или я криво написал....
Я хочу чтобы НПС подходил к ГГ и появлялось окно с диалогом! т.е. его нельзя закрыть и выйти нельзя пока не сработает функция закрытия. брейк диалог...

добавлено спустя 1 минуту

как сделать вызов этого только один раз:
[code]if db.actor:object("digger_pda") then
db.actor:give_info_portion("find_instr")
news_manager.send_tip(db.actor, "digger_tip", 10, "stalker", 10000)
local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\scenario\military\digger_msg]])
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
end[/code]

отредактировал(а) Николай ФеНиКс: 22-06-2010 13:38 GMT3 час.

Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
22-06-2010 15:09 GMT3 час. #1275886   
Николай ФеНиКс
Ты чуть ли не за год не научился пользоваться инфопоршнями\'флаж

отредактировал(а) Darien Fx: 22-06-2010 15:17 GMT3 час.

musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
22-06-2010 15:11 GMT3 час. #1275891   
создал файл в папке D:\Games\S.T.A.L.K.E.R. - Shadow of Chernobyl\gamedata\config\text\rus\
stable_dialogs_alternative

в нем написал


10


где 10- текст формата

чем вы тут занимаетесь?

айди написан правильно, ошибок не было, но в игре волк все равно говорил айдишками.
после переноса текста в файл stable_dialogs_escape(этой же папки) он заговорил нормально.
внимание, вопрос: как создать файл stable_dialogs_x, чтобы он использовался игрой?


Мафия не прощает оскорблений...
Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
22-06-2010 15:18 GMT3 час. #1275898   
musnuk
Нужно твой новый созданный файл прописать в localization.ltx.Пропиши по аналогии с другими.


Новые фишки для сталкера(см. журнал)
АнархОПанк
    
Посты: 998
Откуда:
Возраст:
22-06-2010 15:18 GMT3 час. #1275900   
musnuk а не проще текст прописывать прямиком в скелет????:victory


musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
22-06-2010 15:54 GMT3 час. #1275938   
Stalk15 спасибо...
АнархОПанк нельзя. слишком большой текст.


Мафия не прощает оскорблений...
XrKamp
    
Посты: 129
Откуда:
Возраст: 14
22-06-2010 16:45 GMT3 час. #1275971   
Как поставить метку по Sid'у обьекта? через скрипт))
Просто хочится разобраться в этом, но нихрена не получается.
:roulette

Вот что делал.
function main ()
local ObjId = 0
local SId = alife():story_object()
if SId then
local text= "текст"
ObjId=SId
level.map_add_object_spot_ser(SId, "blue_location", text)
end
end

erlik спасибо. теперь ясно.

отредактировал(а) XrKamp: 22-06-2010 17:21 GMT3 час.

Внимание! В подписи запрещены ссылки на любые внешние ресурсы!
не смотри журнал
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
22-06-2010 16:48 GMT3 час. #1275973   
Продолжаю информировать о том, что можно наковырять в сталкере без особого труда - (если знать где ковырять :-) )



все "красивые" кнопки работают. правда у трех не хватает текстур на нажатие.

------------------------------------------------------------------------------------------------------
XrKamp
прочитай все посты (и на пред. страницах )выше адресованные Stalk15 -там подробно эта тема освещена.
---------------------------------------------------------------------------------------
например так:
function set_spot ()
local id = id_by_sid(SId)
if id then
level.map_add_object_spot_ser(id, "blue_location", "твой текст")
end
end

вместо Sid - нужный номер сида объекта.
------------------------------------------------------------------------------------------------------------
АнархОПанк
пока ничего особенного - просто развлекаюсь тестированием неизвестных\малоизвестных интерфейсов которыми завалена геймдата.

отредактировал(а) erlik: 22-06-2010 17:10 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
АнархОПанк
    
Посты: 998
Откуда:
Возраст:
22-06-2010 17:07 GMT3 час. #1275983   
erlik
поделись информацией, что за очередно чудо ты лепишь?:-)


Fantom2323
    
Посты: 778
Откуда: 25 RUS
Возраст: 29
22-06-2010 17:18 GMT3 час. #1275985   
А можно ли перетащить эффект от Хэд Шота (партикл мясца из башки) из Сетевой игры в Одиночную? Как это сделать? И муторно ли это?


Новый проект в разработке, ищи в моём журнале.
В теории - всё легко, а вот на деле - гораздо сложнее.
Ded-Mazai
    
Посты: 7
Откуда:
Возраст:
22-06-2010 17:25 GMT3 час. #1275989   
Artos
не поверишь, у всех поменял иммуны, вот дошел до зомбированных.
Подскажи мне ламеру и нубу такой момент: в m_stalker_zombied есть строка immunities_sect = stalker_zombied_immunities, перехожу в эту секцию: [stalker_zombied_immunities]:stalker_immunities здесь тру :stalker_immunities, теперь иммуны, я так понимаю не наследуются, но их изменение не меняет положения, где я ошибаюсь?
И по поводу прописать свои жизни у зомбированных: надо прописать Health и MaxHealthValue в секции [stalker_zombied]:stalker ? пробовал вот так - не действует:

[stalker_zombied]:stalker
$spawn = "stalkers\stalker_zombied" ; option for Level Editor
attachable_items = device_torch,attachable_item
Health = 750
MaxHealthValue = 200

эти ведь параметры преоритетнее тех что в секции [stalker] ? в этом месте где я туплю?


musnuk
    
Посты: 487
Откуда: припять,проспект Ленина 86
Возраст: 30
22-06-2010 18:42 GMT3 час. #1276036   
значит есть вопрос по восстановлению... как восстановить вырезаную функцию пда ,,,
видел эту фишку в 1935 билде... охота попытаться "восстановить", вернее воссоздать.


Мафия не прощает оскорблений...
vovang
    
Посты: 68
Откуда:
Возраст: 38
22-06-2010 19:31 GMT3 час. #1276104   
Подскажите как удалить сюжетную линию квестов в Тени Чернобыля?Пробывал удалять поршни.Игра либо вылетает при загрузке,либо при переходе на локацию.


Darien Fx
    
Посты: 1372
Откуда:
Возраст: 30
22-06-2010 19:43 GMT3 час. #1276126   
musnuk
Всё, что связанно с ПДА - в движке. Можно разве что отлавливать открытие\закрытие различных разделов, для этого есть нужные поршни в info_portions.xml.


Stalk15
    
Посты: 1023
Откуда: Как-бэ Новосибирск(Точно не знаю=))
Возраст: 30
22-06-2010 19:46 GMT3 час. #1276133   
vovang
Вот, Сталкер Монолита делал вырезанный сюжет: ЖМИ


Новые фишки для сталкера(см. журнал)
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
22-06-2010 19:57 GMT3 час. #1276156   
как заставить НПС реагировать положительно или отрицательно на звук исходящий от ГГ(от определенного предмета точнее) (под положительно или отрицательно я имею ввиду: положительно= нпс "засыпает" вас похвалами, отрицательно: нпс чисто посылает вас! (всё это рандомно)


vovang
    
Посты: 68
Откуда:
Возраст: 38
22-06-2010 19:57 GMT3 час. #1276157   
Stalk15
Спасибо за информацию


Mehanik Yar
    
Посты: 469
Откуда: Уфа
Возраст:
22-06-2010 20:29 GMT3 час. #1276196   
Вопрос такой, нужно чтобы мутанты к определенной точке не подходили ближе определенного радиуса.
Т.е. какую логику надо прописать у рестриктра?


Ma$ter
    
Посты: 477
Откуда: Tamboff
Возраст:
22-06-2010 21:08 GMT3 час. #1276234   

как заставить НПС реагировать положительно или отрицательно на звук исходящий от ГГ(от определенного предмета точнее) (под положительно или отрицательно я имею ввиду: положительно= нпс "засыпает" вас похвалами, отрицательно: нпс чисто посылает вас! (всё это рандомно)

Ну надо сделать функцию которая при каком-то действии рандомно выбирает инфопоршень1 или инфопоршень2. Ну а дальше привязать к поршням поведение.

Мой вопрос:
Я хочу узнать позицию НПС, к примеру волка. Для этого нужно в скрипте начала указать на волка, а потом узнать его позицию. Тоесть это должно выглядеть так:
указываем на волка
local pos=npc:position()
Подскажите какими образами можно указать на НПС (к примеру на Волка)? Заранее извините за нубовский вопрос


Знание assembler, C/C++, Pascal, Lua.


Форумы Архив » Свалка Вопросы и ответы (по 15.07.10)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»