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

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

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

Îòâåò
Ñòðàíèöà 159 èç 264
 
Îïöèè òåìû
#2371
Ñòàðûé 18.08.2017, 11:21
  #2371
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Какая используется функция для изменения названия и описания объекта?
И еще, подскажите как исправить ошибку: Value was NIL when getting global with name 'ChangeResource'?
	function give_sulfur()
 ChangeResource(4, 5, 'Biara')
 Trigger(OBJECT_TOUCH_TRIGGER, 'kotel', nil);
  end
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2372
Ñòàðûé 18.08.2017, 12:30
  #2372
^
RedHeavenHero
 
Àâàòàð äëÿ RedHeavenHero
📖
Ðåãèñòðàöèÿ: 10.02.2012
Ñîîáùåíèÿ: 2378
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 10.02.2012
Ñîîáùåíèÿ: 2378
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

WizardNazyrКакая используется функция для изменения названия и описания объекта?
И еще, подскажите как исправить ошибку: Value was NIL when getting global with name 'ChangeResource'?
	function give_sulfur()
 ChangeResource(4, 5, 'Biara')
 Trigger(OBJECT_TOUCH_TRIGGER, 'kotel', nil);
  end
1) OverrideObjectTooltipNameAndDescription(объект, путь_к_тексту_имени, путь_к_тексту_описания)
2) Нет такой функции ChangeResource, посмотрите в мануале, какие функции меняют ресурсы.
__________________
Êàðòû äëÿ Ãåðîåâ Ìå÷à è Ìàãèè 5
Îäèíî÷íûå: Çàâåñà ñðûâàåòñÿ, Ïîñîë, Ïîñëåäíèé ðûâîê, Ýõî Ïóñòîòû
Êàìïàíèÿ: Èìïåðèÿ Åäèíîðîãà

Ñóùåñòâà NCF
Îðäåí Ïîðÿäêà: 1
Íåéòðàëû: 1 2 3 4
Êàðòû äëÿ Ãåðîåâ Ìå÷à è Ìàãèè 5
Îäèíî÷íûå: Çàâåñà ñðûâàåòñÿ, Ïîñîë, Ïîñëåäíèé ðûâîê, Ýõî Ïóñòîòû
Êàìïàíèÿ: Èìïåðèÿ Åäèíîðîãà

Ñóùåñòâà NCF
Îðäåí Ïîðÿäêà: 1
Íåéòðàëû: 1 2 3 4
RedHeavenHero âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2373
Ñòàðûé 18.08.2017, 12:39
  #2373
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

RedHeavenHero1) OverrideObjectTooltipNameAndDescription(объект, путь_к_тексту_имени, путь_к_тексту_описания)
2) Нет такой функции ChangeResource, посмотрите в мануале, какие функции меняют ресурсы.
1) Спасибо!
2) Забавно, в файле с описаниями функций, скачанного с heroesworld, описана функция "ChangeResource"
Ìèíèàòþðû
Íàæìèòå íà èçîáðàæåíèå äëÿ óâåëè÷åíèÿ
Íàçâàíèå:  Áåçûìÿííûé.jpg
Ïðîñìîòðîâ: 29
Ðàçìåð:	61.8 Êáàéò
ID:	50468  
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2374
Ñòàðûé 18.08.2017, 21:56
  #2374
^
VolgaBear
📖
Ðåãèñòðàöèÿ: 18.08.2017
Ñîîáùåíèÿ: 1
Ðåãèñòðàöèÿ: 18.08.2017
Ñîîáùåíèÿ: 1
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Доброго Времени Суток! допустим у меня есть герой, условный Винраэль и я хотел бы вызвать ему бой например с 200 латников и 150 гаргулей. Возможно ли это сделать в одиночной игре через консоль?
VolgaBear âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2375
Ñòàðûé 18.09.2017, 18:24
  #2375
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Помогите, пожалуйста! Написал скрипт:
	while GetObjectiveState('meet_demons', PLAYER_1) == OBJECTIVE_ACTIVE do
     sleep(5)
    end
    SetObjectiveState('hero_from_hell', OBJECTIVE_ACTIVE, PLAYER_1);
    MessageBox(GetMapDataPath()..'5.txt');

    while 1 do
	    if GetObjectiveState('kill_daeva', PLAYER_1)== OBJECTIVE_COMPLETED 
		and
		 GetObjectiveState('capture_mines', PLAYER_1) == OBJECTIVE_COMLETED 
		then 
    sleep(5)
		     SetObjectiveState('hero_from_hell',OBJECTIVE_COMPLETED, PLAYER_1)
		     SetObjectiveState('go_throw_dungeon',OBJECTIVE_ACTIVE, PLAYER_1)
     end
       end
После того как выполняю задание "meet_demons" и закрываю сообщение "5" игра виснет. Что не так сделал?
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2376
Ñòàðûé 18.09.2017, 20:27
  #2376
^
Jack_of_shadows
 
Àâàòàð äëÿ Jack_of_shadows
📖
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 527
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 527
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

WizardNazyr, ваш код после сообщения можно описать как:
	бесконечный цикл
{
  проверка условия.
}
В цикл нужно добавить sleep. Плюс, лучше если он будет выполняться в отдельном потоке (по приведенному коду неясно обёрнут он в поток или нет).
Jack_of_shadows âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2377
Ñòàðûé 19.09.2017, 05:29
  #2377
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Так, теперь я что-то совсем не так сделал. Игра виснет после того как закрываю сообщение "2"
	MessageBox(GetMapDataPath()..'1.txt');
MessageBox(GetMapDataPath()..'2.txt');
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'Svetlana_Vyacheslav1', 'talk1');
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'demons', 'talk2');
function talk1 ()
MessageBox(GetMapDataPath()..'3.txt')
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'Svetlana_Vyacheslav1', nil);
end
function talk2 ()
MessageBox(GetMapDataPath()..'4.txt');
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'demons', nil);
end
function task1()
   while GetObjectiveState('meet_demons', PLAYER_1) == OBJECTIVE_ACTIVE do
     sleep(5)
    end
    SetObjectiveState('hero_from_hell', OBJECTIVE_ACTIVE, PLAYER_1);
    MessageBox(GetMapDataPath()..'5.txt');
end;
function task2()
    while 1 do
	    if GetObjectiveState('kill_daeva', PLAYER_1)== OBJECTIVE_COMPLETED
		and
		 GetObjectiveState('capture_mines', PLAYER_1) == OBJECTIVE_COMLETED
		then
    sleep(5)
		     SetObjectiveState('hero_from_hell',OBJECTIVE_COMPLETED, PLAYER_1)
		     SetObjectiveState('go_throw_dungeon',OBJECTIVE_ACTIVE, PLAYER_1)
     end
       end
end;
startThread(task1);
startThread(task2) ;


Добавлено через 14 минут
И да, я не совсем понял куда именно нужно поставить sleep и какое значение должно быть в скобках.
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2378
Ñòàðûé 19.09.2017, 08:40
  #2378
^
Jack_of_shadows
 
Àâàòàð äëÿ Jack_of_shadows
📖
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 527
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 527
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

WizardNazyr, причина зависания та же. У вас же есть функция task1, которая выполняет аналогичную функцию и работает корректно. Просто переделайте task2 по аналогии с task1. В task2 во-первых цикл никогда не закончится (while 1 do), во-вторых в if нужно добавить else, срабатывающий пока условие не выполнено, и в нем sleep.
Jack_of_shadows âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2379
Ñòàðûé 19.09.2017, 16:39
  #2379
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Jack_of_shadows, огромное спасибо!
в task2 цикл сломал. else и sleep добавил. Все работает!
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2380
Ñòàðûé 01.10.2017, 11:26
  #2380
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Здравствуйте, появился вопрос: Если я "выключу" героя, который сидит в замке, то он будет себе в армию нанимать юнитов или нет? А другие герои смогут в этом городе скупать армию?
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2381
Ñòàðûé 01.10.2017, 13:09
  #2381
^
AstralLein
 
Àâàòàð äëÿ AstralLein
📖
Ðåãèñòðàöèÿ: 02.06.2017
Àäðåñ: Â Èìïåðèè Íåçàíõåëüì.
Ñîîáùåíèÿ: 4487
Ðåãèñòðàöèÿ: 02.06.2017
Àäðåñ: Â Èìïåðèè Íåçàíõåëüì.
Ñîîáùåíèÿ: 4487
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Будет.

Смогут.
AstralLein âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2382
Ñòàðûé 01.10.2017, 13:16
  #2382
^
WizardNazyr
 
Àâàòàð äëÿ WizardNazyr
📖
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ðåãèñòðàöèÿ: 24.06.2015
Ñîîáùåíèÿ: 940
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

AstralLeinБудет.

Смогут.
Спасибо.
WizardNazyr âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2383
Ñòàðûé 18.10.2017, 16:21
  #2383
^
AstralLein
 
Àâàòàð äëÿ AstralLein
📖
Ðåãèñòðàöèÿ: 02.06.2017
Àäðåñ: Â Èìïåðèè Íåçàíõåëüì.
Ñîîáùåíèÿ: 4487
Ðåãèñòðàöèÿ: 02.06.2017
Àäðåñ: Â Èìïåðèè Íåçàíõåëüì.
Ñîîáùåíèÿ: 4487
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Кто знает почему этот скрипт перестал(раньше работал, но может я случайно что-то поменял) работать? Суть: на седьмой день недели в армии героя Markel2 появляются призраки(одного подходящего типа) равные числом его уровню. Еще одно условие - наличие призраков в армии героя.

AstralLein âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2384
Ñòàðûé 18.10.2017, 21:20
  #2384
^
Jack_of_shadows
 
Àâàòàð äëÿ Jack_of_shadows
📖
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 527
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 08.09.2013
Ñîîáùåíèÿ: 527
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

AstralLein, могу только сказать, что лучше проверять существование героя перед любой операцией с ним. В остальном выглядит нормально. Надо смотреть отладочными сообщениями, может там раньше была ошибка в скрипте, и интерпретатор просто не дошел до 158 строчки и не повесил триггер нового дня.
Jack_of_shadows âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#2385
Ñòàðûé 18.10.2017, 21:29
  #2385
^
AstralLein
 
Àâàòàð äëÿ AstralLein
📖
Ðåãèñòðàöèÿ: 02.06.2017
Àäðåñ: Â Èìïåðèè Íåçàíõåëüì.
Ñîîáùåíèÿ: 4487
Ðåãèñòðàöèÿ: 02.06.2017
Àäðåñ: Â Èìïåðèè Íåçàíõåëüì.
Ñîîáùåíèÿ: 4487
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

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

Добавлено через 2 минуты
Кстати, как листать консоль вверх-вниз?
AstralLein âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
Îòâåò
Ñòðàíèöà 159 èç 264


Îïöèè òåìû



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


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

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