[CoP] Модострой: вопросница
|
|
|
Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус: |
 |
Бывалый: |
 |
Сообщений: |
1081 |
Награды: |
19 |
Регистрация: |
11.06.2015 |
|
[CoP] Модострой: вопросница

Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
|
|
Воскресенье, 31.12.2017, 13:17
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
11.06.2015 |
|
|
|
|
|
Статус: |
 |
Отмычка: |
 |
Сообщений: |
138 |
Награды: |
0 |
Регистрация: |
06.08.2015 |
|
Помогите, пж, кто знает. Поставил way-поинт, поставил ему такой параметр: wp00|a=sprint А НПС в него всё равно в эту точку идёт, а не бажит. И какую анимацию не ставлю - ничего не меняется. Почему?
Сообщение отредактировал Smilоdоn - Пятница, 18.05.2018, 19:44
|
|
Пятница, 18.05.2018, 19:40
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
06.08.2015 |
|
|
|
|
|
makdm
Пятница, 18.05.2018, 21:12 | Сообщение # 992
Время Альянса
Статус: |
 |
Опытный: |
 |
Сообщений: |
1787 |
Награды: |
19 |
Регистрация: |
22.11.2012 |
|
Цитата _S_k_i_F_ (  ) Как правильно прибавить к ней, допустим 1 час? Один час - это 3 600 000 миллисекунд. Вот это и прибавляй.
|
|
Пятница, 18.05.2018, 21:12
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
22.11.2012 |
|
|
|
|
|
Золотой Обоз
Статус: |
 |
Опытный: |
 |
Сообщений: |
1311 |
Награды: |
9 |
Регистрация: |
09.08.2015 |
|
makdm, это то понятно, я делал вот так
Код local timer = game.get_game_time() timer = timer + <число> Но игра вылетала
Код stack trace:
0023:039D45C0 luabind.beta7-devel.rc4.dll, luabind::detail::object_rep::crep 0023:05C98E47 xrGame.dll, CDialogHolder::CDialogHolder() 0023:039A2EA3 lua.JIT.1.1.4.dll, luaopen_io() Или здесь все правильно и ошибка в другом?
|
|
Пятница, 18.05.2018, 21:55
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
09.08.2015 |
|
|
|
|
|
makdm
Пятница, 18.05.2018, 22:36 | Сообщение # 994
Время Альянса
Статус: |
 |
Опытный: |
 |
Сообщений: |
1787 |
Награды: |
19 |
Регистрация: |
22.11.2012 |
|
Цитата _S_k_i_F_ (  ) я делал вот так тогда понятно в чем ошибка. Смотри функции r_CTime и w_CTime в файле utils.script Там все понятно, что и как делать.
local Y, M, D, h, m, s, ms = 0, 0, 0, 0, 0, 0, 0 Y, M, D, h, m, s, ms = t:get( Y, M, D, h, m, s, ms )
и
local t = game.CTime() t:set( Y + 2000, M, D, h, m, s, ms)
Правда, что из этого получится и зачем тебе это нужно я не знаю.
Сообщение отредактировал makdm - Пятница, 18.05.2018, 22:40
|
|
Пятница, 18.05.2018, 22:36
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
22.11.2012 |
|
|
|
|
|
Neptun
Суббота, 19.05.2018, 11:18 | Сообщение # 995
Связной
Статус: |
 |
Бывалый: |
 |
Сообщений: |
672 |
Награды: |
9 |
Регистрация: |
25.03.2012 |
|
Smilоdоn, это значит, что НПС побежит после того, как достигнет этой точки. Чтобы НПС сразу побежал, пропиши в его активной логике: def_state_moving = sprint В этом случае в way можешь вообще ничего не прописывать.
Цитата Smilоdоn (  ) вообще все флаги не работают Флаг это вот: p0:flags = 0x1 Он нужен, если нужно, чтобы НПС смотрел куда-то.
|
|
Суббота, 19.05.2018, 11:18
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
25.03.2012 |
|
|
|
|
|
Золотой Обоз
Статус: |
 |
Опытный: |
 |
Сообщений: |
1311 |
Награды: |
9 |
Регистрация: |
09.08.2015 |
|
makdm, что-то все равно не получается. Попробую объяснить что нужно: ГГ выдает НПС 4 ПДА одновременно, а НПС должен через каждые 3 часа отправлять ГГ смску. А во время сна, даже если спал больше 12 часов (т.е. должны все 4 смс прийти) приходит только одна. Вот и нужно во время сна все таймеры искусственно увеличить. В ui_sleep_dialog в dream_callback()
Код local timer = hours*3600 if has_alife_info("tp_actor_give_zvonar_grif_pda") and not has_alife_info("tp_zvonar_unlock_grif_pda_compl") then otstypnik_dialogs.force_grif_pda_timer(timer) end if has_alife_info("tp_actor_give_zvonar_provodnik_vasil_pda") and not has_alife_info("tp_zvonar_unlock_provodnik_vasil_pda_compl") then otstypnik_dialogs.force_vasil_pda_timer(timer) end if has_alife_info("tp_actor_give_zvonar_killer_ydav_pda") and not has_alife_info("tp_zvonar_unlock_killer_ydav_pda_compl") then otstypnik_dialogs.force_ydav_pda_timer(timer) end if has_alife_info("tp_actor_give_zvonar_monolitovec_pda") and not has_alife_info("tp_zvonar_unlock_monolitovec_pda_compl") then otstypnik_dialogs.force_monolitovec_pda_timer(timer) end Потом функция для апдейта
Код function zvonar_unlocking_pda() if has_alife_info("tp_actor_give_zvonar_grif_pda") and not has_alife_info("tp_zvonar_unlock_grif_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then give_info("tp_zvonar_unlock_one_pda") if grif_pda_timer == nil then grif_pda_timer = game.get_game_time() end end if grif_pda_timer ~= nil then if game.get_game_time():diffSec(grif_pda_timer) > 10800 then grif_pda_timer = nil give_info("tp_zvonar_unlock_grif_pda") give_info("tp_zvonar_unlock_grif_pda_compl") disable_info("tp_zvonar_unlock_one_pda") xr_effects.send_message(nil,nil,{"ПДА Грифа взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000}) end end if has_alife_info("tp_actor_give_zvonar_provodnik_vasil_pda") and not has_alife_info("tp_zvonar_unlock_provodnik_vasil_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then give_info("tp_zvonar_unlock_one_pda") if vasil_pda_timer == nil then vasil_pda_timer = game.get_game_time() end end if vasil_pda_timer ~= nil then if game.get_game_time():diffSec(vasil_pda_timer) > 10800 then vasil_pda_timer = nil give_info("tp_zvonar_unlock_provodnik_vasil_pda") give_info("tp_zvonar_unlock_provodnik_vasil_pda_compl") disable_info("tp_zvonar_unlock_one_pda") xr_effects.send_message(nil,nil,{"ПДА Василя взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000}) end end if has_alife_info("tp_actor_give_zvonar_killer_ydav_pda") and not has_alife_info("tp_zvonar_unlock_killer_ydav_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then give_info("tp_zvonar_unlock_one_pda") if ydav_pda_timer == nil then ydav_pda_timer = game.get_game_time() end end if ydav_pda_timer ~= nil then if game.get_game_time():diffSec(ydav_pda_timer) > 10800 then ydav_pda_timer = nil give_info("tp_zvonar_unlock_killer_ydav_pda") give_info("tp_zvonar_unlock_killer_ydav_pda_compl") disable_info("tp_zvonar_unlock_one_pda") xr_effects.send_message(nil,nil,{"ПДА Удава взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000}) end end if has_alife_info("tp_actor_give_zvonar_monolitovec_pda") and not has_alife_info("tp_zvonar_unlock_monolitovec_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then give_info("tp_zvonar_unlock_one_pda") if monolitovec_pda_timer == nil then monolitovec_pda_timer = game.get_game_time() end end if monolitovec_pda_timer ~= nil then if game.get_game_time():diffSec(monolitovec_pda_timer) > 10800 then monolitovec_pda_timer = nil give_info("tp_zvonar_unlock_monolitovec_pda") give_info("tp_zvonar_unlock_monolitovec_pda_compl") disable_info("tp_zvonar_unlock_one_pda") xr_effects.send_message(nil,nil,{"ПДА монолитовца взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000}) end end end И вот сама функция в которой надо увеличить таймер
Код function force_grif_pda_timer(timer) if grif_pda_timer ~= nil then local t = game.CTime() local Y, M, D, h, m, s, ms = 0, 0, 0, 0, 0, 0, 0 t:set( Y + 2000, M, D, h, m, grif_pda_timer + timer, ms) grif_pda_timer = game.get_game_time():diffSec(t) end end
|
|
Суббота, 19.05.2018, 11:42
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
09.08.2015 |
|
|
|
|
|
atanda
Суббота, 19.05.2018, 17:18 | Сообщение # 997
Статус: |
 |
Бывалый: |
 |
Сообщений: |
672 |
Награды: |
7 |
Регистрация: |
12.07.2017 |
|
Цитата _S_k_i_F_ (  ) Но игра вылетала Ты пытаешься к объекту, не имеющему перегруженное сложение, прибавить число!
|
|
Суббота, 19.05.2018, 17:18
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
12.07.2017 |
|
|
|
|
|
Статус: |
 |
Новичок: |
 |
Сообщений: |
269 |
Награды: |
2 |
Регистрация: |
25.08.2014 |
|
Подскажите, пожалуйста... Имеются два THM В первом строки: Ђ? ? НМL= act\act_face_01_bump Во втором: Ђ? " НМL= act\act_face_01_bump В первом, как видно, знаки: и знак ? Во втором их нет. Что означают эти знаки?
Сообщение отредактировал DarkSatellite - Воскресенье, 20.05.2018, 09:00
|
|
Воскресенье, 20.05.2018, 08:49
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
25.08.2014 |
|
|
|
|
|
скат
Воскресенье, 20.05.2018, 09:02 | Сообщение # 999
|
Воскресенье, 20.05.2018, 09:02
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
16.01.2014 |
|
|
|
|
Воскресенье, 20.05.2018, 09:07
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
25.08.2014 |
|
|
|
|
|
makdm
Воскресенье, 20.05.2018, 10:15 | Сообщение # 1001
Время Альянса
Статус: |
 |
Опытный: |
 |
Сообщений: |
1787 |
Награды: |
19 |
Регистрация: |
22.11.2012 |
|
_S_k_i_F_, если я правильно понял то, что ты хочешь сделать, то схема написания скрипта должна быть такой:
|
|
Воскресенье, 20.05.2018, 10:15
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
22.11.2012 |
|
|
|
|
|
скат
Воскресенье, 20.05.2018, 11:12 | Сообщение # 1002
Статус: |
 |
Бывалый: |
 |
Сообщений: |
942 |
Награды: |
9 |
Регистрация: |
16.01.2014 |
|
DarkSatellite, Закинь thm первую в сдк на свое место (по префиксу узнаешь папку куда закидывать). Текстуру к которой она принадлежит переведи в тга, закинь в папку импорт. Запусти АЕ. Нажми чек нев текстуры, увидишь окно и все настройки thm-ки. Сфоткай окно или запомни. Повтори все с второй thm, сравни скрины в итоге. Увидишь в чем отличая.
|
|
Воскресенье, 20.05.2018, 11:12
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
16.01.2014 |
|
|
|
|
|
Золотой Обоз
Статус: |
 |
Опытный: |
 |
Сообщений: |
1311 |
Награды: |
9 |
Регистрация: |
09.08.2015 |
|
makdm, я опять не совсем точно выразился - надо было уточнить - можно 4 сразу, а можно и по одному, по два, по три. Вот в чем ерунда. Я думал что единственный вариант это увеличить значение самого таймера.
|
|
Воскресенье, 20.05.2018, 11:42
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
09.08.2015 |
|
|
|
|
|
makdm
Воскресенье, 20.05.2018, 13:09 | Сообщение # 1004
Время Альянса
Статус: |
 |
Опытный: |
 |
Сообщений: |
1787 |
Награды: |
19 |
Регистрация: |
22.11.2012 |
|
Цитата _S_k_i_F_ (  ) я опять не совсем точно выразился Куда уж точнее:
Цитата _S_k_i_F_ (  ) ГГ выдает НПС 4 ПДА одновременно
Смотри файл bind_stalker.script Два таймера, которые включаются в разное время и каждый ведет свой отсчет: check_detective_achievement() и check_mutant_hunter_achievement()
Делаешь по аналогии хоть со стопицот ПДА.
|
|
Воскресенье, 20.05.2018, 13:09
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
22.11.2012 |
|
|
|
|
|
Статус: |
 |
Отмычка: |
 |
Сообщений: |
140 |
Награды: |
4 |
Регистрация: |
27.09.2015 |
|
Подскажите, за что отвечает эта функция в xr_statistic.script:
Код str = package:r_stringZ() if(str~="nil") then actor_statistic.favorite_weapon_sect = str end weapons_table = {} local n = package:r_u8() for i = 1,n do local k = package:r_stringZ() local v = package:r_float() weapons_table[k] = v end И может ли из за неё работать не правильно эта функция (или наоборот), тоже из xr_statistic.script:
Код weapons_table = { "wpn_abakan" = 0, "wpn_ak74" = 0, "wpn_ak74u" = 0, "wpn_beretta" = 0, "wpn_bm16" = 0, "wpn_colt1911" = 0, "wpn_desert_eagle" = 0, "grenade_f1" = 0, "wpn_fn2000" = 0, "wpn_fort" = 0, "wpn_g36" = 0, "wpn_gauss" = 0, "wpn_groza" = 0, "wpn_hpsa" = 0, "wpn_knife" = 0, "wpn_l85" = 0, "wpn_lr300" = 0, "wpn_mp5" = 0, "wpn_pb" = 0, "wpn_pkm" = 0, "wpn_pm" = 0, "wpn_protecta" = 0, "wpn_rg-6" = 0, "grenade_rgd5" = 0, "wpn_rpg7" = 0, "wpn_sig220" = 0, "wpn_sig550" = 0, "wpn_spas12" = 0, "wpn_svd" = 0, "wpn_svu" = 0, "wpn_toz34" = 0, "wpn_usp45" = 0, "wpn_val" = 0, "wpn_vintorez" = 0, "wpn_walther" = 0, "wpn_wincheaster1300" = 0, "wpn_pm_actor" = 0, "wpn_fort_snag" = 0, "wpn_sig220_nimble" = 0, "wpn_usp_nimble" = 0, "wpn_desert_eagle_nimble" = 0, "wpn_wincheaster1300_trapper" = 0, "wpn_spas12_nimble" = 0, "wpn_protecta_nimble" = 0, "wpn_ak74u_snag" = 0, "wpn_mp5_nimble" = 0, "wpn_sig550_luckygun" = 0, "wpn_groza_nimble" = 0, "wpn_vintorez_nimble" = 0, "wpn_svu_nimble" = 0, "wpn_svd_nimble" = 0, "wpn_g36_nimble" = 0, "wpn_fn2000_nimble" = 0, "wpn_pkm_zulus" = 0, }
function set_best_weapon( hit_amount ) local active_item = db.actor:active_item() if active_item then local section = active_item:section() if weapons_table[ section ] then weapons_table[ section ] = weapons_table[ section ] + hit_amount local amount = 0 for k,v in pairs( weapons_table ) do if( v > amount ) then amount = v actor_statistic.favorite_weapon_sect = k end end end end end
|
|
Воскресенье, 20.05.2018, 13:50
|
Статус: |
 |
Сообщений: |
666 |
Регистрация: |
27.09.2015 |
|
|
|
|