|
Модострой:Вопросница
|
|
|
|
| Статус: |
 |
| Легенда: |
 |
| Сообщений: |
2258 |
| Награды: |
15 |
| Регистрация: |
05.04.2010 |
|
Задаем разные вопросы касательно создания модов.
|
|
Среда, 02.03.2011, 09:50
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
05.04.2010 |
|
|
|
|
|
Среда, 04.01.2012, 01:59
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
03.06.2011 |
|
|
|
|
|
|
Spectrum project
| Статус: |
 |
| Новичок: |
 |
| Сообщений: |
381 |
| Награды: |
2 |
| Регистрация: |
10.10.2010 |
|
Ну а вообще это будет выглядеть примерно так:
Code --вешать на коллбэк использования пердметов актором (bind_stalker.script, сразу после function actor_binder:use_inventory_item(obj), строка твой_скрипт.ActUseItem(obj)) - для ЗП function ActUseItem(oItem) local sItem = oItem:section() if sItem=="conserva" then SpawnItem("empty_"..sItem) end end
--спавнит предмет у актора в рюкзаке если передать только sItem function SpawnItem(sItem,oPos,oGv,oLv) if oNpc==nil then oNpc=db.actor end return alife():create(sItem,oNpc:position(),oNpc:level_vertex_id(),oNpc:game_vertex_id(),oNpc:id()) end
если надо заспавнить несколько предметов, то примерно так же: Code function ActUseItem(oItem) local sItem = oItem:section() if sItem=="conserva" then SpawnItem("empty_"..sItem,3) --второй параметр - кол-во предметов end end
--спавнит предмет у актора в рюкзаке если передать только sItem function SpawnItem(sItem,iCount,oPos,oGv,oLv) if oNpc==nil then oNpc=db.actor end for i=1,iCount do alife():create(sItem,oNpc:position(),oNpc:level_vertex_id(),oNpc:game_vertex_id(),oNpc:id()) end end
Добавлено (04.01.2012, 02:10) --------------------------------------------- ЗЫ думаю где, что менять под себя-разберешься
ну а если нет, то: function ActUseItem(oItem) local sItem = oItem:section() if sItem=="conserva" then SpawnItem("empty_"..sItem) --здесь "empty_"..sItem равносильно "empty_conserva", так же и ниже elseif sItem=="vodka" then SpawnItem("empty_"..sItem) end end
Сообщение отредактировал Viнt@rь - Среда, 04.01.2012, 02:15
|
|
Среда, 04.01.2012, 02:10
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
10.10.2010 |
|
|
|
|
|
|
Гереро
Среда, 04.01.2012, 12:05 | Сообщение # 2358
Technologies Progress
| Сообщений: |
1874 |
| Регистрация: |
26.07.2011 |
|
tema796, припиши к значку Зова Припяти в свойствах -nointro и тогда роликов вообще не будет
|
|
Среда, 04.01.2012, 12:05
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
26.07.2011 |
|
|
|
|
|
|
| Статус: |
 |
| Опытный: |
 |
| Сообщений: |
2077 |
| Награды: |
7 |
| Регистрация: |
03.06.2011 |
|
Вот что у меня есть - верхняя строчка, представленная в коде ниже, находится в оригинальном bind_stalker.script - то что ниже - добавил я. И это не работает. Игра зависает. Пока для теста у меня консерва превращается в колбасу (по идее). Что нужно исправить? Полную версию плиз отпишите.
Code function actor_binder:on_item_drop (obj)
item_transform_kazak.ActUseItem(obj))
function ActUseItem(oItem) local sItem = oItem:section() if sItem=="conserva" then SpawnItem("kolbasa"..sItem) end end
function SpawnItem(sItem,oPos,oGv,oLv) if oNpc==nil then oNpc=db.actor end return alife():create(sItem,oNpc:position(),oNpc:level_vertex_id(),oNpc:game_vertex_id(),oNpc:id()) end
Вообще я туговат насчёт скриптов и знаю только базовое программирование. Успешно писал простенькие скрипты на Far Cry, но скрипты на сталкера это просто АДЪ.
|
|
Среда, 04.01.2012, 20:08
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
03.06.2011 |
|
|
|
|
|
|
| Статус: |
 |
