1

Перейти к содержимому


       Торент трекер от http://stalker-worlds.ru        Хранилище сайта http://stalker-worlds.ru        Онлайн Сталкер Канал Унесенные Сталкером Присоединяйся к нашему сообществу на facebook Вступай в нашу группу в контакте


Добро пожаловать к нам на сайт! Про Ваш статус и права можно прочитать в Этой теме

Для просмотра картинок и скачивания файлов с форума - пройдите регистрацию!   Проблемы с регистрацией - вам сюда


Фотография

Различные уроки.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 28

#21
Gorodetskij

Gorodetskij

    Сталкер

  • Не в сети
  • Старожилы

<- Информация ->
  • Регистрация:
    06-February 12
  • 279 Cообщений
  • Пропуск №: 5959


Репутация: 2 Постов: 279
  • Страна проживания:РФ
  • Реальное имя:Тоха
  • Пол:Мужчина
  • Город:Питер, Россия

Подскажите, иконку в формате .dds можно сделать только в фотошопе или в других программах тоже? Например, Paint.net.

И если в пайнте можно, объясните - как? Спасибо.


А вы живите, где хотите... А мой любимый город-Питер!

#22
volazar

volazar

    Сталкер

  • Не в сети
  • Проверенные
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • Регистрация:
    14-February 10
  • 793 Cообщений
  • Пропуск №: 847


Репутация: 3668 Постов: 793
  • Страна проживания:Russia
  • Реальное имя:V
  • Пол:Мужчина
  • Город:Мурманск, Россия
Gorodetskij, В любой другой программе, которая понимает формат .dds и позволяет в нем сохранять.
Не стоит забывать, что полотно должно быть с разрешением кратным двойке (128, 256, 512 и т.д)
*** *** ***
Иконку можно нарисовать где угодно и на любую фантазию.Нарисовали, сохраняете например в paint.net с параметрами: DXT5, сжатие итеративное, для отображения (данные параметры нужны для иконок/текстур худа/скайбоксов и т.д т.к они могут быть полностью/частично прозрачными).
Всякие текстуры моделей можно сохранять в DXT1 (прозрачности нет, но и размер меньше).
Еще раз: DXT5 - с прозрачностью, DXT1 - без! При сохранении это учитываем.

#23
weles17

weles17

    Призрак

  • В сети
  • Проверенные
  • Опытные
  • Спонсор сайта Старожил сайта
<- Информация ->
  • Регистрация:
    15-November 11
  • 427 Cообщений
  • Пропуск №: 5511


Репутация: 1213 Постов: 427
  • Страна проживания:Россия
  • Реальное имя:Юрий
  • Пол:Мужчина
  • Город:Алтай, Россия
Цитата (Gorodetskij)
иконку в формате .dds можно сделать только в фотошопе или в других программах тоже?

Плагин для открытия и сохранения DDS-текстур в Gimp
Чаще всего файлы с расширением .DDS можно встретить в папках с компьютерными играми. В таких файлах содержатся текстуры объектов (персонажей, покрытий, предметов). Большинство графических редакторов изначально не работает с подобным форматом файлов, тем не менее, открыть и сохранить формат .DDS все-таки можно.
Бесплатный плагин для открытия DDS-текстур в Gimp - Gimp-DDS. Совместим с Gimp 2.8 и x32/x64 разрядными ОС.

Скачать
805c1e188332997371c8857054f750665ee67515e1d285ecf050f7ff02f7e1e0daa41f515ee67015

Сообщение отредактировал Fagot: 25 November 2013 - 04:43

С Зоной ведь так: с хабаром вернулся — чудо, живой вернулся — удача, патрульная пуля мимо — везенье, а все остальное — судьба…

#24
Fаgot

Fаgot

    Сталкер

  • Не в сети
  • модератор Модераторы
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    14-November 10
  • 520 Cообщений
  • Пропуск №: 3158


Репутация: 1000 Постов: 520
  • Страна проживания:СССР
  • Реальное имя:Александр
  • Пол:Мужчина
  • Город:Владивосток

Разные полезные функции, необходимые для создания квестов.

 

Я не являюсь их автором!

Функции найдены в разное время на разных сайтах, или получены мною от хороших людей.

 

Выдача инфопоршня:

function give_info ()
db.actor:give_info_portion("название_инфопоршня")
end

Вставляем, например, в диалог активацию: <action>название_скрипта.give_info</action> .

================================================

 

Забрать инфопоршень :

function info_del()
db.actor:disable_info_portion("название_удаляемого_поршня ")
end

================================================

 

Выдача инфопоршня при взятии предмета:
в bind_stalker.script ищем функцию function actor_binder:on_item_take (obj) и в ней добавляем:

--функция отслеживания появления предметов в инвентаре:
if db.actor then
name = obj:section()
if db.actor:object("предмет") ~= nil then
db.actor:give_info_portion("поршень")
end
end

===============================================

 

Спавн мёртвого сталкера:

function название_функции()
local obj= alife():create("trup",vector():set(-206.574,-22.534,-128.532),46581,58)
obj:on_death()
end

"trup" - название секции трупа из spawn_sections.ltx .

==============================================

 

Спавн раненого (нужны функции АМК):

function v_zhopu_ranenji ()
local obj = alife():create("ranenji_x18",vector():set(-117.569,0.817,-510.170),40101,834)
local tbl = amk.read_stalker_params(obj)
tbl.sid = 99999  --сид (можно убрать)
tbl.health = 0.1
tbl.updhealth = 0.05
amk.write_stalker_params(tbl, obj)
end

===============================================

 

Выдача предмета актору:

function название_функции (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "название_предмета","in")
end

===============================================

 

Выдаём два одинаковых предмета:

function название_функции (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "название_предмета", "in",2)
end

Если надо больше меняем цифру 2 на нужную.

==============================================

 

Выдать несколько разных предметов актору:

function назв_функц (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "ammo_12x70_buck", "in")
dialogs.relocate_item_section(second_speaker, "ammo_9x18_pmm", "in")
dialogs.relocate_item_section(second_speaker, "ammo_9x18_pmm", "in")
dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_ap","in")                  
dialogs.relocate_item_section(second_speaker, "medkit_army", "in")                   
end

===============================================

 

Забрать предмет у актора:

function medusu_peredal(first_speaker, second_speaker)                 
dialogs.relocate_item_section(second_speaker, "af_medusa", "out")
end

===============================================

 

Спавн в рюкзак ГГ:

function название_функции()
local obj = alife():create("предмет", db.actor:position(), db.actor:level_vertex_id(),
db.actor:game_vertex_id(), db.actor:id())
end

===============================================

 

Проверка наличия предмета у актора:

function назв_функц(task, objective)                 
if db.actor ~= nil then
return db.actor:object("af_medusa") ~= nil
end
return false
end

В начало диалога, после <dialog id="... вставляем: <precondition>название_скрипта.название_функции</precondition>
Таким образом диалог не появится у персонажа до тех пор, пока у нас в рюкзаке не будет Медузы.

===============================================

 

Проверка нескольких разных предметов с разным количеством:

function chasti_mutantov(task, objective)
return new_dialog.item_much("mutant_dog_tail",4) ~= false and                          
new_dialog.item_much("mutant_flesh_eye",3) ~= false and
new_dialog.item_much("mutant_psevdodog_tail",2) ~= false and
new_dialog.item_much("mutant_snork_leg",2) ~= false                 
end

Необходим new_dialog.script , в оригинале ТЧ его нет, взять можно в Народной Солянке.

==============================================

 

Проверка наличия денег у ГГ(4000 руб.):

function actor_has_money()                 
return db.actor:money()>=4000                 
end

==============================================

 

Передача денег от нпс актору(400 руб.):

function medusa_money(first_speaker, second_speaker)                 
dialogs.relocate_money(first_speaker, 400, "in")
end

==============================================

 

Передача денег от ГГ сталкеру(2000 руб.):

function назв_функц(actor, npc)     
dialogs.relocate_money(npc,2000,"out")
end

==============================================

 

Забрать все деньги у ГГ:

function deneg_hren(actor, npc)
local actor = db.actor
all_money_actor = actor:money()
if actor and npc then
dialogs.relocate_money(npc, all_money_actor, "out")
end
end

===============================================

 

Удалить предмет из рюкзака ГГ (и из игры вообще):

function назв_функц()
local oItem = db.actor:object("предмет")
if oItem then
db.actor:drop_item(oItem)
alife():release(alife():object(oItem:id()), true)
end
end

===============================================

 

Удаление сталкера(или предмета) по его секции:

function dell_stalk()
for a = 1,65534 do  
local se_obj = alife():object(a)
if se_obj and se_obj:section_name() == "название_секции" then
alife():release(se_obj, true)
end
end
end

===============================================

 

Удаление по СИДу(story id):

function del()
local sim = alife()
local se_obj = sim:story_object(888)  --сид
if se_obj then
sim:release(se_obj, true)
end
end

=================================================

 

НПС становится врагом...:

function название_функции(actor, npc)                 
npc:force_set_goodwill(-5000, actor)
end

...или дрУгом... В этом случае убрать знак минус перед цифрой 5000.

=================================================

 

Сделать врагами нескольких НПС, по sid-у:

function actor_enemy_mg (actor, npc)          
      local npc = level_object_by_sid (99994) -- сид
      if npc ~= nil then
         npc:set_relation (game_object.enemy, db.actor) 
      end
 local npc = level_object_by_sid (99995)
      if npc ~= nil then
         npc:set_relation (game_object.enemy, db.actor) 
      end
 local npc = level_object_by_sid (99996)
      if npc ~= nil then
         npc:set_relation (game_object.enemy, db.actor) 
      end   
 end

====================================================

 

Эффект выброса:

function vjbros()
    xr_effects.start_small_reject (actor, npc)
    if math.random(0, 1001) < 999 then
    local h = hit()
    h.direction = vector():set( 1, 0, 0 ) 
    h.impulse = 1 
    h.draftsman = db.actor 
    h.power = 1 
    h.type = hit.telepatic
    db.actor:hit(h)
end
end

====================================================

 

Делаем группировку нейтральной для игрока:

function dolg_neitral(npc, actor)
 local chkgoodwill = relation_registry.community_goodwill("dolg",db.actor:id())
 relation_registry.set_community_goodwill ("dolg",db.actor:id(),120)
end

Функции работают на ТЧ-1.0004 .


С.Т.А.Л.К.Е.Р.- Равновесие-2.
"Я давно хотел вас спросить, как художник художника - вы рисовать умеете?.."

#25
Fаgot

Fаgot

    Сталкер

  • Не в сети
  • модератор Модераторы
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    14-November 10
  • 520 Cообщений
  • Пропуск №: 3158


Репутация: 1000 Постов: 520
  • Страна проживания:СССР
  • Реальное имя:Александр
  • Пол:Мужчина
  • Город:Владивосток

Сложная логика радиоприёмника. 

 

В рассматриваемом приёмнике есть два набора музыкальных композиций. Например, рок и попса.
Сперва играет рок. При наведении прицела на радио, появляется надпись "переключить канал" (например). При переключении, выбирается следующая случайная композиция из "рок". Когда ГГ получает инфопоршень stalk_v_td, происходит переход в секцию ph_sound@muzjka_3, где уже играет попса, с теми же самыми настройками, что и у рока...
 

Пример из мода Равновесие-2





[logic]
active = ph_sound@muzjka_1

; рок:
[ph_sound@muzjka_1]
tips = radio_switch;   надпись,появляющаяся при наведении прицела на радио(в string_table_ui.xml)
snd = radio_td1;  название звуковой темы (sound_theme.script)
looped = false; музыка будет проигрываться без остановки, по кругу
max_idle = 1000
random = true; случайный выбор композиции
on_use = ph_sound@muzjka_2; при нажатии "использовать",переход в следующую секцию(для смены трека)
no_hit = false; нанеся урон приёмнику, выключаем его
on_info = {+stalk_v_td} ph_sound@muzjka_3; при наличии инфопоршня, переходим в секцию с попсой

; рок:
[ph_sound@muzjka_2]
tips = radio_switch
snd = radio_td1
looped = false
max_idle = 1000
random = true
on_use = ph_sound@muzjka_1
no_hit = false
on_info = {+stalk_v_td} ph_sound@muzjka_3

; попса:

[ph_sound@muzjka_3]
tips = radio_switch
snd = radio_td2
looped = false
max_idle = 1000
random = true
on_use = ph_sound@muzjka_4
no_hit = false

; попса:
[ph_sound@muzjka_4]
tips = radio_switch
snd = radio_td2
looped = false
max_idle = 1000
random = true
on_use = ph_sound@muzjka_3
no_hit = false

 

Дополнение
В sound_theme.script создаются две секции (рок и попса), в которых указываются пути к музыкальным композициям.
Пример:

ph_snd_themes["radio_td1"] = { "characters_voice\\scenario\\priemnik_rupor_pripyat\\magnitofon_25",
"characters_voice\\scenario\\priemnik_rupor_pripyat\\magnitofon_23",
"characters_voice\\scenario\\priemnik_rupor_pripyat\\magnitofon_20",
"characters_voice\\scenario\\radiopriemniki\\agroprom\\pesnyarj_bel_pusha",
"characters_voice\\scenario\\radiopriemniki\\temnaya_dolina\\Pesnyary-Molodost-moya-Belorussiya",
"characters_voice\\scenario\\radiopriemniki\\temnaya_dolina\\Pesnjary-Berezovyi_Sok",
"characters_voice\\scenario\\priemnik_rupor_pripyat\\magnitofon_22"
}
ph_snd_themes["radio_td2"] = { "characters_voice\\scenario\\radiopriemniki\\A_Vivaldi-Vremena_goda-dekabr",
"characters_voice\\scenario\\radiopriemniki\\IS_Bah-Orkestrovaya_suita_1068",
"characters_voice\\scenario\\radiopriemniki\\IS_Bah-Tokkata_re_minor_565",
"characters_voice\\scenario\\radiopriemniki\\A_Vivaldi-Vremena_goda-avgust",
"characters_voice\\scenario\\radiopriemniki\\pripyat\\magnitofon_6",
"characters_voice\\scenario\\priemnik_rupor_pripyat\\magnitofon_20",
"characters_voice\\scenario\\priemnik_rupor_pripyat\\magnitofon_22",
"characters_voice\\scenario\\radiopriemniki\\PI_Chaikovskii-Shelkunchik"
}

С.Т.А.Л.К.Е.Р.- Равновесие-2.
"Я давно хотел вас спросить, как художник художника - вы рисовать умеете?.."

#26
Котобегемот

Котобегемот

    ОП-2-шник

  • Не в сети
  • глобальный модератор Глобальные модераторы
  • Темные
  • VIP сайта Завсегдатай - больше 1 год на сайте
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    12-May 14
  • 1501 Cообщений
  • Пропуск №: 10421


Репутация: 3400 Постов: 1501
  • Страна проживания:Украина
  • Реальное имя:Орест
  • Пол:Мужчина
  • Город:Львовская обл.

Может кто подскажет, интересует такое: где и как заменить рандомные приветсвия Сидоровича, когда заходим к нему в бункер. 

Напомню, он говорит,  например, такое - "Вернулся ?" ,  "Есть что-то стоящее ?", "Хабар принес ? " и т.д.  Насколько я понимаю, это к диалогам не относится ибо в ПДА - Журнал - История такого нет. оно туда не попадает. То, что звуки надо прогнать через СДК, это понятно, еще бы понять, где эти звуки в какой папке лежат и может еще какие -то нюансы есть типа прописывания в каких-то скриптах. 

Поможет кто советом ?


Нажми на кнопку - получишь результат.
Изображение

#27
Fаgot

Fаgot

    Сталкер

  • Не в сети
  • модератор Модераторы
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    14-November 10
  • 520 Cообщений
  • Пропуск №: 3158


Репутация: 1000 Постов: 520
  • Страна проживания:СССР
  • Реальное имя:Александр
  • Пол:Мужчина
  • Город:Владивосток

Котобегемот, gamedata\sounds\characters_voice\scenario\trader . 

Файлы trader_script1a_1.oggtrader_script1a_2.ogg и т.п. Заменяй на свои.


***


и может еще какие -то нюансы есть типа прописывания в каких-то скриптах
Нет.
С.Т.А.Л.К.Е.Р.- Равновесие-2.
"Я давно хотел вас спросить, как художник художника - вы рисовать умеете?.."

#28
StalkerNest

StalkerNest

    Сталкер

  • Не в сети
  • Старожилы

<- Информация ->
  • Регистрация:
    02-September 14
  • 416 Cообщений
  • Пропуск №: 14522


Репутация: 119 Постов: 416
  • Skype:nestyagin007
  • Страна проживания:Russia
  • Реальное имя:Владислав
  • Пол:Мужчина
  • Город:Казань

Можно пример создания диалогов, если для этого я задействовал новые файлы.


Сообщение отредактировал Fаgot: 30 November 2016 - 04:55


#29
Fаgot

Fаgot

    Сталкер

  • Не в сети
  • модератор Модераторы
  • Завсегдатай - больше 1 год на сайте
<- Информация ->
  • PipPipPipPip
  • Регистрация:
    14-November 10
  • 520 Cообщений
  • Пропуск №: 3158


Репутация: 1000 Постов: 520
  • Страна проживания:СССР
  • Реальное имя:Александр
  • Пол:Мужчина
  • Город:Владивосток

StalkerNest,  

1. config\gameplay\твой_файл

2. config\text\rus\твой_файл_с_русским_текстом

 

В твой_файл пишешь:

<dialog id="moi_dialog">
        <phrase_list>
           <phrase id="0">
              <text>moi_dialog_1</text>
<next>1</next>
         </phrase>
            <phrase id="1">
             <text>moi_dialog_2</text>
              <next>2</next>
</phrase>
            <phrase id="2">
              <text>moi_dialog_3</text>
         </phrase>
        </phrase_list>
</dialog>

 

В русско-язычный файл вставляешь:

<string id="moi_dialog_1">
<text>Здравствуйте...</text>
</string>
<string id="moi_dialog_2">
<text>До свидания...</text>
</string>
<string id="moi_dialog_3">
<text>Сам дурак...</text>
</string> 

 

Потом, в character_desc_локация.xml своему персонажу вставляешь ссылку на диалог:

<actor_dialog>moi_dialog</actor_dialog>

Это простейший диалог, без условий.


С.Т.А.Л.К.Е.Р.- Равновесие-2.
"Я давно хотел вас спросить, как художник художника - вы рисовать умеете?.."




Количество пользователей, читающих эту тему: 0

0 members, 0 guests, 0 anonymous users

яндекс.метрика
Button automatically alert search engines 31x31 WHOIS.UANIC.NAME - Identify traffic by Google

реклама на сайте подключена