Случайная подборка модов
Lost World Requital
3.9
Эпизоды жизни Мерка
3.0
STCS Weapon Pack 2.6
4.3
EPILOGUE
3.5
Погоня за Праздником
3.8
Время перемен v3.0
3.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  Wolfstalker
Среда, 02.03.2011, 09:50 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

Задаем разные вопросы касательно создания модов.
  Злобная реклама
Среда, 02.03.2011, 09:50
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  butcher_512
Четверг, 16.06.2011, 18:18 | Сообщение # 586
Статус:
Бывалый:
Сообщений: 876
Награды: 11
Регистрация: 16.12.2010

KupuJLJL25, молодец, съешь печеньку и начни новую игру. Диалог, скорее всего, появится.
  Злобная реклама
Четверг, 16.06.2011, 18:18
Статус:
Сообщений: 666
Регистрация: 16.12.2010
Российская Федерация  KupuJLJL25
Четверг, 16.06.2011, 18:19 | Сообщение # 587
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

нифига я пытался все равно нету
  Злобная реклама
Четверг, 16.06.2011, 18:19
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Российская Федерация  butcher_512
Четверг, 16.06.2011, 18:32 | Сообщение # 588
Статус:
Бывалый:
Сообщений: 876
Награды: 11
Регистрация: 16.12.2010

Quote (KupuJLJL25)
все равно нету

При верном составлении он проявится в обязательном порядке.
"Правильный" пример. Ветка дезертира у Волка:

Схема правильная, проблема скорее всего в самом диалоге.
  Злобная реклама
Четверг, 16.06.2011, 18:32
Статус:
Сообщений: 666
Регистрация: 16.12.2010
Российская Федерация  RICK
Четверг, 16.06.2011, 18:34 | Сообщение # 589
Статус:
Опытный:
Сообщений: 1205
Награды: 4
Регистрация: 10.05.2011

<has_info>new_dialog</has_info>

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

<has_info>storyline_actor_start</has_info>
  Злобная реклама
Четверг, 16.06.2011, 18:34
Статус:
Сообщений: 666
Регистрация: 10.05.2011
Российская Федерация  KupuJLJL25
Четверг, 16.06.2011, 18:54 | Сообщение # 590
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

спс Kail, заработало))

Добавлено (16.06.2011, 18:54)
---------------------------------------------
Kail, еще вопрос а как сделать чтобы после диалога нпц ушел допустим на свою базу?

  Злобная реклама
Четверг, 16.06.2011, 18:54
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Российская Федерация  RICK
Четверг, 16.06.2011, 19:02 | Сообщение # 591
Статус:
Опытный:
Сообщений: 1205
Награды: 4
Регистрация: 10.05.2011

это логика

надо две логики писать первая

стоим и ждем гг пока он неподойдем и непоговорим некуда неуходим

а вторую логику поговорили все я могу идти

и затем в аллспавне а имено в фале way_локация.ltx прописать ваипоенты

на вики посмотри про логику
  Злобная реклама
Четверг, 16.06.2011, 19:02
Статус:
Сообщений: 666
Регистрация: 10.05.2011
  Nikitos817
Четверг, 16.06.2011, 19:06 | Сообщение # 592
Статус:
:
Сообщений:
Регистрация:

Так как поменять логику через диалог?
  Злобная реклама
Четверг, 16.06.2011, 19:06
Статус:
Сообщений: 666
Регистрация:
Российская Федерация  KupuJLJL25
Четверг, 16.06.2011, 19:12 | Сообщение # 593
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

Мне кароче надо когда я подошел к нпц и поговорил с ним он уходит в опр.местность
  Злобная реклама
Четверг, 16.06.2011, 19:12
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Российская Федерация  RICK
Четверг, 16.06.2011, 21:04 | Сообщение # 594
Статус:
Опытный:
Сообщений: 1205
Награды: 4
Регистрация: 10.05.2011

;------------------------
;Nikitos817
;----------------------

в логике указывает info_portion на твой диалог и после того как с нпс поговорили он выполняет свою логику которую ты ему дал
  Злобная реклама
Четверг, 16.06.2011, 21:04
Статус:
Сообщений: 666
Регистрация: 10.05.2011
Российская Федерация  KupuJLJL25
Четверг, 16.06.2011, 21:13 | Сообщение # 595
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

Kail, слушай а как сделать чтобы мой нпц так скажем говорил к примеру как волк (подходи пообщаемся)

Добавлено (16.06.2011, 21:13)
---------------------------------------------
Kail, И обьясни плиз как квест создать))))В других статьях не получается а с твоей помощью получается)))

  Злобная реклама
Четверг, 16.06.2011, 21:13
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Российская Федерация  RICK
Четверг, 16.06.2011, 21:13 | Сообщение # 596
Статус:
Опытный:
Сообщений: 1205
Награды: 4
Регистрация: 10.05.2011

мне как жется это в спайс рестриктор надо пишем мол гг стоит отнас на 5 метров или меньше говорим ему подходи пообщаемсся я ксожелению в этом слаб

я сам хочу сделать заспавнил нпс тоесть суслова но хочу сделать как в чн к суслову подходиш и он говорит вот молодец живой пришол
Сообщение отредактировал Kail - Четверг, 16.06.2011, 21:15
  Злобная реклама
Четверг, 16.06.2011, 21:13
Статус:
Сообщений: 666
Регистрация: 10.05.2011
Российская Федерация  KupuJLJL25
Четверг, 16.06.2011, 21:32 | Сообщение # 597
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

ясн а насчет квеста?
  Злобная реклама
Четверг, 16.06.2011, 21:32
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Российская Федерация  RICK
Четверг, 16.06.2011, 22:06 | Сообщение # 598
Статус:
Опытный:
Сообщений: 1205
Награды: 4
Регистрация: 10.05.2011

итак я Kail я хочу вас научить создавать простые квесты найти принести давайте востановим квест волку найти динамит

1.список файлов

--[[
gamedata/scripts/создадим свой новый скрипт
gamedata/config/gameplay/character_desc_escape
gamedata/config/dialogs_escape
gamedata/config/text/rus/stable_dialogs_escape
gamedata/config/gameplay/infol01_escape
gamedata/config/gameplay/storyline_info_escape
gamedata/config/gameplay/task_escape
--]]

сначало заспавним предмет для квеста заспавним динамит на атп как было в старых билдах

заходим в gamedata/scripts и создаем новый скрипт любое название скриптa допустим quest_new

и в этом скрипте пишим

---------------------------квест волка найти динамит------------------------------
function spawn_dynamite() -- спавн предмета тоесть динамита
quest_add.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

затем создаем скрипт название quest и в него пишим

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

затем создаем скрипт quest_add и внего пишим

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

все со скриптами закончили

2.создание диалога для квеста

заходим в gamedata/config/gameplay/character_desc_escape

ищем профиль волка и добавим ветки диалога

нужна две ветки диалога первая ветка для квеста ,а вторая ветка для завершения квеста и получения награды

<start_dialog>escape_lager_volk_talk</start_dialog>
<start_dialog>dm_hello_dialog</start_dialog>
<actor_dialog>dm_cool_info_dialog</actor_dialog>
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
<actor_dialog>tm_wolf_dialog</actor_dialog>
<actor_dialog>tm_wolf_reward</actor_dialog>
<actor_dialog>esc_wolf_dynamite_quest</actor_dialog> -- вот наш диалог
<actor_dialog>esc_wolf_dynamite_quest_completed</actor_dialog> -- и вот наш диалог
</specific_character>

3.создание скелета диалога

заходим в gamedata/config/dialogs_escape

в самом низу перед </game_dialogs> пишим

<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_new.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_new.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_new.complete_esc_wolf_dynamite_quest</action>
<give_info>esc_wolf_dynamite_done</give_info>
<action>quest_new.give_esc_wolf_dynamite</action>
<next>3</next>
</phrase>
<phrase id="3">
<text>esc_wolf_dynamite_quest_completed_3</text>
<action>quest_new.complete_esc_wolf_quest</action>
</phrase>
</phrase_list>
</dialog>

диалог готов руссифицируем
4. идем сюда в gamedata/config/text/rus/stable_dialogs_escape

в самом низу перед </string_table> пишим

<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>

диалог готов
5.создадим поршни
идем сюда gamedata/config/gameplay/infol01_escape

в самом конце перед </game_information_portions>

пишим
<!--квест Волка найти динамит-->
<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>

6.
теперь историю квеста создадим я так это называю идем сюда
gamedata/config/gameplay/storyline_info_escape
в самом конце пишим

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

7.

все и последнее осталось добавить запись о квесте идем сюда

gamedata/config/gameplay/task_escape

в самом низу допишим

<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_new.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>

все теперь новую игру начали можем сразу взять задание у волка вернуть динамит
Сообщение отредактировал Kail - Четверг, 16.06.2011, 22:13
  Злобная реклама
Четверг, 16.06.2011, 22:06
Статус:
Сообщений: 666
Регистрация: 10.05.2011
  Nikitos817
Четверг, 16.06.2011, 22:21 | Сообщение # 599
Статус:
:
Сообщений:
Регистрация:

Елки палки, можно куда проще. Но это тоже годится.
Так где ставить инфопоршни в логике? Поподробнее
  Злобная реклама
Четверг, 16.06.2011, 22:21
Статус:
Сообщений: 666
Регистрация:
Российская Федерация  KupuJLJL25
Четверг, 16.06.2011, 22:50 | Сообщение # 600
Статус:
Новичок:
Сообщений: 330
Награды: 2
Регистрация: 01.06.2011

Expression : fatal error
Function : CInifile::Load
File : E:\stalker\patch_1_0004\xrCore\Xr_ini.cpp
Line : 175
Description : <no expression>
Arguments : Duplicate section 'wpn_mp5' found.

подскажите что делать?
  Злобная реклама
Четверг, 16.06.2011, 22:50
Статус:
Сообщений: 666
Регистрация: 01.06.2011
Поиск: