|
|
Строка 48: |
Строка 48: |
| --Neo][ 15:06, 14 мая 2007 (MSD) | | --Neo][ 15:06, 14 мая 2007 (MSD) |
| [[Категория:Конфигурационные файлы]] | | [[Категория:Конфигурационные файлы]] |
− |
| |
− | Нашел способ создание нового торговца.
| |
− | Желательно конечно заспавнить в игру своего уникального персонажа и "повесить" торговлю на него,но не обязательно.Будем делать торговцем кого-нибудь из уже имеющихся...Кого,кого,кого...
| |
− | Как обычно Волка(у меня две подопотных "крысы"-Сидорович и Волк,а так как Сид уже им является,выбор очевиден:)Ну чтож приступим.Необходимо создать "файл торговли" типа "trade_....ltx".
| |
− | Можно прописать его самому(как это делать я объяснять не буду,т.к. и до меня все это сделано не один раз:),можно скопировать любой другой...я скопировал "trade_freedom.ltx" и переименовал его в
| |
− | "trade_wolf" и удалил все прикондишны с информацией на разрешение торговли.Теперь нужно сослаться на его.Делается это в файле логики,тобиш в "gulag_escape.ltx"(почему в эскейп,думаю понятно,
| |
− | наш Волк находится на нем-Кордоне:).Открываем файл и ищем строки:
| |
− | ....
| |
− | ;-------------------------------------------------------------------------------------------------
| |
− | ;-- ESCAPE LAGER
| |
− | ;-------------------------------------------------------------------------------------------------
| |
− | ; Волк
| |
− | [logic@esc_lager_volk]
| |
− | active = walker@esc_lager_volk_walker1
| |
− | on_death = death@wolf
| |
− |
| |
− | [walker@esc_lager_volk_walker1]
| |
− | path_walk = wolf_walk
| |
− | path_look = wolf_look
| |
− | meet = meet@wolf
| |
− | on_actor_dist_le = 23| {+tutorial_wounded_start -esc_kill_bandits_quest_kill} remark@esc_lager_volk1
| |
− | on_actor_dist_le_nvis = 5| walker@esc_lager_volk_walker2
| |
− | danger = danger_condition@shustryi
| |
− |
| |
− | [remark@esc_lager_volk1]
| |
− | anim = hello_wpn
| |
− | snd = esc_wolf_say_thanks
| |
− | target = actor
| |
− | on_signal = sound_end| walker@esc_lager_volk_walker2
| |
− | on_actor_dist_le_nvis = 5| walker@esc_lager_volk_walker2
| |
− | danger = danger_condition@shustryi
| |
− | .....
| |
− | Теперь сошлемся на наш трад-в секцию "[logic@esc_lager_volk]" добавим строки:
| |
− |
| |
− | trade = misc\trade_wolf.ltx
| |
− | inv_max_weight = 10000
| |
− |
| |
− | То есть должно получится следующее:
| |
− |
| |
− | ;-------------------------------------------------------------------------------------------------
| |
− | ;-- ESCAPE LAGER
| |
− | ;-------------------------------------------------------------------------------------------------
| |
− | ; Волк
| |
− | [logic@esc_lager_volk]
| |
− | active = walker@esc_lager_volk_walker1
| |
− | on_death = death@wolf
| |
− | trade = misc\trade_wolf.ltx
| |
− | inv_max_weight = 10000
| |
− | ...
| |
− | Традом мы ссылаемся на наш "торговый файл",а вот следующей строкой увеличиваем переносимый вес,поскольку он и у неписей ограничен:)
| |
− | Осталось только дать нашему "новороженному" торговцу-Волку побольше денег...Специально для начинающих пишу-заходим в "config\gameplay\character_desc_escape.xml'' и ищем секцию Волка:
| |
− |
| |
− | <!---------------------------------------esc_wolf----------------------------------------------------->
| |
− | <specific_character id="esc_wolf" team_default = "1">
| |
− | <name>esc_wolf_name</name>
| |
− | <icon>ui_npc_u_stalker_neytral_balon_1</icon>
| |
− | <bio>esc_wolf_bio</bio>
| |
− |
| |
− | <class>esc_wolf</class>
| |
− | <community>stalker</community> <terrain_sect>stalker_terrain</terrain_sect>
| |
− |
| |
− | <rank>434</rank>
| |
− | <reputation>5</reputation>
| |
− | <money min="600" max="2000" infinitive="0"/>
| |
− |
| |
− | <snd_config>characters_voice\human_01\stalker\</snd_config>
| |
− | <crouch_type>-1</crouch_type>
| |
− |
| |
− | <visual>actors\neytral\stalker_neytral_balon_1</visual>
| |
− | <supplies>
| |
− | [spawn] \n
| |
− | wpn_pm \n
| |
− | ammo_9x18_fmj = 1 \n
| |
− | wpn_ak74u \n
| |
− | ammo_5.45x39_fmj \n
| |
− | device_torch \n
| |
− | hand_radio \n
| |
− | </supplies>
| |
− | #include "gameplay\character_criticals_4.xml"
| |
− |
| |
− | <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>
| |
− | </specific_character>
| |
− | Здесь строка "<money min="600" max="2000" infinitive="0"/>" отвечает за минимальное\максимальное кол-во денег соответственно,а если поставить infinitive="1" то денеги будут бесконечные:)
| |
− | Я еще и удалил строку "#include "gameplay\character_criticals_4.xml"" с ограничением по весу,но правда на всякий случай,поскольку не проверял,работает ли с ним=)
| |
− | На этом все,заходим в игру и наслаждаемся собственным творением:)
| |
− |
| |
− | P.S.-Упс,работает,но как-то неправильно:(...у торговца оказывается нет поддержки перемещения:(Поэтому ГСЦ всех торгошей и биндят не сталкером,а монстром:)
| |
− | Заработало только когда я в бинде сталкера прописал:
| |
− |
| |
− | function actor_binder:reinit()
| |
− | object_binder.reinit(self)
| |
− |
| |
− | local npc_id = self.object:id()
| |
− |
| |
− | db.storage[npc_id] = { }
| |
− |
| |
− | self.st = db.storage[npc_id]
| |
− | self.st.pstor = nil
| |
− |
| |
− | self.next_restrictors_update_time = -10000
| |
− |
| |
− | self.object:set_callback(callback.inventory_info, self.info_callback, self)
| |
− | self.object:set_callback(callback.article_info, self.article_callback, self)
| |
− | self.object:set_callback(callback.on_item_take, self.on_item_take, self)
| |
− | self.object:set_callback(callback.on_item_drop, self.on_item_drop, self)
| |
− | self.object:set_callback(callback.trade_sell_buy_item, self.on_trade, self) -- for game stats
| |
− | --self.object:set_callback(callback.actor_sleep, self.sleep_callback, self)
| |
− | self.object:set_callback(callback.task_state, self.task_callback, self)
| |
− | --self.object:set_callback(callback.map_location_added, self.map_location_added_callback, self)
| |
− | self.object:set_callback(callback.level_border_enter, self.level_border_enter, self)
| |
− | self.object:set_callback(callback.level_border_exit, self.level_border_exit, self)
| |
− | self.object:set_callback(callback.take_item_from_box, self.take_item_from_box, self)
| |
− | ;вот мои строки
| |
− | if self.object:clsid() ~= clsid.script_trader then
| |
− | self.object:set_patrol_extrapolate_callback(bind_monster.generic_object_binder.extrapolate_callback, self)
| |
− | end
| |
− |
| |
− | db.storage[self.object:id()] = { }
| |
− |
| |
− | self.st = db.storage[self.object:id()]
| |
− |
| |
− | self.object:set_callback(callback.patrol_path_in_point, self.waypoint_callback, self)
| |
− | self.object:set_callback(callback.hit, self.hit_callback, self)
| |
− | self.object:set_callback(callback.death, self.death_callback, self)
| |
− | end
| |
− |
| |
− | Заместо старого.Все будет работать на УРА,с одним огрехом-Волк не будет отмечатся как цель при задании поговорить с Волком перед АТП,но думаю это не столь важно:)Ну и еще без ствола будет ходить,
| |
− | но если будет атакован,то пушка появится "из широких штанин=-)" Волка и он будет из нее пытаться вас нашпиговать свинцом:)
| |
− |
| |
− | Пост скриптум,дубль два:)...Теоритически,если строки с калбеками из обычной секции сталкера прописать в мою,то наш традер(в данном случае Волк) будет неким гибридом,сочетающим свойства как и
| |
− | НПС,так и уникальных торговцев,попробуйте,должно работать=-)
| |
− |
| |
− | Автор: Костя.н.ы.ч
| |
Данная статья посвящена торговле в игре.
Т.е. как менять цены на товары, асортимент товаров у торговца и т.д.
Благодарность за предоставленную информацию: _And_.
Все настройки, связанные с ассортиментом торговцев в игре, находятся в файлах gamedata\config\misc\trade_***.ltx
Эта секция описывает какие товары торговец будет покупать.
Это значит что торговец купит оружие от 50% полной его стоимости до 70%, т.е. если Винторез стоит 1000, то торговец купит его в диапазоне от 500 до 700 рублей.
Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дороже купит
Эта секция описывает какие товары у торговца будут вначале.
Это значит что у торговеца всегда будут 5 бинтов, с 100 процентной вероятностью появления в магазине.
А тут уже вероятность появления 60%. Т.е. бинты не всегда будут.
Тоже самое, что в секции [supplies_start], но после выполнения квестов торговца.
Эта секция описывает за какую цену торговец будет продавать.
Это значит что торговец продаст оружие от 100% полной его стоимости до 200%, т.е. если Винторез стоит 1000, то торговец продаст его в диапазоне от 1000 до 2000 рублей.
Диапазон зависит от отношения торговца к Меченому - чем лучше, тем дешевле продаст
Тоже самое, что в секции [trader_start_sell], но после выполнения квестов торговца.