Скрипты - Страница 90 - Форум HeroesWorld-а

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

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

Ответ
Страница 90 из 260
 
Опции темы
#1336
Старый 18.05.2013, 18:52
  #1336
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Warrior777У меня она прекрасно отображается. Это описание ошибки.

Добавлено через 2 часа 13 минут


Тогда подскажи как уменьшить количество ресурса в 1.6.
Я вижу только картинку с ошибкой редактора. А в сбщ#1322 нет.

local gold=GetPlayerResource(1,6)-10000
gold=gold>0 and gold or 0
SetPlayerResource(1,6,gold)

Добавлено через 2 минуты
Вообще лучше заранее сделать проверку на наличие ресурсов.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1337
Старый 18.05.2013, 19:01
  #1337
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
По умолчанию
Re: Скрипты

А вот так в 1.6 не работает? Просто всю ветку постов не читал, мб, не понимаю последнего вопроса: (1.6 - это что вообще, версия игры что-ль?)

	
If GetPlayerResource(1, 6) >= 0 then
SetPlayerResource(1, 6, GetPlayerResource(1, 6) - 10000)
else
--zolota net--
end

__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1338
Старый 18.05.2013, 22:31
  #1338
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

HeroistА вот так в 1.6 не работает? Просто всю ветку постов не читал, мб, не понимаю последнего вопроса: (1.6 - это что вообще, версия игры что-ль?)

	
If GetPlayerResource(1, 6) >= 0 then
SetPlayerResource(1, 6, GetPlayerResource(1, 6) - 10000)
else
--zolota net--
end

1.6 - это вусмерть пропатченные оригинальные пятые герои.
Да, а проверку надо делать другую.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1339
Старый 19.05.2013, 09:10
  #1339
^
Nargott
 
Аватар для Nargott
📖
Регистрация: 09.05.2009
Адрес: Смоленск
Сообщения: 1583
Регистрация: 09.05.2009
Адрес: Смоленск
Сообщения: 1583
Сообщение
Re: Скрипты

Ну вот так точно не следует писать код (это очень дурной почерк, похожий на машинный код):
gold=gold>0 and gold or 0

А вот так должно работать, и при этом читабельно:

	TAX_GOLD = 10000
...
local playerGold = GetPlayerResource(PLAYER_1, GOLD)
if (playerGold > TAX_GOLD) then
	local newPlayerGold = playerGold - TAX_GOLD
	SetPlayerResource(PLAYER_1, GOLD, newPlayerGold)
else
	SetPlayerResource(PLAYER_1, GOLD, 0)
end
__________________
Разработчик Heroes 5.5 WarGame Edition.
Сайт проекта - пока неактивен
Автор Асимметричных шахмат
Разработчик Heroes 5.5 WarGame Edition.
Сайт проекта - пока неактивен
Автор Асимметричных шахмат
Nargott вне форума
Ответить с цитированием
#1340
Старый 19.05.2013, 10:47
  #1340
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
По умолчанию
Re: Скрипты

А разве не лучше включить ">=" в определение кол золота? Тогда сразу захватим два варианта. А else уже будет означать, что золота вообще не хватает...Или в данном случае lua: знак ">" воспринимает, как больше-равно?
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1341
Старый 19.05.2013, 11:44
  #1341
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Там немного другое: в моём случае проверялось количество золота с уже отнятой суммой, а в вашем - нужно сравнивать не с 0, а с 10000, и тут уже надо >=

Добавлено через 5 минут
Проверку лучше делать ещё в функции b и сразу выдать сообщение о нехватке ресурса.

Добавлено через 7 минут
	function b()
    if GetPlayerResource(1, 6) >= 10000 then
        QuestionBox("золото есть.txt", "yes")
    else
        MessageBox("золота нет.txt")
    end
end

function yes()
    SetPlayerResource(1, 6, GetPlayerResource(1, 6) - 10000)
    obs = obs + 10
end
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1342
Старый 19.05.2013, 12:37
  #1342
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
По умолчанию
Re: Скрипты

obs - это что за переменная? Я чего-то не нашел...
И вроде, раз уж на то пошло, можно и без function yes() обойтись. Или тогда улучшить question box, как прикол, с 2-мя вариантами, чтоб игрок мог сам отменить сделку...
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1343
Старый 19.05.2013, 12:51
  #1343
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Heroistobs - это что за переменная? Я чего-то не нашел...
И вроде, раз уж на то пошло, можно и без function yes() обойтись. Или тогда улучшить question box, как прикол, с 2-мя вариантами, чтоб игрок мог сам отменить сделку...
Obs - какая-то сценарная штука в миссии Warrior777, которую за десять тысяч предлагают увеличить на 10.
У меня вариант такой: при вызове ф-ии b игроку предлагают червонец обсов за 10000 золотых, если столько есть, и он может согласиться или отказаться. А если денег нет, его посылают месадж боксом с одним вариантом ответа.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1344
Старый 19.05.2013, 13:22
  #1344
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
По умолчанию
Re: Скрипты

	function b()
