Сообщения - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
 
Опции темы
#1
Старый 31.08.2012, 23:33
  #1
^
Vaishan))
 
Аватар для Vaishan))
📖
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Вопрос
Сообщения

незнаю как сделать...а темы не нашёл нигде...вроде посмотрел...если пропустил где буду благодарен за ссылку.вот хочу чтоб когда я убиваю в карте героем очередную группу монстров около артефакта из нашего драконьего сета мне выдавалось сообщение(на ролики пока не замахиваюсь )что я освободил от охраны монстров уже n из 8 доспехов и чтоб когда я соберу все 8 герою давалось ещё 2 артефакта +n к каждой характеристике...уфффф
Vaishan)) вне форума
Ответить с цитированием
#2
Старый 01.09.2012, 10:16
  #2
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
По умолчанию
Re: Сообщения

вот простой пример:

	
setCount = 0;

function setInfo()
    setCount = setCount+1;
    if setCount == 1 then
        MessageBox(GetMapDataPath()..'count1from8.txt');
    elseif setCount == 2 then
        MessageBox(GetMapDataPath()..'count2from8.txt');
    elseif setCount == 3 then
        MessageBox(GetMapDataPath()..'count3from8.txt');
    elseif setCount == 4 then
        MessageBox(GetMapDataPath()..'count4from8.txt');
    elseif setCount == 5 then
        MessageBox(GetMapDataPath()..'count5from8.txt');
    elseif setCount == 6 then
        MessageBox(GetMapDataPath()..'count6from8.txt');
    elseif setCount == 7 then
        MessageBox(GetMapDataPath()..'count7from8.txt');
    elseif setCount == 8 then
        MessageBox(GetMapDataPath()..'count8from8.txt');
        GiveArtefact("heroname", artifact1Id);
        GiveArtefact("heroname", artifact2Id);
        ChangeHeroStat("heroname", STAT, count);
    end;
end;

Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard1', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard2', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard3', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard4', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard5', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard6', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard7', 'setInfo');
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard8', 'setInfo'); 



если вдруг будет непонятно, опишу все что тут происходит подробнее
P.S. все это есть вообще в теме "скрипты", хотя искать это прийдется там очень долго %)
KioM вне форума
Ответить с цитированием
#3
Старый 01.09.2012, 12:14
  #3
^
Vaishan))
 
Аватар для Vaishan))
📖
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Вопрос
Re: Сообщения

большое спасибо! по англ шарю так что почти всё понял

Добавлено через 1 час 3 минуты
ещё возникла проблема вот делаю я второго призрака-некроманта, меняю ему спецу в shared а у первого тоже спеца меняется. Что делать?
Vaishan)) вне форума
Ответить с цитированием
#4
Старый 02.09.2012, 08:55
  #4
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
По умолчанию
Re: Сообщения

Может имя тоже? Создавать по сути с нуля надо, просто чтобы долго не морочить себе голову скопировать всю инфу со старого героя. Когда себе создавал персов, проблем не было

Добавлено через 8 минут
и еще в функцию нужно всунуть проверку для точности:

	
setCount = 0; 

function setInfo(object, hero) 
    setCount = setCount+1; 
    heroname = hero;
    sleep(5);
    if IsHeroAlive(heroname) ~= true then
        return;
    end;
    
    if setCount == 1 then 
        MessageBox(GetMapDataPath()..'count1from8.txt'); 
    elseif setCount == 2 then 
        MessageBox(GetMapDataPath()..'count2from8.txt'); 
    elseif setCount == 3 then 
        MessageBox(GetMapDataPath()..'count3from8.txt'); 
    elseif setCount == 4 then 
        MessageBox(GetMapDataPath()..'count4from8.txt'); 
    elseif setCount == 5 then 
        MessageBox(GetMapDataPath()..'count5from8.txt'); 
    elseif setCount == 6 then 
        MessageBox(GetMapDataPath()..'count6from8.txt'); 
    elseif setCount == 7 then 
        MessageBox(GetMapDataPath()..'count7from8.txt'); 
    elseif setCount == 8 then 
        MessageBox(GetMapDataPath()..'count8from8.txt'); 
        GiveArtefact("heroname", artifact1Id); 
        GiveArtefact("heroname", artifact2Id); 
        ChangeHeroStat("heroname", STAT, count); 
    end; 
end; 

Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard1', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard2', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard3', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard4', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard5', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard6', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard7', 'setInfo'); 
Trigger(OBJECT_TOUCH_TRIGGER, 'dragonGuard8', 'setInfo'); 


KioM вне форума
Ответить с цитированием
#5
Старый 02.09.2012, 11:53
  #5
^
Vaishan))
 
Аватар для Vaishan))
📖
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Восклицание
Re: Сообщения

смысл в том что редактор воспринимает 2-х героев как один объект с "раздвоением личности " и какую спецу я ставлю одному, та и другому, т.к. я просто ставлю на карту Ghost`а из Heroes(Scenario) и в каждом случае меняю примари скилл на некромантию т.е. получается 2 Ghost`а "по цене одного "
Vaishan)) вне форума
Ответить с цитированием
#6
Старый 02.09.2012, 14:46
  #6
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
По умолчанию
Re: Сообщения

не через редактор делай, посмотри путь где лежит файл героя, зайди туда через архиватор и скопируй файл в свою карту, а затем через редактор можеш указав на него путь настроить все что нужно
KioM вне форума
Ответить с цитированием
#7
Старый 02.09.2012, 19:39
  #7
^
Vaishan))
 
Аватар для Vaishan))
📖
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
Регистрация: 21.08.2012
Адрес: у компьютера
Сообщения: 59
Отправить сообщение для  Vaishan)) с помощью ICQ
По умолчанию
Re: Сообщения

ещё вопрос по скрипту:
мне строку ChangeHeroStat("heroname", STAT, count) писать 4 раза? тоесть в 1-ой stat_attack, во второй stat_defence и т.д.?
Vaishan)) вне форума
Ответить с цитированием
#8
Старый 03.09.2012, 08:13
  #8
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 351
Выставка наград
По умолчанию
Re: Сообщения

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

stats = {STAT_EXPERIENCE, STAT_ATTACK, STAT_DEFENCE, STAT_SPELL_POWER, STAT_KNOWLEDGE, STAT_LUCK, STAT_MORALE};

for i = 1, length(stats) do
ChangeHeroStat("heroname", stats[i], count);
end;

скажем вот так как то
KioM вне форума
Ответить с цитированием
Ответ


Опции темы



Часовой пояс GMT +4, время: 12:12.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru