Ñêðèïòû - Ñòðàíèöà 10 - Ôîðóì HeroesWorld-à

Áûñòðàÿ íàâèãàöèÿ ïî îñíîâíûì ðàçäåëàì ôîðóìà:
Òóðíèðû
ÊÀÐÒÛ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Ãåðîè Ìå÷à è Ìàãèè 5 - Êàðòîñòðîèòåëüñòâî (Ðåäàêòîð êàðò)  ýòîì ðàçäåëå ìîæíî îáñóæäàòü âñå ÷òî êàñàåòñÿ ðåäàêòîðà êàðò äëÿ Heroes of Might and Magic V. Òàê æå çäåñü îáñóæäàåì êàðòîñòðîèòåëüñòâî.

Îòâåò
Ñòðàíèöà 10 èç 261
 
Îïöèè òåìû
#136
Ñòàðûé 20.09.2010, 11:48
  #136
^
Spectral
 
Àâàòàð äëÿ Spectral
📖
Ðåãèñòðàöèÿ: 10.05.2010
Àäðåñ: Êîòòåäæ â Èãã-Øàéëå, åñòü âèëëà â Àëü-ñàôèðå, êâàðòèðêà â Èìïåðèè ãðèôîíà, à òàêæå äà÷à â Èðîëëàíå
Ñîîáùåíèÿ: 156
Ðåãèñòðàöèÿ: 10.05.2010
Àäðåñ: Êîòòåäæ â Èãã-Øàéëå, åñòü âèëëà â Àëü-ñàôèðå, êâàðòèðêà â Èìïåðèè ãðèôîíà, à òàêæå äà÷à â Èðîëëàíå
Ñîîáùåíèÿ: 156
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

ГильраенО Господи! Это MoveHero тоже не работает!! Я могу понять этих двух героев- на смерть идти не хочется, но со скриптами они же должны работать!!! У меня герои врага либо желают что хотят (пока я не посавил блоки) или просто стоят (как в последних трёх случаях). Я их уже и. MoveHero зову, и AiAttractorom тоже приманиваю, но нет же - упёрлись рогом!
Возможно MoveHero работает только, когда путь к объекту полностью свободен, т.е. не заблокирован монстром или вражеским героем. А проверить это можно функцией CanMoveHero(heroName,x,y,floorID)
__________________
 Ñîçäàåòñÿ êàðòà ïðî ýëüôîâ: Âîññîåäèíåíèå - ãîòîâíîñòü 71%
 Ñîçäàåòñÿ êàðòà ïðî ýëüôîâ: Âîññîåäèíåíèå - ãîòîâíîñòü 71%
Spectral âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#137
Ñòàðûé 20.09.2010, 12:07
  #137
^
Ment
 
Àâàòàð äëÿ Ment
📖
Ðåãèñòðàöèÿ: 30.10.2009
Àäðåñ: Íàöèîíàëüíûé çàïîâåäíèê
Ñîîáùåíèÿ: 30706
Ðåãèñòðàöèÿ: 30.10.2009
Àäðåñ: Íàöèîíàëüíûé çàïîâåäíèê
Ñîîáùåíèÿ: 30706
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

MoveHero -- хитрая вообще такая вещь. Он может не работать, если точка предназначения у героя находится на "зелёной" клетке. Пример: в Гномании не получилось заставить с помощью этой функции напасть героями на гарнизон. Делал так: посылал на соседнюю клетку, а там стоит регион, и для него прописан триггер:
function Gar(hero)
if hero=="bla-bla" then
MakeHeroInteractWithObject("bla-bla","Garnison");
end;
end;
Ment âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#138
Ñòàðûé 20.09.2010, 21:05
  #138
^
Ïîáåäèòåëü
 
Àâàòàð äëÿ Ïîáåäèòåëü
📖
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Ну я уже разобрался. Просто герои в упор не хотели атаковать города. Просто посатвил героев из городов на соседнюю клетку (кстати в город я их запихивал телепортом; есть ли способ посавить героя "в гости" и выключить его?). И можно теперь всё же поподробнее о заданиях? Где из настроить, как добавить описания? Как сделать "пустое" задание (есть только описание, выполняется скриптом)?
Ïîáåäèòåëü âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#139
Ñòàðûé 20.09.2010, 21:15
  #139
^
Êâàíò
 
