Outlaw 85 Опубликовано 19 Января 2013 (изменено) Вопрос не в по адресу. Загляни в шапку, чтобы определиться... ColR_iT Изменено 19 Января 2013 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
Outlaw 85 Опубликовано 7 Июля 2016 Дурацкий вопрос, но спрошу. Добавил в "Radiation mod of foods" для зп соответствующее сообщение при окончательной (сильной) порче еды.Так как со скриптованием у меня плохо первый раз вставил команду не туда и сообщение после первой отправки начинало отправятся игроку бесконечное количество раз. со второй попытки получилось - но беда, при порче, например, 6 единиц - приходит 6 раз и тд. Помогите исправить... function spw_rad_high_food() if interval < time_global() thendb.actor:iterate_inventory(function (dummy,item)if items_rad_high[item:section()] thenthis.del_item(item)this.spawn_item(tostring(item:section().."_high"))news_manager.send_tip(db.actor, game.translate_string("tag_bad_food_tip")) (!!!вот кусок который добавил)endend, nil)interval = time_global() + 2000endend Поделиться этим сообщением Ссылка на сообщение
Outlaw 85 Опубликовано 7 Июля 2016 @Serge!, не помогло. Оно ведь, судя по всему, работает циклично и заменяет предметы на порченые по одному. В конце функции заменяет одну "conserva_rad_average" на "conserva_rad_high", принимает "st = false", вроде сообщение уже не должно появится, переходит к следующей "conserva_rad_average" и снова - "local st = true" и по новой. По идее надо как то так: 1. Функция "Проверка условий(наличие продуктов и нужной радиации)" запуск 2. 2. Отдельная промежуточная функция на отправку одного сообщения, запуск 3. 3. Функция замены продукт_rad_average на продукт_rad_high. вот весь файл. ----------------------------------------------------------------------------------------------------------- -- Script: rad_items.-- Description: Scripting system of food contamination by radiation.-- Author: Tris.-- Version: 0.1.-- Date: 15.12.2011.-- Recent changes: 17.12.2011***12:34.-----------------------------------------------------------------------------------------------------------local items = {bread = true,kolbasa = true,conserva = true,}local items_rad_average = {bread_rad = true,kolbasa_rad = true,conserva_rad = true,}local items_rad_high = {bread_rad_average = true,kolbasa_rad_average = true,conserva_rad_average = true,}function rad_food()if db.actor.radiation >= 0.2 thenspw_rad_food()endendfunction rad_average_food()if db.actor.radiation >= 0.4 thenspw_rad_average_food()endendfunction rad_high_food()if db.actor.radiation >= 0.6 thenspw_rad_high_food()endendlocal interval = 0function spw_rad_food()if interval < time_global() thendb.actor:iterate_inventory(function (dummy,item)if items[item:section()] thenthis.del_item(item)this.spawn_item(tostring(item:section().."_rad"))endend, nil)interval = time_global() + 2000endendlocal interval = 0function spw_rad_average_food()if interval < time_global() thendb.actor:iterate_inventory(function (dummy,item)if items_rad_average[item:section()] thenthis.del_item(item)this.spawn_item(tostring(item:section().."_average"))endend, nil)interval = time_global() + 2000endendlocal interval = 0function spw_rad_high_food()if interval < time_global() thendb.actor:iterate_inventory(function (dummy,item)local st = trueif items_rad_high[item:section()] thenthis.del_item(item)this.spawn_item(tostring(item:section().."_high"))if st thennews_manager.send_tip(db.actor, game.translate_string("tag_bad_food_tip")) -- (!!!вот кусок который добавил)st = falseendendend, nil)interval = time_global() + 2000endendfunction spawn_item(item)alife():create(item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())endfunction del_item(item)local obj = alife():object(item:id())alife():release(obj, true)end------------------------------------------------------------------------------------------------------------- Не удаляйте копирайды, указывайте настоящего автора(ов)-- и не выдавайте чужие идеи и их реализацию за свои. Ведь это элементарная-- этика модостроителей! Спасибо за понимание.----------------------------------------------------------------------------------------------------------- Поделиться этим сообщением Ссылка на сообщение
Outlaw 85 Опубликовано 8 Июля 2016 @naxac, работает. Только не пойму как я строчки перепутал - вроде сразу все копировал... Мистика, однако... Хотя коментил свою фразу, чтобы не было вылета - может тогда и переставил случайно. Спасибо огромное. Поделиться этим сообщением Ссылка на сообщение