Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
Karmagedon

Спав лута в вещах.

Уважаемые! Кто подскажет где настраивается спавн лута в вещах их шанс появления в них!? Заметил такую тенденцию, что есть иногда предметы или еда или патроны в вещах которые спавнятся ... но маловато как то, хотелось бы увеличить шанс... Заранее благодарю за подсказку где кавырять.

Share this post


Link to post
Share on other sites

14 answers to this question

Recommended Posts

  • 0

sfgrandompresent.xml и sfgspawnabletypes.xml    подкручиваешь рандом в значения до (1.00) - 100% или к примеру (0.45) - 45%

Share this post


Link to post
Share on other sites



  • 0

Такой вопрос, вытекающий из темы, а качество предмета (damaged, pristie, worn) который отспавнится где-то настраивается? или диапазон качества для каждого предмета?

Share this post


Link to post
Share on other sites
  • 0

123new Нашёл только "заполнение" бутылок и обойм....а вот от чего зависит качество-в xml молчок.Возможно в пбо.Но ещё не смотрел,пытаюсь высушить одежды....

 

 

Share this post


Link to post
Share on other sites
  • 0

123new как я заметил они внутри именно спавнятся нулевые вроде не замечал юзаных или демадж..

Share this post


Link to post
Share on other sites
  • 0
В ‎19‎.‎02‎.‎2019 в 15:08, 123new сказал:

Такой вопрос, вытекающий из темы, а качество предмета (damaged, pristie, worn) который отспавнится где-то настраивается? или диапазон качества для каждого предмета?

sfgspawnabletypes.xml   по моему тут в самом начале выставляется значение от 0 до 1 ( но это для всех предметов), как я понял если сделать 0.8 - 1 то они будут почти уничтожены, то есть вещи получает урон при возрождении 80 - 100%, но это моя теория

Share this post


Link to post
Share on other sites
  • 0

Знающие люди, подскажите.
Нашел на форуме как задавать предметом качество при спавне.(https://opendayz.net/threads/complete-random-loadouts.22341/)
Там присутствует функция: SetHealth(itemEnt, 20);
Но когда я пытаюсь ее использовать, то при запуске сервера пишет, что неизвестная фунция.
Как быть? Как задать то вещам при спавне здоровье?

Share this post


Link to post
Share on other sites
  • 0

ElBorodos а куда ты ее пихаешьигде вызываешь?

А нативном init.c в классн миссии есть прям готовый работащий пример для спавна лута новому игроку...

А ты что пытаешься сдеать?

Share this post


Link to post
Share on other sites
  • 0

BorizzK Мне нужно выдать новому игроку при спавне одежду плохого качества. Во всех примерах которые я только не находил, да и в станадартном скрипте используется всегда команда: SetRandomHealth(itemEnt). Но она всегда выдает качество "нетронутое".
Я пытался использовать команду для проверки выдавая игроку ботинки:
player.RemoveAllItems();

EntityAI itemEnt; EntityAI itemIn; ItemBase itemBs;

EntityAI item = player.GetInventory().CreateInInventory( "CombatBoots_Green");

itemBs = ItemBase.Cast(itemEnt);

SetHealth(itemEnt, 20);
Все так же не получается. Я не сильно разбираюсь в этом, и методом тыка, проб и ошибок пытаюсь что-то сделать. 
Просто проблема в том, что используя  тот же код только с SetRandomHealth(itemEnt) все запускается и у персонажа обувь есть(но качества нетронутая), а на SetHealth(itemEnt, 20) - ругается.

Может просто команду не ту использую или не правильно ее использую. Вот и написал, что бы вдруг, кто подскажет

Share this post


Link to post
Share on other sites
  • 0

ElBorodos в родном init.c миссии сервера внимательно посмотрите, эта функция там и объявлена. разумеется, если вы где-то в своем скрипте ее вызвать пытаетесь, а она не объявлена там, разумеется сервер ее не видит и ругается на это. Просто вам надо эту функцию скопировать туда же, в тот скрипт, где вы правите код или вписываете свой.

Share this post


Link to post
Share on other sites
  • 0

Мда.. Ох уж эти новоиспеченные «администраторы-программисты».. Голова только для того, чтобы есть в неё..

45 минут назад, ElBorodos сказал:

EntityAI itemEnt; EntityAI itemIn; ItemBase itemBs;

EntityAI item = player.GetInventory().CreateInInventory( "CombatBoots_Green");

itemBs = ItemBase.Cast(itemEnt);

SetHealth(itemEnt, 20);

EntityAI itemEnt; — вот вы определили переменную с именем itemEnt и типом EntityAI

EntityAI itemIn; — вот еще одну того же типа

ItemBase itemBs; — вот вы определили переменную с именем itemBS и типом ItemBase

Дальше интереснее:

EntityAI item... — тут вы определяете ещё одну переменную типа EntityAI с именем item

= player.GetInventory().CreateInInventory( "CombatBoots_Green"); — и задаете ей значение, которое возвращает метод CreateInInventory()

На данный момент мы получаем 4 переменных, три из которых не инициализированы, т.е.:

в item у нас находится «адрес» созданных нами ботинок, а в itemEnt, itemIn, itemBs условно пусто (на самом деле там мусор и обращение к ним скорее вызовет непредсказуемый результат, вплоть до краша сервера)

Дальше:

itemBs = ItemBase.Cast(itemEnt); — вы берете переменную itemEnt и пытаетесь привести её к типу переменной itemBs, но смысла в этой операции нет, потому что в itemEnt ничего нет (кроме мусора)!

И тут наша «вишенка на торт»:

SetHealth(itemEnt, 20); — тут вы вызываете функцию SetHealth(), которая возможно и определена у вас (в родных скриптах DayZ такой нет) и передаете ей одним из аргументов переменную itemEnt. Смотрим выше и узнаем, что эта переменная определена, но никак не инициализирована!

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

Опять же, я более чем уверен, что в первую очередь сервер ругается на отсутствие функции SetHealth(). Ведь на самом деле есть метод SetHealth() у класса EntityAI и вызывать его следует так: itemVar.SetHealth("","",value); — где itemVar является переменной типа EntityAI, а value — переменная целочисленного типа или целое число.

В итоге, включив мозг, мы получаем рабочий код в виде:

EntityAI item; // определили переменную
item = player.GetInventory().CreateInInventory( "CombatBoots_Green"); // сохранили в нее результат выполнения метода (в случае удачи там «адрес», неудачи — NULL)
if( item ) // проверили, есть ли у переменной значение неравное NULL (т.е. убедились, что ботинки создались)
{
	item.SetHealth("","",20); // ну и вызвали метод, который позволяет нам выставить условное здоровье
}

 

Edited by elanc (see edit history)

Share this post


Link to post
Share on other sites
  • 0

elanc Вот это просто Супер. Очень благодарен за такой ответ. Косяк понял.
Сегодня как доберусь до компа буду чистить код от ненужных переменных и исправлять все.
Огромное спасибо

Share this post


Link to post
Share on other sites
  • 0

elanc Сейчас поставил себе этот код - все работает. Спасибо большое.
Только не совсем понял, как здоровье тут назначается: в item.SetHealth("","",20) Противогазу ставлю 20 он в очень плохом состоянии, ставлю 20 штанам - они поношены.
Но это ладно. Методом тыка разобраться можно

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

×
×
  • 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.