Союз | Union

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

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


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


Скрипты

Сообщений 61 страница 90 из 345

61

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

Здравствуйте! Пишу сдесь , так как хочу спросить совет по скриптам. Подскажите , если кто знает пример скрипта патруля, делаю карту , возникла мысль , но осуществить не могу.

Вот пример патруля из миссии оборона Ленинграда патчмод1.2:

-- Мотоцикл патрулирует деревню
function Patrol1()
if GetUnitState(100)==1 then
local a;
a=GetIGlobalVar("temp.patrol1",0);
Cmd(3,100,GetScriptAreaParams("z"..a));
a=a+1; if a>7 then a=0; end; -- здесь 7 - номер последней патрульной точки
SetIGlobalVar("temp.patrol1",a);
end;
end;

-- Инициализация
function Init()
RunScript("Patrol1",10000);
end;

на карте необходимо создать юнит с номером скрипта 100 и проставить в виде скриптовых зон точки патрулирования.
Самя первая долна называться z0, следующая z1 и т.д.

0

62

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

Извините за вопрос - его уже точно задавали, но не могу найти где ! как мосты скриптом разрушать?
например юнит Х в зоне А и бабах такой то мост =))) скриптоделы поймёте

Всё генитальное просто:
создаешь зону с именем Bridge и мост с номером 2000. При появлении в зоне Bridge объекта с номером iScriptID мост взрывается

function Bridge()
if GetNScriptUnitsInArea (iScriptID, ”Bridge”)>0 then
DamageObject(2000, 0);
Suicide();
end;
end;

function Init()
RunScript("Bridge", 1000);
end;

0

63

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

Всё генитальное просто:

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

Отредактировано alderus (2009-07-23 16:03:50)

0

64

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

как мосту номер скриптовый дать.
вот и вся проблема

Сохраняешь карту в формате xml, ищещь в ней секции моста и присваиваешь им всем скрипт через блокнот.

+1

65

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

Сохраняешь карту в формате xml, ищещь в ней секции моста и присваиваешь им всем скрипт через блокнот.

ого. спасибо, понял. а что в редакторе забыли для них сделать свойства как для любых юнитов, зданий?

0

66

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

ого. спасибо, понял. а что в редакторе забыли для них сделать свойства как для любых юнитов, зданий?

Скорее не забыли, а просто руки не дошли

+1

67

вот пару вопросов :

1. можно ли ограничить количество вылетов авиации?
2. подскажите как изначально сделать подбитую гусеницу, кроме того как в редакторе сразу юнит поставить на мину-две
3. как ограничить боезапас

8-) заранее спасибо

0

68

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

можно ли ограничить количество вылетов авиации?

теоретически можно. Для этого нужно использовать скорее всего операторы цикла. и наверное еще глобальную переменную (хотя с ней проблемы при перезагрузке)

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

подскажите как изначально сделать подбитую гусеницу, кроме того как в редакторе сразу юнит поставить на мину-две

я точно не знаю, но в оригинальной исторической миссии "Бой у Даугавпилса" (за немцев)

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

3. как ограничить боезапас

ограничить никак, но кажется можно просто сделать его не полным

0

69

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

ограничить никак, но кажется можно просто сделать его не полным

вот это подскажите,я  это и имел ввиду  :hobo:

0

70

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

вот это подскажите,я  это и имел ввиду

К сожалению, я по видимому ошибся. Можно скриптами узнать количество боеприпасов, но задать наверное нельзя. Я просто перепутал значение функции  :dontknow:

0

71

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

К сожалению, я по видимому ошибся. Можно скриптами узнать количество боеприпасов, но задать наверное нельзя. Я просто перепутал значение функции

:'( жаль

0

72

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

К сожалению, я по видимому ошибся. Можно скриптами узнать количество боеприпасов, но задать наверное нельзя. Я просто перепутал значение функции

Это в Блитзкриге 2 можно сделать. Видел в одной миссии за немцев под Сталинградом.

Мой вопрос: как добавить четвертую сторону к одиночной игре, в которой юниты воевали бы на одной стороне с игроком, но не контролировались им?
Может тут что надо в самой карте делать...

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

ну если фунция есть в Init, то на первый взгляд...

А если это не в функции Init, сто-то меняется?

И еще- как опять накрыть зону туманом войны после того как юниты в конкретной группе уничтожены? :question:
Спасибо.

0

73

Осёло написал(а):

Мой вопрос: как добавить четвертую сторону к одиночной игре, в которой юниты воевали бы на одной стороне с игроком, но не контролировались им?
Может тут что надо в самой карте делать...

Именно в ней. Смотри в редакторе закладку Map - Diplomacy. Там добавь себе еще одного игрока и поставь ему нужную сторону.

Осёло написал(а):

А если это не в функции Init, сто-то меняется?

Симео наверное имел ввиду, что если ф-ция function Rei() не вызывается через Инит, то может она вовсе не вызывается. То есть не работает, потому, что в скрипте забыли прописать строчку вызова этой ф-ции.
А так вроде все там правильно.

+1

74

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

Симео наверное имел ввиду, что если ф-ция function Rei() не вызывается через Инит, то может она вовсе не вызывается. То есть не работает, потому, что в скрипте забыли прописать строчку вызова этой ф-ции.
А так вроде все там правильно.

Ага, спасибо. +

Испробую.

0

75

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

1. можно ли ограничить количество вылетов авиации?

Можно ограничить количество вылетов хоть вместе для всех типов самолетов, хоть по отдельности. Такой скрипт мной применялся в патчмоде почти во всех миссиях.

0

76

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

Можно ограничить количество вылетов хоть вместе для всех типов самолетов, хоть по отдельности. Такой скрипт мной применялся в патчмоде почти во всех миссиях.

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

0

77

