Пользователей: 0
Гостей: 843
Всего: 843

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
manunj
    
Посты: 267
Откуда:
Возраст:
20-10-2009 10:23 GMT3 час. #1071806   
Grayshotter
local sobj = alife():create("sim_killer_master2",vector():set(-87.5028,-4.8549,79.2318),177751,76)
Вместо выделеного красным впиши имя своего непися что ты создал
что ты вписал в файл
spawn_sections.ltx


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 10:39 GMT3 час. #1071811   
singapur22
тогда вот тебе тоже справка - если у тебя конечно такой же нету...:-) ты в ней быстрее разберешься чем я.



"Список методов класса vector"
v:set_length(number) - оставить направление, изменить длину
v:normalize(); - сделать длину единичной

v:magnitude() -- длина вектора v
v1:distance_to(v2) -- расстояние между v1 и v2
v1:distance_to_sqr(v2) -- квадрат расстояния между v1 и v2
v1:crossproduct(v2) -- векторное произведение. Возвращает вектор
v1:dotproduct(v2) -- скалярное произведение. Возвращает число
v:sub(number); -- вычесть из каждого компонента v число number
v1:sub(v2); -- вычесть почленно вектор v2 из v1 и поместить в v1
v1:sub(v2, v3) -- вычесть из v2 - v3 и поместить в v1
аналогично:
add - почленное сложение
mul - почленное умножение
div - почленное деление
max/min - почленный максимум/минимум
v1:clamp(v2) -- почленное обрезание первого вторым
average -- почленное среднее
invert -- почленная инверсия знака

v1:abs(v2); -- копирует почленно положительные компоненты в v1 из v2
lerp(v1, v2, number) -- линейная интерполяция между двумя векторами
-- если number больше 1, то выходит за них - экстраполяция

v1:reflect(v2, v3) - должно быть отражение одного вектора от плоскости, определяемой другим. Не проверял
v1:slide(v2, v3); - вероятно, проекция одного вектора на плоскость, определяемую другим. Не уверен
v1:distance_to_xz(v2) - учитывая, что плоскость XZ - это плоскость параллельная земле, то возможно это длина проекции на землю пути от точки до точки. Не проверял

v:getP() - зенитный угол в радианах (угол наклона над плоскостью XZ )
v:getH() - азимутальный угол в радианах (угол в плоскости XZ между проекцией вектора на эту плоскость и осью Z)
setHP - соответственно для установки этих значений
v1:align() - выравнивает вектор вдоль оси x или z и нормирует его. Значение по y игнорируется. В итоге всегда возвращается одно из четырёх значений ([1,0,0], [-1,0,0], [0,0,1], [0,0,-1])
v4:mad(v1,v2,v3) -- бешеная операция =) умножить почленно второе на третье и сложить с первым, т.е. v4 = v1 + v2*v3 (название операции mad == mul + add)
v1:inertion(v2, number) -- v1 = v2 + (v1-v2)*number (тоже почленно)
v1:similar(v2, number) -- сравнение векторов на равенство с погрешностью number. Выдаёт 1 или 0

Пример использования:

Код
local v1 = vector()
v1:set(1,2,3)
local v2 = vector():set(4,5,6)
local dist = v1:distance_to(v2)



отредактировал(а) erlik: 20-10-2009 10:45 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
20-10-2009 10:41 GMT3 час. #1071812   
Grayshotter Мозга не пудри, сними верные координаты. По тем, что у тебя прописаны, объект оказывается под землёй на 4 метра. Поставь значение по Y = 0

добавлено спустя 1 минуту

erlik Благодарю.

отредактировал(а) singapur22: 20-10-2009 10:43 GMT3 час.

Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 10:47 GMT3 час. #1071814   
Вылет:
Expression : fatal error
Function : CScriptEngine::lua_error
File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line : 73
Description :
Arguments : LUA error: ...a.l.k.e.r\gamedata\scripts\realniy_gop_looser.script:5: attempt to index global 'sobj' (a nil value)

Вот так выглядит скрипт:
function spawn_ak_74u ()
local shmot = vector():set(-87.502792358398, -4.8548073768616, -79.231773376465)
shmot.x = shmot.x + 1
alife():create("esc_realniy",vector():set( -87.502792358398, -4.8548073768616, -79.231773376465),177751,76)
sobj:on_death()
alife():create("wpn_ak74u",shmot,177751,76)

