Впервые здесь? Я Роха — провести быструю экскурсию?
Ошибка соединенияНеверный запросСтраница устарелаСессия истеклаТребуется входЗапрещеноНе найденоСлишком много запросовВнутренняя ошибка сервераПлохой шлюзСервис недоступенТайм-аут шлюзаВерсия HTTP не поддерживается
Сессия истекла
Ваша сессия истекла. Пожалуйста, войдите снова.
Требуется вход
Для этого нужна учётная запись. Войдите или создайте её — это займёт минуту.
Страница устарела
Токен безопасности отклонён — обычно потому, что страница была открыта слишком долго или вы вошли в систему в другом месте. Ничего не сохранено. Обновите страницу и повторите.
Запрос не выполнен
При обработке вашего запроса возникла проблема.
Проверьте подключение к интернету и попробуйте снова.
А разве не лучше включить ">=" в определение кол золота? Тогда сразу захватим два варианта. А else уже будет означать, что золота вообще не хватает...Или в данном случае lua: знак ">" воспринимает, как больше-равно?
Там немного другое: в моём случае проверялось количество золота с уже отнятой суммой, а в вашем - нужно сравнивать не с 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
obs - это что за переменная? Я чего-то не нашел... И вроде, раз уж на то пошло, можно и без function yes() обойтись. Или тогда улучшить question box, как прикол, с 2-мя вариантами, чтоб игрок мог сам отменить сделку...
obs - это что за переменная? Я чего-то не нашел... И вроде, раз уж на то пошло, можно и без function yes() обойтись. Или тогда улучшить question box, как прикол, с 2-мя вариантами, чтоб игрок мог сам отменить сделку...
Obs - какая-то сценарная штука в миссии Warrior777, которую за десять тысяч предлагают увеличить на 10. У меня вариант такой: при вызове ф-ии b игроку предлагают червонец обсов за 10000 золотых, если столько есть, и он может согласиться или отказаться. А если денег нет, его посылают месадж боксом с одним вариантом ответа.
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 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 не нужны, т.к. она ничего не делает, и вообще не является обязательной.
Каким образом можно уменьшить опыт героя, либо понизить уровень героя? например, мне нужна функция, обратная к функции LevelUpHero
Насколько я помню, есть функция ChangeHeroStat - c ее помощью можно не только с опытом играться, но и с остальными характеристиками героя ( в т.ч. убирать\добавлять очки пунктов передвижения )
Насколько я помню, есть функция 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 представляют собой текущие значения соответствующих параметров, выставить их выше максимальных – нельзя.
TakeAwayHeroExp( heroName, exp ) С ней бывает полезна функция LockMinHeroSkillsAndAttributes( heroName ), если какие-то навыки надо зафиксировать, чтобы их не отняли.