Вот скрипт из патчмода:

-- Самолёт игрока вылетел?
function Avia()
if GetNUnitsOfType("avia_attack",0)+GetNUnitsOfType("avia_bomber",0)+
GetNUnitsOfType("avia_fighter",0)+GetNUnitsOfType("avia_lander",0)+
GetNUnitsOfType("avia_scout",0)~=0 then
SetIGlobalVar("temp.avia",GetIGlobalVar("temp.avia",0)-1);
RunScript("NoAvia",3000);
Suicide();
end;
end;

function NoAvia()
if GetNUnitsOfType("avia_attack",0)+GetNUnitsOfType("avia_bomber",0)+
GetNUnitsOfType("avia_fighter",0)+GetNUnitsOfType("avia_lander",0)+
GetNUnitsOfType("avia_scout",0)==0 then
if GetIGlobalVar("temp.avia",0)==0 then DisableAviation (0, -1);
DisplayTrace("Мы не можем больше оказывать вам воздушную поддержку!");
else
RunScript("Avia", 3000);
end;
Suicide();
end;
end;

function Init()
SetIGlobalVar("temp.avia",3); -- количество вылетов авиации
RunScript("Avia", 3000);
end;

Сам патчмод выложен в теме "Проблемка с операцией Север"

0

78

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

Вот скрипт из патчмода:

понятно .. спасибо за подсказку, сохраню на будущее

0

79

Подскажите почему некоторые задачи выплывают сами в виде окон слева сверху, а некоторые нет? т.е. пока сам не нажмешь таб или не вызывешь это окошко текста не увидешь

0

80

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

Подскажите почему некоторые задачи выплывают сами в виде окон слева сверху, а некоторые нет? т.е. пока сам не нажмешь таб или не вызывешь это окошко текста не увидешь

Одни вызываются на показ из скрипта, другие - нет.

0

81

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

Одни вызываются на показ из скрипта, другие - нет.

хм никогда не замечал! и как это выглядит? у меня все задачи по сути одинаково написаны, а некоторые не вызываются

0

82

Всем привет, нужна помощь в написании скрипта.

Должно быть следующее:
1)  Запуск миссии;
2) Через 30 секунд после запуска, в точке А должно появиться подкрепление;
3) Если подкрепление теряет более половины состава, перемещается в точку Б.

Отредактировано klopfer (2009-09-23 22:38:22)

0

83

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

Всем привет, нужна помощь в написании скрипта.
            Должно быть следующее:1)  Запуск миссии;2) Через 30 секунд после запуска, в точке А должно появиться подкрепление;3) Если подкрепление теряет более половины состава, перемещается в точку Б.

сообщи конкретно все данные и я сделаю тебе скрипт.

1. может задачи а не миссии?
2. под каким номером будет подкрепление
3. ID номер и численность группы и точку Б (в точках SCRIPT из редактора)

0

84

1. может задачи а не миссии?

Да, верно.

2. под каким номером будет подкрепление

2318

3. ID номер и численность группы и точку Б (в точках SCRIPT из редактора)

336, 3 отряда пехоты, точка Б: 40; 180

0

85

klopfer ну вот примерно так, я сделал что те юниты - игрока 1, сам поправишь если что.
а вообще лучше бы подробнее объяснил свою просьбу, я мог не так понять. и не знаю сможешь ли ты использовать данный скрипт со своим правильно

Отредактировано alderus (2009-09-24 09:08:39)

0

86

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

Одни вызываются на показ из скрипта, другие - нет.

блин извини я опять не так вопрос задал. выплывают СПРАВА сверху, а не слева....
то что ты имеешь ввиду - это вот например ObjectiveChanged(1, 0); задача 1 выдана...

а я хотел спросить про окно с текстом справа сверху - то оно выскакивает, то нет вот в чем вопрос.

0

87

Спасибо! Попробую.

0

88

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

Спасибо! Попробую

стой я ошибку уже нашел, писал его со слипшимися глазами а вот щас с утра сразу увидел ошибку

function Init()
            RunScript( "zadacha0", 500);

end;

поставь 0 а не 1, тот пост я уже отредактировал и  там нолик стоит

Отредактировано alderus (2009-09-24 09:09:00)

0

89

можно так попробовать...
Как я понял, группа одна вроде?

function Init()
RunScript( "uslovie", 30000);
RunScript( "Reinf1", 30000);
end;

function Reinf1()
LandReinforcement(2318);
Suicide();
end;

function uslovie()
if (GetNUnitsInScriptGroup(2318, 1) < ? ) then               вместо знака ? поставишь кол-во полгруппы
Cmd (0, 336, 40, 180);        вместо 0 можно поставить 3, чтобы группа перемещалась в боевом порядке, только это касается боевых    юнитов
Suicide();
end;
end;

так кажется несколько короче

0

90

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

можно так попробовать...
Как я понял, группа одна вроде?

function Init()
RunScript( "uslovie", 30000);
RunScript( "Reinf1", 30000);
end;

function Reinf1()
LandReinforcement(2318);
Suicide();
end;

function uslovie()
if (GetNUnitsInScriptGroup(2318, 1) < ? ) then               вместо знака ? поставишь кол-во полгруппы
Cmd (0, 336, 40, 180);        вместо 0 можно поставить 3, чтобы группа перемещалась в боевом порядке, только это касается боевых    юнитов
Suicide();
end;
end;

так кажется несколько короче

вношу поправку. Если сделать так как написано, то 100% подкрепление еще не высадится, когда ф-ция uslovie() уже запустится и отработает,, при чем - неправильно. Нужно дать секнд 5 на высадку подкрепления, и лишь тогда запускать проверку:

function Init()
RunScript( "uslovie", 35000);
RunScript( "Reinf1", 30000);
end;

0


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