alife():create("wpn_addon_scope_1p29",shmot,177751,76)

alife():create("wpn_addon_silencer_pbs",shmot,177751,76)
end


В чём ошибка?:-(
----------------
Сингапур координаты верные, у меня точь в точь автомат лежит на земле и всё нормально!:ye)


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 10:50 GMT3 час. #1071818   
Grayshotter
точнее так
local sobj = alife():create("esc_realniy",vector():set( -87.502792358398, -4.8548073768616, -79.231773376465),177751,76)
sobj:on_death()


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
20-10-2009 10:51 GMT3 час. #1071821   
Grayshotter Вэтом:

alife():create("esc_realniy",vector():set( -87.502792358398, -4.8548073768616, -79.231773376465),177751,76)

Где определение серверного объекта?
Тебе же писали несколько раз:

local sobj = alife():create("esc_realniy",vector():set( -87.502792358398, -4.8548073768616, -79.231773376465),177751,76)

Всё. Отчаливаю. Пора на каторгу.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 11:41 GMT3 час. #1071850   
singapur22
ты не знаешь случайно - существует ли возможность добавлять партиклы - точнее сразу группу партиклов - непосредственно в конфиг предмета?
А то у меня получается unreal сделать паузу в 1-2 секунды между подрывами из -за серии партиклов которые запускаются через скрипт после хитования бомбы. То есть пока вся серия не отыграется - производить подрыв следующей бомбы нельзя. Отсюда необходимость паузы секунд в 15-20 - примерно стока у меня длится весь взрыв.
А так если бы можно было это все сразу в конфиг вписать - и назначить каждому партиклу длительность отыгрыша и порядок отыгрыша - было бы проще.

И еще - допустим я на месте взрыва спавню радиоактивную зону. Ее можно будет удалить потом по таймеру?


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 11:48 GMT3 час. #1071855   
Вот отлично, вот маленькая предистория:
Матёрый бандюган по непонятным причинам оказывается на Кордоне, и так же по непонятным причинам глупо погибает: от кого он так бежал, что даже его опыт в ЗОНЕ не остановил его для того, чтобы осмотреться на месте, где он будет "работать"?. И кто смог его убить, так, что тот не успел ответить?

Первая часть готова:



Как видно на скрине, я сделал сники с того места, с которого по легенде и убили бандита.:-)
-----------------------------
Парни, как теперь созать в этом месте снайпера, который будет сдвигаться только внутри вагончика, и будет палить по всём, что движется?;-)


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 11:50 GMT3 час. #1071856   
Grayshotter это надо, вроде, гулаги юзать. Посмотри в журнале у singapur22.

добавлено спустя 2 минут

function has_soldiers_bribe(actor, npc)
return actor:money() >= 500
end

Это скрипт проверки на наличе у актора денег?
То есть так же можно сделать проверку на предмет?

отредактировал(а) Сталкер Монолита: 20-10-2009 11:52 GMT3 час.

И все мы ждем чего-то. Работа - дом - работа ©
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 11:52 GMT3 час. #1071857   
Сталкер Монолита
А проще нельзя никак?:-(


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 11:57 GMT3 час. #1071863   
Сталкер Монолита
простой пример - взятка кузнецову.
--' Soldiers on bridge

function has_soldiers_bribe(actor, npc)
return actor:money() >= 500
end

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

добавлено спустя 1 минуту

вот скрипт для проверки наличия итемса
function actor_has_documents (actor, npc)
if actor:object("dar_document4") then
return true
else
return false
end
end

отредактировал(а) erlik: 20-10-2009 11:59 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 12:02 GMT3 час. #1071870   
erlik то-есть можно вместо "dar_document4" написать "medkit", и будут у тебя вместо документов из икс-18 требовать аптечку?


И все мы ждем чего-то. Работа - дом - работа ©
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 12:03 GMT3 час. #1071871   
Парни ну помогите, можно ез гулагов делать, просто заспавнить этого типа туда и всё и чтобы он оттуда не вылазил? :-)


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
karavan
    
