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

Начало игры

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

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Начало игры
« : 25-09-2015, 13:03:38 »
Как сделать так, чтобы при подключении были прокачаны скиллы на 1 лвл, либо чтобы давались очки за уровни?

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
Re: Начало игры
« Ответ #1 : 25-09-2015, 17:45:07 »
Как сделать так, чтобы при подключении были прокачаны скиллы на 1 лвл, либо чтобы давались очки за уровни?
в событии OnAllPlayerLoaded
hero:AddAbility("pudge_reapers_scythe_upgreded"):SetLevel(1) если абилки нету
если есть то
for ability_id = 0, 15 do
      local ability = hero:GetAbilityByIndex(ability_id)
   if ability then   
      ability:SetLevel(1)
         end
      end
   end
« Последнее редактирование: 25-09-2015, 17:46:58 от Adam Smith »
By PG.Freeman

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #2 : 25-09-2015, 18:39:35 »
Можно немного больше информации, пожалуйста?

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
Re: Начало игры
« Ответ #3 : 25-09-2015, 18:44:21 »
Можно немного больше информации, пожалуйста?
By PG.Freeman

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #4 : 25-09-2015, 18:45:41 »
Всмысле есть или нет скилла? И как вызвать слушателя, каким значением?

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
Re: Начало игры
« Ответ #5 : 25-09-2015, 18:46:50 »
Всмысле есть или нет скилла? И как вызвать слушателя, каким значением?

он уже есть (hero) если ты используешь баребонс
скилы проверять есть или нет ненадо, он всем от 1 до 16 выставит 1 левел, если ты не выставлял скиллы в юнитс кастом, то это можно сделать в луа
« Последнее редактирование: 25-09-2015, 18:48:54 от Adam Smith »
By PG.Freeman

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #6 : 25-09-2015, 18:49:23 »
А значение слушателя?

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
Re: Начало игры
« Ответ #7 : 25-09-2015, 18:50:09 »
А значение слушателя?
зачем?У тебя hero есть
By PG.Freeman

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #8 : 25-09-2015, 18:51:07 »
То есть listen не нужен?

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #9 : 25-09-2015, 18:54:54 »
Без слушателя работать не хочет

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
Re: Начало игры
« Ответ #10 : 25-09-2015, 18:59:16 »
Без слушателя работать не хочет

у тебя баребонс стоит?
By PG.Freeman

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #11 : 25-09-2015, 19:01:56 »
Не знаю, что это, поэтому врятли.

Оффлайн 00zveroboi

  • 37
  • Мощь: 0
Re: Начало игры
« Ответ #12 : 25-09-2015, 19:18:50 »
у тебя баребонс стоит?
А обязательно?
И еще, как убрать начальные очки скиллов?

Оффлайн Adam Smith

  • Друзья CG
  • 466
  • Мощь: 6
  • жрять жри его
Re: Начало игры
« Ответ #13 : 25-09-2015, 19:55:18 »
А обязательно?
И еще, как убрать начальные очки скиллов?
github.com/poison...d5/game/barebones
как убрать хз
By PG.Freeman

Оффлайн CryDeS

  • Друзья CG
  • 1194
  • Мощь: 11
Re: Начало игры
« Ответ #14 : 26-09-2015, 07:57:24 »
Как сделать так, чтобы при подключении были прокачаны скиллы на 1 лвл, либо чтобы давались очки за уровни?
В InitGameMode() вставь слушателя на npc_spawned
Код
ListenToGameEvent('npc_spawned', Dynamic_Wrap(GameMode, 'OnNPCSpawned'), self )
Потом вставь этот обработчик слушателя, который будет ловить первый респ героя в игре и передавать
Код
function GameMode:OnNPCSpawned(keys)
        print(" NPC Spawned")
        DeepPrintTable(keys)
        local npc = EntIndexToHScript(keys.entindex)

        if npc:IsRealHero() and npc.bFirstSpawned == nil then
                npc.bFirstSpawned = true
                GameMode:OnHeroInGame(npc)
        end
end

Далее в обработчике OnHeroInGame просматривай все абилки и давай им первый уровень:
Код
function GameMode:OnHeroInGame(hero)
        local ability_count = GetAbilityCount()
        for i = 0, ability_count do
                local ability = hero:GetAbilityByIndex(i)
                if ability then
                        ability:SetLevel(1)
                end
        end
end

Убрать очки поинтов можно фунцией
Код
hero:SetAbilityPoints(0)
PS. Прошу вас любители баребонса, вас спрашивают не про баребонс, так отвечайте на стандартный режим пустого аддона, вы только людей путаете с баребонсом =.=