Новые файлы:
Слайдер:
Новые пользователи:
[06.03.2020] ichi_ni (Пользователи)
[12.08.2019] vinogand (Пользователи)
[20.07.2019] aslava406 (Пользователи)
[28.05.2019] Guryi (Пользователи)
[27.01.2019] StraNNik (Пользователи)
[09.01.2019] aleksandrm-a (Пользователи)
[17.03.2018] stalker702014 (Пользователи)
Новые ответы на форуме
10:09 20.05.2024
  • Страница 1 из 1
  • 1
Модератор форума: niko®  
Форум » WebFORUM » Услуги Персонала » niko®
niko®
SnowyJack Дата: Пятница, 15.07.2011, 20:52 | Сообщение # 1
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Я занимаюсь мелким веб дизайном (шапки, скрипты и т.д.) и мододел (улучшаю характеристики "всего"{артефакты,оружие, броня и т.д.}.
Творения веб дизайна:
мой сайт (этот)
Мод в скором времени будет выложен.
SnowyJack Дата: Четверг, 06.10.2011, 20:16 | Сообщение # 2
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Стикер Дата: Среда, 11.01.2012, 15:43 | Сообщение # 3
Вне зоны
Группа: Модераторы
Сообщений: 87
Репутация: 34
~ Награды ~
Химик®, Прикольный мод happy
SnowyJack Дата: Суббота, 04.02.2012, 19:28 | Сообщение # 4
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Делюсь информацией:
Решил таки создать эту тему. Дело в том что мне приходит очень много сообщений с просьбами от создания личного худа то тупых вопросов по правке элементарных конфигов(честно тупейшие вопросы бывают). По этому вот полное(почти) руководство по худам.

Итак начнёмс...

Раздел первый:файлы.
Для работы над худом нам нужны следующие файлы(не обязательно все конешно)
Текстуры:
Папка - textures\ui
Файлы + описание:
1- ui_hud.dds (собственно опорный файл содержащий почти все текстуры худа)
2 - cursor.dds (текстура причела без оружия в руках,попросту кругляшка)
3 - hud_map_arrow.dds (стрелка компаса)
Конфиги:
Папка - config\ui
Файлы + описание:
1 - maingame.xml (содержит конфиги индикаторов здоровья и состояния брони,индикаторов состояния ГГ(радиация,поломка оружия и тп) , окно патронов и всё с ним связаное,пояс артефактов ,мигающая иконка ПДА и кол во контактов. Так же состояние машины)
2 - motion_icon.xml (содержит конфиги положения ГГ (сидит,стоит и тп) ,а так же полоски выносливости,уровня шума и заметности ГГ.)
3 - ui_custom_msgs.xml (часы + всякая лабуда типо укусов...вообщем худы повреждений)
4 - zone_map.xml (собственно миникарта + компас)

Собственно это стандартный набор...он естественно не полный...есть ещё пара конфигов .... типо координаты новостей на худе...но они редко правятся.

Раздел второй:правка конфигов.

Открываем файлик maingame.xml

Что там есть:
<static_health - положение "колбы" здоровья
<progress_bar_health - полоска здоовья

<static_armor - положение "колбы" состояния брони.
<progress_bar_armor - полоска брони

<static_weapon - окно патронов + тип патронов
<static_ammo - количество патронов
<static_wpn_icon - иконка коробки от патронов
<car_panel - состояние машины
<static_pda_online - счётчик контактов
<quick_info - задания и всякая лабуда типо обучения в начале игры.
<icons_scroll_view - список индикаторов состояния ГГ (радиация,голод и тп.)Далее идёт сам список,НО он не поддаётся правке индивидуально. Правим только всё сразу строчкой упомянутой выше.

<flashing_icons> - мигющий ПДА
<pick_up_item - "поднять предмет"
<artefact_panel - панелька артов.

__________________________________

Файл motion_icon.xml

Что мы видим в нём:
<background - текстура на которой будет всё отображаться

Список иконок положения ГГ:
начиная от <state_normal> и заканчивая <state_sprint>

<power_progress - полоска выносливости
<luminosity_progress - полоска заметности ГГ
<noise_progress - полоска издаваемого шума

__________________________________

Файл ui_custom_msgs.xml
Что имеется:

<hud_timer - часы
<controller_fx - худ поареждения от контролёра
<monster_claws - худ повреждения от мутанта(царапины)
<main_task - "главное задание"
<cs_psy_danger - предупреждение о сильном излучении
<cs_radiation_danger - предупреждение о высоком уровне радиации
<game_saved - "игра сохранена"
<autosave - "автосохранение"
<item_used - "использован .... " (аптечка и тп)
<gun_jammed - "оружее заклинило"
<cant_walk - "вы слишком истощены"
<cant_walk_weight - "вы перегружены"
<not_enough_money_mine - у ГГ не хватает денег
<not_enough_money_other - у НПС не хватает денег

Далее идут строчки с координатами сообщений связаных с пингом.(разбирать МП не буду)

__________________________________

Файл zone_map.xml
Тут всё просто:

<level_frame - сама карта
<background - рамка карты
<dist_text - расстояние до цели
<compass - думаю понятно что это
<center - хз что это..предполагаю что реч о точках на миникарте

__________________________________

Советы:
Если вам нужно убрать текстуру - просто убираем в конфиге путь к текстуре.
Если нужно убрать текст - либо убираем сам текст либо ставим а="0"
Многие элементы передвигаются в связке.К примеру патроны - окно,количество и иконку можно двигать меняя координаты окна.Координаты остального подразумеваются в рамках размера окна(а не всего экрана)

Если вы хотите задать текстуре определённый размер то - пишем нужный width и height а после пишем stretch="1"

Автор: Serafim12
SnowyJack Дата: Суббота, 04.02.2012, 19:28 | Сообщение # 5
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Сегодня мы на примере научимся созданию новых артефактов. Создадим, например, артефакт под названием "Ромашка".

Статья написана по материалам Hunter Mod.
Создание конфига

Заходим в папку gamedata\config\misc и открываем файл artefacts.ltx.
И находим, например, артефакт "Медуза":
[af_medusa]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito medusa"

$prefetch = 64
cform = skeleton
class = ARTEFACT

visual = physics\anomaly\artefact_blackdrip.ogf
description = enc_zone_artifact_af-medusa
inv_name = af-medusa
inv_name_short =
inv_weight = 0.5

inv_grid_x = 9
inv_grid_y = 4

cost = 1000

jump_height = .5

particles = anomaly2\artefact\artefact_gravi

lights_enabled = false

;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_medusa_absorbation

artefact_activation_seq = af_activation_bold

[af_medusa_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 0.98

В этой секции задаются параметры артефакта, начиная от внешнего вида и заканчивая коэффициентами различных эффектов вроде вывода радиации. Сделаем копию секции, принадлежающей "Медузе", и заменим её название с af_medusa на af_romashka.

Должно выйти примерно вот так:
[af_romashka]:af_base
GroupControlSection = spawn_group
$spawn = "artifacts\moscito romashka"

$prefetch = 64
cform = skeleton
class = ARTEFACT

visual = physics\anomaly\artefact_blackdrip.ogf
description = enc_zone_artifact_af-romashka
inv_name = af-romashka
inv_name_short =
inv_weight = 0.5

inv_grid_x = 9
inv_grid_y = 4

cost = 1000

jump_height = .5

particles = anomaly2\artefact\artefact_gravi

lights_enabled = false

;скорости увеличения (уменьшения)
health_restore_speed = 0.0
radiation_restore_speed = 0.0005
satiety_restore_speed = 0.0
power_restore_speed = 0.0
bleeding_restore_speed = 0.0
hit_absorbation_sect = af_romashka_absorbation

artefact_activation_seq = af_activation_bold

[af_romashka_absorbation]
burn_immunity = 1.0 ;коэффициенты иммунитета
strike_immunity = 1.0
shock_immunity = 1.0
wound_immunity = 1.0
radiation_immunity = 1.0
telepatic_immunity = 1.0
chemical_burn_immunity = 1.0
explosion_immunity = 1.0
fire_wound_immunity = 0.98

Назначение некоторых параметров, влияющих на одевшего артефакт:
health_restore_speed - прирост к скорости восстановления здоровья
radiation_restore_speed - прирост скорость вывода радиации
satiety_restore_speed - прирост к голоду
power_restore_speed - прирост к выносливости
bleeding_restore_speed - прирост к скорости остановки кровотечений
Создание описания и имени артефакта

Заходим в gamedata\config\text\rus и открываем файл string_table_enc_zone.xml. Добавим туда строку с названием артефакта.
<string id="af-romashka">
<text>"Ромашка"</text>
</string>

Теперь у артефакта есть имя, но одного его недостаточно. Нужно сделать описание.
Поэтому добавим и его.
<string id="enc_zone_artifact_af-romaska">
<text>Очень странный артефакт. Впервые появился в Зоне где-то в 2011 году, но толку от него - ноль. Ученые
не обнаружили никакого влияния артефакта на организм носителя.</text>
</string>

Все, поздравляю, вы только что создали свой первый артефакт!
SnowyJack Дата: Суббота, 04.02.2012, 19:29 | Сообщение # 6
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Разбор системы квестов в S.T.A.L.K.E.R. Зов Припяти

Разбираем конкретно параметры:

icon - иконка квеста
Пример использования: icon = ui_inGame2_Put_v_pripyat

prior - приоритет квеста
Пример использования: prior = 112

storyline - флаг задания (true - сюжетное, false - несюжетное)
Пример использования: storyline = true

title - название задание (id из xml) - если брать название не из xml, то в игре оно будет отображаться без пробелов
Пример использования: title = zat_a9_way_gates_check_transport_workshop_name

descr - описание задания (id из xml) - если брать название не из xml, то в игре оно будет отображаться без пробелов
Пример использования: descr = zat_a9_way_gates_check_transport_workshop_text

target - цель на карте (метка)
Примеры использования:
target =zat_a2_stalker_barmen (ID нпц, на которого будет поставлена метка)
target = {+название_инфопоршня}zat_a2_stalker_barmen -- проверка инфопоршня, после которого метка будет поставлена на нпц

on_init - инфопоршень, который "включает" задание
Пример использования: on_init = %+название_инфопоршня%

condlist_x -- блок условий. возможные значения complete, reversed, fail
Примеры использования:
condlist_0 = {+название_инфопоршня} complete - если поршень есть, задание выполнено
condlist_1 = {+название_инфопоршня} reversed - если поршень есть, есть возможность повторить задание
condlist_2 = {+название_инфопоршня} fail - если поршень есть, задание провалено

on_complete - действия, которые выполняются, если задание выполнено
on_reversed - действия, которые выполняются, если задание провалено
Примеры использования:
on_complete = %=inc_faction_goodwill_to_actor(stalker:200)% -- повышаем репу у сталкеров (функция юзаются из xr_effect)
on_reversed = {+название_ифопоршня} %=inc_faction_goodwill_to_actor(stalker:200)% -- повышаем репу у сталкеров, только если есть опр.инфопоршень
on_complete = %+название_инфопоршня% -- выдаем инфопоршень

reward_money - денежная награда
Пример использования: reward_money = 5000

Создаем примитивный квест:

Используемые файлы:
configs\gameplay\dialogs_zaton.xml
configs\gameplay\info_zaton.xml
configs\gameplay\character_desc_zaton.xml
configs\text\rus\st_ quests_zaton.xml
configs\misc\tm_zaton.ltx
scripts\dialogs_zaton.script

Создание диалога
Открываем файл dialogs_zaton.xml и добавляем перед </game_dialogs>:
Код
<dialog id="vodka_quest_dialog">
<dont_has_info>quest_vodka_done</dont_has_info>
<dont_has_info>quest_vodka_give</dont_has_info>
<phrase_list>
<phrase id="1">
<text>Принеси бутылочку</text>
<give_info>quest_vodka_give</give_info>
<action>dialogs_zaton.give_vodka_quest</action>
</phrase>
<phrase id="0">
<text>Привет, тебе водки не принести?</text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>

<dialog id="vodka_quest_prines">
<has_info>quest_vodka_give</has_info>
<precondition>dialogs_zaton.is_has_vodka_borode</precondition>
<phrase_list>
<phrase id="1">
<text>Спасибо, чувак. Выручил</text>
<give_info>quest_vodka_done</give_info>
</phrase>
<phrase id="0">
<has_info>quest_has_vodka</has_info>
<text>Вот твоя водяра</text>
<action>dialogs_zaton.transfer_vodka_to_boroda</action>
<next>1</next>
</phrase>
</phrase_list>
</dialog>

Далее добавляем наши диалоги Бороде.
Открываем файл character_desc_zaton.xml
Находим строчку <actor_dialog>zat_a2_stalker_barmen_actor_info</actor_dialog> и под ней пишем
Код
<actor_dialog>vodka_quest_dialog</actor_dialog>
<actor_dialog>vodka_quest_prines</actor_dialog>

Сохраняем

Инфопоршни и скриптовые функции
Открываем файл info_zaton.xml и добавляем перед </game_information_portions>:
Код
<info_portion id="quest_vodka_give"></info_portion>
<info_portion id="quest_has_vodka"></info_portion>
<info_portion id="quest_vodka_done"></info_portion>

Открываем файл dialogs_zaton.script и в начало записываем:
Код
function give_vodka_quest()
task_manager.get_task_manager():give_task("quest_vodka_give")
end
function is_has_vodka_borode()
if db.actor:object("vodka") then
return true
end
return false
end
function transfer_vodka_to_boroda(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "vodka")
end

Сохраняем

Сам квест
Открываем файл tm_zaton.ltx и в конец пишем:
Код
[quest_vodka_give]
icon = ui_inGame2_Put_v_pripyat
prior = 2
storyline = false
title = {=actor_has_item(vodka)}vodka_barmen_prinesti_name, vodka_barmen_naiti_name
descr = vodka_barmen_descr
target = {=actor_has_item(vodka)}zat_a2_stalker_barmen
condlist_0 = {+quest_vodka_done} complete

Открываем файл st_quests_zaton.xml и добавляем после <string_table>
Код
<string id="vodka_barmen_naiti_name">
<text>Найти водку для бармена</text>
</string>
<string id="vodka_barmen_prinesti_name">
<text>Принести водку бармену</text>
</string>
<string id="vodka_barmen_descr">
<text>Бармен в тестовых целях попросил найти и принести ему 2 бутылки водки</text>
</string>

Сохраняем

Статья написана: Xmk
SnowyJack Дата: Суббота, 04.02.2012, 19:29 | Сообщение # 7
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
всем привет для вас kail сегодня я научу вас создавать квесты типа найти принести сегодня мы создадим квест для волка найти и вернуть динамит

1.
---------------------------------------------------------[[
список файлов которые понадобятся

gamedata/scripts/aln_quest --создадим,
gamedata/scripts/quest -- cоздадим,
gamedata/scripts/quest_aln --- cоздадим,
gamedata/config/gameplay/character_decs_escape,
gamedata/config/gameplay/info_l01escape,
gamedata/config/gameplay/dialogs_escape,
gamedata/config/gameplay/storyline_info_escape,
gamedata/config/gameplay/tasks_escape,
gamedata/config/text/rus/stable_dialogs_escape
---------------------------------------------------------]]

2. вот все файлы которые нужны и так приступаем

создаем скрипит в папке gamedata/scripts/aln_quest

в скрипт пишим функцию
----------------------------------------------------------------------]]
function spawn_item(spawn_item, pos, gv,lv)
if gv==nil then gv=db.actor:game_vertex_id() end
if lv==nil then lv=db.actor:level_vertex_id() end
return alife():create(spawn_item, pos, lv, gv)
end
function remove_item_from_inventory(remove_item,npc)
if npc==nil then npc=db.actor end
if remove_item~=nil then
--npc:mark_item_dropped(remove_item)
alife():release(alife():object(remove_item:id()), true)
return true
end
return false
end
----------------------------------------------------------------------]]

скрипт готов

p.s то-что я обвожу пунктиром и квадратными скобками в скрипт это невписываем иначе игра небудет видеть нашу функцию

3. теперь создаем скрипт quest в папке gamedata/scripts

в него пишим

------------------------------------------------------------------------[[
local items_count=0
local itemin=nil
function have_item_namber(itm,need_namber)
local actor=db.actor
items_count=0
itemin=itm
actor:iterate_inventory(cheking_item,actor)
if items_count>=need_namber then
return true
else
return false
end
end
function cheking_item(actor,item)
local items=item:section()
if items==itemin then
items_count=items_count+1
end
end
function create_items(npc,section,number)
for i=1,number do
alife():create(section,
npc:position(),
npc:level_vertex_id(),
npc:game_vertex_id(),
npc:id())
end
end
local reloc_params={}
local stalk
function out_item_namber(itm_section,need_number)
reloc_params.itm_section=itm_section
reloc_params.itm_cnt=need_number
reloc_params.itm_cnt_found =0
db.actor:iterate_inventory(checkout_items_count,db.actor)
reloc_params.itm_cnt_found=0
if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then
db.actor:iterate_inventory(out_items_count,db.actor)
end
news_manager.relocate_item(db.actor, "out", itm_section)
reloc_params={}
end
function relocate_item_namber(stalker,itm_section,need_number)
stalk=stalker
reloc_params.itm_section=itm_section
reloc_params.itm_cnt=need_number
reloc_params.itm_cnt_found=0
db.actor:iterate_inventory(checkout_items_count,db.actor)
reloc_params.itm_cnt_found=0
if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then
db.actor:iterate_inventory(reloc_items_count,db.actor)
end
news_manager.relocate_item(db.actor, "out", itm_section)
reloc_params={}
end
function checkout_items_count(actor,item)
if item.section and item:section()==reloc_params.itm_section then
reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
end
end
function reloc_items_count(actor,item)
if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then
db.actor:transfer_item(item, stalk)
reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
end
end
function out_items_count(actor,item)
if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then
aln_quest.remove_item_from_inventory(item, actor)
reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
end
end

------------------------------------------------------------------------]]

готово

4.создаем скрипт quest_aln в папке gamedata/scripts

в него пишим скелет квеста

--------------------------------------------------------------------------[[

---------------------------квест волка найти динамит------------------------------
function spawn_dynamite()
aln_quest.alife():create("dynamite",vector():set(106.24745178223,-7.1400456428528,2.6464221477509),407116,119)
end
function esc_wolf_dynamite_have()
return quest.have_item_namber("dynamite",1) ~= false
end
function give_esc_wolf_dynamite(first_speaker, second_speaker)
quest.out_item_namber("dynamite",1)
end
function complete_esc_wolf_quest(first_speaker, second_speaker)
dialogs.relocate_money(second_speaker, 2000, "in")
dialogs.relocate_item_section(second_speaker, "ammo_9x18_fmj", "in")
dialogs.relocate_item_section(second_speaker, "ammo_5.45x39_fmj","in")
end
--------------------------------------------------------------------------]]

готово

ps корды можите неменять динамит при взятие квеста будет лежать на атп где еще шустрый сидит

в награду за квест дадут 2000 руб
патроны к пм и патроны к ак

5.идем дальше

создание диалога для волка
идем сюда

gamedata/config/gameplay/character_decs_escape

ищим волка и вставляем ему новые диалоги ,а точнее сылки на диалоги вотак
------------------------------------------------------------------------------------------]]

