Скриптование - Страница 69 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

Рекомендуемые сообщения

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

 
 

Stalkerin. Там есть много хороших статей касательно данной темы.
Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения.

 

Справочное руководство по языку Lua 5.1
https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ru
Справочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены.

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

 

Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу.

 

Вопросы которые будут удалятся, следовательно их задавать не нужно:
-- Где находится та или иная функция?
Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;
-- Как сделать что-то/то-то?
С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;
-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.
-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.
Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов?
В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос.

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий
https://www.amk-team.ru/forum/topic/6185-skriptovanie/

Disord,

При наличии дин. аномалий - прописка валка данного индивидуума в исключение. При отсутствии дин. аномалий - правка валка и лука данного непися.

Arhara, Кстати.Ты тут в теме вспомнил про пути,вот хочу в тему спросить-как у тебя зомби возле монолита ходят,там ведь сетки вообще нигде нету.Я просто там пытался у костров монолит посадить -пробежал все окрестности и везде скрипт valid=fasle ,но они тем не менее ходят и Мервин у Андрея там стоит в ТТ

gruber,

Я их перекинул... Хотя - из 5 смертников фигово ходил только один. Остальные - нормуль. Отсутствие сетки - вероятно - неполное - всё же есть отдельные вершинки. Картина - как в 3 отсеке госпиталя - удалось там всех уговорить ходить без вылетов - но путём подбора и проб.

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

подскажите, что не так.

взял вот это

[7111]

; cse_abstract properties

section_name = m_car

name = aes_btr

position = 1060.0048828125,-0.0975551605224609,-9.46005439758301

direction = 0,1.56960034370422,0

 

; cse_alife_object properties

game_vertex_id = 2273

distance = 0

level_vertex_id = 405033

object_flags = 0xffffffba

custom_data = <<END

[logic]

active = ph_car1

 

[ph_car1]

path_walk = aes_btr_walk1

target = actor

 

[spawner]

cond = {+aes_zabor}

END

story_id = 1113

 

; cse_visual properties

visual_name = physics\vehicles\btr\veh_btr_script_u_01

 

; cse_ph_skeleton properties

 

; cse_alife_car properties

health = 1

 

и его логику

[aes_btr_walk1]

points = p0,p1,p2,p3,p4,p5

p0:name = wp00|spd=30

p0:position = 1054.09729003906,-0.0975570678710938,-9.30000114440918

p0:game_vertex_id = 2280

p0:level_vertex_id = 469776

p0:links = p1(1)

 

и заменил на вот это

[871]

; cse_abstract properties

section_name = m_car

name = esc_btr

position = -124.174210,-9.193207,-148.314011

direction = -0.999991,0.000000,-0.004141

 

; cse_alife_object properties

game_vertex_id = 44

distance = 0

level_vertex_id = 128710

object_flags = 0xffffffba

custom_data = <<END

[logic]

active = ph_car1

 

[ph_car1]

path_walk = esc_btr_walk1

target = actor

 

END

 

; cse_visual properties

visual_name = physics\vehicles\btr\veh_btr_script_u_01

 

; cse_ph_skeleton properties

 

; cse_alife_car properties

health = 1

 

и сделал такую вот логику

[esc_btr_walk1]

points = p0

p0:name = wp00|spd=30

p0:position = -125.641571,-9.213549,-148.421402

p0:game_vertex_id = 44

p0:level_vertex_id = 127059

 

в результате ничего: ни вылетов, ни бтра.

подскажите почему?

 

 

mma, cond = {+aes_zabor} -убери вот это -ну или сходи на чаэс и дождись пока дырку в заборе пробьют :)

БТР двигающийся -это ужас ,там в параметрах задается ускорение,если чуть слабее не доедет до точки пути,если сильнее проскочит и начнет доварачивать на ходу-короче я делал приез бтр с блокпоста в деревню новисов при полученом хите,так из 10 раз при одинаковых параметрах в нужную точку приезжает через раз ,обычно где нибудь в дерево упирается или на горку не может вьехать,и от нулевой точки к первой едет по дуге почему то ,лечится уменьшением расстояния между точками

Arhara ты имеешь ввиду что , место спавна и валк в логике должны иметь одни и те же координаты? щас попробую. Заранее спасибо

Gruder я убрал этот момент. Посмотри внимательно.

