Союз | Union

Объявление

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Союз | Union » Картостроение и скриптовка » Скрипты


Скрипты

Сообщений 271 страница 300 из 345

271

yersinia
Спасибо! Я открыл карты из Дьяволов с помощью редактора Рокот Бури. А скрипты смутили отсутствием привычных Win и Loose, а также доселе не встречавшимися командами SetIGlobalVar, GetIGlobalVar, num, local. Подскажите, какой смысл они несут (в блицмастере 1.4 информации не нашел).

0

272

Угольщик написал(а):

также доселе не встречавшимися командами SetIGlobalVar, GetIGlobalVar, num, local. Подскажите, какой смысл они несут (в блицмастере 1.4 информации не нашел).

Собственно это не команды, а глобальные и локальные переменные. Вкратце смысл этих переменных в присвоении какого-либо значения, которое может быть изменено программой(скриптом). Локальные переменные могут использоваться только внутри блока(функции), в котором они объявлены, за пределами этого блока(функции) они невидимы. Т.е. локальные переменные существуют только во время выполнения программного блока(функции), в котором они объявлены, создаются они при входе в этот блок и разрушаются при выходе из него. Кроме того, переменная, объявленная в одном блоке, не имеет никакого отношения к переменной с тем же именем, объявленной в другом блоке. В отличие от локальных, глобальные переменные видимы и могут использоваться в любом месте программы(скрипта). Они сохраняют свое значение на протяжении всей работы программы. Глобальные переменные используются в тех случаях, когда разные функции программы используют одни и те же данные.
Вам надо ознакомится со справочником по скриптам от Константина Жукова, он есть где-то здесь в теме, несколькими постами ранее. В нем есть описание и некоторые примеры с исползованием переменных.

0

273

function AviaChange()
   for i = 0,4,1 do
      local t= RandomInt(3)+1;
      if (t == 2) then
         EnableAviation(0, i);
      end;
   end;
   Suicide();
end;

Смысл скрипта абсолютно потерян, ты в нём не разобрался совсем
По сути дела, в определённый момент, когда t==2 включается вся авиация сразу, либо её совсем нет
Ну и смысл этого упрощения?

Тот скрипт, что я привёл, позволяет включать авиацию рендомно по видам, т.е в определённый промежуток, примерно от 10 до 15 минут, игрок просто не в курсе, что у него будет, именно в этом смысл тех "лишних" if, т.е. все виды авиации будет включаться в 1/3 или 33% случаев.
Т.е в одном промежутке может быть только бомбардировщики и истребители, а в другом штурмовики и десантные самолёты, а может не быть самолётов вовсе. Или может повторяться например разведчики три раза подряд.

Ещё хочу раз обратить внимание, что ТБ-3 прописан только как бомбардировщик, и соответственно скриптом прекратить его вылет невозможно, не задев другие бомбардировщики.

0

274

simeo написал(а):

function AviaChange()
   for i = 0,4,1 do
      local t= RandomInt(3)+1;
      if (t == 2) then
         EnableAviation(0, i);
      end;
   end;
   Suicide();
end;

Смысл скрипта абсолютно потерян, ты в нём не разобрался совсем
По сути дела, в определённый момент, когда t==2 включается вся авиация сразу, либо её совсем нет
Ну и смысл этого упрощения?

Тот скрипт, что я привёл, позволяет включать авиацию рендомно по видам, т.е в определённый промежуток, примерно от 10 до 15 минут, игрок просто не в курсе, что у него будет, именно в этом смысл тех "лишних" if, т.е. все виды авиации будет включаться в 1/3 или 33% случаев.
Т.е в одном промежутке может быть только бомбардировщики и истребители, а в другом штурмовики и десантные самолёты, а может не быть самолётов вовсе. Или может повторяться например разведчики три раза подряд.

Ещё хочу раз обратить внимание, что ТБ-3 прописан только как бомбардировщик, и соответственно скриптом прекратить его вылет невозможно, не задев другие бомбардировщики.

Simeo, без обид, но в данном случае прав именно я, поскольку я как раз разобрался что в твоем скрипте делается. Другое дело, что ты скорее всего не знаешь принципа работы оператора циклов, один из которых и используется в моей функции (оператор for). Он точно так же проходит по всем видам авиации, от 0-разведчиков, до 4-штурмовиков, и с той же вероятностью 33% активизирует те типы авиации, которым "повезло" с выбросом случайного числа. Это тебе подтвердит любой начинающий программист.
Кстати, синтаксис и принцип работы операторов циклов описан так же и в справочнике от Жукова. Не скажу что там супер понятно для тех, кто не занимается программированием, но посидев, разобраться очень даже можно. Рекомендую почитать. Серьезно, сильно упростишь себе жизнь, и в несколько раз уменьшишь как размер скрипта, так и время на его написание.

0

275