Àâàòàð äëÿ Êâàíò
📖
Ðåãèñòðàöèÿ: 23.12.2009
Àäðåñ: Òþìåíü
Ñîîáùåíèÿ: 312
Îòïðàâèòü ñîîáùåíèå äëÿ  Êâàíò ñ ïîìîùüþ ICQ
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 23.12.2009
Àäðåñ: Òþìåíü
Ñîîáùåíèÿ: 312
Îòïðàâèòü ñîîáùåíèå äëÿ  Êâàíò ñ ïîìîùüþ ICQ
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Ну я уже разобрался. Просто герои в упор не хотели атаковать города. Просто посатвил героев из городов на соседнюю клетку
блин, как же у меня герои атакуют города в Астралии?
разве у меня особенные скрипты?
Êâàíò âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#140
Ñòàðûé 21.09.2010, 11:13
  #140
^
Ment
 
Àâàòàð äëÿ Ment
📖
Ðåãèñòðàöèÿ: 30.10.2009
Àäðåñ: Íàöèîíàëüíûé çàïîâåäíèê
Ñîîáùåíèÿ: 30706
Ðåãèñòðàöèÿ: 30.10.2009
Àäðåñ: Íàöèîíàëüíûé çàïîâåäíèê
Ñîîáùåíèÿ: 30706
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

На скриншоте к сообщ. ном. 32 видно дерево свойств карты. Раскрываешь, как там. Потом заполняешь name,captionFileRef (название)и descriptionFileRef (описание). Если нужно, чтобы не было видно вначале, IsHidden и IsInitalyVisible на false. Усё.
Ment âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#141
Ñòàðûé 21.09.2010, 17:30
  #141
^
Spectral
 
Àâàòàð äëÿ Spectral
📖
Ðåãèñòðàöèÿ: 10.05.2010
Àäðåñ: Êîòòåäæ â Èãã-Øàéëå, åñòü âèëëà â Àëü-ñàôèðå, êâàðòèðêà â Èìïåðèè ãðèôîíà, à òàêæå äà÷à â Èðîëëàíå
Ñîîáùåíèÿ: 156
Ðåãèñòðàöèÿ: 10.05.2010
Àäðåñ: Êîòòåäæ â Èãã-Øàéëå, åñòü âèëëà â Àëü-ñàôèðå, êâàðòèðêà â Èìïåðèè ãðèôîíà, à òàêæå äà÷à â Èðîëëàíå
Ñîîáùåíèÿ: 156
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

MentMoveHero -- хитрая вообще такая вещь. Он может не работать, если точка предназначения у героя находится на "зелёной" клетке. Пример: в Гномании не получилось заставить с помощью этой функции напасть героями на гарнизон. Делал так: посылал на соседнюю клетку, а там стоит регион, и для него прописан триггер:
function Gar(hero)
if hero=="bla-bla" then
MakeHeroInteractWithObject("bla-bla","Garnison");
end;
end;

А эта функция работает только если герой находится рядом с объектом?
Если нет, то можно даже не ставить регион и триггер.
__________________
 Ñîçäàåòñÿ êàðòà ïðî ýëüôîâ: Âîññîåäèíåíèå - ãîòîâíîñòü 71%
 Ñîçäàåòñÿ êàðòà ïðî ýëüôîâ: Âîññîåäèíåíèå - ãîòîâíîñòü 71%
Spectral âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#142
Ñòàðûé 07.07.2011, 12:41
  #142
^
Ïîáåäèòåëü
 
Àâàòàð äëÿ Ïîáåäèòåëü
📖
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Можно подсказать, как выглядит условие, которое срабатывает при гибели отряда или вражеского героя?
Ïîáåäèòåëü âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#143
Ñòàðûé 07.07.2011, 13:00
  #143
^
Dyrman
 
Àâàòàð äëÿ Dyrman
📖
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

ПобедительМожно подсказать, как выглядит условие, которое срабатывает при гибели отряда или вражеского героя?
Пример с моей карты:
	
if GetSavedCombatArmyHero(a1,0)=="Giovanni" then
Loose();
end;
if (GetSavedCombatArmyHero(a1,1)=="Giovanni") and  (GetSavedCombatArmyHero(a1,0)=="Zehir") then
MessageBox(GetMapDataPath().."talk_of_grigorio_6.txt");
SetObjectiveState("kill_pl5", OBJECTIVE_COMPLETED, PLAYER_1 );
SetPlayerResource(PLAYER_1 ,GOLD, GetPlayerResource(PLAYER_1 , GOLD)+20000);
end;

	if  flag_bad_grig==1 then
