| [CoP] Модострой: вопросница | 
| 
				
			 | 
|  
|  |   
|  
 
 
 Воскресенье, 31.12.2017, 13:17 | Сообщение # 1 Overfirst  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 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 |  |  |  |  | 
|  
|  |   
|  
 
 
 Пятница, 18.05.2018, 21:12 | Сообщение # 992 makdm  
  
 | 
 
 
 
 
 
Время Альянса  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 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 |  |  |  |  | 
|  
|  |   
|  
 
 
 Пятница, 18.05.2018, 22:36 | Сообщение # 994 makdm  
  
 | 
 
 
 
 
 
Время Альянса  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 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 |  |  |  |  | 
|  
|  |   
|  
 
 
 Суббота, 19.05.2018, 11:18 | Сообщение # 995 Neptun  
  
 | 
 
 
 
 
 
Связной  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 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*3600if 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 |  |  |  |  | 
|  
|  |   
|  
 
 
 Суббота, 19.05.2018, 17:18 | Сообщение # 997 atanda  
  
 | 
 
 
 
 
 
 
  
  
 | Статус: |  |   
 | Бывалый: |  |   
 | Сообщений: | 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 |  |  |  |  | 
|  
|  |   
|  
 
 
 Воскресенье, 20.05.2018, 10:15 | Сообщение # 1001 makdm  
  
 | 
 
 
 
 
 
Время Альянса  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 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 |  |  |  |  | 
|  
|  |   
|  
 
 
 Воскресенье, 20.05.2018, 13:09 | Сообщение # 1004 makdm  
  
 | 
 
 
 
 
 
Время Альянса  
  
 | Статус: |  |   
 | Опытный: |  |   
 | Сообщений: | 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 |  |  |  |  |