Угольщик написал(а):

в блицмастере 1.4 информации не нашел

Это ссылка на некоторые справочники по скриптам, в т.ч. и от тов. Жукова.
http://rusfolder.com/33220450

Отредактировано yersinia (2012-10-21 10:51:06)

0

276

Reks

Извини, в таком случае значит, что я не прав

+1

277

simeo написал(а):

Reks

Извини, в таком случае значит, что я не прав

Нет проблем.

0

278

Reks написал(а):

и в несколько раз уменьшишь как размер скрипта, так и время на его написание
function AviaChange()
   for i = 0,4,1 do
      local t= RandomInt(3)+1;
      if (t == 2) then
         EnableAviation(0, i);
      end;
   end;
   Suicide();
end;

Можно даже еще уменьшить на целых четыре знака ;)
(не пинать за вумничанье :tomato: :D)

0

279

Привет всем членам Союза! Здесь впервые. Сам играю в GZM7.51, потихоньку делаю свою карту, пишу средней сложности скрипты (в моем понимании). Тут вот много интересного прочел и наткнулся на ссылку нового справочника LUA v1.9 от тов. JUKOV (респект челу - знает своё дело). Проблема в том, что на iFolder ссылка нерабочая. Если возможно, кто-нибудь выложите нормальную ссылку на другой файлообменник или залейте мне на почту

. Сам пользуюсь справочником версии 1.6, говорят, в новом есть примеры сложных скриптов, хотца глянуть.

0

280

Есть версия 1.8, все-же лучше, чем 1.6, вот ссылка:
http://rusfolder.com/33764542

+1

281

Fasya написал(а):

Есть версия 1.8, все-же лучше, чем 1.6, вот ссылка:

Огромное спасибо Fasya, справочник то, что нужно. 4-й пример конечно силен - глазки поломаешь, но эт ничего, пояснения есть.

P.S. Только сейчас заметил, что ты тоже из Курска. :hobo:

0

282

люди, хотелось бы и мне понять, как эти скрипты работают, а еще как задания делать :(

0

283

Дай-те скрипт на подкрепления.Очень нужно.

Дайте скрипт для подкреплений.

0

284

Smoker написал(а):

Дай-те скрипт на подкрепления.Очень нужно.

Блицмастер
Blitzmaster1.4.rar
468.0 KiB
385 Downloads
Детали...
Инструкция по сборке миссий Инструкция по сборке миссий
Help build mission.rar
http://caponier.ru/wargames/blitzkrieg/kontent/

+1

285

В общем я украл вот такой вот скрипт с чужой карты помогите, что здесь за что отвечает.Как мне по этому скрипту вызвать подкреп.

function Renfort0()
LandReinforcement(101); --- прибывает подкрепление скриптовой группы 101
   Suicide();
end;
function Renfort1()
LandReinforcement(102); --- прибывает подкрепление скриптовой группы 102
   Suicide();
end;
function Renfort2()
LandReinforcement(103);                                и так далее
   Suicide();
end;
function Renfort3()
LandReinforcement(104);
   Suicide();
end;

function Init() --- запускает нижеперечисленные скриптовые функции
RunScript("Renfort0", 600000); --- функция Renfort0 запустится через 600 секунд
RunScript("Renfort1", 1200000); --- функция Renfort1 запустится через 1200 секунд
RunScript("Renfort2", 1800000);                   и так далее
RunScript("Renfort3", 300000);
end;

Отредактировано Smoker (2013-12-02 22:14:41)

0

286

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

Так пишите сценарий и применяйте скрипт. Непонятно в чем проблема, что не работает? Чтобы вам что-то подсказали, пишите поконкретнее.

0

287

Допустим мне нужно что-бы на пятой минуте прошло подкрепление игроку 0 и игроку 1.Формирую две группы подкрепов под номерами 0 и 1 и присваиваю такие же инд.номера.Далее вопрос: Какой скрипт для этого подойдет и как его применить к карте???Вот к примеру такой вот скрипт подойдет ???

function Renfort0()
LandReinforcement(0);
   Suicide();
end;
function Renfort1()
LandReinforcement(1);
   Suicide();
end;

function Init()
RunScript("Renfort0", 300000);
RunScript("Renfort1", 300000);
end;

Отредактировано Smoker (2013-12-03 15:25:30)

0

288

Блин, люди, не ужели сложно написать шаблонный скрипт на подкрепления и объяснить как его применить???По-моему для знающего человека это дело двух минут.Вопрос в полной мере конкретен и понятен.Я уже второй день здесь тусуюсь и не могу получить ответ на вполне простой вопрос.Как вызвать подкрепление.Я русским языком пишу:"помогите написать скрипт для подкрепа и применить его".Как еще конкретнее описать суть моей проблемы ???

Отредактировано Smoker (2013-12-03 20:46:29)

0

289

Да и на срать без вас разберусь.Нашлись то же мне зазнайки.

0

290

Уж на такой вопрос да-к мне кажется ответить проще пареной репы, если толк в этом имеешь.Написать скрипт из  3-х строчек и сказать как правильно его в карту воткнуть.

0

291

Apostol написал(а):

годами общаются на форуме

Год я точно ждать не собираюсь информации объемом с гулькин нос.Ни хотите помогать - не надо.

0

292

Общайтесь дальше.Годами.

0

293

Не форум и был.

0

294

Smoker, не пойму причину Вашего недовольства. Вы спрашивали про скрипт подкреплений. Вам достаточно точно его разжевали.  Что называется - бери его, присоединяй к карте да пользуйся.
Вы же начинаете уже на 2й день после регистрации откровенно по хамски себя вести. В данном случае не надейтесь, что Вам продолжат помогать так как:
1) Это форум, создававшийся изначально для общения модостроителей между собой. А так же для общения пользователей игр и модов к ним, с создателями модов, ну и так же и общения пользователей между собой.
2) Исходя из пункта 1 здесь никто никому абсолютно ничего не должен. Это не форум официальных разработчиков платной игры, которые обязаны реагировать на репорты игроков или что то подобное (да и на таких форумах не особо то и реагируют, хоть за это бабки получают).
3) Исходя из пунктов 1 и 2 Вам могут помочь, а могут и не помочь. Просто банально в силу разных факторов - те кто прочли не знают, или знают и нет времени, или те кто знают не смотрели еще эту тему, или те кто знают и посмотрел, но увидел откровенно хамоватое поведение не хотят помогать.

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

0

295

Reks написал(а):

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

Сколько захожу на оф форумы не разу не видел, что-бы там отреагировали быстро и тем более смогли помочь ) Так что купив игру можете смело отдыхать , а стучаться в тех поддержку можно годами )))

P.s. Живой тому пример ))
http://forum.1csc.ru/index.php?/topic/36882-линия-фронта-афганистан-82/
В качестве того что не как не реагируют еще можно насобирать сотни две игр ....

0

296

Есть вопрос.
Я написал такой скрипт:

function Attack1()
if ( GetNUnitsInScriptGroup(20) <= 0) then
RunScript( "base", 3000);
Suicide();
end;
end;

function base()
if ( GetNUnitsInArea(0, "base") > 0) then
LandReinforcement (102);
ChangePlayer (101, 0);
RunScript( "Attack2", 3000);
Suicide();
end;
end;

function Attack2()
if ( GetNUnitsInArea(0, "granica") > 3) then
LandReinforcement (21);
RunScript( "Attack3", 3000);
Suicide();
end;
end;

function Attack3()
if ( GetNUnitsInScriptGroup(21) <= 0) then
LandReinforcement (103);
Suicide();
end;
end;

function Init()
RunScript( "Attack1", 3000);
end;

Когда я добавляю ещё одну функцию или команду, скрипт перестаёт работать.
Что с этим делать?

0

297

ил-2м написал(а):

Что с этим делать?

Перепроверять, думать, работать и так бесконечно. :dontknow:
Теперь серьезно. Без карты на этот вопрос ответить точно невозможно.
Обрати внимание на следующее:
- все ли функции в выложенном скрипте работают без добавлений других функций?
- внимательно проверь то, что ты добавляешь, может там ошибка (в написании, несоответствии данным карты и т.п.)?
- НАЗВАНИЕ ФУНКЦИИ И СКРИПТОВОЙ ЗОНЫ НЕ ДОЛЖНО БЫТЬ ОДИНАКОВО (!) - у тебя это "base".
Ну, если ты действительно хочешь получить ответ, скинь карту и тот скрипт, который хочешь добавить.
Кстати, а зачем писать <= 0 (меншьше или равно нулю), если юнитов меншьше нуля быть не может, хотя для скрипта это не ошибка, программа это нормально считывает.

0

298

Все без добавлений работает, ошибок нет, название функции исправлю, <= 0 исправлю. Кстати, куда лучше заливать карту со скриптом?

Отредактировано ил-2м (2014-02-04 07:31:00)

0

299

ил-2м написал(а):

...куда лучше заливать карту...

Внизу страницы "Для выкладки файлов используйте этот сервис"
Запакуй все в один архив и приложи текстовый файл с описанием, какие функции (комманды) и куда ты добавлял и что именно не работает. В архиве должны быть: карта (bzm), скрипт (lua) и файл сценария (scenarios\Custom\missions\название миссии).

0

300

http://rusfolder.com/39716870
P.S. я карту не доделал, поэтому не писать, что карта не "украшенная" и не сбалансированная.

Отредактировано ил-2м (2014-02-04 15:32:54)

0


Вы здесь » Союз | Union » Картостроение и скриптовка » Скрипты