Случайная подборка модов
Old Episodes: Эпизод 1
2.9
Игра Душ: Начало
3.6
L.U.R.K.
4.0
Время Альянса 3. Связь Времен
3.4
Хроники Кайдана
3.6
Old Good Stalker Mod v2.4 Gold
4.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  Wolfstalker
Среда, 02.03.2011, 09:50 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

Задаем разные вопросы касательно создания модов.
  Злобная реклама
Среда, 02.03.2011, 09:50
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Швеция  KazakHD5770
Среда, 04.01.2012, 01:59 | Сообщение # 2431
Статус:
Опытный:
Сообщений: 2077
Награды: 7
Регистрация: 03.06.2011

Viнt@rь, я кучу всего стырил из спавнер мода. Там есть UI элементы и я их не распознал и не убрал потому что нубас. Лучше напиши как надо плиз :)
  Злобная реклама
Среда, 04.01.2012, 01:59
Статус:
Сообщений: 666
Регистрация: 03.06.2011
Украина  Viнt@rь
Среда, 04.01.2012, 02:10 | Сообщение # 2432
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 | Сообщение # 2433
Technologies Progress
Сообщений: 1874
Регистрация: 26.07.2011

tema796, припиши к значку Зова Припяти в свойствах -nointro и тогда роликов вообще не будет
  Злобная реклама
Среда, 04.01.2012, 12:05
Статус:
Сообщений: 666
Регистрация: 26.07.2011
Швеция  KazakHD5770
Среда, 04.01.2012, 20:08 | Сообщение # 2434
Статус:
Опытный:
Сообщений: 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
Украина  Comador
Четверг, 05.01.2012, 00:12 | Сообщение # 2435
Статус:
Неопытный:
Сообщений: 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
Российская Федерация  _Призрак_
Четверг, 05.01.2012, 00:20 | Сообщение # 2436
Статус:
Неопытный:
Сообщений: 544
Награды: 6
Регистрация: 12.02.2011

Кто тебе это сказал? Так делать можно, но нежелательно. Что ты будешь вызывать из функции, что ты будешь вызывать напрямую, все равно. Единственно, будет функция будет толстеть и ее не удобно будет читать. Все
  Злобная реклама
Четверг, 05.01.2012, 00:20
Статус:
Сообщений: 666
Регистрация: 12.02.2011
Швеция  KazakHD5770
Четверг, 05.01.2012, 01:37 | Сообщение # 2437
Статус:
Опытный:
Сообщений: 2077
Награды: 7
Регистрация: 03.06.2011

Блин, народ мне похрен будет это правильно или неправильно, удобно или не удобно. Сейчас я собираю тестовую сборку - мне просто нужен чтобы этот скрипт РАБОТАЛ, потом я, если будет нужно, сделаю всё максимально красиво. А пока нужно чтобы вы помогли разобраться с этим скриптом - там что-то неправильно и игра зависает. Кто поможет - плюс в репу, как и положено.
  Злобная реклама
Четверг, 05.01.2012, 01:37
Статус:
Сообщений: 666
Регистрация: 03.06.2011
Российская Федерация  XOBAH
Четверг, 05.01.2012, 02:43 | Сообщение # 2438
Проект Смерти вопреки
Статус:
Неопытный:
Сообщений: 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
Российская Федерация  satanian
Четверг, 05.01.2012, 09:40 | Сообщение # 2439
Статус:
Новичок:
Сообщений: 200
Награды: 0
Регистрация: 28.12.2011

Скажите пожалуйста как создать НПС ???
  Злобная реклама
Четверг, 05.01.2012, 09:40
Статус:
Сообщений: 666
Регистрация: 28.12.2011
Антарктика  FaLcon
Четверг, 05.01.2012, 10:28 | Сообщение # 2440
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2022
Награды: 8
Регистрация: 17.07.2011

satanian, способов 3 , можно через сдк , all.spawn и скрипты .Лично я пользуюсь сдк и all.spawn , да и еще вот полезная ссылочка там много всего интересного для новичков wink
Сообщение отредактировал HaeMHuK - Четверг, 05.01.2012, 10:28
  Злобная реклама
Четверг, 05.01.2012, 10:28
Статус:
Сообщений: 666
Регистрация: 17.07.2011
Российская Федерация  stalkerRF
Четверг, 05.01.2012, 17:38 | Сообщение # 2441
Статус:
Отмычка:
Сообщений: 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
Российская Федерация  KupuJLJL25
Четверг, 05.01.2012, 17:47 | Сообщение # 2442
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

Подскажите как скомпилировать уровень для сталкера тч после сдк! ну думаю поняли))
Сообщение отредактировал KupuJLJL25 - Четверг, 05.01.2012, 17:48
  Злобная реклама
Четверг, 05.01.2012, 17:47
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Украина  Viнt@rь
Четверг, 05.01.2012, 19:15 | Сообщение # 2443
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
Российская Федерация  KupuJLJL25
Четверг, 05.01.2012, 21:09 | Сообщение # 2444
Статус:
Новичок:
Сообщений: 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 | Сообщение # 2445
Статус:
Опытный:
Сообщений: 1205
Награды: 4
Регистрация: 10.05.2011

как правильно импортировать анимацию в milhshape, жму на импорт и выбираю анимацию допустим reload.skl и все программа неотвечает в чем причина
  Злобная реклама
Четверг, 05.01.2012, 22:43
Статус:
Сообщений: 666
Регистрация: 10.05.2011
Поиск: