Форум » Вопросы и ответы » Вопросы по скриптам » Ответить

Вопросы по скриптам

Киллер: Задавайте вопросы по скриптовому языку ЗОД и ждите скорейшего ответа на них!

Ответов - 285, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Киллер: Нуи ессно сразу вопрос: Каким макаром в танках рассчитывается координата объекта (например actor("", x, y, {...}))? Смотрел в других кампаниях, ни х. не понял... Единственное дошло то, что реальная координата, которая отображается в редакторе map, должна домнажаться на n-ю переменную...

hmh: Каждая клетка равна 32*32 пикселям. Т.е. координата клетки равна номеру клетки*32.

Morse: hmh пишет: Каждая клетка равна 32*32 пикселям. Т.е. координата клетки равна номеру клетки*32. Тут надо уточнить, что указанная "координата клетки" - это ее верхний левый угол. Если требуется поместить объект в центр клетки надо прибавить к координатам по 16.


Киллер: hmh, Morse - большое спасибо!!! Мне это было очень важно...

Киллер: Теперь хотел спросить: Можно ли сейчас по средствам скрипто ввести отслеживание нажатия кнопки. На сколько мне известно, в CPP эту функция реализуется через eof...

Morse: Единственные события которые может отслеживать скрипт - въезд в зону триггера (ну и выезд), респаун танка, дамаг и дестрой объектов, и подбор предметов. А C++ тут вообще непричем.

Киллер: 1. who можно использовать только в триггере? 2. Как записать убить "того-то" с пом. who, а то kill(who) и kill("who") не контачат... 3. Не могли бы подробно объяснить принцип действия for.

Morse: who - да, используется только в триггере. она и создана-то была специально для него. who - это имя танка, который въехал в область триггера. Но есть один важный момент, на который не поставлено должного акцента. Чтобы вся эта байда работала, ЭТО ИМЯ ДОЛЖНО СУЩЕСТВОВАТЬ. Запомните это правило и передайте другим: В СКРИПТАХ ЗАДАВАЙТЕ ИМЯ ВСЕМ ВОЗМОЖНЫМ ОБЪЕКТАМ, ДАЖЕ ЕСЛИ, КАК ВАМ КАЖЕТСЯ, ЭТО ИМЯ НИКОГДА И НИГДЕ НЕ ПОНАДОБИТСЯ. Поверьте мне - я имею опыт в написании скриптов. Ничего плохого не случится если несколько лишних объектов получат имена, а вот отсутствие имени у нужного объекта может вызвать ошибку в самом неожиданном месте. В частности ошибка с которой я сам часто сталкивался: дают имя сервису, и забывают дать имя танку, который этот сервис будет себе рожать. там есть одна переменная, vehname если я не ошибаюсь, она должна быть непустой. иначе все это не будет работать. Про цикл for: http://www.lua.ru/doc/2.4.5.html подробнее ты нигде не найдешь

slava98: Киллер пишет: Как записать убить "того-то" с пом. who, а то kill(who) и kill("who") не контачат... Если убить, то вроде damage(100000,who) Kill - убрать Damage - убить Не путай

Киллер: Morse, зачем так нервничать? Имя было, но ,как ты сказал, - сервисное... slava98, спасибо конечно, но про kill и damage я и так знаю, но kill для меня - это убить, а damage - повредить.

Morse: Я не нервничаю. Я наоборот - стараюсь уменьшить колисечство нервирования у различных скриптописателей, которые будут биться головой о стену с криками: "что не так!?". Так как мое благое начинание в виде тутора по скриптописи никто не продолжил приходится эти важные моменты оповещать здесь. Кстати у меня тоже вопрос: есть ли такая штука, как массив ВСЕХ объектов которые есть на карте? Или, если быть более точным: можно ли добраться хоть как-нибудь до объекта без имени? Напрямую - нельзя, это понятно, но может можно по какому-нибудь индексу в каком-нибудь массиве?

Киллер: Morse пишет: Кстати у меня тоже вопрос: есть ли такая штука, как мас... Хм... Вопрос хороший. Думаю что навярнека это знает только Insert, а его уже с 1.5 месяца нет. Вообще такой массив даже не должен, а обязан быть. Если открыть любой файл *.map, то в нем содержится код, содержащий все координаты построения объектов на карте, а таковых - очень много. Отсюда можно сделать вывод, что если у каждого объекта не будет личного индекса, то впринципе взаимодействие с объектами будет невозможно. Как я себе представляю, в этом случае будут массовые конфликты, и так, уничтожив 1 кирпич, мы уничтожим все... Так что они есь! П.С. Конечно, комуто может показать ся, что я несу полный бред, но во всех, даже самых простых играх каждый объект занимает определенную ячейку памяти... вот так... П.П.С. Однако же, навярняка знает сам Insert.

romald: А мне бы хотелось узнать по подробнее о командах, приписываемых к conf.

slava98: И мне

Genesis: Есть какой нить тутор про скрипты в танках, кроме этого: http://ru.zod.wikia.com/wiki/%D0%A2%D1%83%D1%82%D0%BE%D1%80_%D0%BF%D0%BE_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8E_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2

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

Genesis: Morse что можно вписать в on_destroy и что вообще оно обозначает?

Morse: вписать туда можно строку - аналогично on_damage, а означает по-моему очевидно что.

Insert: Я тут иногда) Попробую ответить сразу всем. Конечно внутри игры есть список всех объектов, да не один а штук 10 разных глобальных и еще в каждой локации 8 на 8 клеток есть свои локальные списки. Но пользы от них мало, потому что по индексу оттуда достать объект невозможно, ибо это не массивы а двусвязные списки. Нажатия кнопок отслеживать нельзя. conf это таблица всех настроек игры. Их список можно получить если открыть в блокноте config.cfg или набрать в консоли "conf." и нажать Tab. Назначение большинства из них должно быть понятно из названия. Если что не понятно - спрашивайте. А вообще хорошо бы на wiki иметь про это статью. Начните кто-нибудь, а я потом поправлю

Genesis: Insert мдя, я всюравно ничего не понял =) лучше буду для кс продожлать карты мапить)



полная версия страницы