if (GetSavedCombatArmyHero(a1,1)=="Giovanni") and  (GetSavedCombatArmyHero(a1,0)=="Duncan") then
SetObjectiveState("kill_pl6", OBJECTIVE_COMPLETED, PLAYER_1 );
MessageBox(GetMapDataPath().."talk_of_grigorio_5.txt");
SetObjectEnabled("portal1", true);
end;
else
if (GetSavedCombatArmyHero(a1,1)=="Giovanni") and (flag_britt==1) then
count_stacks = GetSavedCombatArmyCreaturesCount(a1,0);
for i=0,count_stacks-1 do
cr, numer, dead = GetSavedCombatArmyCreatureInfo(a1,0,i);
if cr==cr_ded then
Strelki_dead= Strelki_dead + dead;
end;
end;

Вот примеры кода. Если разбираешься -поймёшь, если нет - потребуй объяснения.
Пример частный, в котором один герой побеждает другого, либо валит отряд и собирает их численность.
Или надо чтобы он учитывал любое умирание врага?
Тогда вот:
	Формат вызываемой процедуры:
     void sProc( sHeroName )
Останов:
     Trigger(PLAYER_REMOVE_HERO_TRIGGER, nPlayerID, nil)
Процедура вызывается, когда игрок nPlayerID теряет героя. Имя данного героя передается в процедуру в качестве параметра
Dyrman âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#144
Ñòàðûé 08.07.2011, 10:44
  #144
^
Ïîáåäèòåëü
 
Àâàòàð äëÿ Ïîáåäèòåëü
📖
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Спасибо, Dyrman. Самый нижний вариант подошёл. Только у меня появилась большая проблема. Скрипты работаю через строчку. Вот, например:
OpenCircleFog(83, 14, 0, 4, PLAYER_1); -- работает,
а тремя строчками ниже:
SetPlayerResource(PLAYER_1, GOLD, 5000); -- нет. Обе строчки без функций, как они работаю, видел в чужих картах. В чём может быть проблема?

P.S.: Не работает всё, начиная со строчки
SetRegionBlocked("AntiAI", true, PLAYER_2);
Могла она "испортить" всё, что идёт после неё?
Ïîáåäèòåëü âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#145
Ñòàðûé 08.07.2011, 11:10
  #145
^
Dyrman
 
Àâàòàð äëÿ Dyrman
📖
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

ПобедительP.S.: Мне показалось, что код не работает после строчки
MessageBox("/Maps/SingleMissions/***********/msg1.txt");
Если она некорректна, может ли она заблокировать всё, что идёт после неё?
Именно так. После неправильной строчки в функции все последующие не работают.
Смотрим кодировку в текстовом файле, проверяем правильность пути(смотрим и правильность написания других функций), и лучше пользуемся функцией GetMapDataPath(), т.к. если поменять название файла карты, то обозначенные пути перестанут существовать.

	GetMapDataPath() - определяет путь к основным файлам карты.
.. - строковое объединение
пример:
MessageBox(GetMapDataPath().."talk_of_grigorio_6.txt");


