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

Отлов убийства нейтралов

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

Оффлайн Роман

  • 88
  • Мощь: 0
Отлов убийства нейтралов
« : 12-06-2016, 15:32:22 »
Нужен код считывания именно убийства мобов ,не героев.

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Отлов убийства нейтралов
« Ответ #1 : 12-06-2016, 15:36:17 »
Дай всем мобам скрытый скилл, по которому на OnOwnerDied будет запускаться луа скрипт. Код тебе писать никто не будет, хватит уже коды клянчить, учись сам писать.
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Отлов убийства нейтралов
« Ответ #2 : 12-06-2016, 15:40:54 »
Вот, под рукой было.
Код
"creep_die"
{
  "BaseClass"                "ability_datadriven"
  "AbilityBehavior"          "DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_HIDDEN"
  "AbilityTextureName"       ""
  "AbilityCastRange"        "0"
  "AbilityCastPoint"        "0"
  "AbilityCooldown"         "0"
  "OnOwnerDied"
  {
    "RunScript"
    {
      "ScriptFile"    "creep_spawn.lua"
      "Function"      "creep_die"
    }
  }
}
Еще можно всё делать через слушателя "OnEntityDied" или что-то такое.
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Отлов убийства нейтралов
« Ответ #3 : 12-06-2016, 16:06:12 »
Вот, под рукой было.
Код
"creep_die"
{
  "BaseClass"                "ability_datadriven"
  "AbilityBehavior"          "DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_HIDDEN"
  "AbilityTextureName"       ""
  "AbilityCastRange"        "0"
  "AbilityCastPoint"        "0"
  "AbilityCooldown"         "0"
  "OnOwnerDied"
  {
    "RunScript"
    {
      "ScriptFile"    "creep_spawn.lua"
      "Function"      "creep_die"
    }
  }
}
Еще можно всё делать через слушателя "OnEntityDied" или что-то такое.
Я думал что можно только через OnEntityDied ,только он считывает смерть героев.
А твой способ я не понял что писать в луа слушатель срабатывания этой способности?
Вы мне постоянно пишите ,что я должен сам писать код ,но как если я не знаю.

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Отлов убийства нейтралов
« Ответ #4 : 12-06-2016, 16:07:55 »
Роман, начни с малого. У тебя нет желания развиваться.
Это и есть слушатель. Этот скилл присваивай всем мобам. Моб умер - функция  creep_die  в creep_spawn.lua запустилась. Там че хочешь, то и делай.
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Отлов убийства нейтралов
« Ответ #5 : 12-06-2016, 16:09:26 »
Роман, начни с малого. У тебя нет желания развиваться.
Это и есть слушатель. Этот скилл присваивай всем мобам. Моб умер - функция  creep_die  в creep_spawn.lua запустилась. Там че хочешь, то и делай.
creep_spawn.lua это barebones?

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Отлов убийства нейтралов
« Ответ #6 : 12-06-2016, 16:09:30 »
например,
Код
function creep_die(keys)
  GLOBAL_MOBS = GLOBAL_MOBS - 1
end
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Отлов убийства нейтралов
« Ответ #7 : 12-06-2016, 16:10:41 »
Роман, нет, просто создай его в scripts\vscripts
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Отлов убийства нейтралов
« Ответ #8 : 12-06-2016, 16:11:25 »
например,
Код
function creep_die(keys)
  GLOBAL_MOBS = GLOBAL_MOBS - 1
end
все понял ,а как через OnEntityDied реализовывать
« Последнее редактирование: 12-06-2016, 16:13:05 от Роман »

Оффлайн Илья

  • Супермодератор
  • 2041
  • Мощь: 19
Re: Отлов убийства нейтралов
« Ответ #9 : 12-06-2016, 17:15:45 »
Можно точно так же реализовывать, как и счетчик убийств героев. Но, соответственно, событие использовать entity_killed. Ну и естественно код под него переделать.  Это тебе как альтернативный вариант варианту Slavko (и то, что ты изначально спрашивал).

Онлайн RecoveryIt

  • 75
  • Мощь: 1
Re: Отлов убийства нейтралов
« Ответ #10 : 12-06-2016, 17:22:40 »
У меня ошибка пишет "=" excpected чето там creep_die

Чот в голос  ;D
Отличное разъяснение проблемы ;)
Я думаю тебе нужно сделать "чето там" в твоем коде и все будет работать.
Не за что.

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Отлов убийства нейтралов
« Ответ #11 : 12-06-2016, 18:33:20 »
Чот в голос  ;D
Отличное разъяснение проблемы ;)
Я думаю тебе нужно сделать "чето там" в твоем коде и все будет работать.
Не за что.
На самом деле дельный совет правда я решил эту проблему до его появления ;D.

Оффлайн Роман

  • 88
  • Мощь: 0
Re: Отлов убийства нейтралов
« Ответ #12 : 12-06-2016, 18:43:43 »
Ну вот у меня новая проблема я не могу реализовать эту фишку.
Собственно мой код я нуб так что не удивляйтесь
Код
require( 'timers' )
require( 'barebones' )
GLOBAL_MOBS = 4
GAME_ROUND = 0
MAX_ROUNDS = 5
ROUND_DURATION = 10
ROUND_UNITS = 2
function Precache( context )
print("[BAREBONES] Performing pre-load precache")
PrecacheResource("particle", "particles/econ/generic/generic_aoe_explosion_sphere_1/generic_aoe_explosion_sphere_1.vpcf", context)
PrecacheResource("particle_folder", "particles/test_particle", context)
PrecacheResource("model_folder", "particles/heroes/antimage", context)
PrecacheResource("model", "particles/heroes/viper/viper.vmdl", context)
PrecacheModel("models/heroes/viper/viper.vmdl", context)
PrecacheResource("soundfile", "soundevents/game_sounds_heroes/game_sounds_gyrocopter.vsndevts", context)
PrecacheUnitByNameSync("example_unit_1", context)
PrecacheItemByNameSync("example_ability", context)
PrecacheItemByNameSync("item_example_item", context)
PrecacheUnitByNameSync("npc_dota_hero_ancient_apparition", context)
PrecacheUnitByNameSync("npc_dota_hero_enigma", context)
end
function Activate()
GameRules.GameMode = GameMode()
GameRules.GameMode:InitGameMode()
end
function creep_die(keys)
  GLOBAL_MOBS = GLOBAL_MOBS - 1
end
function GameMode:OnGameInProgress()
      local point = Entities:FindByName( nil, "spawnerino"):GetAbsOrigin()
      local waypoint = Entities:FindByName( nil, "way1")
      local return_time = 10
      Timers:CreateTimer(10, function()  
  GAME_ROUND = GAME_ROUND + 1
  if GAME_ROUND == MAX_ROUNDS then
            return_time = nil
          end
          Say(nil,"Wave №" .. GAME_ROUND, false)
                    if GAME_ROUND == 1 then
          GLOBAL_MOBS = 4
          end
          for i=1, ROUND_UNITS do
    local unit = CreateUnitByName( "example_unit_" .. GAME_ROUND, point + RandomVector( RandomFloat( 0, 200 ) ), true, nil, nil, DOTA_TEAM_GOODGUYS )
    unit:SetInitialGoalEntity( waypoint )
    local uni = CreateUnitByName( "example_unit_" .. GAME_ROUND + 1, point + RandomVector( RandomFloat( 0, 200 ) ), true, nil, nil, DOTA_TEAM_GOODGUYS )
    uni:SetInitialGoalEntity( waypoint )
          end     
          if GLOBAL_MOBS == 0 then
          return return_time
      end
      end)
end
Вообщем что я хотел что бы после убийства волны появлялась следующая, сейчас не большие пояснения
                    if GAME_ROUND == 1 then
             GLOBAL_MOBS = 4
             end
здесь я написал так потому что в 1 раунде 4 моба
             if GLOBAL_MOBS == 0 then
          return return_time
      end
Здесь я хотел что бы после убийства мобов шла следующая война
« Последнее редактирование: 12-06-2016, 19:47:47 от Роман »

Оффлайн I_GRIN_I

  • Продвинутый
  • 528
  • Мощь: 9
  • Научиться бы скриптить...
Re: Отлов убийства нейтралов
« Ответ #13 : 12-06-2016, 18:52:58 »
Роман, на сайте же есть гайд по созданию карты с волнами крипов, почему нельзя сделать по нему?

Оффлайн Slavko

  • Продвинутый
  • 224
  • Мощь: 5
  • -_-
Re: Отлов убийства нейтралов
« Ответ #14 : 12-06-2016, 18:53:24 »
Прости, братан, надоело вникать в твои коды, которые еще и закомменчены все, из за чего едва читабельны. Попробуй начать с чего-то попроще. Сделай какую-то шляпу с глобалками и циклами типа for, while, например, предмет, который на OnToggle будет начинать спавнить вокруг тебя мобов каждые 5-10 секунд, а если кто-то их всех убьет, то у тебя этот предмет пропадет. Или сам чето придумай. Ты не понимаешь принципа работы операторов.
Ландшафтеры, мастера фотошопа и скриптеры более-менее адекватного уровня - приглашаю за заманчивым предложением в скайп: vyacheslavmikh