Логика неверная,но спавнится все равно должен,проверь не перепутал ли ты гейм и левел вертексы,может он спавнится просто в другом месте,да и еск_бтр помоему занятое имя,хотя наверное бы вылезла ошибка с дублированием

Arhara к сожалению не получилось.

Gruber нет такого имени в алл . спавне в секции кордона больше нет. а насчёт другого места не знаю. я пытался заспавнить его на въезде в деревню новичков. мог наклоны дороги плохо повлиять?

mma, ты знаешь, если БТР должен был появиться на склоне, то вероятно он ПОД ним. Попробуй заспавнить его на ровной поверхности и припиши к координате Z (средняя) плюс пять метров, на всякий случай. :) Изменено пользователем Куфзук

mma,

Что не получилось? :huh: либо - БТР без логики - тогда будет тупо стоять как в АМК и стрелять. Либо прописать как у вас - без путей движения с валком и луком кордона. Никогда не имел с этим трабл, хотя в соли - бетеры давно ездят. Единственная трабла - если им на пути попадётся кочка или камеь - прости-прошай их валк и скорость... а заодно - и высадка спецназа в нужном месте. Спецназ-то высадится - но если не будет машины - это туфта...

Спасибо всем ,кто помогал заспавнить мне бтр. Правда он не перемещается ,но возможно это из - за того ,что мало места. Он стреляет только по мне. В логике у него прописано "targer = actor". Я убирал эту фразу - он не стреляет вообще. менял актор на "npc" , "stalker" ,но в них он тоже не стрелял. Незнаете , как сделать так ,чтобы он стрелял только при определённых условиях. Например если у тебя в руках есть оружие. И чтобы стрелял не только в актора.

Вопрос может быть глупый но: Зачем скриптеры пишут скрипт и потом некоторые строки комментируют?

Пример из OGSM мода

.....
function ar_sleep:update()
--    get_console():execute("update_start")
    local ini = ini_file ("scripts\\actorsleep.ltx")
    if db.storage[db.actor:id()].active_section ~= death then
--        get_console():execute("G_set")
.....

Изменено пользователем kokkai

TRAMP14

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

 

mma

Для подсказок самому себе пишут

this.test() --вызываем бредовую функцию

Изменено пользователем _Призрак_

Вот ещё хотел спросить:

Вот это будет проверять радиацию или нет?

if db.actor:radiation = 0.5 then db.actor:radiation = 0

Я на других форумах видал сообщения о том что она не работает. И там же мне предложили поверить радиацию нанесением хита что я не очень то понял

1. Радиация - это свойство, поэтому через точку.

2. Операцию сравнения на равенство идет через два знака ==.

3. Свойство объектов класса game_object записываются иначе: записывается значение изменения свойства.

И читайте справочник и справку по Lua. Если не осилить, то не трогайте скрипты.

if db.actor.radiation ()== 0.5 then db.actor.radiation (1)

Так?

А бывает радиация предмета? или это только для актора и неписей?

Изменено пользователем TRAMP14

mma

БТР не знает что такое npc, stalker. Поэтому указывать бесполезно. БТР может стрелять только в ГГ или только в объект по его sid. То есть указывается сид объекта target = 6 (значит цель - Волк).

Если это не устраивает - переписывай схему ph_car.script.

 

_Призрак_

Для подсказок самому себе пишут

А вот и нет. Для подсказок ковыряльщикам кодов, которые скрипты читать не умеют. Нам самим(скриптерам) и так понятно, что у нас скрипт делает. ;)

А если серьезно - то это международная практика(и даже больше - требование заказчиков к программисту) - сопровождать свой код комментарием. Только принято это делать на аглицком языке.

TRAMP14

Опять неверно написал. При обращении к свойству объекта скобки не указываются.

Главный источник радиации в игре - это аномальная зона (zone_radioactive) при вхождении в которую у ГГ увеличивается свойство radiation. Зону можно заспавнить. И если заспавнить объект и по его позиции маленькую зону радиации(радиусом 0.1 метра ) - получится как бы радиационный объект.

Ну или сделать объект на классе арта - и в свойствах объекта указать нужное действие радиации.

Изменено пользователем Garry_Galler
обращении к свойству

Непонял выражение, растолкуйте пожалуйста

 

Нам самим(скриптерам) и так понятно, что у нас скрипт делает.

Скромные у нас скриптеры пошли :)

Изменено пользователем TRAMP14

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   1 пользователь

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