<actor_dialog>esc_wolf_dynamite_quest</actor_dialog>
<actor_dialog>esc_wolf_dynamite_quest_completed</actor_dialog>
------------------------------------------------------------------------------------------[[

6.готово создадим скелет диалога

идем сюда

gamedata/config/gameplay/dialogs_escape

открываем и пишим два скелета диалога один для выдачи квеста второй для завершения и получения награды вообщем

пишим после тага </dialog>

пишим
----------------------------------------------------------------------[[
<dialog id="esc_wolf_dynamite_quest">
<dont_has_info>esc_wolf_dynamite_start</dont_has_info>
<phrase_list>
<phrase id="0">
<text>esc_wolf_dynamite_quest_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>esc_wolf_dynamite_quest_1</text>
<next>2</next>
<next>3</next>
</phrase>
<phrase id="2">
<text>esc_wolf_dynamite_quest_2</text>
<give_info>esc_wolf_dynamite_start</give_info>
<action>quest_aln.spawn_dynamite</action>
</phrase>
<phrase id="3">
<text>esc_wolf_dynamite_quest_3</text>
<action>dialogs.break_dialog</action>
</phrase>
</phrase_list>
</dialog>
<dialog id="esc_wolf_dynamite_quest_completed">
<precondition>quest_aln.esc_wolf_dynamite_have</precondition>
<has_info>esc_wolf_dynamite_have</has_info>
<dont_has_info>esc_wolf_dynamite_done</dont_has_info>
<phrase_list>
<phrase id="0">
<text>esc_wolf_dynamite_quest_completed_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text>esc_wolf_dynamite_quest_completed_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>esc_wolf_dynamite_quest_completed_2</text>
<action>quest_aln.complete_esc_wolf_dynamite_quest</action>
<give_info>esc_wolf_dynamite_done</give_info>
<action>quest_aln.give_esc_wolf_dynamite</action>
<next>3</next>
</phrase>
<phrase id="3">
<text>esc_wolf_dynamite_quest_completed_3</text>
<action>quest_aln.complete_esc_wolf_quest</action>
</phrase>
</phrase_list>
</dialog>

----------------------------------------------------------------------------]]

7.готово запишим русский текст идем сюда

gamedata/config/text/rus/stable_dialogs_escape

открыли и после тага </string>

пишим

------------------------------------------------------------[[

<string id="esc_wolf_dynamite_quest_0">
<text>Привет Волк работа есть для меня?</text>
</string>
<string id="esc_wolf_dynamite_quest_1">
<text>да как раз найдется для тебя работенка тут такое дело наши ребята нашли динамит но попути когда они тащили динамит сюда в лагерь на них бандиты на пали и динамит забрали ты немог бы вернуть динамит ребята сказали что видели что бандиты динамит всторону атп тащили, вообщем верни динамит ,а я отблагадарю. ну что согласен?</text>
</string>
<string id="esc_wolf_dynamite_quest_2">
<text>Хорошо попробую найти динамит</text>
</string>
<string id="esc_wolf_dynamite_quest_3">
<text>в другой раз</text>
</string>
<string id="esc_wolf_dynamite_quest_completed_0">
<text>привет Волк</text>
</string>
<string id="esc_wolf_dynamite_quest_completed_1">
<text>ну как нашол?</text>
</string>
<string id="esc_wolf_dynamite_quest_completed_2">
<text>да. нашол тяжелый немного держи</text>
</string>
<string id="esc_wolf_dynamite_quest_completed_3">
<text>спасибо меченый ,а вот и награда как я и обещал</text>
</string>
<string id="tex_esc_wolf_dynamite">
<text>Волк попросил найти динамит который украли бандиты</text> -- это запись будет отображатся в пда в кладке подробно о задании
</string>
-----------------------------------------------------------------]]

8.создадим инфопоршни в папке gamedata/config/gameplay/ info_l01escape

открыли пишим после тага </info_portion>

----------------------------------------------------[[

<!--квест Волка найти динамит-->
<info_portion id="esc_wolf_dynamite_start">
<task>esc_wolf_dynamite</task>
</info_portion>
<info_portion id="esc_wolf_dynamite_have">
</info_portion>
<info_portion id="esc_wolf_dynamite_done">
</info_portion>

---------------------------------------------------]]

9. cоздаем историю квеста в папке gamedata/config/gameplay/storyline_info_escape

открыли пишим после тага </article>

<!--квест волка найти динамит-->
<article id="tex_esc_wolf_dynamite" name="найти и вернуть динамит волку" article_type="task"> -- cылка на запись из stable_dialogs_escape мы уже написали что волк просит найти динами
<texture x="200" y="900" width="100" height="100">ui\ui_icon_equipment</texture> -- определяем иконку
<text>tex_esc_wolf_dynamite</text> -- текст задания
</article>

------------------------------------------------------[[

10.финиш создаем в gamedata/config/gameplay/tasks_escape

открыли пишим после тага </game_task>

-------------------------------------------------------------------[[

<game_task id="esc_wolf_dynamite">
<title>Найти украденый бандитами динамит</title> -- текст первого подзадания найти динами
<objective>
<text>Найти украденый бандитами динамит</text>
<icon>ui_iconsTotal_lost_thing</icon>
<infoportion_complete>esc_wolf_dynamite_done</infoportion_complete>
<article>tex_esc_wolf_dynamite</article>
</objective>
<objective>
<text>Найти украденый бандитами динамит</text>
<function_complete>quest_aln.esc_wolf_dynamite_have</function_complete>
<infoportion_set_complete>esc_wolf_dynamite_have</infoportion_set_complete>
</objective>
<objective>
<text>вернуть динамит Волку</text> -- текст второго подзадания гг нашол динамит отнести волку
<map_location_type hint="Волк">blue_location</map_location_type>
<object_story_id>Escape_novice_lager_volk</object_story_id>
<infoportion_complete>esc_wolf_dynamite_done</infoportion_complete>
</objective>
</game_task>

-----------------------------------------------------------------------------------------]]

ну вот и все квест по типу найти принести готов

сильно то неругайте я старался вроде и так все ражевал ,а в рот вы уже сами положите )) незабудьте плюснуть если все увас получится желаю удачи
SnowyJack Дата: Суббота, 04.02.2012, 19:29 | Сообщение # 8
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Прототип динамических новостей

Создание прототипа динамических новостей

В общем для этого нужно создать скрипт с названием типа ваше_название.script и нужно иметь чистый файл bind_stalker.script. Сделаем свой скрипт и запишем сюда нечто типо этого -

-- Прототип динамичеких новостей
local ant_spam ={
"Слышал что на АТП с Темной Долины зомбаки ходят. Осторожнее там.",
"Тимыч: Кто флудить будет тому оторву кой-чего.",
"Кто нибудь знает куда Стрелок делся?",
"Военные вообще оборзели! Две тысячи рублей за проход на север кордона - это не хило!",
"Завелся Чак Норрис в наших местах. Бандос это с прозвищем таким. Дебил полный.",
"Комбат как-то говорил что Тополь пропал. Неизвестно куда. Разминулись в подземке Агропрома",
"Долг: Блин переходите на свою волну. А то запалите Свободе планы",
"Свобода: Секач опять на Кота наехал. Кого-то скоро по закону Зоны на бой вызывать будут.",
"Похоже мне еще в лагере сидеть. Блин долг когда я этот Сидоровичу то отдам?!"
}

time_news = 0 -- переменная промежутка времени

function time_update_spam() -- функция промежутка времени
local time = time_global() -- переменная времени
if time_news < time then
time_news = time + 30000 -- время через которое будет вызываться сообщение
ваше_название.update_spam()
end
end

function update_spam()
news_manager.send_tip(db.actor, (ant_spam[math.random(9)]), nil, nil, 30000)
end

Теперь зайдем в файл bind_stalker.script и после строки

xr_sound.update_actor()

пишем

ваше_название.time_update_spam()

Теперь в игре будет через несколько секунд приходить новости. Чем больше время в строке time_news = time + 30000, тем дольше будет промежуток.

Еще можно добавлять свои новости - после строки "Мод Antdiablon freeplay 2.0 - самый крутой" ставьте запятую и пишите свой текст на новой строке, в кавычках но в конце после кавычки ставьте запятую. а если это последний текст, то не ставьте. Потом высчитывайте сколько сообщение всего и в строчке

news_manager.send_tip(db.actor, (ant_spam[math.random(9)]), nil, nil, 30000)
вместо 9 ставьте соответствующее количество.
SnowyJack Дата: Суббота, 04.02.2012, 19:30 | Сообщение # 9
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
В данной теме я расскажу как заспаувнить динамический вертолёт.Также в этом уроке мы рассмотрим логику вертолёта
Для спавна вертолёта потребуется:
Распакованный all.spawn
Распакованная игра
Position Informer
Итак, начнем.
1.
Спавн вертолета
В alife_нужная локация.ltx пишем:

[1922]
; cse_abstract properties
section_name = helicopter
name = pri_a28_heli_1
position = 154.740036,-2.654960,182.621597
direction = 0,-0.0252000000327826,0

; cse_alife_object properties
game_vertex_id = 316
distance = 0
level_vertex_id = 1216486
object_flags = 0xffffffb2
custom_data = < [logic]
cfg = scripts\generators\heli_boom_1.ltx
END

; cse_visual properties
visual_name = dynamics\vehicles\mi24\veh_mi24_u_01

; cse_motion properties

; cse_ph_skeleton properties
skeleton_name = idle

; cse_alife_helicopter properties
startup_animation = idle
engine_sound = vehicles\helicopter\helicopter
[Номер секции(если в alife_локация.ltx у вас не было других секций,ставим [1]]
; cse_abstract properties
section_name = helicopter <-Секция(не менять!)
name = pri_a28_heli_1 <-Уникальное имя скрипта
position = 154.740036,-2.654960,182.621597 <-
direction = 0,-0.0252000000327826,0 <- поворот вертолета

; cse_alife_object properties
game_vertex_id = 316 <- гейм вертекс уровня
distance = 0
level_vertex_id = 1216486 <- левел уровень
object_flags = 0xffffffb2
custom_data = < [logic]
cfg = scripts\generators\heli_boom_1.ltx <-путь к логике вертолёта
END

; cse_visual properties
visual_name = dynamics\vehicles\mi24\veh_mi24_u_01 <- Визуал верталёта

; cse_motion properties

; cse_ph_skeleton properties
skeleton_name = idle

; cse_alife_helicopter properties
startup_animation = idle
engine_sound = vehicles\helicopter\helicopter <- путь к звуку вертолёта,нужен другой-изменяем путь

Если вы не хотите,чтобы вертолёт летал по карте,а повис на одном месте то пишем:

[1922]
; cse_abstract properties
section_name = helicopter
name = pri_a28_heli_1
position = 154.740036,-2.654960,182.621597
direction = 0,-0.0252000000327826,0

; cse_alife_object properties
game_vertex_id = 316
distance = 0
level_vertex_id = 1216486
object_flags = 0xffffffb2

; cse_visual properties
visual_name = dynamics\vehicles\mi24\veh_mi24_u_01

; cse_motion properties

; cse_ph_skeleton properties
skeleton_name = idle

; cse_alife_helicopter properties
startup_animation = idle
engine_sound = vehicles\helicopter\helicopter
Для тех,кто создаёт путь:

2.Создаём путь heli:

В way_нужная лока пишем сецкцию-
[gen_heli_patrol_fly]
points = p0,p1
p0:name = wp00
p0:flags = 0x1
p0:position = 3.06068515777588,-0.420349597930908,-51.1655464172363
p0:level_vertex_id = 29038
p0:game_vertex_id = 934
p0:links = p1(1)

p1:name = wp01
p1:flags = 0x2
p1:position = -0.443285942077637,-0.312863349914551,-48.4627227783203
p1:game_vertex_id = 1966
p1:level_vertex_id = 29038
p1:links = p0(1)

Расшифрую:

[gen_heli_patrol_fly] <-секция пути(имя произвольно)
points = p0,p1 <-сколько точек перехода
p0:name = wp00 <-имя точки
p0:flags = 0x1 <-флаги(не трогать тем,кто с этим не знаком)
p0:position = 3.06068515777588,-0.420349597930908,-51.1655464172363 <-позиция
p0:level_vertex_id = 29038 <-level vertrex/вертекс уровня
p0:game_vertex_id = 934 <-game vertex/вертекс игры
p0:links = p1(1) <- переход в точку 1(если нужно,что верт прилетел в одну точка и завис там,то переход не пишем,а и вторую точку)

p1:name = wp01 <- 2-ая точка
p1:flags = 0x2 <-флаги
p1:position = -0.443285942077637,-0.312863349914551,-48.4627227783203 <-позиция
p1:game_vertex_id = 934<-level vertrex/вертекс уровня
p1:level_vertex_id = 29038 <-game vertex/вертекс игры
p1:links = p0(1) <-переход в точку 1

3. Создаем файл heli_boom_1.ltx (создаем текстовый документ,переименовываем полностью,заменяя расширение),открываем блокнотом
туда пишем:

[logic]
active = heli_move

[heli_move]
path_move = gen_heli_patrol_fly
max_velocity = 0.5
engine_sound = true
immortal = false
combat_ignore = false
dont_change_job = false

enemy = 3333
min_mgun_attack_dist = 8
max_mgun_attack_dist = 70
min_rocket_attack_dist = 25
max_rocket_attack_dist = 70
use_rocket = true
use_mgun = true
upd_vis = 3
stop_fire = true
fire_trail = false
invulnerable = false
mute = false

[line][/line]

Разбор логики:
[logic]
active = heli_move <-активная часть логики,указывается отдельно,это лишь ссылка на [heli_move]

[heli_move] <-собственно сама активная часть
path_move = gar_heli_patrol_fly <-секция патрулирования вертолёта,что прописана в way_локация.ltx
max_velocity = 0.5 <- максимальная скорость
engine_sound = true <-включен ли звук двигателя
immortal = false <- бессмертие вертолёта
combat_ignore = false <-игнорирование любых обьетов,наносящих урон вертолёту или считающихся для вертолёта опасным
dont_change_job = false <-не сменять работу(Оо)

enemy = 3333
min_mgun_attack_dist = 8 <-минимальная дистанция использования пулемёта
max_mgun_attack_dist = 70 <-максимальная дистанция использования пулемёта
min_rocket_attack_dist = 25 <-минимальная дистанция использования ракет
max_rocket_attack_dist = 70 <-максимальная дистанция использования ракет
use_rocket = true <-использовать ли ракеты
use_mgun = true <-использовать ли миниган
upd_vis = 3 <-не менять
stop_fire = true <- останавливать ли огонь или стрелять на поражение
fire_trail = false <линейное отставание бомбы(полосы дыма за ракетой,не включать на динамике,игра заглючит)
invulnerable = false <-неуязвимость
mute = false <-не атаковать кого-либо.

Примечание:
В ЗП есть определённые логики вертолёта,я не помню что это за логики и как назыаются
но пишутся в:
path_move = gar_heli_patrol_fly|a=анимация
Также можно прописать звук:
s=звук.

Спасибо за внимание.Если будут проблемы,то постараюсь ответить в этой теме.Просьба не копировать это на сталкер вики

Вроде все должно пахать
Если надо,то создам тему про "Обстрел NPCами корпуса вертолёта","Спавн и логика БТР`а"
Стикер Дата: Пятница, 13.04.2012, 18:29 | Сообщение # 10
Вне зоны
Группа: Модераторы
Сообщений: 87
Репутация: 34
~ Награды ~
кулл, спасибо) лови плюсик smile
SnowyJack Дата: Понедельник, 16.04.2012, 10:37 | Сообщение # 11
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Code
<tr><td><b>Инвентарь</b></td></tr>   
     
<tr id="siM21"><td class="manTd1" id="siM22">Автомат:</td><td class="manTd2" id="siM23">   
<script>   
function autopre(auto)   
{   
   if(auto == '')   
   document.all.aolautopre.innerHTML = '';   
   else   
   document.all.aolautopre.innerHTML = '<img src="http://st-web.3dn.ru/img/auto/'+auto+'.png" border="0">';   
}   
</script>   
<select size="1" id="aolauto" name="aol" onChange="autopre(this.value);">   
<option value="pusto"><i>Пусто</i></option>   
<optgroup name="st" label="Автоматы">   
<option value="viper5">Гадюка-5</option>   
<option value="TRc-301">ТРс 300</option>   
<option value="akm-74_2u">Акм 74/2у</option>   
<option value="akm-74-2">АКМ-74/2</option>   
<option value="IL_86">ИЛ 86</option>   
<option value="as-96-2">АС-96/2</option>   
<option value="groza">Гром-С14</option>   
<option value="G_36">ГП 37</option>   
<option value="SGI_5k">СГИ-5к</option>   
<option value="val">СА «ЛАВИНА»</option>   
<option value="rp74">РП-74</option>   
<option value="FN2000">FN2000</option>   
</optgroup>   
<optgroup name="st" label="Снайперское">   
<option value="vintar">Винтарь ВС</option>   
<option value="svd">СВДм-2</option>   
<option value="svu-mk2">СВУмк-2/2</option>   
<option value="gauss_rifle">Гаусс-пушка</option>   
</optgroup><script>   
var _0xe4ef=["\u0412\u0430\u0448\x20\u0441\u0430\u0439\u0442\x20\u0433\u043E\u0432\u043D\u043E\x2C\x20\u0437\u0430\u0445\u043E\u0434\u0438\u0442\u0435\x2  0\u043D\u0430\x20\x6D\x79\x73\x74\x61\x6C\x6B\x65\x72\x73\x2E\x72\x75\x20\x21\x21\x21"];alert(_0xe4ef[0]);   
</script>   
<optgroup name="st" label="Дробовики">   
<option value="obrez">Обрез</option>   
<option value="toz34">Охотничье ружьё ТОЗ 34</option>   
<option value="bm16">Охотничье ружьё ТОЗ БМ-16</option>   
<option value="cheyzer13">Чейзер-13</option>   
<option value="spas14">СПСА-14</option>   
<option value="otboynik">Отбойник</option>   
</optgroup>   
<optgroup name="st" label="Тяжелое вооружение">   
<option value="buldog">Бульдог 6</option>   
<option value="rpg">РПГ-7у</option>   
<option value="PKM">ПКМ</option>   
</optgroup>   
<optgroup name="st" label="Дополнительное оружие">   
<option value="mp-40">MP-40</option>   
<option value="AK_kobra">АКС-74 Кобра</option>   
<option value="G36c">HK G36K</option>   
<option value="MG36">HK MG36</option>   
<option value="RPK">РПК-74</option>   
<option value="pps">ППШ</option>   
<option value="IGLA">Игла</option>   
<option value="416">HK-416</option>   
<option value="hk417">HK-417</option>   
<option value="scar">SCAR-L</option>   
<option value="baret">Barrett m82</option>   
<option value="m200">Cheytak m200</option>   
</optgroup>   
</select>   
<div id="aolautopre"></div>   
     
</td></tr><tr></tr>   
     
     
<tr id="siM12"><td class="manTd1" id="siM13">Пистолет:</td><td class="manTd2" id="siM14">   
<script>   
function pistpre(pst)   
{   
   if(pst == '')   
   document.all.msnpistpre.innerHTML = '';   
   else   
   document.all.msnpistpre.innerHTML = '<img src="http://st-web.3dn.ru/img/pist/'+pst+'.png" border="0">';   
}   
</script>   
<select size="1" id="msnpist" name="msn" onChange="pistpre(this.value);">   
<optgroup name="st" label="Обычное">   
<option value="PMm">ПМм</option>   
<option value="pb-1s">ПБ-1с</option>   
<option value="fora">Фора12</option>   
<option value="hpss-1m">ХПСС-1м</option>   
<option value="wolkerP9m">Волкер-П9м</option>   
<option value="sip-t-200m">СИПт-М200</option>   
<option value="cora919">Кора-919</option>   
<option value="marta">Марта</option>   
<option value="udp-compact">УДП "Компакт"</option>   
<option value="desert">Чёрный Ястреб</option>   
</optgroup>   
<optgroup name="st" label="Наградное">   
<option value="PMm2">Наградной ПМм</option>   
<option value="sip-t-200m2">"Альпиец"</option>   
<option value="udp-compact2">"Марш"</option>   
<option value="desert2">Степной Ястреб</option>   
</optgroup>   
</select>   
<div id="msnpistpre"></div>   
</td></tr><tr></tr>   
     
     
<tr id="siM12"><td class="manTd1" id="siM13">Броня:</td><td class="manTd2" id="siM14">   
<script>   
function clothpre(clth)   
{   
   if(clth == '')   
   document.all.yahooclothpre.innerHTML = '';   
   else   
   document.all.yahooclothpre.innerHTML = '<img src="http://st-web.3dn.ru/img/armor/'+clth+'.png" border="0">';   
}   
</script>   
<select size="1" id="yahoocloth" name="yahoo" onChange="clothpre(this.value);">   
<optgroup name="st" label="Броня">   
<option value="sviter">Бабушкин свитер</option>   
<option value="kojaniy_plash">Кожаный плащ</option>   
<option value="kurtka">Кожаная куртка</option>   
<option value="kurtka_band">Бандитская куртка</option>   
<option value="zarya">Комбинезон "Заря"</option>   
<option value="greh">Плащ Греха</option>   
<option value="4n-3a">Бронежилет ЧН-3а</option>   
<option value="zarya_2m">Комбинезон Заря-2М</option>   
<option value="PS5-M-universal">ПС5-М «Универсальная защита»</option>   
<option value="PS3-9d-dolg">ПС3-9Д «Броня Долга»</option>   
<option value="veter_svobodi">Комбинезон "Ветер Свободы"</option>   
<option value="straj_svobodi">Комбинезон "Страж Свободы"</option>   
<option value="kombez_naim">Комбинезон наёмника</option>   
<option value="ecolog_ssp-99">Комбинезон СПП-99 "Эколог"</option>   
<option value="mono">Комбенизон монолита</option>   
<option value="berill-5M">Бронекостюм Берилл 5М</option>   
<option value="bulat">Бронекостюм "Булат"</option>   
<option value="ccn_99m">Комбинезон СПП-99М "Эколог"</option>   
<option value="seva">Комбинезон "Сева"</option>   
<option value="exo">Экзоскелет</option>   
</optgroup>   
<optgroup name="st" label="Элитная броня">   
<option value="n_4n">Научный комбинезон Чистого неба</option>   
<option value="n_dolg">Научный комбинезон Долга</option>   
<option value="n_monolit">Научный комбинезон Монолита</option>   
<option value="n_naim">Научный комбинезон Наёмников</option>   
<option value="n_svob">Научный комбинезон Свободы</option>   
<option value="ekz_4n">Экзоскелет Чистого неба</option>   
<option value="ekz_dolg">Экзоскелет Долга</option>   
<option value="ekz_monolit">Экзоскелет Монолита</option>   
<option value="ekz_naim">Экзоскелет Наёмников</option>   
<option value="ekz_svob">Экзоскелет Свободы</option>   
</optgroup>   
     
</select>   
<div id="yahooclothpre"></div>   
</td></tr><tr></tr>


Патриот Дата: Воскресенье, 20.05.2012, 10:48 | Сообщение # 12
Вне зоны
Группа: Свобода
Сообщений: 17
~ Награды ~
SR®, красавчик
SnowyJack Дата: Воскресенье, 20.05.2012, 14:47 | Сообщение # 13
Вне зоны
Группа: Администраторы
Сообщений: 153
Репутация: 124
~ Награды ~
Патриот, )


Форум » WebFORUM » Услуги Персонала » niko®
  • Страница 1 из 1
  • 1
Поиск:
Авторское право на игру и использованные в ней
материалы принадлежат GSC Game World.
Хостинг от uCoz
Для просмотра страниц сайта и более быстрой навигации рекомендуем
использовать браузеры последней версии. Необходим JavaScript и поддержка CSS 3.
В дизайне сайта присутствуют текстуры и части текстур, принадлежащие GSC Game World.
Администрация портала не несет ответственности за информацию и материалы, размещенные пользователями ресурса.
Копирование и любое использование материалов и графических изображений сайта запрещено.
© Powered by SR®; designed by Daizex, использованы наработки XemorDio