CustomGames.ru - Dota 2 пользовательские игры

Игровые константы и статы

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн UZzip

  • Продвинутый
  • 282
  • Мощь: 0
  • WorldEditor2
Хочу заменить игровые постоянные
чтобы 1 силы увеличивало хп не на 19 а на 1 к примеру

залез в исходники жизни на арене нашел там 2 файла засунул их к себе, но эффекта не дало.

СКАЖИТЕ КАК СДЕЛАТЬ СВОЁ КОЛИЧЕСТВО СТОИМОСТИ АТРИБУТОВ?

приложил оба файла путь у них life_in_arena\scripts\vscripts\heroes

Оффлайн Илья

  • Супермодератор
  • 1906
  • Мощь: 16
Re: Игровые константы и статы
« Ответ #1 : 24-01-2016, 11:29:00 »
Эх...

Эти два файла, класса - модификаторы. Их надо запускать (накладывать) на объекты (юнитов/игроков).  У них, ребят ответственных за мод, скорее всего есть где-то абилка (название в духе stats_bonus), которую они возможно всем героям раздают.  Эта абилка и активирует эти модификаторы. 


Тут работы на час-два: сидеть и разбираться, как устроен чужой код (не этих двух файлов, а всей цепочки из их мода, что относится к этим двум файлам). Я этим заниматься не буду, проще всегда свой писать, да и код у ребят с "жизни на арене" не только характеристики затрагивает базовые, но и там всякие другие штуки вроде скорости атаки, регена хп. Не знаю, мне кажется, можно гораздо легче все это реализовывать (функции на каждую подобную лабуду у valve есть). Но я могу ошибаться, ибо ребята то там не дурачки и у них были причины именно так мудрено делать.


Способ попроще -используй api-функции вроде: ModifyStrength(), ModifyIntellect(), ModifyAgility().

Ты можешь, по идеи, создать свою абилку с простой функцией, вроде чего-то подобного .  Но не такую, другую. Это просто пример, похожий на то, что тебе надо. И это конкретно к силе относится.



« Последнее редактирование: 24-01-2016, 11:34:34 от Илья »

Оффлайн Илья

  • Супермодератор
  • 1906
  • Мощь: 16
Re: Игровые константы и статы
« Ответ #2 : 24-01-2016, 11:31:18 »
Если с программированием не знаком лично, то попроси кого-нибудь тебе написать код. Либо сиди и разбирайся в скрипте lua.

Но возможен еще один вариант: найти источник активации этих модификаторов.  Если это просто абилка, то делаешь у себя такую же, указываешь в ней пути к модификаторам этим и все.
« Последнее редактирование: 24-01-2016, 11:36:29 от Илья »

Оффлайн UZzip

  • Продвинутый
  • 282
  • Мощь: 0
  • WorldEditor2
Re: Игровые константы и статы
« Ответ #3 : 24-01-2016, 19:31:18 »
Как использовать модиферы и куда их писать не понятно

Я нашел ещё файлик в нём прописано

Код
_G.LIA_MODE_SURVIVAL = 1
_G.LIA_MODE_BATTLE_OF_CLANS = 2

_G.HERO_STATS_ATTACK_BONUS = 1.5

--Strenght
_G.HERO_STATS_HEALTH_BONUS = 1
_G.HERO_STATS_HEALTH_REGEN_BONUS = 0.05

--Agility
_G.HERO_STATS_ARMOR_BONUS = 1/1000
_G.HERO_STATS_ATTACK_SPEED_BONUS = 1
_G.HERO_STATS_MOVE_SPEED_BONUS = 1

--Intellect
_G.HERO_STATS_MANA_BONUS = 12
_G.HERO_STATS_MANA_REGEN_BONUS = 0.05

я его даже через гейм мод запускаю но безтолку require('stat_GameMode')

Оффлайн Илья

  • Супермодератор
  • 1906
  • Мощь: 16
Re: Игровые константы и статы
« Ответ #4 : 24-01-2016, 20:23:33 »
Не, это не то. 

_G - это обращение к глобальным объектам.  В этом куске кода они просто задают стартовые характеристики.
Тебе надо глянуть в их в npc_abilities_custom.txt . Там должна лежать абилка, что использует те два файла.

Оффлайн UZzip

  • Продвинутый
  • 282
  • Мощь: 0
  • WorldEditor2
Re: Игровые константы и статы
« Ответ #5 : 25-01-2016, 08:38:43 »
/scripts/npc/npc_abilities_override.txt
Цитировать
//Start of file stats_bonus_fix.txt
   "stats_bonus_fix"
    {
        "BaseClass"         "ability_lua"
        "ScriptFile"      "heroes\stats_bonus_fix.lua"
   
        "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_HIDDEN"
    }
   //End of file stats_bonus_fix.txt


   //Start of file upgrades_abilities.txt
   "ulu_hero_attack"
   {
      // General
      //-------------------------------------------------------------------------------------------------------------
      "AbilityType"     "DOTA_ABILITY_TYPE_ATTRIBUTES"
      "BaseClass"                  "ability_datadriven"
      "AbilityBehavior"            "DOTA_ABILITY_BEHAVIOR_HIDDEN"
      //"AbilityTextureName"         "keeper_of_the_light_blinding_light"
      "MaxLevel"               "9"
      "AbilitySpecial"
      {
         "01"
         {
            "var_type"            "FIELD_INTEGER"
            "bonus_attack"            "10 20 30 40 50 60 70 80 90"
         }
         "02"
         {
            "var_type"            "FIELD_INTEGER"
            "need_lumber"            "2 3 4 5 6 7 8 9 10"
         }
      }
      "Modifiers"
      {
         "modifier_ulu_hero_attack"
         {
            "Passive"         "1"
            "IsHidden"         "1"
            "Properties"
            {
               "MODIFIER_PROPERTY_BASEATTACK_BONUSDAMAGE"   "%bonus_attack"
               //""
            }
         }
      }
   }
   
Ну вот и ссылка на запуск этих файлов "ScriptFile"      "heroes\stats_bonus_fix.lua"
Только вот всё равно не понятно как в целом это работает

Оффлайн Илья

  • Супермодератор
  • 1906
  • Мощь: 16
Re: Игровые константы и статы
« Ответ #6 : 25-01-2016, 10:18:46 »
Вооот. Видишь, там они комменты оставили оч полезные:

//Start of file stats_bonus_fix.txt  - здесь начинается работа файла  stats_bonus_fix.txt (ну, судя по всему они имели в виду stats_bonus_fix.lua)

Это просто код абилки. По идеи, прописываешь эту (stats_bonus_fix) абилку всем героям.
Код
   "stats_bonus_fix"
    {
        "BaseClass"         "ability_lua"
        "ScriptFile"      "heroes\stats_bonus_fix.lua"
   
        "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_HIDDEN"
    }



//Start of file upgrades_abilities.txt - начало работы файла  upgrades_abilities.txt  (хз че за файл). Судя из коммента, далее идет абилка, ответственая за "улучшение (upgrade) умений". Но идет просто абилка по увеличению атаки (bonus_attack) для которой нужны какие-то пиломатериалы (need_lumber).  Сама абилка скрыта от глаз (DOTA_ABILITY_BEHAVIOR_HIDDEN), т.е. в игре ты ее не увидишь. Видать, ее так же героям дают в начале игры и с ее помощью дают героям сказанные мною выше бонусы атаки. Хз, она те нафиг не сдалась.

Оффлайн Илья

  • Супермодератор
  • 1906
  • Мощь: 16
Re: Игровые константы и статы
« Ответ #7 : 25-01-2016, 10:27:16 »
Как работает?

Теория:
Ну, объявляешь абилку в  npc_abilities_custom.txt

Код
   "stats_bonus_fix"
    {
        "BaseClass"         "ability_lua"
        "ScriptFile"      "heroes\stats_bonus_fix.lua"
   
        "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_HIDDEN"
    }

Название - stats_bonus_fix
Главный класс - ability_lua, т.е. работа абилки описывается в скриптом
ScriptFile - путь к скрипту
AbilityBehavior - ну тип абилки, тут DOTA_ABILITY_BEHAVIOR_HIDDEN - скрытая от глаз


Эта абилка обращается к (заранее созданным тобой) stats_bonus_fix.lua. Либо по пути ...\scripts\vscripts\heroes\stats_bonus_fix.lua, либо можешь где хочешь, но в абилке так же путь поменяй.

Даешь эту абилку всем героям. При старте игры делаешь так, чтобы все ее изучили (ну пишешь код, который ей уровень поднимает). Все, абилка есть у героя, она изучена, она работает.


Но если ты пишешь, что это npc_abilities_override.txt, то они переделывают уже существующую абилку. Хотя обычно, npc_abilities_override.txt используется для изменения существующих вещей. Я не видел, чтобы для изменения существующих умений его использовали. Я хз, что это за навык stats_bonus_fix, может, он в оригинале доты отвечает за статы персонажей.
« Последнее редактирование: 25-01-2016, 10:31:40 от Илья »

Оффлайн UZzip

  • Продвинутый
  • 282
  • Мощь: 0
  • WorldEditor2
Re: Игровые константы и статы
« Ответ #8 : 25-01-2016, 19:24:58 »
Илья, благодоря тебе я разобрался! Спасибо! Репу как всегда апнул)))