Перейти к контенту

[CoP] Перенос и создание карт


Halford

Рекомендуемые сообщения

Люди, помогите пожалуйста! Я сделал смарт террейн на подключенной к ЗП свалке, поместил в него сквад, прописал в way_garbage пути для двоих чтоб тупо стояли (охранники) и один по заданному пути ходит. А как мне заспавнить в том же самом террейне еще один отряд и заставить их жевать колбасу рассказывая анекдоты у костра? Просто я в логике этой вообще ничего не понимаю. Расскажите поподробней как и что делать! Предыдущие страницы читал - видел что упоминалась эта тема, но по нормальному так никто ничего и не обьяснил(

Поделиться этим сообщением


Ссылка на сообщение
nuklia спасибо большое за ту статью! Как раз то что нужно! Правда проверить сегодня уже наверно не получится, так что попробую завтра, тогда и отпишусь:)

Поделиться этим сообщением


Ссылка на сообщение

nuklia Пробовал сделать сквад из трех уникальных нпц - вылет при загрузке игры. Вот ошибка:

[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...r. call of pripyat\gamedata\scripts\sim_board.script:226: attempt to index local 'spawn_smart' (a nil value)

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

 

Тэкс посиделки работают, но почему то стал спавнится только 1 человек. Ковыряние логики террейна результата не дает. С чего бы это? А так он сидит, только дирекшн не работает хоть я со скрипта специального его брал. Пришлось вручную подбирать. (может есть такой скрипт показывающий правильный дирекшн?) И еще молчит. Если раньше когда они были охранниками, то базарили про хабар, про жизнь их тяжелую, про припять итд.. То теперь он тупо сидит и ручки потирает. Может потому что один?

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

Nuklia спасибо за совет, действительно дело в неправильном прописывании смарт террейна было. И кстати у тебя есть анимации такие чтоб они на земле сидели? А то в в районе моего смарта ни одного ящика и близко нету, на который посадить бы можно было неписей. А так они на "воздухе" сидят. Я видел в соседней теме были ссылки на эти анимации, но теперь они все битые.

 

Блин какая то хрень: три чела спавнится где надо, но один в смарт ковер не садится а идет куда глаза глядят, вернее тупо по прямой. Ума не приложу что с ним.

А все разобрался, просто координаты неправильные стояли, ввел другие - сидит как надо.

 

Тэкс новый вопрос назрел: как заспавнить несколько отрядов в одном смарт террейне? Пробовал как в по стандартному это делается но почему то спанится только тот, что прописан первым. Просто я восстанавливаю базу бандюков на свалке и когда на базе кроме лидера, торговцев и механика ни одного "бугра" нету не очень хорошо.

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

Nuklia Большое спасибо за анимки! А вот со спавном сквадов не разберусь никак. Как уже говорил спавнится только тот что прописан первым. И не важно каким образом я их прописываю, таким:

 

[smart_terrain]
squad_id = 144
max_population = 25
respawn_params = respawn@gar_sim_4
arrive_dist = 65

[respawn@gar_sim_4]
spawn_bandit@master

[spawn_bandit@master]
spawn_squads = new_squad, new1_squad
spawn_num = 2, 0

или таким:

[smart_terrain]
squad_id = 144
max_population = 25
respawn_params = respawn@gar_sim_4
arrive_dist = 65

[respawn@gar_sim_4]
spawn_bandit@master
spawn_bandit@advanced

[spawn_bandit@master]
spawn_squads = new_squad
spawn_num = 2, 0

[spawn_bandit@advanced]
spawn_squads = new1_squad
spawn_num = 2, 0

Результат одинаковый - спавнится только new_squad. Со стандартными сквадами такая же хрень, так что не в них дело.

 

Вот восстановил все смарт террейны которые в чистом небе были, ну и чтоб не парится прописал всем одинаковую логику:

 

[smart_terrain]
squad_id = 144
max_population = 25
respawn_params = respawn@gar_sim_4
arrive_dist = 65

[respawn@gar_sim_4]
spawn_bandit@master

[spawn_bandit@master]
spawn_squads = bandit_sim_squad_novice
spawn_num = 2, 0

Так вот после начала игры было мало народу, потом все больше, больше и вконце концов они стали на каждом шагу и спустя 5 минут игры вылетела. Можно как нибудь ограничить спавн? Просто я заспавнил собак и недалеко бандюков, так видно они валились и сразу же спавнились из за этого и вылет. А как можно это исправить?

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

Это все понятно. Но вот например ихнее поведение мне вполне понравилось. То есть они ходили в разные стороны, охраняли, занимались своими делами короче. Все как в ЧН. Но спустя некоторое время их становится чересчур много и - вылет.

 

PavelSnork Уменьшил до 3 во всех смартах. Теперь можно играть спокойно где то полчаса, а потом все таки вылет. Хотя такой толпы уже не было.

 

Nuklia Я вот тут подумал насоздавать уникальных сквадов и каждому свой террейн прописать. Короче 19 сквадов сделал каждому отдельный смарт прописал. А заспавнить их как? Пробовал через спейс рестриктор так почему то создалось только 2 сквада и что самое интересное появились какие то собаки! У меня было раньше два смарта с собаками но я их удалил чтоб не мешали пока что. Вернее просто собак из логики смартов вырезал.

Также пробовал в старотовую позицию прописывать- ноль реакции- что прописываю, что нет. Везде пусто. Может плохо прописываю?

 

[start_position_bandits]
my_squad = gar_smart_terrain_3_6
my2_squad = gar_smart_terrain_2_4
my3_squad = gar_smart_terrain_3_2
my4_squad = gar_smart_terrain_3_3
my5_squad = gar_smart_terrain_3_8
my6_squad = gar_smart_terrain_4_7
my7_squad = gar_smart_terrain_5_2
my8_squad = gar_smart_terrain_5_4
my9_squad = gar_smart_terrain_5_5
my10_squad = gar_smart_terrain_5_8
my11_squad = gar_smart_terrain_6_1
my12_squad = gar_smart_terrain_6_3
my13_squad = gar_smart_terrain_6_4
my14_squad = gar_smart_terrain_6_6
my15_squad = gar_smart_terrain_6_7
my16_squad = gar_smart_terrain_7_3
my17_squad = gar_smart_terrain_7_4
my18_squad = gar_smart_terrain_8_3
my19_squad = gar_smart_terrain_8_7

 

Вообщем мне надо добиться от этих смартов и сквадов, чтобы люди спавнились, приходили на террейн, выполняли там работу и не было никакого респавна. Вернее чтоб был, но допустим если жителей смарта вальнули - то что бы они спавнились снова через игровой день где то.

 

Кстати обязательно каждому скваду свою точку спавна делать? А то я прописал всем одну и ту же.

 

Поделиться этим сообщением


Ссылка на сообщение

ггг прописал в стартовую позицию юпитера свои сквады)) теперь когда я иду к месту спавна немножко подвисает и через 100 метров появляется 60 бандюков, которые постепенно расходятся по своим местам) Так что все таки придется каждому прописывать скваду прописывать свою точку спавна)

 

