Случайная подборка модов
We Are Not Alone
4.0
Clear Sky - Remake
3.8
Dead City Mod v. 4.80
3.7
Упавшая звезда. Честь наемника
4.2
Arsenal Mod
4.0
Old Episodes: Эпизод 1
2.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  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 | Сообщение # 2356
Статус:
Опытный:
Сообщений: 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 | Сообщение # 2357
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
Швеция  KazakHD5770
Среда, 04.01.2012, 20:08 | Сообщение # 2359
Статус:
Опытный:
Сообщений: 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 | Сообщение # 2360
Статус:
Неопытный:
Сообщений: 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 | Сообщение # 2361
Статус:
Неопытный:
Сообщений: 544
Награды: 6
Регистрация: 12.02.2011

Кто тебе это сказал? Так делать можно, но нежелательно. Что ты будешь вызывать из функции, что ты будешь вызывать напрямую, все равно. Единственно, будет функция будет толстеть и ее не удобно будет читать. Все
  Злобная реклама
Четверг, 05.01.2012, 00:20
Статус:
Сообщений: 666
Регистрация: 12.02.2011
Швеция  KazakHD5770
Четверг, 05.01.2012, 01:37 | Сообщение # 2362
Статус:
Опытный:
Сообщений: 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
Российская Федерация  satanian
Четверг, 05.01.2012, 09:40 | Сообщение # 2364
Статус:
Новичок:
Сообщений: 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 , да и еще вот полезная ссылочка там много всего интересного для новичков wink
Сообщение отредактировал HaeMHuK - Четверг, 05.01.2012, 10:28
  Злобная реклама
Четверг, 05.01.2012, 10:28
Статус:
Сообщений: 666
Регистрация: 17.07.2011
Российская Федерация  stalkerRF
Четверг, 05.01.2012, 17:38 | Сообщение # 2366
Статус:
Отмычка:
Сообщений: 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 | Сообщение # 2367
Статус:
Новичок:
Сообщений: 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 | Сообщение # 2368
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 | Сообщение # 2369
Статус:
Новичок:
Сообщений: 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
Поиск: