Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
bess 0 Опубликовано 12 Февраля 2010 Поделиться Опубликовано 12 Февраля 2010 Помогите кто нибудь.Этот all.spawn от ТЧ 1.0004 не распаковывается acdc'ом от бардака, но распаковываются от модов к ТЧ.Пишет шото про "died line 766". Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-377751
f0reSt 0 Опубликовано 12 Февраля 2010 Поделиться Опубликовано 12 Февраля 2010 bess, я пользуюсь ACDC от коломгора. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-377812
STARTS 0 Опубликовано 12 Февраля 2010 Поделиться Опубликовано 12 Февраля 2010 кровоSTALKER да не и без скобок идёт. У тя может в chimera_mod.script где-нить ошибка или там end пропущен, проверь луа чекером. Ну а так всё нормал, вот я повесил на дельта и всё работает --------------------------SRS_MOD----------------------------- srs.vvod_antirada() Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-377817
DiXares 1 Опубликовано 13 Февраля 2010 Поделиться Опубликовано 13 Февраля 2010 (изменено) Товарищи! Как сделать одиночное выполнение функции? Функция спавна. Засунут в биндер. И ещё: Enable = 1 function test() if Enable == 1 then local dtime = level.get_time_days() local htime = level.get_time_hours() local mtime = level.get_time_minutes() if dtime == 1 and htime == 0 and mtime == 0 then функция спавна... end end end Как правильно записать дату? Пишу например: dtime == 1.02.2012, но происходит вылет. Изменено 14 Февраля 2010 пользователем TREWKO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-378948
Niko1995 0 Опубликовано 15 Февраля 2010 Поделиться Опубликовано 15 Февраля 2010 НАрод извините меня пожалуйста за флуд и т.д но как заспавнить АНОМалию В ЗП через All.Spawn скажите пожалуйста! =) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-380349
Vano_Santuri 33 Опубликовано 16 Февраля 2010 Поделиться Опубликовано 16 Февраля 2010 (изменено) Найди секцию с аномалией перепиши её name на любое, координаты, лв_вертексы и нейм_вертекс айди и добавь в конец, не зхабудь номер на 1 больше в скобках поставить, чем последний, ну а лучше скриптом. Скриптом не проще? function create_anomalies(section,rad_anom,x,y,z,lv,gv,mode) if gv==nil then gv=db.actor:game_vertex_id() end if lv==nil then lv=db.actor:level_vertex_id() end if pos==nil then pos=db.actor:position() end local p_obj = alife():create(section,vector():set(x,y,z),lv,gv) local packet = net_packet() packet:w_begin(0) p_obj:STATE_Write(packet) packet:r_seek(2) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_u32 = packet:r_s32() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local box = packet:r_matrix() end end local restrictor_type = packet:r_u8() local cse_alife_custom_zone__unk1_f32 = packet:r_float() local cse_alife_custom_zone__unk2_u32 = packet:r_s32() local on_off_mode_enabled_time = packet:r_s32() local on_off_mode_disabled_time = packet:r_s32() local on_off_mode_shift_time = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_places_count = packet:r_u16() local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32() local last_spawn_time_present = packet:r_u8() packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if mode~=nil then custom_data = mode end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center = vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius = rad_anom packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32 = bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) packet:w_s32(on_off_mode_enabled_time) packet:w_s32(on_off_mode_disabled_time) packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) if mode == nil then packet:w_u8(last_spawn_time_present) end p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) return p_obj end create_anomalies(section,rad_anom,x,y,z,lv,gv,mode) --спавн аномалии ЗЫ: цитата из новостей ресурса Niko1995, . ..ы растём с каждым днём и будем расти.Думаю вскоре мы составим конкуренцию форуму АМК.У нас на сайте уже есть точная и интересная иноформация о создании модификации.Небольшое колличетсво программ,которые упрощают работу над модами..... Даже аномалию не можете создать, дам парни с конкуренцией вы погорячились. Изменено 16 Февраля 2010 пользователем Vano_Santuri Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-380851
SKS 0 Опубликовано 16 Февраля 2010 Поделиться Опубликовано 16 Февраля 2010 (изменено) Привет всем! У меня один вопрос. Как ГГ прописать в начале игры пару стволов и нормальный броник? В старых версиях НС я замечательно это делал прогой "xrSpawner". А на последней версии солянки эта прога отказывается что либо прописывать. В чем причина? Изменено 16 Февраля 2010 пользователем SKS Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-380930
BadSven 2 Опубликовано 16 Февраля 2010 Поделиться Опубликовано 16 Февраля 2010 (изменено) Доброй ночи....при распаковке all.spawn ошибка типа data left...пользуюсь acdc....надо в скрипт добавлять секцию?? Изменено 16 Февраля 2010 пользователем BadSven Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-380970
Niko1995 0 Опубликовано 17 Февраля 2010 Поделиться Опубликовано 17 Февраля 2010 (изменено) ОЙ ещё вопросик можно!?....А как Через СКрипт Заспавнить я пробывал и не получаеться! =( Vano_Santuri Остальная Команда пропала над модом работаю один я =( Изменено 17 Февраля 2010 пользователем Niko1995 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-381042
stalker19965 0 Опубликовано 17 Февраля 2010 Поделиться Опубликовано 17 Февраля 2010 Здравствуйте,я извиняюсь за тупой вопрос,но всё же:Как заспавнить машины через all,и как в моде амк задали логику бтр? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-381113
Struck 61 Опубликовано 20 Февраля 2010 Поделиться Опубликовано 20 Февраля 2010 SKS не легче скриптом?...спавни актору методом alife():create, и ставь высов в тегах action в инфопоршень о выдаче квеста о стрелке Niko1995 методом alife():create("",x,y,z,gv,lv) stalker19965 спавнить машину опять же посоветовал бы скриптом,ну а присваивание логики при спавне проблемой вроде бы не было, а логика вот она [logic] active = ph_car1 [ph_car1] path_walk = dar_btr on_actor_dist_le_nvis = 15| ph_car2 [ph_car2] path_walk = dar_btr target = actor track_target = true Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383136
SKS 0 Опубликовано 20 Февраля 2010 Поделиться Опубликовано 20 Февраля 2010 Struck, Спасибо конечно, но для меня эти скрипты темный лес. Со спавнером для меня проще работать. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383215
Struck 61 Опубликовано 20 Февраля 2010 Поделиться Опубликовано 20 Февраля 2010 а с асдс умеешь работать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383446
DiXares 1 Опубликовано 20 Февраля 2010 Поделиться Опубликовано 20 Февраля 2010 А есть ли функция, что то вроде этой: function test() if дистанция между двумя графпойнтами (game_grpah_1 и game_grpah_2) == 1000 метров(или 1 км) then моя функция... end end Дак вот, надо написать это: дистанция между двумя графпойнтами (game_grpah_1 и game_grpah_2) == 1000 метров(или 1 км) в виде Lua, но как? Может у кого есть предложения? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383490
RvP 1 Опубликовано 20 Февраля 2010 Поделиться Опубликовано 20 Февраля 2010 TREWKO, --' Возвращает расстояние между двумя точками графа с учетом разности уровней function graph_distance(vid1, vid2) local p1 = game_graph():vertex(vid1):game_point() local p2 = game_graph():vertex(vid2):game_point() --printf("GRAPH DISTANCE [%s][%s][%s] : [%s][%s][%s]", p1.x, p1.y, p1.z, p2.x, p2.y, p2.z) return game_graph():vertex(vid1):game_point():distance_to(game_graph():vertex(vid2):game_point()) end так? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383506
DiXares 1 Опубликовано 21 Февраля 2010 Поделиться Опубликовано 21 Февраля 2010 (изменено) RvP. А vid1 и vid2 это названия грфпойнотов? return game_graph():vertex(vid1):game_point():distance_to(game_graph():vertex(vid2):gam e_point()) Это сравнение? И как сделать константу дистанции? Типа: if distance == 1000 then ... end Изменено 21 Февраля 2010 пользователем TREWKO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383658
andrewrap 1 Опубликовано 21 Февраля 2010 Поделиться Опубликовано 21 Февраля 2010 (изменено) Здраствуйте, помогите пожалуйста с ошибкой. Заспавнил нпс в бункере учёных и когда рядом с бункером мутанты он подбегает к двери. В логике я прописал чтоб он возвращался обратно на точку после того как враги исчезнут. И тут при его возвращении происходит так вылет: Expression : vertex || show_restrictions(m_object) Function : CPatrolPathManager::select_point File : E:\stalker\patch_1_0004\xr_3da\xrGame\patrol_path_manager.cpp Line : 155 Description : any vertex in patrol path [yan_oxrana_lider_walk] in inaccessible for object [yan_oxrana_lider17091] Я знаю что тут связано с вертексами но что именно незнаю, всё переправерил-всё должно работать..подскажите пожалуйста может я что то забыл или неправильно сделал? Помогите пожалуйста очень сильно нужно исправить эту проблему, буду очень благодарен. Изменено 21 Февраля 2010 пользователем andrewrap Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383687
RvP 1 Опубликовано 21 Февраля 2010 Поделиться Опубликовано 21 Февраля 2010 TREWKO, да, это графпойнты. Это не сравнение, а получение расстояния между ними. чтобы получить константу походу будет d= game_graph():vertex(vid1):game_point():distance_to(game_graph():vertex(vid2):game_point()) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383772
DiXares 1 Опубликовано 21 Февраля 2010 Поделиться Опубликовано 21 Февраля 2010 (изменено) И ещё вопросец, как можно скриптом заглушить звук? Знаю, что есть скрипт воспроизведения, остановки, а заглушения есть? И как будет дистанция между графпойнтом и актором? Так: game_graph():vertex(vid1):game_point():distance_to(db:actor())? Расстояние в метрах? Изменено 21 Февраля 2010 пользователем TREWKO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383829
Push85 5 Опубликовано 21 Февраля 2010 Поделиться Опубликовано 21 Февраля 2010 (изменено) TREWKO, звук заглушить можно через свойство volume, пример: snd_obj.volume=2 snd_obj - это звук, вместо числа ставь нужную громкость, 1 это нормальная громкость файла Изменено 21 Февраля 2010 пользователем 8push5 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/14/#findComment-383865
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти