Случайная подборка модов
Зимний Снайпер
3.8
Sigerous Mod 2.2
4.1
Aliens Time: Глава 1
3.7
FeaR Zone: История Холода
2.6
«Последний Сталкер»
4.1
Игра Душ: Новое Начало
4.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  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
Поиск: