Вопрос -
Сделал**5001001a66cf24ce67c0**= true
END[/code]
Нужно чтобы монстры бежали в точку и не атаковали друг друга, а они медленно идут в точку и атакуют друг друга. Может кто подсказать что не так?
1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Я включаю XrSpawner 0.13.Выбираю "Открыть all.spawn" но у меня ошибка какая то вылазит.Не подскажите что за ошибка,и почему она вылазит.Уже три раза с разных сайтов скачивал и всё равно вылазит.Помогите!:-(
Там где кончается путь,
Там где стихает пурга.
Может быть есть что нибудь,
Может быть нет нифига...
У меня 3 вопроса.
1)как сделать так чтоб в еде было несколько порций(например не хавать всю консерву сразу а несколько раз укусить)
2)возможно ли подписать консерве алкоголь.
3)как продлить воздействие алкоголя (а то он бутыль одним махом выпьет и через минуту трезвый)
Я включаю XrSpawner 0.13.Выбираю "Открыть all.spawn" но у меня ошибка какая то вылазит.Не подскажите что за ошибка,и почему она вылазит.Уже три раза с разных сайтов скачивал и всё равно вылазит.Помогите!
Там где кончается путь,
Там где стихает пурга.
Может быть есть что нибудь,
Может быть нет нифига...
Stalk15
Все еще пользуешься инициацией элементов из xml ? :-)
Давно уже забил на это - почти все элементы интерфейса можно создать сразу ч**5001001a66cf24ce67c0**lf.stat:AttachChild(self.btn) -- аттачим к родительскому элементу
TBtn[name]= self.btn -- закидываю каждый экземпляр кнопки в внешнюю табличку TBtn, где ключ - имя кнопки, значение - ее юзердата.[/code]
Теперь, когда мне нужно обратиться к любой кнопке, обращаюсь к ней как элементу таблицу по ключу (и никаких GеtButton() нафиг не нужно):
[code] local btn=TBtn["slot_"..iNum]
и далее применяю нужный мне метод из ее класса:
btn:InitTexture ("ui\\ui_icon_equipment") -- инициирую текстуру в кнопке
btn:SetOriginalRect(x,y,width,height) -- вырезаю нужный кусок текстуры
btn:Show(true) -- делаю кнопку видимой
btn:Enable(false) -- делаю ее нерабочей и т.д
[/code]
Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
Спасибо, в следующий раз буду делать через конструктор. А это так оставлю. Переделывать неахота, да и чоё, зря делал чтоли;-) MAKSIM_STALKER
Ты чего "Дубликато-постишь"? Раз не отвечают, значит не знают.
у ме
отредактировал(а) Stalk15: 26-02-2011 16:56 GMT3 час. Новые фишки для сталкера(см. журнал)
Некоторое время назад было предложение верней возмушение
почему меченый безнаказанно хватает все с столов в баре ?
ну и вот в свете новых знаний а именно ковыряния схемы ph_idle
практически не документированной
всего одна строчка в описании
Для всех физических объектов есть секция ph_idle, поддерживающая кондлист в которую можно при необходимости переводить объекты.
В общем научился вызывать любю функцию при юзе обьекта для этого достаточно прописать обьекту
следующее (секция болон в алл спавне ).
; cse_abstract properties
section_name = physic_object
name = trader_physic_object0007
position = -250.935073852539,-24.7987232208252,-135.995330810547
direction = 0,4.36330795288086,0
; cse_alife_object_physic properties
physic_type = 0x3
mass = 10
логика
[logic]
active = ph_idle
[ph_idle]
tips = tip_bolon используем добавляем свой тип в snring_table_ui.xml типа так ПОГОВОРИ СО МНОЙ ($$ACTION_USE$$) показываемый текст
on_use = %=функция_запускаемая_при_юзе% нажатии f или enter у меня
Думаю с этим все понятно вернемся к нашим баранам
так вот хлеб водка консервы являются итемами (короче их можно брать выкидывать пользовать из инвенторИ).
а нужно чтоб при попытке взять сьесть (была отдача ха ха) соответственно добавил новый тип в
snring_table_ui.xml ну и
изменил секцию консервы(в баре на столе перед новичком) так (выделенное)
[4593]
; cse_abstract properties
section_name = physic_object
name = bar_conserva
position = 129.616775512695,-3.60408997535706,28.8814792633057
direction = 0,0,0
функция act_punch получаем удар в рожу теряем 80% денег (при попытке взять сьесть чужую консерву)
а именно лежащую на столе перед новичком
function act_punch(npc)
if db.actor:position():distance_to_sqr(npc:position()) > 4 then
return
end
local active_slot = db.actor:active_slot()
if active_slot ~= 1 and
active_slot ~= 2
then
return
end
local active_item = db.actor:active_item()
if active_item then
db.actor:drop_item(active_item)
end
set_inactivate_input_time(30)
local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]])
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")
test_script.out_money_and_dream()
end
ну и test_script
function out_money_and_dream()
local money = db.actor:money()
local money_out = money * (math.random(5,8)/10)
У меня есть вопрос:
в фаилах "character_desc_..." хронятся профили НПС (какой у НПС визуал,какая снаряга и т.д.), но некоторые профили относятся сразу к нескольким НПС. Как изменить кол-во "таких вот НПС"?
ОТИС ищешь секции спавна в spawn_sections.ltx нужного НПС и прописываешь ему другой профиль из character_desc_... .
1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
killer2203
заходишь gamedata\config\misc\items.ltx
В разделе каждого съедобного предмета описанного там есть строка eat_portions_num = n
значение n - сколько раз ты можешь съесть предмет.
Для алкоголя в консерве - в разделе eatable item прописываешь консерве eat_alcohol = n
где n (от 0 до 1) - насколько сильно будет "опьянение"
Насчет длительности воздействия - misc\postprocess.ltx
В разделе [effector_alcohol] ищеш строку pp_eff_cyclic = n (от скольки до скольки не знаю - осторожнее) Ma$ter
А как определить почему не срабатывает? У меня солянка большая, возможности по отдельности проверить каждую функцию просто нет.
О значении слова СПЕЙС могу только догадываться. Не мог бы ты конкретнее подсказать что необходимо сделать.
отредактировал(а) paniker: 27-02-2011 02:28 GMT3 час.
killer2203 возьми секцию скажем колбасы, скопируй, переабзови ветчиной вот тебе и новая "хавка".
1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
paniker
Тоже мне модмейкер:) space_restrictor или по другому спейс это зона. Просто зона. Но у этой зоны часто бывает логика (выдавать поршень при входе или проигрывать звук при выходе). Так вот, у тебя в этой зоне должен вызываться эта функция. Я бы сначала проверил, запускается ли она вообще. ТОгда найди эту функцию и в самое ее начало пропиши: abort("WE NEED TO TEST FNCTION"). Если при подходе к Юрику у тебя вылетит игра с руганью на _г.скрипт, то значит проблема с функцией, иначе проблема с логикой спейса
#Mehanik Yar :
А мона плиз функцию чтобы при ее вызове ГГ лег дрыхнуть.
наверно нужен модуль сна
Извени у меня только от амк
sleep_manager.script
содержение
вызываю выделенное
-- -----------------------------
-- DreamMod v0.2 by Ab@dDon ---
-- -----------------------------
function sleep_one_hour()
sleep_manager.main (3)
end function sleep_three_hours()
sleep_manager.main (5)
end function sleep_nine_hours()
sleep_manager.main (8)
end function sleep_unlim(scale)
local sleep_time = (1 - db.actor.health)*6
sleep_manager.main (sleep_time)
end
function main(scale)
--level.set_snd_volume(0.001)
amk.mod_call("reduce_need_sleep",scale)
-- get_console():execute("_main_")
local sleep_ltx = ini_file ("scripts\\actorsleep.ltx")
schemes["ar_sleep"] = "ar_sleep"
ar_sleep.set_scheme(db.actor, sleep_ltx, "ar_sleep", logic)
-- get_console():execute("_main_set_sheme")
db.actor:stop_talk()
--db.actor:hide_weapon()
level.disable_input()
sleep_manager.hp_corrector(scale)
-- get_console():execute("_main_done")
sleep_manager.starter (scale)
end
function starter(scale)
local factor = scale * 2650
game.start_tutorial("time_scaling")
level.add_pp_effector("teleport.ppe", 2006, false)
level.set_time_factor(factor)
-- get_console():execute("scaling_done")
end
function dreamer()
level.set_time_factor(system_ini():r_float("alife","time_factor"))
if sleep_manager.is_sleep_active() then
sleep_manager.hp_corrector(0)
local dream = dream.sleep_video_name_callback()
-- get_console():execute(dream)
if dream ~= "" then game.start_tutorial(dream)
else game.start_tutorial("without_dream") end
end
end
function stopper()
if not is_sleep_active() then
return
end
-- get_console():execute("stoping")
level.set_time_factor(system_ini():r_float("alife","time_factor"))
ar_sleep.disable_scheme()
if amk_corpses then
amk_corpses.update_all_corpses()
end
if not db.actor:alive() then
--
else
level.add_cam_effector("camera_effects\\prison_1.anm", 25, false, "")
level.add_pp_effector("yantar_underground_psi.ppe", 2007, false)
level.add_pp_effector("total_recall.ppe", 2008, false)
--db.actor:restore_weapon()
local snd_obj = xr_sound.get_safe_sound_object([[characters_voice\human_01\stalker\states\breath\breath_2]])
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 15.0)
level.add_cam_effector("camera_effects\\hit_back_left.anm", 26, false, "")
end
level.enable_input()
--level.set_snd_volume(1.0)
-- get_console():execute("stoped")
end
function hp_corrector(fr)
if fr ~= 0 then
hp = fr/6 + db.actor.health
if hp > 1 then hp = 1 end
return
elseif db.actor.health > hp then
db.actor.health = hp - db.actor.health
end
end
function is_sleep_active()
if db.storage[db.actor:id()].active_scheme == "ar_sleep" then
return true
end
return false
end
**5001001a66cf24ce67c0**de]
Я хотел вытащить из таблицы текст и соответствующие ему значения в фигурных скобках, но не получается. Как это сделать? Может другую структуру таблицы нужно сделать?
puma-sniper скачать сей мод -
http://www.amk-team.ru/forum/index.php?showtopic=8396
1. Вы сейчас в интернете
2. Вы на сайте stalker-portal
3. Вы читаете
5. Вы не заметили, что отсутствует пункт 4
6. Вы это проверили
7. Вы улыбаетесь
8. Поставь себе в подпись и нас будет больше
Ma$ter
Там ключ(tostring(k)) - это текст. А соответствующие ему значения в фигурных скобках я не знаю как вытащить. Пробовал tostring(v[1]), но эт**5003001a66cf24ce67c0**de]local Voprosy = {
["Что?"] = {"1", "2"},
["Хдэ?"] = {"43", "34"}
}
for k, v in pairs(Voprosy) do
Что дальше?
[/code] Ma$ter
Сказал бы как вытащил
Что вытащил? Если ты про соответствующие значения тексту, то так:tostring(v[1]).
отредактировал(а) Stalk15: 27-02-2011 18:51 GMT3 час. Новые фишки для сталкера(см. журнал)
AAAAKKK
Почитал твою 'портянку' ... и "новые знания" напомнили 'чесание левой пяткой правого уха'.
1. Для чего создавать новые секции предметов, писать доп.логику и пр. извраты (тем более не без ошибок), когда все можно сделать 'подручными' средствами уже имеющимися в игре и не более сложными (точнее простыми), чем предлагаемые?
Все твои потуги от того, что тебе 'захотелось почесать нечто' и ты, НЕ раздумывая, изобретаешь свой способ почесать ...
А если просто подумать и составить прежде чем 'чесать' простенький алгоритм?
а) обрабатывается объект/предмет, который лежит в Баре около некоторого перса.
СтОит ли залезать в алл.спавн и вводить секции/логики/...?
Достаточно использовать коллбэк на взятие актором предмета, обработать секцию/имя(!) взятого предмета и при условии совпадения секции + нахождения ГГ именно в Баре (рестриктор) + отсутствия факта покупки (нет окна торговли) + наличие рядом непися => обрабатываем событие, вызываю нужный набор функций.
б) Не хочется чтобы любая буханка была запретной? Чтобы можно было выбросить и подбрать 'свою' без шанса получить в лоб и лишиться денег? Нет проблем. Уникальные имена уже данные предметам в алл.спавне (типа bar_conserva/bar_bread_0000) или присвоение story_id (что явно излишне, но проще создания новых секций и логик) - решают эту пожелалку. Остается только проверять взятое ГГ на соответствие этим именам/стори_идам.
2. Прописав в логике: on_use = %=act_punch%, стОит помнить про аргументы, с которыми логика вызывает прописанную функцию. И если 'новые' знания не затуманили старые, то строка if db.actor:position():distance_to_sqr(npc:position()) > 4 then никогда не вернет true, т.к. 'npc' и 'db.actor' - одно и то же, и никак не будет далее 2-х метров от самого себя. :-)
Так что тут без сканирования локации и проверки дистанции именно до неписей не обойтись. Тем более это и пригодится для более логичной обработки события - ГГ получает удар и теряет деньги, а вот кто врезал и кому ушли деньги - не ясно! Вот и пригодится ближайший перс и для анимации нанесения удара и для трансфера денег ...
ИМХО, новые знания и методы хороши тогда, когда они не превращаются в самоцель (а вот я сделал по-своему) и уж тем более не приводят к подобным почесываниям ушей пятками ...
Я создал новую групировку по статейке, назвал ее "ветер". Записал в нее волка и других челов. Дак вот они подумали что раз они в группе "ветер" то они должны быть свободны))). Короче волк не стоит у дома а шляется где попало-значит и остальные стоять небудут. Как их опять заставить быть там где они должы быть?
Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.