Страница 11 из 16

Re: Обмен опытом.

СообщениеДобавлено: 09 авг 2010, 22:40
7.9
ага 8-)

Re: Обмен опытом.

СообщениеДобавлено: 11 авг 2010, 15:13
RedPython
Как создать свой мапспот.

Негуманные опыты будем ставить на тов. Шустром со Скадовска.

1. Для начала нарисуем (или возьмем готовую _http://narod.ru/disk/23629771000/ui_map_spots_npc.dds.html) картинку:
Изображение

Сохраним как ui_map_spots_npc.dds


2. Снимем координаты нужного значка, создадим в директории
\gamedata\configs\ui\textures_descr\ файл ui_map_spots_npc.xml и
пропишем в нем такие строки:

Код: Выделить всё
<w>
   <file name="ui\ui_map_spots_npc">
   <texture id="neutral_nimble" x="192" y="448" width="64" height="64" />
   </file>
</w>


В \gamedata\configs\ui\textures_descr\ создадим файл map_spots_npc.xml и
наполним его смыслом:
Код: Выделить всё
        <neutral_nimble_location hint="st_neutral_nimble">
                <level_map spot="neutral_nimble_location_spot"/>
                <mini_map spot="neutral_nimble_location_mini_spot"/>
        </neutral_nimble_location>
        <neutral_nimble_location_spot width="19" height="19" stretch="1" alignment="c" location_level="-1" scale_min="3">
                <texture>neutral_nimble</texture>
        </neutral_nimble_location_spot>
        <neutral_nimble_location_mini_spot width="14" height="14" stretch="1" alignment="c" location_level="-1">
                <texture>neutral_nimble</texture>
        </neutral_nimble_location_mini_spot>


3. Идем в stalker_generic.script и дописываем свои мапспоты:

Код: Выделить всё
----------------------------------------------------------------------------------------------------------------------
-- STALKER MAP SHOW
----------------------------------------------------------------------------------------------------------------------
-- Вызывается на переключении на новую секцию. Производит вычитывание настроек из текущей секции.
function reset_show_spot(npc, scheme, st, section)
....
....
....
                  elseif map_spot == "medic" then
                        map_location = "ui_pda2_medic_location"
                        hint = "st_ui_pda_legend_medic"
                  --'RP-------------------------------------------------------------------
                  elseif map_spot == "neutral_nimble" then
                        map_location = "neutral_nimble_location"
                        hint = "st_neutral_nimble"
                  --'end-------------------------------------------------------------------
                  end
....
....
....
                  elseif level.map_has_object_spot(npc_id, "ui_pda2_medic_location") ~= 0 then
                        level.map_remove_object_spot(npc_id, "ui_pda2_medic_location")
                  --'RP-------------------------------------------------------------------
                  elseif level.map_has_object_spot(npc_id, "neutral_nimble_location") ~= 0 then
                        level.map_remove_object_spot(npc_id, "neutral_nimble_location")
                  --'end-------------------------------------------------------------------
....
....
....
                  elseif map_spot == "medic" then
                        map_location = "ui_pda2_medic_location"
                  --'RP-------------------------------------------------------------------
                  elseif map_spot == "neutral_nimble" then
                        map_location = "neutral_nimble_location"
                  --'end-------------------------------------------------------------------
....
....
....
               end
         if level.map_has_object_spot(npc_id, map_location) ~= 0 then
                  level.map_remove_object_spot(npc_id, map_location)
         end
      end
   end
end


4. Выберем подопытного кролика aka Шустрый. В его логику добавим следующую строку:

Код: Выделить всё
level_spot = neutral_nimble


Стартуем новую игру, видим результат для иконки 19х19:
Изображение Изображение
Настраивать это дело на свой вкус, исходные иконки я делал 64х64.
Таким макаром можно лепить метки хоть на банку консервов, хоть на стаю кабанов.


Метка на карте.
Изображение

1. Создаем space_restrictor (хз как по-русски):
Код: Выделить всё
[9000]
; cse_abstract properties
section_name = space_restrictor
name = pri_gastronom_spot
position = 133.34490966797,28.906806945801,239.21775817871
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 707
distance = 0
level_vertex_id = 364239

object_flags = 0xffffff3e
custom_data = <<END
[story_object]
story_id = pri_gastronom_spot
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 0.5

; cse_alife_space_restrictor properties
restrictor_type = 3


2. В pda.script допишем в таблицу:
Код: Выделить всё
   {target="pri_gastronom_spot",      hint="st_pri_gastronom_spot_name"}


3. Пишем текст подсказки st_pri_gastronom_spot_name.

Re: Обмен опытом.

СообщениеДобавлено: 13 авг 2010, 17:13
RedPython
Продолжаю сливать интересные фичи ЗП.

Код: Выделить всё
--' Вступление в группировки

--' Вступаем в наемники
function actor_set_mercenary(actor, npc)
   printf("ACTOR NOW IN [KILLER] COMMUNITY")
   sim_board.get_sim_board():set_actor_community("killer")
   news_manager.send_tip(db.actor, "Теперь вы наёмник.", nil, nil)  --' Сообщение на ПДА
   db.actor:change_character_reputation(-250)  --' Изменение репутации
   return true
end

Re: Обмен опытом.

СообщениеДобавлено: 13 авг 2010, 22:54
HaemHuk
RedPython писал(а):Продолжаю сливать интересные фичи ЗП.

Код: Выделить всё
--' Вступление в группировки

--' Вступаем в наемники
function actor_set_mercenary(actor, npc)
   printf("ACTOR NOW IN [KILLER] COMMUNITY")
   sim_board.get_sim_board():set_actor_community("killer")
   news_manager.send_tip(db.actor, "Теперь вы наёмник.", nil, nil)  --' Сообщение на ПДА
   db.actor:change_character_reputation(-250)  --' Изменение репутации
   return true
end

А теперь вопрос. Где это прописывать?

Re: Обмен опытом.

СообщениеДобавлено: 14 авг 2010, 19:12
RedPython
HaemHuk, это исправленная функция, прописывать в файл *.script

Re: Обмен опытом.

СообщениеДобавлено: 16 авг 2010, 22:00
RedPython
Камуфлирование готовой текстуры.
.pdf - http://narod.ru/disk/23784207000/rp_kamo.7z.html

Re: Обмен опытом.

СообщениеДобавлено: 16 авг 2010, 23:53
DiabloFF
НАрод, поделитесь опытом, мож кто делал:
Как устроить проверку , надет ли предмет на пояс или нет (в ТЧ)???

Re: Обмен опытом.

СообщениеДобавлено: 13 сен 2010, 12:39
xXx[34rus]
Ребята, порекомендуйте мне кто-нибудь - с чего нужно начать и чем продолжить и чем заканчивать полное обучение модмейкерству, что нужно для этого? Дайте ссылки на статьи на http://stalkerin.gameru.net, которые введут меня в курс дела.

Re: Обмен опытом.

СообщениеДобавлено: 13 сен 2010, 15:47
XiaNi
DiabloFF
такое было кажется в моде с биорадаром, поищи этот мод и глянь там как они определяют что прибор на поясе висит, я просто не интересовался пока как там это реализовано

xXx[34rus]
я к сожалению ничего не могу посоветовать, учился по ходу создания мода.. а вот так чтоб по статьям, наверно можно я совершенно не в курсе где и что

Re: Обмен опытом.

СообщениеДобавлено: 13 сен 2010, 15:52
[Ork]
xXx[34rus]
Ну никто же не знает твой уровень знаний. Читай те статьи, которые более тебе нужны, а если что то будет в них не понятно, то ищи статьи по этому непонятному и так далее