Перейти к контенту

_Sk8_AsTeR_

Проверенные
  • Число публикаций

    224
  • Регистрация

  • Последнее посещение

  • AMKoin

    2,108 [Подарить AMKoin]

Сообщения опубликованы _Sk8_AsTeR_

  1. Доброго времени! Подскажите пожалуйста, каким образом можно сделать проверку, видит ли вражеский NPC нашего ГГ в процессе перестрелки? А также каким образом можно сделать проверку, что наш ГГ - приоритетный текущий враг для NPC?

  2. @dsh, огср, да

    Огромное спасибо, скоро проверю :)

    @dsh Метод работает! А есть ли способ проверить, нажал ли ГГ левую кнопку мыши, иначе говоря - выстрелил? 

    Нужно скриптово отследить момент, когда ГГ, удерживая зум, выстрелит, и вызвать ф-цию в момент выстрела...

  3. Прошу помощи :(

    Ест скрипт, убивающий всех ворон (или только на текущей локации?)

    Скрытый текст
    
    function kill_crow()
    	local lname = level.name()
    --			amk.send_tip("прошло", "прошло", 1, 15, "common_channel")
    	for id, sobj in alife():objects() do
    		local crow = level.object_by_id(id)
    		if crow and crow:section() == "m_crow"  then 
    			local hit = hit()
    				hit.direction = crow:direction()
    				hit.impulse = 1000
    				hit.draftsman = crow
    				hit.power = 1000
    				hit.type = hit.strike
    			crow:hit(hit)
    			local sobj = alife():object(id)
    			
    				alife():release(crow, true)
    			
    			ogse_st_mgr.start_gtimer(nil, math.random(150, 300), "ogse.release_crow", id)
    		end
    	end
    end

     

    Вопрос: А как мне убить всех ворон, но КРОМЕ текущей локации?

    А то на голову сыпятся, а нужно от них избавиться

  4. Доброго времени! Прошу помощи!

    Возникла идея - скриптово потушить лампу. Распаковав Алл.Спавн нашел у выбранной мною лампы параметр health = 100. Подозреваю, что дав параметру нуль - потушу лампу, хочу проверить. Хочу ковырять её через НетПакеты от Артоса. Вопрос, как мне прочитать нетпакет лампы?

    Скрытый текст
    
    [11509]
    
    ; cse_abstract properties
    section_name = lights_hanging_lamp
    name = yan_lamp6
    position = 24.0428810119629, -9.33421421051025, -271.800720214844
    direction = 9.42477798461914, 9.42477798461914, -7.85398149490356
    version = 118
    script_version = 6
    spawn_id = 3892
    
    ; cse_alife_object properties
    game_vertex_id = 1438
    level_vertex_id = 132308
    object_flags = 0xffffffaa
    custom_data = <<END
    [collide]
    ignore_static
    END
    
    ; cse_visual properties
    visual_name = physics\light\new_light\light_white_glass
    
    ; cse_ph_skeleton properties
    
    ; cse_alife_object_hanging_lamp properties
    main_color = 0xffffffff
    main_brightness = 1
    main_color_animator = light\light_omni_white_idle
    main_range = 8
    light_flags = 0x3a
    lamp_fixed_bones = link
    health = 100
    main_virtual_size = 0.1
    ambient_radius = 2.5
    ambient_power = 0.60000002
    main_bone = bone_lamp
    main_cone_angle = 2.0943952
    glow_radius = 0.69999999
    ambient_bone = bone_omni

     

    Пробую так:

    Скрытый текст
    
    function lampa()
    local sobj = alife():object(3892)
    local pk = get_netpk(sobj)
    if pk and pk:isOk() then
    	local data = pk:get()
    		amk.send_tip(tostring (data.name), "проверка имени", 1, 15, "common_channel")
        	amk.send_tip(tostring (data.health), "проверка жизни", 1, 15, "common_channel")
    --		data.health = 0
    --		pk:set(data)
    end	
    end

     

    Итого у меня возвращается параметр health = 100

    Но не возвращается data.name равно nil. Будто я не лампы нет-пакет вскрыл, а чего-то другого.

    Вопрос - правильно ли я определяю ID лампы? Если нет, то как правильно?

    Второй вопрос: возможно ли в принципе потушить лампу через данный параметр и через нет-пакет?

  5. Ребят, а как вообще реализована механика ворон в Сталкере? Насколько я понял - они спавнятся и "беспалева" преследуют ГГ по небу, имитируя бурную воронью деятельность. А есть возможность задать воронам вектор движения? По вызову скрипта, например, чтобы летела ворона от края до края локи?

  6. Доброго времени! Возможно ли в Нет-пакет НПС добавить какие-то свои данные? В качестве теста - новую переменную, которая будет в себе хранить просто какое-нибудь число. Как это реализовать? Чтение нетпакета:

    Скрытый текст
    
    local pk = get_netpk(npc) --
    if pk and pk:isOk() then
    	local data = pk:get()
      	--КАКАЯ-ТО ФУНКЦИЯ, работаем с нет-пакетом
      	pk:set(data)

     

     

  7. @AndreySol, А, то есть просто его заново заспавнить... А все инфопоршни его касаемые, они останутся актуальными? 

    Например пару квестов с ним было выполнено, были выданы соответствующие инфопоршни о их завершении, всё останется актуальным?

  8. @SergeT, привет. А есть информация по торговцу на болотах (Холод вроде), что он вдруг вылезает из-за своей торговой стойки и стоит - втупляет снаружи? Имею в виду - это распространенная особенность, или я такой один счастливчик...?

    Сделал бы скрин, да далеко от локи нахожусь. Если успею - дополню пост скрином

    UPD

    5f1a17258b15a00e23dfd14952d141e959a3f338

     

  9. 2 часа назад, D1mon сказал:

    враги в баре больше не должны появляться

    Посмотрел скрипт, в гулаг_бар.скрипт запретили наймитам посещение смарта "визиторс"? :)

    С одной стороны хорошо, а с другой... Как-то даже радостно было слышать, як долг орёт в рупор: "Ахтунг! На территории вражеские элементы!" х)

    Осталось со Свалкой разобраться

  10. @dsh, а я в свою очередь понаглею и повторюсь, что эти расчеты не имеют смысла не для всех! :) Лично мне (уверен, что многим другим) интересно в зону погружаться на досуге с долей воображения. Например если пришла СМС от непися о том, что он слышал на Кордоне рядом с железнодорожной насыпью выстрели из автомата, а через минуту приходят пару некрологов с кордона о смертях сталкеров, то в голове уже прокручивается войнушка, которая там была. Это ли не атмосфера сталкерская? 

    Или другая ситуация: шлёпнул мстителя, залутал, пошел дальше по делам. Перешел на другую локацию. И тут приходит смс от непися, что он наткнулся на труп мстителя, в которого разрядили всю обойму. И ты начинаешь понимать, что прямо по твоим стопам какой-то непись идёт по своим делам и наткнулся на труп. НУ это же атмосферно донельзя, разве нет? 

    Естественно, весь интерес растворяется, если начинаешь думать "А как же всё это работает скриптово, как это реализовано?". Но если о технической части не думать и знать, что все происходящее - не фейк, а реальные события, хоть и описанные исключительно скриптами, то вырисовывается именно та зона отчуждения, с той атмосферой, которой так не хватало  в ванильной версии игры. Ну разве ты не согласен? :(

    22 минуты назад, dsh сказал:

    все, что ты описал, происходит в онлайне. Это имеет значение. А то, что в оффлайне, того для игрока нет и значения для него не имеет.

    Да и разве оффлайн какие-либо события не являются причиной каких-либо последствий в онлайне? Подрались в оффлайне на Агропроме вояки с парой одиночек, перебили их. Потом ты туда прибегаешь на панике на второй этаж от кровососа или химеры спастись, что по двору бегают, зная, что там тебе сейчас помогут отстреляться, а тебе в рожу дуло автомата с криками: "Дурила, ты лучше не нарывайся!". :) 

    • Нравится 4
    • Согласен 2
  11. @dsh, простой игрок может и не видит, а когда ты играл и в ванильный сталкер, и в десятую соль, и в другие моды, и как-то раз возвращаешься мимо свалки куда-нибудь на Кордон, а на свалке реально движуха, то ты радуешься и понимаешь, чья это заслуга :)

    То на блок-пост Долга на свалке зверье разное нападает (в старых солях такого не было), то с блокпоста долга пару юнитов вдруг переходят вместе со мной на бар и вместе со мной топают по тропинке от самого перехода и до самого бара. На такие мелочи обращаешь внимание и как-то прикольно становится на душе. Мессер после спасения гуляет тоже по всей зоне. То у новичков тусуется, то в Бар придет, на свалке от бандитов периодически кулинару отбиваться помогает. И каждый раз у него новые шмотки находишь в инвентаре, поторговаться можно. И многое - многое другое.  Это ли не здорово?

    • Согласен 2
  12. :D

    Вряд ли) Вот процесс расчета ранения)

    Скрытый текст
    
    rank_hit_chance = math_floor((attacker.rank - defender.rank) / 50) 
    					distance_hit_chance = 100 - math_floor((attack_info.distance) / 1.5)					
    					hit_chance = distance_hit_chance + rank_hit_chance
    					if ((math_random() * 100) < hit_chance) then
    						-- Попал таки, гад. Посмотрим, как сильно.
    						if (attack_info.fp >= base_fp) then
    							-- Все, убил.
    							defender.health = 0

     

     

AMK-Team.ru

×
×
  • Создать...