Nuklia ты выкладывал в соседней теме модель женщины, но файл уже удален, может выложишь еще раз?

 

И еще может знает кто как прорисовку травы увеличить? А то бежишь и трава только в десяти шагах от тебя появляется хотя графика на максимуме стоит.

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

nuklia Спасибо за модельку)

 

Люди, может знает кто как прописать новые звуки в игру? А то я торговца Зуба восстановил, ну все как надо, торгует и диалоги есть. А вот звуков нету. Ну как в чистом небе "Что же ты там приволок, касатик" ну итд. Так вот в script_sound_garbage я все прописал. Сам файл зарегестрировал в script_sound. Ну естественно звуки куда надо кинул, в логику Зубу все написал, а он молчит! Даже губами не шевелит! При чем с бородовскими звуками было все норм.

Поделиться этим сообщением


Ссылка на сообщение

БолотныйДоктор Хм а как тогда правильно регистрировать? Ну в script_sound.ltx я прописал script_sound_garbage.ltx. Еще в script_sound.ltx прописал главную секцию со звуками. Ну и в script_sound_garbage.ltx прописал в первую секцию название своих звуков и создал одноименные секции. В самих секциях прописывал то же что и ты мне написал только еще добавил строки actor_stereo = false

npc_prefix = false, иначе игра вылетает.

Добавляю новому бандюку. То есть группировка не новая.

 

А, все разобрался! Просто я видно не сохранил файл script_sound.ltx когда вписал туда секцию list_script_sound_garbage)) кстати вместо shuffle = seq надо прописывать shuffle = rnd)))

 

В любом случае, спасибо))!

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

Как сделать AI переходы между новыми локациями? Чтобы неписи всякие и монстры тоже могли переходить между локами.

Поделиться этим сообщением


Ссылка на сообщение

AK74 Спасибо большое за наводку, думаю что найду!)

 

Новая проблема возникла - восстановил всех на базе бандюков, ну и хочу еще восстановить миниигру где ворон мочить надо. Ну самого букмекера я заспавнил, звуки прописал все. Диалоги тоже старые оставил. Скрипты мини игры кинул куда нужно, в _g.script прописал нужные файлы как это сделано в том же файле чистого неба. Короче все круто пока я не попробую заговорить с Живодером (так зовут букмекера). В логе - not available phrase to say. Покопавшись в диалоге нашел что стартовых фраз может быть 6. Для каждой из них стоит проверка. Короче говоря проверку не проходит ни одна фраза - изза этого и вылет. А чтобы была пройдена проверка, в логике живодера, в ЧН прописано:

 

on_info  = {=check_crowkiller_state(finished) =crowkiller_winned =crowkiller_game_type(highscore) -gar_bandit_base_minigame_first_win} walker@catch_minigame %=play_sound(gar_bandit_minigame_man_win_first:bandit:gar_bandit_minigame_name) +gar_bandit_base_minigame_first_win%
on_info2 = {=check_crowkiller_state(finished) =crowkiller_winned =crowkiller_game_type(highscore) +gar_bandit_base_minigame_first_win} walker@catch_minigame %=play_sound(gar_bandit_minigame_man_win_player:bandit:gar_bandit_minigame_name)%
on_info3 = {=check_crowkiller_state(finished) =crowkiller_winned !crowkiller_game_type(highscore)} walker@catch_minigame %=play_sound(gar_bandit_minigame_man_win_npc:bandit:gar_bandit_minigame_name)%
on_info4 = {=check_crowkiller_state(finished) !crowkiller_winned} walker@catch_minigame %=play_sound(gar_bandit_minigame_man_lose:bandit:gar_bandit_minigame_name)%
on_info5 = {=check_crowkiller_state(breaked)} walker@catch_minigame %=play_sound(gar_bandit_minigame_man_gone:bandit:gar_bandit_minigame_name)%

[walker@catch_minigame]
path_walk = gar_smart_terrain_3_5_bandit_minigame_walk
path_look = gar_smart_terrain_3_5_bandit_minigame_look
on_signal = sound_end | walker@wait_minigame %+gar_bandit_base_minigame_talked_at_end%
meet = meet

[walker@wait_minigame]
path_walk = gar_smart_terrain_3_5_bandit_minigame_walk
path_look = gar_smart_terrain_3_5_bandit_minigame_look
on_info = {=check_crowkiller_state(valiable)} walker@main_minigame
meet = meet

 

Вот этот вот код в ЗП не работает. если его добавить - вылет с упоминанием xr_logic

Короче может поможет кто "перевести" эти строчки с языка ЧН на язык ЗП. Или хотя бы расскажите что значат строки после on_info = ... А то я в этом совсем не разбираюсь.

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

Урра все работает! Единственное плохо - во время стрельбы по птичкам не показывается время (поле синее появляется вверху справа, а самых циферок нету), а также не показывается количество убитых ворон. Примерно через минуту после начала стрельбы по птичкам происходит вылет:

 

* End of synchronization A[1] R[1]
intro_delete ::update_game_loaded
stack trace:

0023:07D3E8B3 xrGame.dll, CDialogHolder::CDialogHolder()
0023:07D3FB45 xrGame.dll, CDialogHolder::CDialogHolder()
0023:051CA5B4 lua.JIT.1.1.4.dll, lua_getinfo()
0023:051CA898 lua.JIT.1.1.4.dll, lua_getinfo()
0023:051C20A5 lua.JIT.1.1.4.dll, lua_call()
0023:051CAAE8 lua.JIT.1.1.4.dll, lua_yield()
0023:030D9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall()

 