| Неопытный: |
 |
| Сообщений: |
507 |
| Награды: |
2 |
| Регистрация: |
23.12.2011 |
|
KazakHD5770, а зачем ты в bind_stalker.script пишешь свои функции? Так делать нельзя. В этом файле происходит их вызов. Тебе нужно создать свой файл скрипта, например my.script и уже в него прописать свои функции, т.е. в этом файле у тебя должно быть две твои функции ActUseItem(oItem) и SpawnItem(sItem,oPos,oGv,oLv). В файле bind_stalker.script должен остаться только вызов функции ActUseItem(oItem).
|
|
Четверг, 05.01.2012, 00:12
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
23.12.2011 |
|
|
|
|
|
|
| Статус: |
 |
| Неопытный: |
 |
| Сообщений: |
544 |
| Награды: |
6 |
| Регистрация: |
12.02.2011 |
|
Кто тебе это сказал? Так делать можно, но нежелательно. Что ты будешь вызывать из функции, что ты будешь вызывать напрямую, все равно. Единственно, будет функция будет толстеть и ее не удобно будет читать. Все
|
|
Четверг, 05.01.2012, 00:20
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
12.02.2011 |
|
|
|
|
|
|
| Статус: |
 |
| Опытный: |
 |
| Сообщений: |
2077 |
| Награды: |
7 |
| Регистрация: |
03.06.2011 |
|
Блин, народ мне похрен будет это правильно или неправильно, удобно или не удобно. Сейчас я собираю тестовую сборку - мне просто нужен чтобы этот скрипт РАБОТАЛ, потом я, если будет нужно, сделаю всё максимально красиво. А пока нужно чтобы вы помогли разобраться с этим скриптом - там что-то неправильно и игра зависает. Кто поможет - плюс в репу, как и положено.
|
|
Четверг, 05.01.2012, 01:37
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
03.06.2011 |
|
|
|
|
|
|
XOBAH
Четверг, 05.01.2012, 02:43 | Сообщение # 2363
Проект Смерти вопреки
| Статус: |
 |
| Неопытный: |
 |
| Сообщений: |
476 |
| Награды: |
0 |
| Регистрация: |
01.11.2010 |
|
Можете меня расшинковать и расчетвертовать, но по моим знаниям тут криво написана 2ая функция (и ее использование в первой):
SpawnItem("kolbasa"..sItem) -- Вызываем функцию с параметром "kolbasaconserva" В этой функции принимаем только sItem ("kolbasaconserva"), остальные переменные не имеют смысла (разве что можно добавить oNpc)
function SpawnItem(sItem,oPos,oGv,oLv) if oNpc==nil then oNpc=db.actor end -- Переменная oNpc никоим образом не передается поэтому сразу равна nil, и это можно свести к простому безусловному присваиванию return alife():create(sItem,oNpc:position(),oNpc:level_vertex_id(),oNpc:game_vertex_id(),oNpc:id()) --Функция будет спавнить "kolbasaconserva" у ГГ, если такой объект есть то вернет true (если конечно alife():crate вообще что-то возвращает), а иначе вылет по неизвестной секции, да и зачем тут вообще что-то возвращать?
Да и если ты хочешь добавить каллбек на предмет, то тебе скорее не в drop писать нужно, а в "actor_binder:use_inventory_item(obj)"
Сообщение отредактировал XOBAH - Четверг, 05.01.2012, 02:48
|
|
Четверг, 05.01.2012, 02:43
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
01.11.2010 |
|
|
|
|
|
|
| Статус: |
 |
| Новичок: |
 |