if GetPlayerResource(1, 6) >= 10000 then
--money ok--
QuestionBox("согласен_ли_ты.txt", "yes" , "no")
else
--money no--
MessageBox("золота нет.txt")
end
end

function yes()
--da soglasen--
SetPlayerResource(1, 6, GetPlayerResource(1, 6) - 10000)
obs = obs + 10
end

function no()
--net ne hochu--
end
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1345
Старый 19.05.2013, 13:26
  #1345
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Heroist
	function b()
if GetPlayerResource(1, 6) >= 10000 then
--money ok--
QuestionBox("согласен_ли_ты.txt", "yes" , "no")
else
--money no--
MessageBox("золота нет.txt")
end
end

function yes()
--da soglasen--
SetPlayerResource(1, 6, GetPlayerResource(1, 6) - 10000)
obs = obs + 10
end

function no()
--net ne hochu--
end
Функция no и указание на неё в QuestionBox не нужны, т.к. она ничего не делает, и вообще не является обязательной.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1346
Старый 19.05.2013, 13:34
  #1346
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14601
Выставка наград
По умолчанию
Re: Скрипты

RedHeavenHeroФункция no и указание на неё в QuestionBox не нужны, т.к. она ничего не делает, и вообще не является обязательной.

Не знал, извиняюсь. В любом случае, на всякий случай как черновик можно оставить, вдруг там потом понадобится записать какие-нибудь действие...
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1347
Старый 22.05.2013, 10:19
  #1347
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3361
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3361
Выставка наград
По умолчанию
Re: Скрипты

Каким образом можно уменьшить опыт героя, либо понизить уровень героя? например, мне нужна функция, обратная к функции LevelUpHero
MasteR вне форума
Ответить с цитированием
#1348
Старый 22.05.2013, 12:10
  #1348
^
antonag07
📖
Регистрация: 29.09.2008
Сообщения: 691
Регистрация: 29.09.2008
Сообщения: 691
По умолчанию
Re: Скрипты

Juss456Каким образом можно уменьшить опыт героя, либо понизить уровень героя? например, мне нужна функция, обратная к функции LevelUpHero


Насколько я помню, есть функция ChangeHeroStat - c ее помощью можно не только с опытом играться, но и с остальными характеристиками героя ( в т.ч. убирать\добавлять очки пунктов передвижения )
antonag07 вне форума
Ответить с цитированием
#1349
Старый 22.05.2013, 12:29
  #1349
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3361
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3361
Выставка наград
По умолчанию
Re: Скрипты

antonag07Насколько я помню, есть функция ChangeHeroStat - c ее помощью можно не только с опытом играться, но и с остальными характеристиками героя ( в т.ч. убирать\добавлять очки пунктов передвижения )
Как раз с опытом играться нельзя. Я изначально так пытался сделать

Добавлено через 4 минуты
void ChangeHeroStat( sHeroName, nStatID, nDelta )

Получение/изменение того или иного стата героя. Соотв. константы для nStatID прописаны в /scripts/advmap-startup.lua и бывают такими:
STAT_EXPERIENCE = 0
STAT_ATTACK = 1
STAT_DEFENCE = 2
STAT_SPELL_POWER = 3
STAT_KNOWLEDGE = 4
STAT_LUCK = 5
STAT_MORALE = 6
STAT_MOVE_POINTS = 7
STAT_MANA_POINTS = 8
Обращаю внимание, что функция ChangeHeroStat не устанавливает, а изменяет стат. Т.е. третьим параметром передается не новое значение стата, а разница со старым (которая может быть и отрицательной). В отличие от прочих, STAT_EXPERIENCE не может быть уменьшен. STAT_MOVE_POINTS и STAT_MANA_POINTS представляют собой текущие значения соответствующих параметров, выставить их выше максимальных – нельзя.
MasteR вне форума
Ответить с цитированием
#1350
Старый 22.05.2013, 13:28
  #1350
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30695
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30695
По умолчанию
Re: Скрипты

TakeAwayHeroExp( heroName, exp )
С ней бывает полезна функция LockMinHeroSkillsAndAttributes( heroName ), если какие-то навыки надо зафиксировать, чтобы их не отняли.
Ment сейчас на форуме
Ответить с цитированием
Ответ
Страница 90 из 260


Опции темы



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


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

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