Скрипты |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Скрипты |
13.07.2009, 11:34
Сообщение
#21
|
|
Навий черны у ношьти Репутация: 377 Группа: Забанен Сообщений: 2210 Регистрация: 11.03.2009 |
FAQ Lua в X-Ray Список всех функций, переменных, классов и т.п. что используются в Сталкере находится по адресу: Код gamedata/scripts/lua_help.script Для получения файла надо распаковать игру. Можно скачать, в принципе Тут =>> Уроки Сообщение отредактировал RayTwitty - 09.06.2018, 20:23 -------------------- нарушение правил п. 7.2
|
 
|
|
|
|
12.07.2009, 12:05
Сообщение
#22
|
|
Почти Игрок Репутация: 1 Группа: Участник Сообщений: 27 Регистрация: 05.07.2009 |
В сталкере невидел var,
мне нужно знать функцыии для создания NPC, как заставить их ийти на заданые координаты, как выдать им пушки, как заставить их стрелять в кого либо... ***** в Delphi и C++ программить и то лутче. кто знает эти функцыии? 1. маты запрещены правилами форума 2. безграмотные сообщения тоже Сообщение отредактировал fen1x - 12.07.2009, 14:44 -------------------- --Дайте мне точку опоры и я переверну мир--
|
 
|
|
12.07.2009, 12:12
Сообщение
#23
|
|
СССР Репутация: 760 Группа: Участник Сообщений: 4400 Награды: 6 Регистрация: 28.12.2008 |
Вот тебе простой пример
Создание NPC "привязанного к точке" автор Меченый(Стрелок) (amk-team) Снайпер *1 Для начала создадим профиль! Откроем фаил character_****.xml и создаем там новый профиль Пример: <specific_character id="название_секции" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>иконка</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>класс</class> <community>группировка</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\папка с названием группировки\</snd_config> <rank>цифры от 0 до 900</rank> <reputation>цифры от 0 до 1000</reputation> <visual>путь до модели"визуала"</visual> <supplies> [spawn] \n оружие \n патроны к этому оружию = 5 \n </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> *2 Теперь нужно прописать класс нашего НПС в npc_profile.xml Пример: <character id="название_секции из character_****.xml"> <class>класс прописанный вами ранее</class> <specific_character>название_секции из character_****.xml</specific_character> </character> *3 Теперь зарегистрируем Нашего НПС в spawn_section.ltx Пример: [секция спавна(название пишите сами)]:stalker $spawn = "respawn\секция спавна" character_profile = название_секции из character_****.xml spec_rank = regular ;это ранг непеся оставляйте как есть ,особой роли не играет community = группировка которую вы приписали этому (название_секции из character_****.xml) custom_data = scripts\sniper_addon\sniper_addon_***_logic.ltx;*** - если группировка НПС нейтральна к вам или дружелюбна ,то friend , в противном случае enemy *4 Потом открываем xr_conditions.script и добавляем вот такую функцию function is_sniper_enemy(enemy, object) return enemy:id() ~= db.actor:id() end PS:Если нет такого фаила ,то возьмите из оригинальной Игры! *5 Теперь осталось Заспавнить Нашего НПСа PS:Тем кто делает это впервые ,прочитайте дальше ,а если сталкивались ,всё равно читайте *5.1 Для Начала нам нужно снять координаты того места Где появится наш Снайпер. Для этого открываем ui_main_menu.script находим вот примерно такое if dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() end и делаем так : if dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() elseif dik==DIK_keys.DIK_W then self:position_info() end И в конец фаила.В Самый Конец!!! function main_menu:position_info() local a = db.actor:position() local vid = db.actor:level_vertex_id() local gvid = db.actor:game_vertex_id() local text = "GPS:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid news_manager.send_tip(db.actor, text, nil, nil, 30000) end Сохраняем!!! *5.2 Заходим в игру ,добегаем до места где бы хотели чтобы сидел снайпер,выходим в Меню и в меню жмём на W , потом возвращаемся в игру И Делаем скриншот (F12) *5.3 Далее создаём скрипт спавна (создаётся с помощью блокнота или Notepad++) Например sniper_add.script В нём будем писать функции! function start_add_spawn()--\\*Это "список".Сюда будем вписывать вызов всех функции спавна --\\*Сюда вписываем название ваших функций --пример: spawn_sniper_one() end function название_латиницей()--\\spawn_sniper_one() local x= смотрим скриншот и переписываем сюда x local y= смотрим скриншот и переписываем сюда y local z= смотрим скриншот и переписываем сюда z local level_vertex= смотрим скриншот и переписываем сюда level_vertex local game_vertex_id= смотрим скриншот и переписываем сюда game_vertex_id alife():create("тут название вашей из spawn_section.ltx",vector():set(x,y,z),level_vertex,game_vertex_id) end function save_variable(variable_name, value) xr_logic.pstor_store(db.actor, variable_name, value) end function load_variable(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end *5.4 Когда вписали всех наших Снайперов и все функции спавна и внесли их в "список",то добавляем вызов нашей функции в bind_stalker.script в функцию actor_binder:update(delta) перед последнем end'ом этой функции добавляем if sniper_add.load_variable("spawn_sniper",false)==false then sniper_add.start_add_spawn() sniper_add.save_variable("spawn_sniper",true) end Сохраняем! *6 Теперь работаем с логикой. в папке configs/scripts создаём папку с sniper_addon , открываем её *6.1 Создаём два фаила sniper_addon_friend_logic.ltx и sniper_addon_enemy_logic.ltx *6.2 открываем sniper_addon_friend_logic.ltx и вписываем туда: ;SNIPER ADDON ;Меченый(Стрелок) [logic] active = remark@search [remark@fire] combat_ignore_cond = {!is_sniper_enemy} radius = 0 anim = hide on_info = {=health_le(0.5)} remark@search wounded = wounded@work sniper = true [remark@search] combat_ignore_cond = true combat_ignore_keep_when_attacked = false anim = hide target = actor on_info = {=see_enemy} remark@fire wounded = wounded@work [smart_terrains] none = true [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false Сохраняем этот фаил и открываем второй и вставляем туда ;SNIPER ADDON ;Меченый(Стрелок) [logic] active = remark@search [remark@fire] combat_ignore_cond = {!is_enemy_actor} radius = 0 anim = hide on_info = {=health_le(0.5)} remark@search wounded = wounded@work sniper = true [smart_terrains] none = true [remark@search] combat_ignore_cond = true combat_ignore_keep_when_attacked = false anim = hide target = actor on_info = {=see_actor} remark@fire wounded = wounded@work [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false -------------------- Internet Explorer это такая программа, с помощью которой можно зайти на сайт www.mozilla.com и скачать себе браузер...
На презентации Internet Explorer 9 парализованный мальчик встал и вышел =) Безалкогольное пиво - первый шаг к резиновой женщине. "...если человек не курит, не пьет... поневоле возникает вопрос - а не сволочь ли он…" А.П.Чехов |
 
|
|
12.07.2009, 12:18
Сообщение
#24
|
|
Почти Игрок Репутация: 1 Группа: Участник Сообщений: 27 Регистрация: 05.07.2009 |
DmitrjT
Не плохо,интересно есть справочник всех функцый в сталкере, есл есть тогда можно садитса делать моды на сталкер. -------------------- --Дайте мне точку опоры и я переверну мир--
|
 
|
|
12.07.2009, 12:21
Сообщение
#25
|
|
СССР Репутация: 760 Группа: Участник Сообщений: 4400 Награды: 6 Регистрация: 28.12.2008 |
Всех я не встречал, но если надо могу выложить туторы что были в билде 1935.
посмотри на АМК там в школе модинга более менее подробно эти вопросы рассмотрены. -------------------- Internet Explorer это такая программа, с помощью которой можно зайти на сайт www.mozilla.com и скачать себе браузер...
На презентации Internet Explorer 9 парализованный мальчик встал и вышел =) Безалкогольное пиво - первый шаг к резиновой женщине. "...если человек не курит, не пьет... поневоле возникает вопрос - а не сволочь ли он…" А.П.Чехов |
 
|
|
12.07.2009, 12:24
Сообщение
#26
|
|
Почти Игрок Репутация: 1 Группа: Участник Сообщений: 27 Регистрация: 05.07.2009 |
DmitrjT
Будь добр выложи пожалйста, просто по сриптить охота классные моды, если че потом сделаю мод выложу тоже, или я че найду тоже выложу полезное. -------------------- --Дайте мне точку опоры и я переверну мир--
|
 
|
|
12.07.2009, 13:06
Сообщение
#27
|
|
СССР Репутация: 760 Группа: Участник Сообщений: 4400 Награды: 6 Регистрация: 28.12.2008 |
Пожалуйста >>
-------------------- Internet Explorer это такая программа, с помощью которой можно зайти на сайт www.mozilla.com и скачать себе браузер...
На презентации Internet Explorer 9 парализованный мальчик встал и вышел =) Безалкогольное пиво - первый шаг к резиновой женщине. "...если человек не курит, не пьет... поневоле возникает вопрос - а не сволочь ли он…" А.П.Чехов |
 
|
|
13.07.2009, 14:26
Сообщение
#28
|
|
СССР Репутация: 760 Группа: Участник Сообщений: 4400 Награды: 6 Регистрация: 28.12.2008 |
Для тех кого интересует скриптинг в Сталкере выкладываю статью тов. KamikaZze (ogse team) к сожалению полностью доделать ее нет времени полный текст материалов можно найти
-------------------- Internet Explorer это такая программа, с помощью которой можно зайти на сайт www.mozilla.com и скачать себе браузер...
На презентации Internet Explorer 9 парализованный мальчик встал и вышел =) Безалкогольное пиво - первый шаг к резиновой женщине. "...если человек не курит, не пьет... поневоле возникает вопрос - а не сволочь ли он…" А.П.Чехов |
 
|
|
18.07.2009, 20:19
Сообщение
#29
|
|
Почти Игрок Репутация: 4 Группа: Участник Сообщений: 20 Регистрация: 16.07.2009 |
Можно ли как-то взорвать бочку не причиняя ей вред?) То есть не стрелять, не взрывать её, вообще с ней ничего не делать. Просто заспавнить через скрипт и потом так же через скрипт взорвать. Типа дистанционная бомба
Сообщение отредактировал jboo7 - 18.07.2009, 20:27 -------------------- "Everybody lies" - Doctor House
|
 
|
|
18.07.2009, 20:34
Сообщение
#30
|
|
Навий черны у ношьти Репутация: 377 Группа: Забанен Сообщений: 2210 Регистрация: 11.03.2009 |
Это как? О_о
-------------------- нарушение правил п. 7.2
|
 
|
|
18.07.2009, 20:53
Сообщение
#31
|
|
Почти Игрок Репутация: 4 Группа: Участник Сообщений: 20 Регистрация: 16.07.2009 |
Что "как?"?
Заспавнил бочку где-то рядом с собой, и нажал на заветную кнопку в главном меню, возвратился в игру и ты уже труп, потому что бочка взорвалась от нажатия на ту заветную кнопку. Как это можно было бы реализовать? -------------------- "Everybody lies" - Doctor House
|
 
|
|
18.07.2009, 21:04
Сообщение
#32
|
|
Навий черны у ношьти Репутация: 377 Группа: Забанен Сообщений: 2210 Регистрация: 11.03.2009 |
Кнопкой не знаю, если честно.. спейс рестриктором можно. Все помним сцены с туннелями в Рыжем Лесу, куда убегал Стрелок?) Можно по аналогии попробовать.
Сообщение отредактировал Орион - 18.07.2009, 21:04 -------------------- нарушение правил п. 7.2
|
 
|
|
18.07.2009, 21:26
Сообщение
#33
|
|
Почти Игрок Репутация: 4 Группа: Участник Сообщений: 20 Регистрация: 16.07.2009 |
Можно немного поподробнее?)
-------------------- "Everybody lies" - Doctor House
|
 
|
|
18.07.2009, 23:43
Сообщение
#34
|
|
Продвинутый геймер Репутация: 77 Группа: Участник Сообщений: 283 Награды: 4 Регистрация: 25.01.2009 |
Может попробовать нанести обьекту hit при помощи скрипта? Отследить его id, и дать хитом?
|
 
|
|
18.07.2009, 23:51
Сообщение
#35
|
|
Почти Игрок Репутация: 4 Группа: Участник Сообщений: 20 Регистрация: 16.07.2009 |
А как тогда отследить его id после создания через alife():create?
-------------------- "Everybody lies" - Doctor House
|
 
|
|
19.07.2009, 08:53
Сообщение
#36
|
|
Опытный Игрок Репутация: 12 Группа: Участник Сообщений: 60 Регистрация: 24.06.2009 |
А как тогда отследить его id после создания через alife():create? Ну етить... Вот ведь вопросы В мануалах всё расписано как, и не только это, кстати... Читайте мануалы, и будет вам счастье. Код -- Создаём объект local obj_name -- имя объекта local pos, lvid, gvid -- позиция, левел-вертекс, гейм-вертекс spawn_obj = alife():create(obj_name, pos, lvid, gvid) -- спавним объект local obj_id = spawn_obj.id -- комментарии нужны? Если да, то это и есть "его id после создания" Потом, когда нужно, наносим объекту хит, в данном случае взрывом Код -- получаем игровой объект по его номеру и взрываем local boom_obj = level.object_by_id(obj_id) local boom = hit() boom.direction = vector():set(0,0,0) -- направление хита boom.impulse = 10 -- импульс boom.draftsman = boom_obj boom.power = 10 -- сила хита boom.type = hit.explosion -- тип хита, в данном случае, взрыв if boom_obj then -- проверка, а собственно есть то, что нужно взорвать? boom_obj:hit(boom) -- большой бада-бум end Не сложно ведь? Сообщение отредактировал Stalbar - 19.07.2009, 08:56 -------------------- OGS Evolution Team
|
 
|
|
19.07.2009, 11:40
Сообщение
#37
|
|
Продвинутый геймер Репутация: 77 Группа: Участник Сообщений: 283 Награды: 4 Регистрация: 25.01.2009 |
Stalbar, ну спасибо, давно искал это!
|
 
|
|
19.07.2009, 13:50
Сообщение
#38
|
|
Почти Игрок Репутация: 4 Группа: Участник Сообщений: 20 Регистрация: 16.07.2009 |
Спасибо, Stalbar, проверю счас
-------------------- "Everybody lies" - Doctor House
|
 
|
|
19.07.2009, 16:57
Сообщение
#39
|
|
Почти Игрок Репутация: 4 Группа: Участник Сообщений: 20 Регистрация: 16.07.2009 |
Попробовал то, что посоветовал Stalbar с канистрой из АМК. Ничего с канистрой не произошло, проверил вот эту строчку local boom_obj = level.object_by_id(obj_id) просто обратившись к объекту boom_obj:name(). Выкинуло, подозреваю, что level.object_by_id попросту ничего не вернуло и в boom_obj ничего нет.
Сообщение отредактировал jboo7 - 19.07.2009, 16:59 -------------------- "Everybody lies" - Doctor House
|
 
|
|
19.07.2009, 23:34
Сообщение
#40
|
|
Опытный Игрок Репутация: 12 Группа: Участник Сообщений: 60 Регистрация: 24.06.2009 |
Попробовал то, что посоветовал Stalbar с канистрой из АМК. Ничего с канистрой не произошло, проверил вот эту строчку local boom_obj = level.object_by_id(obj_id) просто обратившись к объекту boom_obj:name(). Выкинуло, подозреваю, что level.object_by_id попросту ничего не вернуло и в boom_obj ничего нет. Распиши подробно, что делаешь, как обращаешься, откуда и т.п. Пишешь, что выкинуло - лог имеется? Попробуй получить имя, как boom_obj:section_name() -------------------- OGS Evolution Team
|
 
|
|
Текстовая версия | Сейчас: 26.04.2024, 16:45 |