_Призрак_ 11 Опубликовано 18 Августа 2011 (изменено) for i=1,65535 do local obj = alife():object(i) if obj then if string.find(obj:name(),"_portal_npc") then alife():release(se_obj, true) end end end Изменено 18 Августа 2011 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 24 Августа 2011 (изменено) Всем привет, кто-нибудь знает как выглядит скрипт по ограблению ГГ т.е. каким образом можно удалить всё из инвентаря, и забрать у ГГ все деньги? Речь идет о ЗП. Зарание спасибо. Удалить все вещи из инвентаря ГГ легко, но очень часто требуется скинуть их в тайник, откуда они потом могут опять попасть к ГГ. Вот функция которую написал я: function actor_look_at_sitnik_hit_to_actor_2() local cbox = level.object_by_id(alife():story_object(2026).id) --получаем тайник около Борова по sid db.actor:inventory_for_each( function (item, actor) local section = item:section() if section == "hand_radio_f" or section == "device_pda" or section == "device_torch" or section == "separator" or section == "mobile_changer" or section == "bolt" then --Сюда пишем исключения return end if system_ini():line_exist(section, "quest_item") then --не удаляем квестовые предметы if system_ini():r_bool(section, "quest_item") then return end end db.actor:transfer_item(item,cbox) --перемещаем end, db.actor) end Кстати в твоей функции есть небольшая ошибка - ты начинаешь переберать с 10 объекта, а вдруг нам не повезло и наш НПС получил id 7? Я использую 3 варианта: Варианты: function delete() for a=10,65635,1 do local obj=alife():object(a) if obj then if string.find(obj:name(),"name") then alife():release(obj,true) end end end end Если вы уверены что НПС в онлайне function delete() for k,v in pairs(db.storage) do local obj = level.object_by_id(k) if obj then if string.find(obj:name(),"aaaa") then alife():release(alife():object(k),true) end end end end Как вариант можно при спавне запомнить id НПС local obj = alife():create(...... amk.save_variable("my_obj_id",obj.id) .... local sobj = alife():object(amk.load_variable("my_obj_id")) if sobj then alife():release(,true) end Изменено 24 Августа 2011 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 25 Августа 2011 ColR_iT Не правильно метод set_condition(number) работает только для game_object* (т.е. для клиентских объектов), а функция amk.spawn_item_in_inv работает на функции alife():create которая возвращает серверный объект. Тут есть пара вариантов, но самый красивый из них таков: function spawn() local wpn = amk.spawn_item_in_inv("wpn_ak74") level.client_spawn_manager():add( wpn.id, 0, weapon_in_alife) --ставим каллбек на выход в онлайн end function weapon_in_alife(first,id,obj) obj:set_condition(0) --выставляем кондишн level.client_spawn_manager():remove(id, 0) -- убраем установленный колбек end Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 25 Августа 2011 speczadanie А чей ответ ты использовал? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 25 Августа 2011 (изменено) Только вот если присвоить SID НПС'у при спавне через нет-пакеты то получить НПС через СИД можно только после сейф-лоада. Я прав или тут есть какой нибудь обходной путь? Artos Ах, забыл про перевод в оффлайн. Спасибо Изменено 25 Августа 2011 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 27 Августа 2011 Можно, но код у тебя не правильный Нужно так: local stalker_gopnik = {"stalker_bandit_", "stalker_bandit_veteran", "stalker_bandit_master", "stalker_bandit_exoskeleton"} for i=1,#stalker_gopnik do if string.find(vis,stalker_gopnik) then return section end end Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 31 Августа 2011 А ПДА для чего? Для ЧН или для билда 3120? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 1 Сентября 2011 Есть ли готовая функция для перевода вектора, возвращаемого функцией db.actor:direction() в direction прописываемый в алл.спавне? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 3 Сентября 2011 (изменено) Попробуй так: combat_ignore_cond = {=fighting_actor -my_info} my_info - инфопоршень после которого НПС перестает игнорить актора И не забудь в logic дописать comabt_ignore = combat_ignore И где нибудь в этом файле вставить: [combat_ignore] combat_ignore_cond = {=fighting_actor -my_info} Изменено 3 Сентября 2011 пользователем ColR_iT Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 7 Сентября 2011 (изменено) Раз уж зашел разговор о UI то у меня тоже давно был вопрос как с кастом статика убрать текстурку? Я создал статик и установил текстуру: self.picture = xml:InitStatic("picture", self) self.picture:InitTexture("ui\\ui_disk_io") Но как теперь убрать эту текстуру со статика? Вариант 1: Убить старый объект и пересоздать без инициализации текстуры; Вариант 2: Заменить прежнюю текстуру на 'пустышку' иль на прозрачную; Вариант 3; Установить размер текстуры/окна в 1 пиксель ... --/ Artos Изменено 7 Сентября 2011 пользователем Artos Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 7 Сентября 2011 (изменено) Как поставить машину на тормоз? Ситуация такая: Спавню машину около остановки на Кордоне. Там небольшой склон. Рядом с машиной обязательно во время боя взрывается пара гранат. Из-за них машина в 100% случаях машина скатывается в овраг. Как бы мне сделать так чтобы машина не скатывалась в овраг от каждой шальной пули? Для Artos'а Ты сейчас скажешь что изначально машина спавнится точно по координатам и на нее не действуют законы физики и только когда по машине наносится хит, законы физики начинают на нее действовать, и она скатывается. Но у меня при старте игры наносится всем машинам хиты и машина при старте стоит нормально, она откатывается именно от взрывов других машин и от взрывов гранат. Не знал, что на форуме имеются оракулы-предсказатели. Бум иметь ввиду и вместо 'Кашпировсого' направлять по адресу ... Может не стОит за меня что-то предсказывать и заранее приписывать что я могу сказать?! --/ Artos Я ни в коем случае не хотел тебя оскорбить, я просто хотел сказать что я предусмотрел этот вариант Оскорбить и рассердить - разные вещи, но в любом случае не стОит заранее думать и говорить за другого ... --/ Artos Изменено 7 Сентября 2011 пользователем Artos Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 14 Сентября 2011 Можно ли каким то способом получить объект инвентарь или же просто открыть его? Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 14 Сентября 2011 (изменено) А если мы не открывали раньше инвентарь? В билдах была функция CUIInventoryWnd() возвращающая инвентарь, но что с ней случилось в финалке? Изменено 14 Сентября 2011 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 15 Сентября 2011 А зачем размером со всю локацию? У меня инфопоршни выдавались по on_info даже когда спейс_рестриктор был за пределами а-лайфа Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 23 Сентября 2011 Как узнать код клавиши из user.ltx? Поясню: Нужно чтобы при нажатии кнопки открытия второго слота активировалась функция. Функция для того чтобы отследить нажатие какой либо клавиши у меня есть, но я не знаю как узнать на какую клавишу игрок установил активирование второго оружейного слота Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 27 Сентября 2011 (изменено) zoidberg123456789, у тебя почему то нет смарта darkscape_stalker_smart. Проверь запаковал ли ты спавн, без ошибок запаковался ли спавн, не забыл ли ты его потом переименовать из all.spawn.new в all.spawn Указывай, плз, адресата в своем ответе. --/ Artos Изменено 27 Сентября 2011 пользователем Artos Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 28 Сентября 2011 dark_stalker Могу тебе посоветовать проверить еще раз на наличие путей (помни что имя путя это имя_Смарта_имя_путя), отселидить нпс который вызывает такую ошибку и выложить все по нему в этой теме Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 29 Сентября 2011 Да, там. Забекапь геймдату и начинай удалять НПС один за другим и тогда ты узнаешь какой вызывает вылет Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 18 Октября 2011 (изменено) Здравствуйте. Для чего используется o_torso в параметрах НПС? Почему ПЫС не хватило такого параметра как direction? Изменено 18 Октября 2011 пользователем _Призрак_ Freedom Поделиться этим сообщением Ссылка на сообщение
_Призрак_ 11 Опубликовано 25 Октября 2011 Tris В программировании очень популярен псевдокод. Перевожу твой скрипт на псевдокод: функция: Если нет предмета "Предмет" то Создать в рюкзаке предмет "Антирадар" Отослать сообщение Если есть предмет "Предмет" то --что-то конец конец конец А теперь найди ошибку в логике функции Freedom Поделиться этим сообщением Ссылка на сообщение