Я почти уверен что вылет связан с отображением на экране всех счетчиков миниигры. Долго ковырял скрипты и искал команду которой происходит вызов таймера на экран или вообще какого нибудь текста - толком ничего не нашел. Помогите плиз!

 

Все прописывается в файле minigame_crowkiller.script. На данный момент я заменил все приводящие к вылету строки на эти:

 

self.body_timer = time_global(time)
self.body_timer = time_global(game.translate_string("crowkiller_game_crows_killed").." "..tostring(self.killed_counter))

Однако это как я уже говорил не помогает (счетчики не показываются, вылет все равно происходит через минуту)

 

Еще смотрел файлы ui_custom_messages из ЧН и ЗП так те секции которые про ворон - абсолютно идентичны.

 

 

Блин какая то хрень. Ковырялся, ковырялся я в файлике minigame_crowkiller.script так теперь вылет через минуту не происходит но и закончить игру возможности нет. К букмекеру подходишь он говорит типа "потом потрындим, у тебя ж время тикает". При этом никакого таймера на экране нет, только синее поле. При попытке убежать - вылет. Лог такой же, что и выше я писал. Короче даю ссылку на два файлика - там оригинальный файл ЧН и мой измененный. Может разберетесь что к чему там.. http://www.sendspace.com/file/nlkgiz

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

SibireaStalker Странный у тебя какой то ggtool.pl. У меня в конце этого файла написано так:

 

#######################################################################
package main;
use strict;

sub usage {
    return <<END
S.T.A.L.K.E.R. game.graph tool
Usage: ggtool.pl <input_file>
END
}

(my $fn = $ARGV[0]) or die usage;
my $gg = game_graph->new();
$gg->read($fn);
$gg->count_level_points();
#$gg->export("$fn.txt");
$gg->show_links();
$gg->show_level_gvids();

Про section4 вообще ниче не сказано и все работает отлично. Также смотри чтоб у тебя был установлен perl. А в батнике в самом начале тоже была написана команда perl.

Изменено пользователем shkun

Поделиться этим сообщением


Ссылка на сообщение

я тоже из чистого неба переносил. Все отлично работает. Главное чтоб ggtool.pl был нормальный и perl был установлен. Если проблема останется - я тебе свой ггтоол скину.

Поделиться этим сообщением


Ссылка на сообщение

Где-то видел программу для переноса смарт коверов из ЧН в ЗП. Суть ее в том что при декомпиляции смарт ковера в ЧН получается одна секция, а при декомпиляции аналогичного смарт ковера в ЗП получается другая. Например:

 

[21323]
; cse_abstract properties
section_name = smart_cover
name = gar_bandit_minigame
position = -58.7960586547852,0.400000005960464,-33.5885581970215
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 2098
distance = 70.6999969482422
level_vertex_id = 123100
object_flags = 0xffffffbf

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

; cse_smart_cover properties
cse_smart_cover__unk1_sz = animpoint_stay_wall
cse_smart_cover__unk2_f32 = 0
enter_min_enemy_distance = 15
exit_min_enemy_distance = 10

; se_smart_cover properties
last_description = animpoint_stay_wall
loopholes = animpoint_stay_wall,1

Это в ЗП

 

[1568]
; cse_abstract properties
section_name = smart_cover
name = gar_smart_cover_0014
position = -135.339767456055,0.524631023406982,4.74893188476563
direction = 0.168527007102966,-0.98446398973465,0.0456050001084805

; cse_alife_object properties
game_vertex_id = 293
distance = 19.6000003814697
level_vertex_id = 71210
object_flags = 0xffffffbf

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

; cse_smart_cover properties
unk1 = cover_loophole_3
unk2 = 0,15,10
unk3 = 1

Это в ЧН

 

То есть разница в том что после ; cse_smart_cover properties. А вот эта программа адаптирует секции ЧН под ЗП. Может есть у кого эта прога?

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...