Посты: 940
Откуда:
Возраст:
20-10-2009 12:09 GMT3 час. #1071873   
Подскажите пожалуйста как в логике сделать мгновенное отключение звука?
Делаю вот так:

[mark@2]
on_signal = sound_end


Звук пока не доиграет не исчезает.

добавлено спустя 1 минуту

И еще что есть кроме has_alife_info? Какие методы работы с инфопоршнем?

отредактировал(а) karavan: 20-10-2009 12:11 GMT3 час.

Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 12:13 GMT3 час. #1071876   
Grayshotter просто спавном и всё. Тока так. Он там просто будет сидеть.


И все мы ждем чего-то. Работа - дом - работа ©
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 12:23 GMT3 час. #1071881   

Он там просто будет сидеть.

ну и стрелять надеюсь тоже?;-)
Смотри а что если присоединить его к гулагу тех военных под мостом, он же типа ихний чувак...:ye)
Или не надо, если это очень муторно, то давай ограничемся спавном!
Расскажи, что и как делать?


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 12:27 GMT3 час. #1071886   
Grayshotter я гулаги не изучал. Посмотри в журнале singapur22


И все мы ждем чего-то. Работа - дом - работа ©
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 12:29 GMT3 час. #1071889   
Grayshotter
логика снайпера, который охраняет точку
пишешь в спавн секцию неписю строчку
custom_data = scripts\имя_файла с логикой.ltx

а это в сам файл и вуаля - снайпер готов к труду и обороне.

[smart_terrains]
none = true

[logic]
active = remark@search
combat_ignor = combat_ignore
[combat_ignore]

[remark@fire]
combat_ignore_cond = {!actor_enemy}
radius = 0
anim = hide
on_info = {=health_le(0.5)} remark@search
wounded = wounded@work
sniper = true

[remark@search]
combat_ignore_cond = true
combat_ignore_keep_when_attacked = false
anim = hide
target = actor
on_info = {=see_enemy} remark@fire
wounded = wounded@work

[wounded@work]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false



забыл добавить - это снайпер друг - в эктора не стреляет.
для снайпер-врага нужно строчку {=see_enemy} заменить на строчку {=see_actor}

karavan
для скриптов
not has_alife_info("info") -- если нет поршня
has_alife_info("info") --если был поршень

db.actor:has_info("info") -- если эктор получил поршень
db.actor:dont_has_info("info") -- если эктор не получал поршня

и то и другое фактически одно и тоже.

db.actor:give_info_portion("info") -- включить поршень
db.actor:disable_info_portion("info") -- выключить поршень

отредактировал(а) erlik: 20-10-2009 12:39 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 12:34 GMT3 час. #1071892   
erlik подходит такой скрипт на прекондлишн:
function actor_has_aptek (actor, npc)
if actor:object("medkit") then
return true
else
return false
end
end

?


И все мы ждем чего-то. Работа - дом - работа ©
karavan
    
Посты: 940
Откуда:
Возраст:
20-10-2009 12:37 GMT3 час. #1071895   
erlik Большое спасибо! :prankster:

Скажи, а есть ли возможность выключения проигруемого звука? Другими словами если звук играет и его надо мгновенно выключить ну или по крайней мере уменьшить до нуля.


Анонс мода-аддона "S.T.A.L.K.E.R. - Безопасная земля"
Узнай о моде больше - подпишись на канал (кликабельно)
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 12:50 GMT3 час. #1071917   

пишешь в спавн секцию неписю строчку
custom_data = scripts\имя_файла с логикой.ltx

Прошу прощения, а это куда?:buba И что писать в имя файла с логикой, давай например логику впишем крутого снайпера монолита на вышке?:ye)

[smart_terrains]
none = true

[logic]
active = remark@search
combat_ignor = combat_ignore
[combat_ignore]

[remark@fire]
combat_ignore_cond = {!actor_enemy}
radius = 0
anim = hide
on_info = {=health_le(0.5)} remark@search
wounded = wounded@work
sniper = true

[remark@search]
combat_ignore_cond = true
combat_ignore_keep_when_attacked = false
anim = hide
target = actor
on_info = {=see_enemy} remark@fire
wounded = wounded@work

[wounded@work]
hp_state = 0|wounded_heavy@help_heavy
hp_state_see = 0|wounded_heavy@help_heavy
hp_victim = 0|nil
hp_fight = 0|false
hp_cover = 0|false

И вот это куда?


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 12:51 GMT3 час. #1071918   
Сталкер Монолита
ну ты же примеры смотрел - там также делается, значит и у тебя должно все быть норм.

karavan
Если вырубать из логики - то не знаю.
надо посмотреть логику для звуковых схем - я ей никогда не пользовался. Почитай статьи по логике - про это вроде в части третьей и четвертой есть.

В скриптах звук вроде так вырубается snd:stop()
то есть сначала задаем локальную переменную для нашего звука
local snd= xr_sound.get_safe_sound_object([[anomaly\teleport_incoming]])
отыгрываем сам звук от заданной позиции
snd:play_at_pos(db.actor, vector():set(0,0,0), 0, sound_object.s2d)

далее ставим таймер, чтобы звук - если он еще не закончился - по истечении заданного времени вырубить
snd:stop()

таймер - штука не простая - singapur22 - уже много раз давал его примеры.
мне щас в лом все их писать.

добавлено спустя 2 минут

manunj
так я видишь не уверен что так можно делать - поэтому и спрашивал - попробовать конечно надо - вдруг получится :-)

Grayshotter
файл с этой логикой в папку config\scripts

добавлено спустя 1 минуту

это в файл spawn_sections -туда где спавн секция твоего непися
custom_data = scripts\имя_файла с логикой.ltx

отредактировал(а) erlik: 20-10-2009 12:55 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 12:55 GMT3 час. #1071928   
а понял тоесть создать новый скрипт. и вписать потом его название когда буду просто типа спавнить, так?:ye)


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 12:56 GMT3 час. #1071929   
типа так у меня
[big_brat]:stalker
$spawn = "respawn\big_brat"
character_profile = big_brat
spec_rank = regular
community = bratki
custom_data = scripts\sniper_enemy.ltx

добавлено спустя 48 секунд

Grayshotter
не скрипт - а файл с расширением ltx

отредактировал(а) erlik: 20-10-2009 12:56 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 12:59 GMT3 час. #1071932   
erlik ОГРОМНЕЙЩИЕтебе спаибо, разобрался!!!


И все мы ждем чего-то. Работа - дом - работа ©
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 13:02 GMT3 час. #1071936   

[big_brat]:stalker
$spawn = "respawn\big_brat"
character_profile = big_brat
spec_rank = regular
community = bratki
custom_data = scripts\sniper_enemy.ltx

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


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
20-10-2009 13:04 GMT3 час. #1071937   
Grayshotter это в spawn_section. Читай статью по созданию НПС.


И все мы ждем чего-то. Работа - дом - работа ©
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 13:07 GMT3 час. #1071942   
Grayshotter
а то что я написал - в файл spawn_sections - это ты как то не увидел?

karavan
можно и без таймера попробовать :
function sound_stop()
if snd:playing() then --\ если звук играет то вырубить его
snd:stop()
end
end

то есть пишешь такой скриптик и активируешь его когда надо

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


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
20-10-2009 13:14 GMT3 час. #1071958   
manunj
у меня там три звука взрыва - и куча партиклов огня и дыма - каждой группе задан свой черед отыгрыша по таймеру.

надо конечно еще с партиклами поковыряться - я пока мало их пробовал - а хотелось сделать взрыв покрасивше - но не смог найти партикл огненного облака - чтобы оно было по форме типа бублика :-)


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

отредактировал(а) erlik: 20-10-2009 13:23 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Grayshotter
    
Посты: 328
Откуда: з півдня неньки УкраЇни
Возраст:
20-10-2009 13:18 GMT3 час. #1071962   
В спавн секции всё сделал и указал путь, теперь, что дальше? Можно актиавцию на спавн сделать в скрипте бандита, типа один скрипт, на этот квест?:-)


____ПЕРДУПЕРЖДЕНИЕ ЗА НИГРМАМАТНАЙЕ ПЕСЬМО! Мадиратар.


Форумы Архив » Свалка Как сделать свой мод? (по 20.11.09)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»