Начало игры

00zveroboi

Активный
14 Июл 2015
103
17
Как сделать так, чтобы при подключении были прокачаны скиллы на 1 лвл, либо чтобы давались очки за уровни?
 

Adam Smith

Друзья CG
4 Окт 2014
473
2
Как сделать так, чтобы при подключении были прокачаны скиллы на 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
 
Последнее редактирование модератором:

Adam Smith

Друзья CG
4 Окт 2014
473
2
Можно немного больше информации, пожалуйста?
b0a9e85a5273.png
 
Последнее редактирование модератором:

00zveroboi

Активный
14 Июл 2015
103
17
Всмысле есть или нет скилла? И как вызвать слушателя, каким значением?
 

Adam Smith

Друзья CG
4 Окт 2014
473
2
Всмысле есть или нет скилла? И как вызвать слушателя, каким значением?

он уже есть (hero) если ты используешь баребонс
скилы проверять есть или нет ненадо, он всем от 1 до 16 выставит 1 левел, если ты не выставлял скиллы в юнитс кастом, то это можно сделать в луа
 
Последнее редактирование модератором:

CryDeS

Друзья CG
14 Июл 2015
1,210
11
Как сделать так, чтобы при подключении были прокачаны скиллы на 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. Прошу вас любители баребонса, вас спрашивают не про баребонс, так отвечайте на стандартный режим пустого аддона, вы только людей путаете с баребонсом =.=
 
Последнее редактирование модератором:
Реклама: