Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
DrSova

Радиация [ver.2].

Recommended Posts

На этот раз все проще. Радиация не накапливается, используются стандартные функции Эпоча радиации, которая включается за картой.

 

Установка:

 

  1. Ставим кастомный compiles
  2. В нем находим:
    player_spawn_2 = compile preprocessFileLineNumbers "\z\addons\dayz_code\system\player_spawn_2.sqf";
    
    
  3. Изменяем на:

    player_spawn_2 = compile preprocessFileLineNumbers "ПУТЬДОФАЙЛА\player_spawn_2.sqf";
    
    
  4. Идем по пути \z\addons\dayz_code\system и копируем файл player_spawn_2.sqf

  5. В вашей миссии ставим маркер, где вы хотите разместить радиоактивное поле.

  6. Открываем player_spawn_2.sqf  и находим там:

    	        if((_outsideMap || DZE_Quarantine) && !r_player_dead && !isNull (findDisplay 46)) then {
                    DZE_InRadiationZone = true;
                };
    
    
  7. Ниже вставляем:

    			if ((player distance rad1) < 1000) then {
    			    DZE_InRadiationZone = true;
    			};
    
    
  8. где rad1 - имя маркера, 1000 - расстояние от маркера, на котором начнет действовать радиация.

Впринципе это все. Радиация слабая, если интересно, как можно модифицировать радиацию, то могу расписать.

Share this post


Link to post
Share on other sites



Сова, прикрути из мода Сталкерского антирад, что бы лечится можно, цены не было бы

Share this post


Link to post
Share on other sites

Сова, прикрути из мода Сталкерского антирад, что бы лечится можно, цены не было бы

Так это надо отдельным аддоном. Я, конечно, могу сделать такое, но стоит ли?

 

П.С. В этом примере радиация не накапливается. Так же если надо, могу сделать накапливание

Share this post


Link to post
Share on other sites

Так это надо отдельным аддоном. Я, конечно, могу сделать такое, но стоит ли?

 

П.С. В этом примере радиация не накапливается. Так же если надо, могу сделать накапливание

Я думаю стоит, даже если аддоном, очень надо, я пробовал, но у меня не получилось, а честно говоря мод сталкерский у меня и так стоит, так что все есть, я ставил твой гайд, все супер, но не смог прикрутить лечение, и рад  накапливается, я отбежал от радиактивного объекта, но рад есть и здоровье убавляется, нужно лечение

Share this post


Link to post
Share on other sites

 

Я думаю стоит, даже если аддоном, очень надо, я пробовал, но у меня не получилось, а честно говоря мод сталкерский у меня и так стоит, так что все есть, я ставил твой гайд, все супер, но не смог прикрутить лечение, и рад накапливается, я отбежал от радиактивного объекта, но рад есть и здоровье убавляется, нужно лечение

Хорошо, завтра сделаю

Share this post


Link to post
Share on other sites

Хорошо, завтра сделаю

Спасибо, буду ждать

Share this post


Link to post
Share on other sites

Так это надо отдельным аддоном. Я, конечно, могу сделать такое, но стоит ли?

 

П.С. В этом примере радиация не накапливается. Так же если надо, могу сделать накапливание

К стате, по поводу накапливания, я думаю надо сделать, так как если ты облучился то она должна быть, а то как то не правильно будет, подошел к объекту , тебя кусает, отошел ее нет, невообразимо, а так поймал рад, будь добр найти антирад и полечится

Share this post


Link to post
Share on other sites

К стате, по поводу накапливания, я думаю надо сделать, так как если ты облучился то она должна быть, а то как то не правильно будет, подошел к объекту , тебя кусает, отошел ее нет, невообразимо, а так поймал рад, будь добр найти антирад и полечится

Вся проблема в том, что никак не запишешь накопленную радиацию в бд, поэтому вся эта штука лечится перезаходом..

Share this post


Link to post
Share on other sites

Вся проблема в том, что никак не запишешь накопленную радиацию в бд, поэтому вся эта штука лечится перезаходом..

 

может попробовать замутить с переменной Medical,  она и связывается с базой данных, можно не показывать накопление а просто убывание здоровья, таким образом и будет запись

Share this post


Link to post
Share on other sites

может попробовать замутить с переменной Medical,  она и связывается с базой данных, можно не показывать накопление а просто убывание здоровья, таким образом и будет запись

Не знаю. Надо смотреть. Завтра посмотрю, я уже пк выключил

Share this post


Link to post
Share on other sites

Даже скажу по другому, у меня не используется значение Infected, и она свободна, может эту функцию задействовать, вот и будет связь с базой

Share this post


Link to post
Share on other sites

Даже скажу по другому, у меня не используется значение Infected, и она свободна, может эту функцию задействовать, вот и будет связь с базой

Сделал, гайд пилю

Share this post


Link to post
Share on other sites

 

Пиши через ДЛЛ в ини.

Да я нашел dll с 999М ключом, но я так и не понял, как пользоваться им

Share this post


Link to post
Share on other sites

 

Пиши через мою ДЛЛ)

Да мне хочется, чтобы все в одном месте было.. Так то я твою длл уже в своем моде использую)

Share this post


Link to post
Share on other sites

Пиши через мою ДЛЛ)

что будет если ини начнет весить 5+ метров? а если 10? а если захочется удалить ненужные записи.

я так тонко намекаю что луче все таки sql для таких задач.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By nikolya200
      Подскажите как убрать радиацию с северной части карты. Карта напф. Северная часть острова вся фонит! Никаких скриптов связанных с радиацией я не ставил!
    • By DrSova
      На этот раз еще более расширенная версия радиации, использующая переменную Infected (по просьбе трудящихся). Запоминается после рестарта, сохраняет полученную радиацию после выхода из зоны, лечится специальными "колесами". Итак, приступим к установке.
       
      Установка:
      Качаем этот аддон (противорадиационные таблетоны): https://www.dropbox.com/s/q8gvl2tzmg7rw3q/DAPMISC.rar?dl=0 Находим player_spawn_2.sqf, что лежит по пути dayz_code\system Открываем его, в самом верху пишем: DR_RadiationZone = false; DZ_Rad = false; Далее находим строчку
      DZE_InRadiationZone = false; Ниже прописываем:
      DR_RadiationZone = false; Далее там же ищем строчку:
      if((_outsideMap || DZE_Quarantine) && !r_player_dead && !isNull (findDisplay 46)) then { DZE_InRadiationZone = true; }; Ниже прописываем (Зона радиации):
      if ((player distance rad1) < 1000) then { DR_RadiationZone = true; }; Находим это условие:
      if (DZE_InRadiationZone) then { После завершения этого условия вставляем:
      if (DR_RadiationZone) then { _radsound = "radzone1"; _bloodloss = 50; if(_radTimer > 5 && _radTimer < 10) then { _radsound = "radzone2"; _bloodloss = 100; DZ_Rad = true; }; if(_radTimer > 10) then { _radsound = "radzone3"; _bloodloss = 150; DZ_Rad = true; }; if(_radTimer > 15) then { _radsound = "radzone4"; _bloodloss = 200; DZ_Rad = true; }; _result = r_player_blood - _bloodloss; if (_result < 0) then { _id = [player,"rad"] spawn player_death; } else { r_player_blood = _result; }; addCamShake [2, 1, 25]; [player,_radsound,0,true] call dayz_zombieSpeak; r_player_infected = true; player setVariable["USEC_infected",true,true]; _radTimer = _radTimer + 1; } else { _radTimer = 0; if (DZ_Rad) then { _bloodloss = 50; _result = r_player_blood - _bloodloss; r_player_blood = _result; addCamShake [2, 1, 25]; }; }; Далее находим файл player_useMeds.sqf по пути dayz-code\actions
      Находим в нем строчки:
      case "ItemBloodbag": { _id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\self_transfusion.sqf"; }; После них вставляем:
      case "ItemAntirad": { _id = [0,0,0,[player]] execVM "\z\addons\dayz_code\medical\antirad.sqf"; }; Качаете этот файл и закидываете по пути dayz\medical
      Профит.
       
    • By DrSova
      Делаю собственный дейз, решил сделать там радиоактивные зоны. Поделюсь с вами.
       
      Собственно, "фиачерс" этой штуки:
      Поражает радиацией в радиусе 100м от объекта излучения. Накапливает радиацию. Чем больше радиация, тем быстрее отнимается кровь. Можно ставить несколько рад. объектов. В машине действие радиации слабее. Минусы:
      Пока я не научился записывать количество принятой дозы в БД Сложности с "очищением" - лично у меня на сервере это специальный доктор, в моде - таблетки от радиации и водка. Вот видео, в котором, впринципе, показано, как работает:
       

       
      Установка:
       
      Создаем в корневой папке миссии файл radiation.sqf. Прописываем в него:  
      private ["_rad_obj","_lasts","_Dr_hx","_zr","_dam"]; _rad_obj = [b1,b2]; /// объекты излучающие радиацию b4 setvariable ["rad",2000]; /// мощность излучения 2000 ед. - если не присваивать мощность, то она будет 100 ед. _lasts = 0; dr_r = 0; /// полученная доза заражение игрока, -10% если игрок в транспорте /** мощность излучения объекта, расстояние излучения 100 ед = 100 м **/ #define dr (if (isnil {_x getvariable "rad"}) then {100} else {(_x getvariable "rad")}) for "" from 0 to 1 step 0 do { Dr_h = 0; { _Dr_hx = 0; _zr = player distance _x; if (_zr < dr) then { _DR_hx = (floor (dr - _zr) / 10); /// уровень радиации объекта DR_h = DR_h + _DR_hx - (if (vehicle player != player) then {_DR_hx / 10} else {0}); /// общий уровень радиации if (_DR_hx > dr_r) then { dr_r = dr_r + (_DR_hx / 100) } }; } foreach _rad_obj; if (time - _lasts > 4 and Dr_h > 0) then { _lasts = time; playsound "geiger"; }; r_player_blood = r_player_blood - (dr_r*105); sleep 1 }; Идем в init.sqf и пишем в самом низу: [] execVM "radiation.sqf"; открываем mission.sqm и создаем там объекты, излучающие радиацию. Ну у меня это, например, выглядит так:
      class Item0 { position[]={9527.5195,139.98311,10154.777}; \\ координаты id=9; side="EMPTY"; vehicle="Barrel1"; \\ класс объекта skill=0.60000002; text="b2"; \\ обязательно название объекта, которое вы указали в скрипте }; class Item2 { position[]={9390.6074,139.98311,10121.055}; id=11; side="EMPTY"; vehicle="Barrel1"; skill=0.60000002; text="b1"; }; Открываем Description.ext и добавляем звук радиации: class CfgSounds { sounds[] = {geiger}; class geiger { name = "geiger"; sound[] = {"sfx\geiger.ogg", db-10, 1.0}; titles[] = {}; }; }; Качаем это и забрасываем в корень миссии.
            (Опционально) Можно добавить отображение уровня радиации и количество "принятой на грудь" в дебаг монитор, как у меня на видео. Для этого надо в вашем дебаг мониторе объявить 2 строчки:
      <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Уровень рад.: </t><t size='0.95' font='Bitstream' align='right'>%1 мкР</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Получено рад.: </t><t size='0.95' font='Bitstream' align='right'>%2 мкР</t><br/> и объявить переменные  DR_h, а затем dr_r. т.е например, как выглядит мой дебаг монитор:
      //Let Zeds know [player,4,true,(getPosATL player)] spawn player_alertZombies; while {debugMonitor} do { _time = (round(180-(serverTime)/60)); _hours = (floor(_time/60)); _minutes = (_time - (_hours * 60)); switch(_minutes) do { case 9: {_minutes = "09"}; case 8: {_minutes = "08"}; case 7: {_minutes = "07"}; case 6: {_minutes = "06"}; case 5: {_minutes = "05"}; case 4: {_minutes = "04"}; case 3: {_minutes = "03"}; case 2: {_minutes = "02"}; case 1: {_minutes = "01"}; case 0: {_minutes = "00"}; }; hintSilent parseText format [" <t size='1.25' font='Bitstream' align='center' color='#5882FA'>Server Name Here</t><br/> <t size='1.05' font='Bitstream' align='center' color='#5882FA'>Server Website Here</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'></t><t size='0.95 'font='Bitstream' align='right'></t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Players Online: </t><t size='0.95 'font='Bitstream' align='right'>%1</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Murders: </t><t size='0.95' font='Bitstream' align='right'>%3</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Bandits Killed: </t><t size='0.95' font='Bitstream' align='right'>%4</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Zombies Killed: </t><t size='0.95' font='Bitstream' align='right'>%2</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Humanity: </t><t size='0.95' font='Bitstream' align='right'>%6</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Blood: </t><t size='0.95' font='Bitstream' align='right'>%5</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>FPS: </t><t size='0.95' font='Bitstream' align='right'>%7</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Уровень рад.: </t><t size='0.95' font='Bitstream' align='right'>%10 мкР</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'>Получено рад.: </t><t size='0.95' font='Bitstream' align='right'>%11 мкР</t><br/> <t size='0.95' font='Bitstream' align='left' color='#FFBF00'></t><t size='0.95 'font='Bitstream' align='right'></t><br/> <t size='1.15' font='Bitstream'align='center' color='#5882FA'>TeamSpeak IP Here</t><br/> <t size='1.15' font='Bitstream'align='center' color='#5882FA'>Рестарт через %8:%9</t><br/>", (count playableUnits), (player getVariable['zombieKills', 0]), (player getVariable['humanKills', 0]), (player getVariable['banditKills', 0]), (player getVariable['USEC_BloodQty', r_player_blood]), (player getVariable['humanity', 0]), (round diag_fps), _hours, _minutes, DR_h, dr_r ]; //Don't modify below this line sleep 1; }; Profit!
       
      P.S.
      Радиоактивные объекты так же можно добавить через подкючение sqf файла, главное их обозвать так же, как вы указали в скрипте.
      Чтобы изменить радиус поражения, надо пересчитывать показатели, иначе будет либо сильная, либо слабая радиация.
      Чтобы обнулить заражение, надо использовать команду dr_r = 0; каким способом обнулять - это уже ваша фантазия.
      С данными настройками, радиация изжарит вас за минуты 2.
       
       
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.