Добавлено через 17 минут
ПобедительP.S.: Не работает всё, начиная со строчки
SetRegionBlocked("AntiAI", true, PLAYER_2);
Могла она "испортить" всё, что идёт после неё?
Что идёт после этой строки?
Выложи весь скрипт.
Что пишет консоль? Консоль - хороший помощник в выловлении багов
И ещё просьба: редактить сообщения обычно , а не как моддер, а то времени изменения не видно, а я получаются, отвечаю на несуществующие вопросы((
Dyrman âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#146
Ñòàðûé 11.07.2011, 08:54
  #146
^
Ïîáåäèòåëü
 
Àâàòàð äëÿ Ïîáåäèòåëü
📖
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Можно поподробнее объяснить, как оформлять функцию, которую вы выкладывали в предыдуще сообщении?

void -название функции?- ( -имя убитого героя- )
-то, что происходит при смерти героя?-
Trigger(PLAYER_REMOVE_HERO_TRIGGER, nPlayerID, nil)
end;
end;
-ещё раз триггер с именем процедуры?-

P.S.: Ошибки в предыдущем коде исправил, спасибо ещё раз за помощь.
Ïîáåäèòåëü âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#147
Ñòàðûé 11.07.2011, 09:32
  #147
^
Dyrman
 
Àâàòàð äëÿ Dyrman
📖
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

ПобедительМожно поподробнее объяснить, как оформлять функцию, которую вы выкладывали в предыдуще сообщении?

void -название функции?- ( -имя убитого героя- )
-то, что происходит при смерти героя?-
Trigger(PLAYER_REMOVE_HERO_TRIGGER, nPlayerID, nil)
end;
end;
-ещё раз триггер с именем процедуры?-

P.S.: Ошибки в предыдущем коде исправил, спасибо ещё раз за помощь.
Пример:
	DedF (GGDed)
if GGded == "Zosya" then
..........тут код
end;
end;
Trigger(PLAYER_REMOVE_HERO_TRIGGER, 1, "DedF")

Как-то так вроде
Dyrman âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#148
Ñòàðûé 11.07.2011, 14:26
  #148
^
Ïîáåäèòåëü
 
Àâàòàð äëÿ Ïîáåäèòåëü
📖
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 18.07.2008
Ñîîáùåíèÿ: 3427
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Консоль ругается . Говорит:
Script ERROR: attempt to call a nil value
Идёт это в самом конце - похоже, это обсуждаемая функция.
P.S.: На второй end редактор скриптов ругается, я его убрал. Может, надо какое-нибудь else прописать?
Ïîáåäèòåëü âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#149
Ñòàðûé 11.07.2011, 16:48
  #149
^
Dyrman
 
Àâàòàð äëÿ Dyrman
📖
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ðåãèñòðàöèÿ: 24.06.2008
Àäðåñ: Òàì, ãäå íåáà êîí÷àåòñÿ êðàé
Ñîîáùåíèÿ: 3479
Îòïðàâèòü ñîîáùåíèå äëÿ  Dyrman ñ ïîìîùüþ ICQ
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

ПобедительКонсоль ругается . Говорит:
Script ERROR: attempt to call a nil value
Идёт это в самом конце - похоже, это обсуждаемая функция.
P.S.: На второй end редактор скриптов ругается, я его убрал. Может, надо какое-нибудь else прописать?
Тупо копирнул или переделал на свой лад? С ЭНДами всё нормально. Добавь определитель функции - слово function Ну это и так понятно, думаю. Вряд ли ты тупо копирнул.
Вызываешь nil вместо чего-то. Проверяй, существует ли герой, функция, параметры, если же, конечно, не это слово - function

"Zosya" - естесственно вымышленное имя. Там должно быть имя вражеского героя, если имя вражеского героя любое, то просто убери условие.
Dyrman âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#150
Ñòàðûé 12.07.2011, 22:51
  #150
^
Åãî Âûñîêîïðåîñâÿùåíñòâî
📖
Ðåãèñòðàöèÿ: 20.06.2011
Àäðåñ: Óôà, Ðåñïóáëèêà Áàøêîðòîñòàí
Ñîîáùåíèÿ: 156
Ðåãèñòðàöèÿ: 20.06.2011
Àäðåñ: Óôà, Ðåñïóáëèêà Áàøêîðòîñòàí
Ñîîáùåíèÿ: 156
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Здравствуйте, я новичок в heroesworldе. Немного покопался в самых простых скриптах, некоторые получились. Но все же это неизмеримо мало по сравнению с теми, что прописаны в некоторых картах, поэтому надеюсь на сотрудничество с Вами.
__________________
Äàéòå ìíå âñåãî øåñòü ñòðîê, íàïèñàííûõ ðóêîé ñàìîãî ÷åñòíîãî ÷åëîâåêà, è ÿ íàéäó, çà ÷òî åãî ìîæíî ïîâåñèòü.

Âåñüìà õîðîøèé ïîïóò÷èê... Äî ïåðâîãî ïåðåêðåñòêà.
Äàéòå ìíå âñåãî øåñòü ñòðîê, íàïèñàííûõ ðóêîé ñàìîãî ÷åñòíîãî ÷åëîâåêà, è ÿ íàéäó, çà ÷òî åãî ìîæíî ïîâåñèòü.

Âåñüìà õîðîøèé ïîïóò÷èê... Äî ïåðâîãî ïåðåêðåñòêà.
Åãî Âûñîêîïðåîñâÿùåíñòâî âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
Îòâåò
Ñòðàíèöà 10 èç 261


Îïöèè òåìû



×àñîâîé ïîÿñ GMT +4, âðåìÿ: 08:01.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Ðóññêèé)

ßíäåêñ öèòèðîâàíèå    Top.Mail.Ru