| Сообщений: |
200 |
| Награды: |
0 |
| Регистрация: |
28.12.2011 |
|
Скажите пожалуйста как создать НПС ???
|
|
Четверг, 05.01.2012, 09:40
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
28.12.2011 |
|
|
|
|
|
|
FaLcon
Четверг, 05.01.2012, 10:28 | Сообщение # 2365
Проект Смерти Вопреки
| Статус: |
 |
| Опытный: |
 |
| Сообщений: |
2022 |
| Награды: |
8 |
| Регистрация: |
17.07.2011 |
|
satanian, способов 3 , можно через сдк , all.spawn и скрипты .Лично я пользуюсь сдк и all.spawn , да и еще вот полезная ссылочка там много всего интересного для новичков 
Сообщение отредактировал HaeMHuK - Четверг, 05.01.2012, 10:28
|
|
Четверг, 05.01.2012, 10:28
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
17.07.2011 |
|
|
|
|
|
|
| Статус: |
 |
| Отмычка: |
 |
| Сообщений: |
143 |
| Награды: |
4 |
| Регистрация: |
23.09.2010 |
|
Подскажите пожалуйста. При декомпиляции карты "Затон",процесс доходит почти до конца и появляется ошибка,Can't load gamemtl.xr что делать?Файл на компьютере есть,но куда его скинуь?
Сообщение отредактировал stalkerRF - Четверг, 05.01.2012, 17:41
|
|
Четверг, 05.01.2012, 17:38
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
23.09.2010 |
|
|
|
|
|
|
| Статус: |
 |
| Новичок: |
 |
| Сообщений: |
330 |
| Награды: |
2 |
| Регистрация: |
01.06.2011 |
|
Подскажите как скомпилировать уровень для сталкера тч после сдк! ну думаю поняли))
Сообщение отредактировал KupuJLJL25 - Четверг, 05.01.2012, 17:48
|
|
Четверг, 05.01.2012, 17:47
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
01.06.2011 |
|
|
|
|
|
|
Spectrum project
| Статус: |
 |
| Новичок: |
 |
| Сообщений: |
381 |
| Награды: |
2 |
| Регистрация: |
10.10.2010 |
|
KazakHD5770,
XOBAH, в ТЧ такого коллбэка нет... касательно return при спавне, это что бы предмет не спавнился именно в той функции(SpawnItem(sItem,oNpc)), потому return возвращает действие спавна в функцию, откуда вызывалась функция спавна
Сообщение отредактировал Viнt@rь - Четверг, 05.01.2012, 19:44
|
|
Четверг, 05.01.2012, 19:15
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
10.10.2010 |
|
|
|
|
|
|
| Статус: |
 |
| Новичок: |
 |
| Сообщений: |
330 |
| Награды: |
2 |
| Регистрация: |
01.06.2011 |
|
Expression : header().graph_guid() == ai().game_graph().header().guid() Function : CALifeSpawnRegistry::load File : E:\stalker\patch_1_0004\xr_3da\xrGame\alife_spawn_registry.cpp Line : 167 Description : Spawn doesn't correspond to the graph : REBUILD SPAWN!
что с all.spawn oм?Добавлено (05.01.2012, 21:09) --------------------------------------------- Ошибка при распаковке all spawna update left in explosive_barrel at acdc.pl line 2599
|
|
Четверг, 05.01.2012, 21:09
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
01.06.2011 |
|
|
|
|
|
|
RICK
Четверг, 05.01.2012, 22:43 | Сообщение # 2370
| Статус: |
 |
| Опытный: |
 |
| Сообщений: |
1205 |
| Награды: |
4 |
| Регистрация: |
10.05.2011 |
|
как правильно импортировать анимацию в milhshape, жму на импорт и выбираю анимацию допустим reload.skl и все программа неотвечает в чем причина
|
|
Четверг, 05.01.2012, 22:43
|
|
| Статус: |
 |
| Сообщений: |
666 |
| Регистрация: |
10.05.2011 |
|
|
|
|