Перейти к содержанию

Рекомендуемые сообщения

 
 
  В 22.09.2021 в 14:30, ian98 сказал:

Вызывается из xr_statisctic в addKillCount(npc) в самом конце.

А на каллбек смерти нпс повешать не лучше будет?

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

как удалить какой-либо предмет из инвентаря? не передать в диалоге, а именно удалить


Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1beer 

alife():release(alife():object(db.actor:object("id предмета который нужно удалить"):id()))

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 22.09.2021 в 15:34, I am dead сказал:

1beer 

alife():release(alife():object(db.actor:object("id предмета который нужно удалить"):id()))

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


Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 22.09.2021 в 15:42, 1beer сказал:

порой удивляюсь, как вы столько всего в голове держите

А с чего такие выводы что это с головы? Все в голове удержать невозможно, я просто посмотрел в файлах игры метод.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead попробуем, а по скрипту рекомендаций никаких не будет? Может как-то его разгрузить, что-нибудь такое в лучшую пользу и чтоб сильно не напрягаться? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 Куда уж еще проще 5 строк?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 22.09.2021 в 15:26, 1beer сказал:

как удалить какой-либо предмет из инвентаря?

Вот так ещё можно - 

local obj = db.actor:object( "секция" )
if obj then
  local sobj = alife():object( obj:id() )
  if sobj then
    alife():release( sobj, true )
  end
end

Это на случай, если предмета вдруг не окажется в инвентаре.

Изменено пользователем Manool

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead а вдруг. Меня до сих пор не покидает ощущение, что можно было какой-нибудь одной строкой все сделать. 

И еще,  вопрос,  кто-нибудь сможет подсказать в реализации счетчика смертей главного героя? Чтоб от новой игры и до самого конца считал наши неудачи? Можно в пда,  где вся статистика. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 Можно

 

  Код ( взят из DSH ) (Показать контент)

 

Изменено пользователем I am dead
  • Хабар 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 22.09.2021 в 13:10, 1beer сказал:

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

function_complete проверяет (если она добавлена), будет вызываться постоянно пока не вернет true. А так, никто водку проверять не будет, если функцию не добавить


Дополнено 2 минуты спустя
  В 22.09.2021 в 14:30, ian98 сказал:

при убийстве 3 одновременно и более нпс гг умирает

и не удивительно с таким разбросом в рандоме. В первый раз отнимет 0.5, во второй 0.8, а полное здоровье актора 1. Тут только уменьшать разброс


Дополнено 6 минуты спустя
  В 22.09.2021 в 14:30, ian98 сказал:

if (db.actor) and (db.actor.health<=0.99) then return end

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

Изменено пользователем vader_33
  • Спасибо 1

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 поэтому я и сделал проверку, что отнимает больше 1 в сумме, но видимо она до лампочки, если одновременно 3 раза скрипт срабатывает и проходит ее. Тут надо делать, чтобы функция не могла выполняться одновременно более одного раза?  Уменьшать разброс рандома не хотелось бы. 


Дополнено 37 минуты спустя

Насчет 

if (db.actor) and (db.actor.health<=0.99) then return end

я как-то неправильно видно думал, что функции выполняются по очереди... и это нас спасет от смерти. А держать здоровье чуть меньше 0.98 не так и просто. Там же все почти моментально. Полный хил и потом отнимается хп, впрочем бывали у меня случаи, когда кровотечение не успевало пройти и в 0.1 секунду не срабатывал в итоге минус по хп. Бессмысленная штука, крч) Сейчас вся надежда только на ограничение одновременного выполнения функции db.actor.health = (math.random(-99,-1)/100) с неограниченного количества раз, ну сколько раз вызов пройдет с киллкаунта, до 1. Можно ли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 22.09.2021 в 23:03, ian98 сказал:

одновременно 3 раза скрипт срабатывает и проходит ее.

в смысле, при убийстве 1 нпс скрипт вызывается 3 раза? Откуда он вызывается и как?

Изменено пользователем vader_33

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 да я и не знаю, хаха. Наугад все делаю) Ну, я имел ввиду, что скрипт срабатывает сразу 3 раза при убийстве 3 нпс одновременно и сразу 3 раза проходит проверку в 1.0 по хитпойнтам актора и выдает минусовой хил в сумме, а там часто больше -1 получалось. Так ведь? Или почему гг погибает? 

Вроде починил, просто обрезав и переместив функцию на апдейт актора

Теперь она без таймера и вот такая. Тестил, ну, много и пока ниразу не помирал при даблкилле и больше.

function set_actor_condition_bad()
   if (db.actor) and (db.actor.health==1.0) then
      db.actor.health = (math.random(-99,-1)/100)
   end
end

 

Изменено пользователем ian98

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 может вызывалась неправильно. Лучше на апдейт актора не вешать, а разобраться, что неправильно с коллбека на смерть нпс делалось. Тут всё надо смотреть в точности, где и как подключали функцию, весь файл смотреть, а не огрызки. В самом первом сообщении add_call вообще за функциями был и непонятно, тут так выложили или в файле и есть так, телепата строить неохота вообще. Ну это ближе к ночи, щас времени нету, если никто другой не подскажет

 

Изменено пользователем vader_33

В беге за рассветом приближаешь свой закат

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

vader_33 а что с коллбеком на апдейт актора может случится что-то? Побегал вроде. Как игрока все устраивает, практически ничем не отличается.

По тому как это точно выглядело, могу скинуть прям два целых скрипта. Я мог действительно как-то не так описать проблему, пусть и постарался все сделать точно. 

xr_statistic.scriptПолучение информации... actor_cond.scriptПолучение информации...

Есть и вся дата.

gungame_mode (1).rarПолучение информации...

Изменено пользователем ian98

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 image.thumb.png.7d46819297cb00fdd55463238b586721.pngЧто за бессмыслица?

Изменено пользователем I am dead

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 23.09.2021 в 06:45, ian98 сказал:

а что с коллбеком на апдейт актора может случится что-то

Апдейт проверяется очень часто, а соответственно игра перегружается сильнее. Чем меньше на апдейте проверок, тем лучше для производительности.

В одном моде как-то нашёл итерацию инвентаря на апдейте, так вот когда в инвентаре становилось много предметов, игра начинала сильно фризить.

Изменено пользователем Manool
  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

помогите, пожалуйста, с вылетом
как понять, в каком монстре проблема?
 

  лог (Показать контент)


на этой строке вылетает, как вывести название объекта в лог перед вылетом?

	self.particle = particles_object(params.particle)

 

Изменено пользователем 1beer

Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

I am dead а что такого ? К подобному я пришел путем тыка лишь бы хп случайно выдать. Из-за этого гг дохнул? Или просто лишняя нагрузка? Функции стоит объединить или как лучше сделать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

ian98 А смысл всей конструкции если у тебя перед отнятием здоровья, оно полностью поднимается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Manool а как можно тогда этот отрицательный хил прикрепить так,  чтобы гг не умирал при 2+ убийствах одновременно, но чтобы хп полоска меняла свои значения по факту смерти нас и монстров? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1beer Причем тут монстр если у тебя вылет по нехватке эффекта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ошибка

Изменено пользователем ian98

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
  В 23.09.2021 в 16:42, I am dead сказал:

1beer Причем тут монстр если у тебя вылет по нехватке эффекта?

разобрался уже, спасибо)


Слишком огромная подпись.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу