Модострой:Вопросница
Статус :
Легенда :
Сообщений :
2258
Награды :
15
Регистрация :
05.04.2010
Задаем разные вопросы касательно создания модов.
Среда, 02.03.2011, 09:50
Статус :
Сообщений :
666
Регистрация :
05.04.2010
Статус :
Отмычка :
Сообщений :
137
Награды :
0
Регистрация :
28.05.2012
Novellus , хорошо, спасибо! Насчет создания странички напишу в ЛС(это будет не быстро)... Сначала зарегься пока.
Четверг, 14.06.2012, 21:30
Статус :
Сообщений :
666
Регистрация :
28.05.2012
Статус :
Бывалый :
Сообщений :
676
Награды :
1
Регистрация :
25.04.2012
Frank9945671 ,
Итак начнемс. 1. Подготовте файлы: configs\creatures\game_relations.ltx configs\creatures\spawn_sections_general.ltx configs\gameplay\character_desc_general.xml con figs\gameplay\npc_profile.xml configs\misc\death_items_by_communities.ltx configs\misc\dialog_manager.ltx configs\text\rus\st_dialog_mana ger.xml scripts\death_manager.script 2. Создаем группировку. а) В файле game_relations вписываем: в конец строки "communities" дописываем название группировки, например "ветер" и добавляем порядковый номер: 11 Выглядит это вот так: communities = actor, 0, bandit, 1, dolg, 2, ecolog, 3, freedom, 4, killer, 5, army, 6, monolith, 7, monster, 8, stalker, 9, zombied, 10, veter, 11 ниже в таблицу communities_relations добавляем (по горизонтали и вертикали) veter и прописываем отношение к другим группировкам (-5000 - полный враг, 0 - нейтрал, 5000 - друг до конца жизни) Выглядит это так: [communities_relations] ; |actor|bandit| dolg|ecolog|freedom|killer| army|monolith|monster|stalker| zombied|veter| ;========================================================================================================== actor = 0, 0, 0, 0, 0, -1000, 0, -5000, -5000, 0, -5000, 0 bandit = 0, 5000,-5000, 0, -5000, 0, -5000, -5000, -5000, -1000, -5000, -1000 dolg = 0, -5000, 5000, 0, -5000, 0, 0, -5000, -5000, 0, -5000, 0 ecolog = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 freedom = 0, -5000,-5000, 0, 5000, 0, 0, -5000, -5000, 0, -5000, 0 killer = -1000, 0, 0, 0, 0, 1000, -5000, -5000, -5000, 0, -5000, 0 army = 0, -5000, 0, 0, 0, -5000, 1000, -5000, -5000, 0, -5000, 0 monolith = -5000, -5000,-5000, 0, -5000, -5000, -5000, 1000, -5000, -5000, 1000, -1000 monster = -5000, -5000,-5000, 0, -5000, -5000, -5000, -5000, 0, -5000, -5000, -5000 stalker = 0, -1000, 0, 0, 0, 0, 0, -5000, -5000, 0, -5000, 0 zombied = -5000, -5000,-5000, 0, -5000, -5000, -5000, 1000, -5000, -5000, 1000, 0 veter = 0 , -1000, 0 , 0, 0, 0, 0, -1000, -5000, 0, 0, 5000 ниже в конец строки communities_sympathy добавляем: veter = 0.0 Б) В конец файла death_items_by_communities вписываем: [veter]:stalker В) В файле death_manager.script в конец строки local community_list дописываем "veter" Выглядит это так: local community_list = { "stalker", "dolg", "freedom", "bandit", "army", "zombied", "ecolog", "killer", "monolith", "veter"} 3. Создание НПС группировки А) В файле spawn_sections_general создаем строки: ;***** sim veter ***** [sim_default_veter_0]:stalker $spawn = "respawn\sim_default_veter_0" character_profile = sim_default_veter_0 spec_rank = novice community = veter [sim_default_veter_1]:stalker $spawn = "respawn\sim_default_veter_1" character_profile = sim_default_veter_1 spec_rank = regular community = veter [sim_default_veter_2]:stalker $spawn = "respawn\sim_default_veter_2" character_profile = sim_default_veter_2 spec_rank = experienced community = veter [sim_default_veter_3]:stalker $spawn = "respawn\sim_default_veter_3" character_profile = sim_default_veter_3 spec_rank = veteran community = veter [sim_default_veter_4]:stalker $spawn = "respawn\sim_default_veter_4" character_profile = sim_default_veter_4 spec_rank = master community = veter Б) В файле character_desc_general создаем такую запись: <!-- --> <!-- ` VETER --> <!-- --> <!-- veter novice --> <specific_character id="sim_default_veter_0_default_0" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_stalker_1</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>sim_default_veter_0</class> <community>veter</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\veter\</snd_config> <rank>30</rank> <reputation>0</reputation> <money min="500" max="1500" infinitive="0"/> <visual>actors\stalker_veter\stalker_veter_1</visual> <supplies> [spawn] \n wpn_ak74_tg \n ammo_5.45x39_ap = 1 \n wpn_tt33 \n ammo-7.62x25-ps \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> **************** ветер опытный ******************** <specific_character id="sim_default_veter_1_default_0" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_stalker_2</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>sim_default_veter_1</class> <community>veter</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\veter\</snd_config> <rank>30</rank> <reputation>0</reputation> <money min="500" max="1500" infinitive="0"/> <visual>actors\stalker_veter\stalker_veter_2</visual> <supplies> [spawn] \n wpn_lr30 \n ammo_5.56x45_ap = 1 \n wpn_sig220z \n ammo_11.43x23_hydro = 1 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> ************************* ветер профи ***************** <specific_character id="sim_default_veter_2_default_0" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_stalker_3</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>sim_default_veter_2</class> <community>veter</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\veter\</snd_config> <rank>30</rank> <reputation>0</reputation> <money min="500" max="1500" infinitive="0"/> <visual>actors\stalker_veter\stalker_veter_3</visual> <supplies> [spawn] \n wpn_spas13 \n ammo_12x76_zhekan = 1 \n wpn_beretta0 \n ammo_9x19_pbp = 1 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> ************************* ветер ветеран ************************ <specific_character id="sim_default_veter_3_default_0" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_stalker_3</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>sim_default_veter_3</class> <community>veter</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\veter\</snd_config> <rank>30</rank> <reputation>0</reputation> <money min="5000" max="15000" infinitive="0"/> <visual>actors\stalker_veter\stalker_veter_3</visual> <supplies> [spawn] \n wpn_pkm_v2 \n ammo_pkm_100 = 1 \n wpn_desert_eagle_s \n ammo_11.43x23_hydro = 1 \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> *************************ветер мастер*************************** <specific_character id="sim_default_veter_4_default_0" team_default = "1"> <name>GENERATE_NAME_stalker</name> <icon>ui_inGame2_stalker_4</icon> <map_icon x="1" y="0"></map_icon> <bio>Опытный сталкер. Детальная информация отсутствует.</bio> <class>sim_default_veter_4</class> <community>veter</community> <terrain_sect>stalker_terrain</terrain_sect> <snd_config>characters_voice\human_01\veter\</snd_config> <rank>30</rank> <reputation>0</reputation> <money min="500" max="1500" infinitive="0"/> <visual>actors\stalker_veter\stalker_veter_4</visual> <supplies> [spawn] \n wpn_atom \n ammo_atom = 3 \n wpn_desert_eagle_anom \n ammo_10x22_akbs \n #include "gameplay\character_items.xml" #include "gameplay\character_food.xml" #include "gameplay\character_drugs.xml" </supplies> #include "gameplay\character_criticals_4.xml" #include "gameplay\character_dialogs.xml" </specific_character> Меняйте все по усмотрению! В) В файле npc_profile создаем <!-- sim veter --> <character id="sim_default_veter_0"> <class>sim_default_veter_0</class> </character> <character id="sim_default_veter_1"> <class>sim_default_veter_1</class> </character> <character id="sim_default_veter_2"> <class>sim_default_veter_2</class> </character> <character id="sim_default_veter_3"> <class>sim_default_veter_3</class> </character> <character id="sim_default_veter_4"> <class>sim_default_veter_4</class> </character> 4. Создаем самый простой диалог (чтобы при нажатии клавишы "говорить" игра не вылетала) А) В dialog_manager.ltx в столбце LIST находим записи dm_hello и после dm_hello_17 добавляем dm_hello_18 Вот так: dm_hello_0 dm_hello_1 dm_hello_2 dm_hello_3 dm_hello_4 dm_hello_5 dm_hello_6 dm_hello_7 dm_hello_8 dm_hello_9 dm_hello_10 d m_hello_11 dm_hello_12 dm_hello_13 dm_hello_14 dm_hello_15 dm_hello_16 dm_hello_17 dm_hello_18 dm_hello_19 Б) В конец этого же файла строчку: [dm_hello_18] category = hello npc_community = veter level = all В) В файле st_dialog_manager.xml создаем: <string id="dm_hello_18"> <text>О, здоров, ну что, как?</text> </string> В файле text\rus\ui_st_pda.xml вписать: <string id="veter"> <text>Ветер</text> </string> ГОТОВО! Можно ставить НПС на карту и играть!
Пробуй
Сообщение отредактировал Novellus - Четверг, 14.06.2012, 21:42
Четверг, 14.06.2012, 21:41
Статус :
Сообщений :
666
Регистрация :
25.04.2012
RICK
Четверг, 14.06.2012, 22:01 | Сообщение # 5508
Статус :
Опытный :
Сообщений :
1205
Награды :
4
Регистрация :
10.05.2011
как в тч сделать проверку что костюм изношен на 50% процентов и выше
Сообщение отредактировал Kail - Четверг, 14.06.2012, 22:24
Четверг, 14.06.2012, 22:01
Статус :
Сообщений :
666
Регистрация :
10.05.2011
Четверг, 14.06.2012, 22:09
Статус :
Сообщений :
666
Регистрация :
28.05.2012
Статус :
Бывалый :
Сообщений :
676
Награды :
1
Регистрация :
25.04.2012
Frank9945671 , Добавлено (14.06.2012, 22:12) ---------------------------------------------Frank9945671 , спасибо за тутор.
Четверг, 14.06.2012, 22:12
Статус :
Сообщений :
666
Регистрация :
25.04.2012
Статус :
Опытный :
Сообщений :
1753
Награды :
3
Регистрация :
25.05.2012
Kail , воспользуйся вот таким кодом:Code
--# определим объект костюма со слота local outfit = db.actor:item_in_slot(6) --# одет ли костюм и его износ меньше 50% if outfit ~= nil and outfit:condition()<0.5 then --# здесь делаем нужные действия end
проверяет состояние надетого костюма.
Четверг, 14.06.2012, 22:47
Статус :
Сообщений :
666
Регистрация :
25.05.2012
Статус :
Отмычка :
Сообщений :
137
Награды :
0
Регистрация :
28.05.2012
Novellus , вот спасибо за статью! Вот это я понимаю, все четко и ясно написано. Теперь все работает! Ты реально помог, даже не знаю как отблагодарить.
Четверг, 14.06.2012, 22:54
Статус :
Сообщений :
666
Регистрация :
28.05.2012
Четверг, 14.06.2012, 22:57
Статус :
Сообщений :
666
Регистрация :
25.04.2012
RICK
Четверг, 14.06.2012, 23:10 | Сообщение # 5514
Статус :
Опытный :
Сообщений :
1205
Награды :
4
Регистрация :
10.05.2011
спасибо посмотрим что из этого выйдитДобавлено (14.06.2012, 23:10) --------------------------------------------- а правильно ли я написал тут типо так одет ли костюм и определяем костюм и списка скрипта и он поношен local device_torch = db.actor:item_in_slot(9) local outfit = db.actor:item_in_slot(6) local suit = { exo_outfit, specops_outfit } if outfit ~= nil and suit and outfit:condition()<0.5 then function on() end
Четверг, 14.06.2012, 23:10
Статус :
Сообщений :
666
Регистрация :
10.05.2011
R-Z0ne Team
Статус :
Отмычка :
Сообщений :
196
Награды :
2
Регистрация :
24.10.2010
for i = 1, table.getn(suit) do if outfit ~= nil then if suit[i]==outfit:section() then if outfit:condition()<0.5 then on() end end end end Я бы так написал. P.S. Чем больше иф, то тем меньше проверок он выполняет, вроде. Т.к. сразу отсеется если, костюма, например, вообще нет. Это я где-то вычитал и с этим согласен.
Сообщение отредактировал Rekongstor - Четверг, 14.06.2012, 23:28
Четверг, 14.06.2012, 23:26
Статус :
Сообщений :
666
Регистрация :
24.10.2010
Статус :
Опытный :
Сообщений :
1753
Награды :
3
Регистрация :
25.05.2012
Kail , ты хочешь сравнить надетый костюм с имеющимися в таблице и если таковой в таблице присутствует запустить некую функцию on ? Тогда так:Code
local outfit = db.actor:item_in_slot(6) local outfit_section = outfit:section() local suit = { ["exo_outfit"] = true, ["specops_outfit"] = true } if outfit ~= nil and suit[outfit_section] and outfit:condition()<0.5 then --# Производим действия. end
Rekongstor , приведённый тобою код вызовет логическую ошибку в строке Code
if suit[i]==outfit:section() then
Сообщение отредактировал ColR_iT - Пятница, 15.06.2012, 00:19
Четверг, 14.06.2012, 23:34
Статус :
Сообщений :
666
Регистрация :
25.05.2012
Статус :
Бывалый :
Сообщений :
676
Награды :
1
Регистрация :
25.04.2012
ColR_iT , ты не читал мои вопросы??
Пятница, 15.06.2012, 00:15
Статус :
Сообщений :
666
Регистрация :
25.04.2012
Статус :
Опытный :
Сообщений :
1753
Награды :
3
Регистрация :
25.05.2012
Novellus , читал.
Пятница, 15.06.2012, 00:20
Статус :
Сообщений :
666
Регистрация :
25.05.2012
Статус :
Бывалый :
Сообщений :
676
Награды :
1
Регистрация :
25.04.2012
ColR_iT , хм, круто. Не подскажешь как мне в мой рестриктор добавить звук??
Пятница, 15.06.2012, 00:23
Статус :
Сообщений :
666
Регистрация :
25.04.2012
Статус :
Опытный :
Сообщений :
1753
Награды :
3
Регистрация :
25.05.2012
Novellus , подскажу - при помощи вызова ещё одной функции, которая запускает звук. Воспроизвести звук можно при помощи функции play класса sound_object . Вот пример:Code
--# Определим объект и что будем играть local snd_obj = xr_sound.get_safe_sound_object([[detectors\bomb_timer]]) --# Проиграем выбранный звук snd_obj:play(db.actor, 0, sound_object.s2d)
Сообщение отредактировал ColR_iT - Пятница, 15.06.2012, 00:37
Пятница, 15.06.2012, 00:36
Статус :
Сообщений :
666
Регистрация :
25.05.2012