[Помогите]Настройка каманд(dire(персонажи))

SanyaDuizFX

Пользователь
18 Окт 2015
37
0
У меня есть 2 команды я хочю чтоб за радиант были все кто есть в списки но если ты зашол за dire то утя только 2 перса на выбор. Как так сделать?!
 

Илья

Друзья CG
25 Сен 2015
2,348
41
У меня есть 2 команды я хочю чтоб за радиант были все кто есть в списки но если ты зашол за dire то утя только 2 перса на выбор. Как так сделать?!

На выбор пока никак, только если жестко задавать. Почему ты не читаешь форум, все твои вопросы уже рассматривались.
 
Последнее редактирование модератором:

SanyaDuizFX

Пользователь
18 Окт 2015
37
0
[quote author=Илья link=topic=328.msg1804#msg1804 date=1445462946]
На выбор пока никак, только если жестко задавать. Почему ты не читаешь форум, все твои вопросы уже рассматривались.
[/quote]Стой ты кинул сылку я посмотрел, сделал как там но чёт не работает захожу за dire и всеровно тоже самое обычный список просто могу всех выбрать. Можно подробнее.
 

Илья

Друзья CG
25 Сен 2015
2,348
41
Стой ты кинул сылку я посмотрел, сделал как там но чёт не работает захожу за dire и всеровно тоже самое обычный список просто могу всех выбрать. Можно подробнее.

Ты выложи свой код, куда ты вставил мой код)
 
Последнее редактирование модератором:

SanyaDuizFX

Пользователь
18 Окт 2015
37
0
Я имел в виду содержание этого файла.
-- Generated from template

if CAddonTemplateGameMode == nil then
CAddonTemplateGameMode = class({})
end

function Precache( context )
--[[
Precache things we know we'll use. Possible file types include (but not limited to):
PrecacheResource( "model", "*.vmdl", context )
PrecacheResource( "soundfile", "*.vsndevts", context )
PrecacheResource( "particle", "*.vpcf", context )
PrecacheResource( "particle_folder", "particles/folder", context )
]]
end

-- Create the game mode when we activate
function Activate()
GameRules.AddonTemplate = CAddonTemplateGameMode()
GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
print( "Template addon is loaded." )
GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
--print( "Template addon script is running." )
elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
return nil
end
return 1
end

function Precache( context )
PrecacheResource("particle", "particles/units/heroes/hero_leshrac/leshrac_lightning_bolt.vpcf" , context)
PrecacheResource("particle", "particles/econ/courier/courier_golden_roshan/golden_roshan_ambient.vpcf" , context)
end

-- Quest entity that will contain the quest data so it can be referenced later
local entQuestKillBoss = nil


-- Call this function from Hammer to start the quest. Checks to see if the entity has been created, if not, create the entity
-- See "adventure_example.vmap" for syntax on accessing functions
function QuestKillBoss()
if entQuestKillBoss == nil then
entQuestKillBoss = SpawnEntityFromTableSynchronous( "quest", { name = "KillBoss", title = "#quest_boss_kill" } )
end
end


-- Call this function to end the quest. References the previously created quest if it has been created, if not, should do nothing
function QuestKillBossComplete()
if entQuestKillBoss ~= nil then
entQuestKillBoss:CompleteQuest()
end
end
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Мгм

Теперь скинь содержимое твоего CAddonTemplateGameMode.lua
 

Илья

Друзья CG
25 Сен 2015
2,348
41
мм у меня нет такого файла!

Почему-то, я об этом догадывался....


У тебя в "vscripts" только лишь "addon_game_mode.lua" ?

Думаю что да. Тогда, откуда ты его взял? С какого-то примера? И что ты туда самостоятельно вписывал, если вписывал?
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Чтобы тебе стало понятно: я пытаюсь узнать твой уровень в программировании и твой уровень понимания скрипта lua, чтобы построить дальнейший наш с тобой диалог.

Сдается мне, что ты с программированием на "дрожащее вы" и поэтому, т.к. я все же хочу тебе помочь, мне придется сделать что-то вроде такого же гайда, только для аудитории, не знакомой с программированием (ибо для них то, что там написано, это ад).

Я напишу этот мини гайд в ближайший час, если мои догадки на твой счет верны. Если же нет, то хо-хо, читай вышеуказанный гайд и мы продолжим беседу.
 
Последнее редактирование модератором:

SanyaDuizFX

Пользователь
18 Окт 2015
37
0
Почему-то, я об этом догадывался....


У тебя в "vscripts" только лишь "addon_game_mode.lua" ?

Думаю что да. Тогда, откуда ты его взял? С какого-то примера? И что ты туда самостоятельно вписывал, если вписывал?
Когда создаёш аддон поевляется addon_game_mode.lua
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Когда создаёш аддон поевляется addon_game_mode.lua

Все, я все понял.

В общем, жди, я сейчас тебе дам базовые знания и ты почувствуешь себя Гарри Поттером или Дэвидом Блэйном, кто тебе больше нравится.
 
Последнее редактирование модератором:

SanyaDuizFX

Пользователь
18 Окт 2015
37
0
[quote author=Илья link=topic=328.msg1826#msg1826 date=1445535497]
Чтобы тебе стало понятно: я пытаюсь узнать твой уровень в программировании и твой уровень понимания скрипта lua, чтобы построить дальнейший наш с тобой диалог.

Сдается мне, что ты с программированием на "дрожащее вы" и поэтому, т.к. я все же хочу тебе помочь, мне придется сделать что-то вроде такого же гайда, только для аудитории, не знакомой с программированием (ибо для них то, что там написано, это ад).

Я напишу этот мини гайд в ближайший час, если мои догадки на твой счет верны. Если же нет, то хо-хо, читай вышеуказанный гайд и мы продолжим беседу.
[/quote]Да ты прав я не дружу с программированием, но не много понимаю по этому я сижу на формах и читай как, что сделать, будь добар написать для меня гайд и отписатся когда напишешь.
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Так как я воспринимаю мир через конкретные примеры, то и когда просят объяснить в свободной форме, изъясняю конкретными примерами.

Когда вы создаете свой проект в workshope, в папочке
...\Steam\SteamApps\common\dota 2 beta\game\dota_addons\your_addon\scripts\vscripts
у вас появляется файл с расширением addon_game_mode.lua. Как можно заметить, расширение у него .lua. Это говорит нам о том, что он написан на языке lua, что является скриптовым языком.

Вот его исходное содержание:

Код:
if CAddonTemplateGameMode == nil then
	CAddonTemplateGameMode = class({})
end

function Precache( context )
	--[[
		Precache things we know we'll use. Possible file types include (but not limited to):
			PrecacheResource( "model", "*.vmdl", context )
			PrecacheResource( "soundfile", "*.vsndevts", context )
			PrecacheResource( "particle", "*.vpcf", context )
			PrecacheResource( "particle_folder", "particles/folder", context )
	]]
end

-- Create the game mode when we activate
function Activate()
	GameRules.AddonTemplate = CAddonTemplateGameMode()
	GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
	print( "Template addon is loaded." )
	GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
	if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
		--print( "Template addon script is running." )
	elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
		return nil
	end
	return 1
end

Я могу взять и просто рассказать, что к чему тут, но мне так дико лень разбирать этот мелкий код по деталям , да и есть более простой способ все объяснить.

Что же мы с этим кодом делаем? А вот что:

Код:
function Precache( context )
	--[[
		Precache things we know we'll use. Possible file types include (but not limited to):
			PrecacheResource( "model", "*.vmdl", context )
			PrecacheResource( "soundfile", "*.vsndevts", context )
			PrecacheResource( "particle", "*.vpcf", context )
			PrecacheResource( "particle_folder", "particles/folder", context )
	]]
end


function Activate()

end

УДАЛЯЕМ ДОФИГА ЛИШНЕГО.

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

Так же все, что помещено в блок "--[[ ]]" -так же считается комментарием. Но это супер-пупер коммент, когда вы решили написать стихотворение на полях.

Поэтому, сам компилятор теперь видит лишь это:

Код:
function Precache( context )

end

function Activate()

end

Вот теперь я начну объяснять.
Куски кода вроде этого
Код:
function Precache( context )

end

Называются функцией, или методом, кому как удобно. Начинаются все они в lua с ключевого слова "function", за которым следует название функции, здесь это "Precache" и списком переменных (атрибутов, неизвестных, иероглифов, символов для обозначения чего-либо), которые заключают в круглые скобки. У нас вот, к примеру, в функцию передается какая-то переменная context. Заканчиваются функции ключевым словом "end". Все, что лежит между началом и концом функции - тело функции. Собственно, внутри тела функции и происходит уличная магия.


В данном примере, функция "Precache()" - это вынесенная разработчиками программисту в помощь функция, в которой происходит подгрузка указанных им там моделей. А функция "Activate()" так же вынесенная программисту в помощь функция, которая что-нибудь запускает, что ей скажут.

Что делаем дальше? Дальше можем либо быдлокодить в этом файле, либо постараться сделать свой мод красивее, с точки зрения "прозрачности кода", программиста, программы и т.д.
Мы будем стараться делать красиво. Для этого создаем файл с расширением lua и любым удобным вам именем, например сокращением от имени вашего аддона или же полностью имя вашего аддона. Только без пробелов максимум с подчеркиваниями. Если не знаете как создать файл с расширением lua, то создайте текстовый файл (.txt) и поменяйте ему расширение на .lua.

Допустим, у меня теперь в папочке
...\Steam\SteamApps\common\dota 2 beta\game\dota_addons\your_addon\scripts\vscripts
лежат два файла: "addon_game_mode.lua" и "ForTest.lua"

Что творим дальше? Дальше идем в "addon_game_mode.lua" и меняем его:

Код:
if ForTest == nil then
_G.ForTest = class({})
end


function Precache( context )

end


function Activate()

end

- Что мы сделали?
- Мы сделали так, чтобы наш новый "ForTest.lua" стал восприниматься компилятором, программой.
- А как мы это сделали?
- Очень просто дружок-пирожок, заклинанием

Код:
if ForTest == nil then
	_G.ForTest = class({})
end

- Ой, а что оно делает?
- Оно, мой сладенький, дает пи......й пассажирам вагона и усаживает нашего "ForTest" на свободное место.

В общем, занесли файл в базу глобальных переменных. Забейте, просто надо так писать. Можно и так, по идеи

Код:
if ForTest == nil then
  ForTest = class({})
end

Но я не проверял, работает или нет.

Итак, теперь наш "addon_game_mode.lua" и "ForTest.lua" ходят рядом. Но мы хотим под ручку! Поэтому надо писать это

Код:
require( 'ForTest' )

Без этого компилятор не сможет найти путь к вашему "ForTest.lua". Он как бы о нем слышал, из-за того что мы писали выше, но дороги к нему не знает.
Заклинание "require( )" тоже является функцией, но ее тело уже описано разработчиками. Она просто берет и подключает ваш "ForTest.lua", который обязан лежать в той же папочке, что и "addon_game_mode.lua". Можно и в другую папочку, но тогда надо писать что-то вроде
Код:
require('/другая папочка/ForTest' )

В общем, забейте, мне лень об этом писать.


В итоге, что имеем:

Код:
if ForTest == nil then
	_G.ForTest = class({})
end

require( 'ForTest' )


function Precache( context )

end


function Activate()

end

Теперь они ходят под ручку, ой как здорово!
Теперь давайте залезем в пещеру что мы создали , ForTest.lua.

Файл пустой. Естественно, ведь мы в него ничего не писали. Давайте напишем что-нибудь. Например всеми любимый метод "init":

Код:
function ForTest:InitGameMode()
end


Внимание, внимание, "InitGameMode" - всего лишь имя придуманной нами функции. Можно сделать, например:

Код:
function ForTest:AvadaCedavra()
end

И все так же будет работать. Только в дальнейшем я буду писать "InitGameMode", а вы, если назвали функцию по другому, пишите ее.


Опишем тело нашего метода, например, добавим туда функцию, что выводит что-нибудь в консоль:

Код:
function ForTest:InitGameMode()

print("------------------------------------game init----------------------------------------")	

end

Ути-пути, функция "print()" пишет в консоль то, что в нее помещают. В данном случае в консоли можно будет увидеть "------------------------------------game init----------------------------------------".

Но мы не увидим этого сейчас. Почему? Да потому, что хоть мы и за ручку ходим с "addon_game_mode.lua", она нас все равно не слышит, ибо она глухая на ... . Надо ей записочки разные там оставлять в кармашках. Мы сейчас сделаем одну записочку и тогда наш "ForTest.lua" вдруг заработает:


Код:
if ForTest == nil then
	_G.ForTest = class({})
end

require( 'ForTest' )


function Precache( context )

end


function Activate()
ForTest:InitGameMode()
end

- Ура, вы великолепны.
- Идеальная партия.
- Спасибо, спасибо, хочу передать привет моей маме, моему папе и всем моим родным.

Что мы сделали? Компилятор начинает компилировать. Доходит до нашего "addon_game_mode.lua". По потребностям выполняет в нем метод "Precache" где-то в тот момент, когда грузится ваш loadscreen на экране. Затем берет и запускает функцию "Activate()". И тут мы ему такие "Опа! Чупа-чупса полижи!".
В общем, говорим ему выполнить метод ForTest:InitGameMode().
И он такой: "опа, а что такое "ForTest"? " А мы ему об этом говорим тут:

Код:
if ForTest == nil then
	_G.ForTest = class({})
end

Он такой: "А, да, слышал. А где он спрятался?"

А мы ему об этом как раз тут говорим:
Код:
require( 'ForTest' )

И тогдаааа, он берет и лезет к нам в "ForTest.lua" и спрашивает:

"А где тут у вас InitGameMode() ?"

А мы ему как раз это, уже в "ForTest.lua", сообщаем:


Код:
function ForTest:InitGameMode()

print("------------------------------------game init----------------------------------------")	

end

И тут мы накрываем поляну, устраиваем пирушку, пьем винцо, вы пьете пивко, все довольны, все восхитительны.


Еще раз содержимое обоих файлов:

Код:
if ForTest == nil then
	_G.ForTest = class({})
end

require( 'ForTest' )


function Precache( context )
	--[[
		Precache things we know we'll use. Possible file types include (but not limited to):
			PrecacheResource( "model", "*.vmdl", context )
			PrecacheResource( "soundfile", "*.vsndevts", context )
			PrecacheResource( "particle", "*.vpcf", context )
			PrecacheResource( "particle_folder", "particles/folder", context )
	]]
end


function Activate()
ForTest:InitGameMode()
end


Код:
function ForTest:InitGameMode()

print("------------------------------------game init----------------------------------------")	

end
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Да ты прав я не дружу с программированием, но не много понимаю по этому я сижу на формах и читай как, что сделать, будь добар написать для меня гайд и отписатся когда напишешь.


Все, дальше напишу завтра. Но на основе выше мною изложенного, ты уже можешь сделать выводы, что делать с этим и более менее вникать в это.
 
Последнее редактирование модератором:

SanyaDuizFX

Пользователь
18 Окт 2015
37
0
Так как я воспринимаю мир через конкретные примеры, то и когда просят объяснить в свободной форме, изъясняю конкретными примерами.

Когда вы создаете свой проект в workshope, в папочке у вас появляется файл с расширением addon_game_mode.lua. Как можно заметить, расширение у него .lua. Это говорит нам о том, что он написан на языке lua, что является скриптовым языком.

Вот его исходное содержание:

Код:
if CAddonTemplateGameMode == nil then
    CAddonTemplateGameMode = class({})
end

function Precache( context )
    --[[
        Precache things we know we'll use. Possible file types include (but not limited to):
            PrecacheResource( "model", "*.vmdl", context )
            PrecacheResource( "soundfile", "*.vsndevts", context )
            PrecacheResource( "particle", "*.vpcf", context )
            PrecacheResource( "particle_folder", "particles/folder", context )
    ]]
end

-- Create the game mode when we activate
function Activate()
    GameRules.AddonTemplate = CAddonTemplateGameMode()
    GameRules.AddonTemplate:InitGameMode()
end

function CAddonTemplateGameMode:InitGameMode()
    print( "Template addon is loaded." )
    GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 )
end

-- Evaluate the state of the game
function CAddonTemplateGameMode:OnThink()
    if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then
        --print( "Template addon script is running." )
    elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then
        return nil
    end
    return 1
end

Я могу взять и просто рассказать, что к чему тут, но мне так дико лень разбирать этот мелкий код по деталям , да и есть более простой способ все объяснить.

Что же мы с этим кодом делаем? А вот что:

Код:
function Precache( context )
    --[[
        Precache things we know we'll use. Possible file types include (but not limited to):
            PrecacheResource( "model", "*.vmdl", context )
            PrecacheResource( "soundfile", "*.vsndevts", context )
            PrecacheResource( "particle", "*.vpcf", context )
            PrecacheResource( "particle_folder", "particles/folder", context )
    ]]
end


function Activate()

end

УДАЛЯЕМ ДОФИГА ЛИШНЕГО.

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

Так же все, что помещено в блок "--[[ ]]" -так же считается комментарием. Но это супер-пупер коммент, когда вы решили написать стихотворение на полях.

Поэтому, сам компилятор теперь видит лишь это:

Код:
function Precache( context )

end

function Activate()

end

Вот теперь я начну объяснять.
Куски кода вроде этого
Код:
function Precache( context )

end

Называются функцией, или методом, кому как удобно. Начинаются все они в lua с ключевого слова "function", за которым следует название функции, здесь это "Precache" и списком переменных (атрибутов, неизвестных, иероглифов, символов для обозначения чего-либо), которые заключают в круглые скобки. У нас вот, к примеру, в функцию передается какая-то переменная context. Заканчиваются функции ключевым словом "end". Все, что лежит между началом и концом функции - тело функции. Собственно, внутри тела функции и происходит уличная магия.


В данном примере, функция "Precache()" - это вынесенная разработчиками программисту в помощь функция, в которой происходит подгрузка указанных им там моделей. А функция "Activate()" так же вынесенная программисту в помощь функция, которая что-нибудь запускает, что ей скажут.

Что делаем дальше? Дальше можем либо быдлокодить в этом файле, либо постараться сделать свой мод красивее, с точки зрения "прозрачности кода", программиста, программы и т.д.
Мы будем стараться делать красиво. Для этого создаем файл с расширением lua и любым удобным вам именем, например сокращением от имени вашего аддона или же полностью имя вашего аддона. Только без пробелов максимум с подчеркиваниями. Если не знаете как создать файл с расширением lua, то создайте текстовый файл (.txt) и поменяйте ему расширение на .lua.

Допустим, у меня теперь в папочке лежат два файла: "addon_game_mode.lua" и "ForTest.lua"

Что творим дальше? Дальше идем в "addon_game_mode.lua" и меняем его:

Код:
if ForTest == nil then
_G.ForTest = class({})
end


function Precache( context )

end


function Activate()

end

  • Что мы сделали?
  • Мы сделали так, чтобы наш новый "ForTest.lua" стал восприниматься компилятором, программой.
  • А как мы это сделали?
  • Очень просто дружок-пирожок, заклинанием

Код:
if ForTest == nil then
    _G.ForTest = class({})
end

  • Ой, а что оно делает?
  • Оно, мой сладенький, дает пи......й пассажирам вагона и усаживает нашего "ForTest" на свободное место.

В общем, занесли файл в базу глобальных переменных. Забейте, просто надо так писать. Можно и так, по идеи

Код:
if ForTest == nil then
  ForTest = class({})
end

Но я не проверял, работает или нет.

Итак, теперь наш "addon_game_mode.lua" и "ForTest.lua" ходят рядом. Но мы хотим под ручку! Поэтому надо писать это

Код:
require( 'ForTest' )

Без этого компилятор не сможет найти путь к вашему "ForTest.lua". Он как бы о нем слышал, из-за того что мы писали выше, но дороги к нему не знает.
Заклинание "require( )" тоже является функцией, но ее тело уже описано разработчиками. Она просто берет и подключает ваш "ForTest.lua", который обязан лежать в той же папочке, что и "addon_game_mode.lua". Можно и в другую папочку, но тогда надо писать что-то вроде
Код:
require('/другая папочка/ForTest' )

В общем, забейте, мне лень об этом писать.


В итоге, что имеем:

Код:
if ForTest == nil then
    _G.ForTest = class({})
end

require( 'ForTest' )


function Precache( context )

end


function Activate()

end

Теперь они ходят под ручку, ой как здорово!
Теперь давайте залезем в пещеру что мы создали , ForTest.lua.

Файл пустой. Естественно, ведь мы в него ничего не писали. Давайте напишем что-нибудь. Например всеми любимый метод "init":

Код:
function ForTest:InitGameMode()
end


Внимание, внимание, "InitGameMode" - всего лишь имя придуманной нами функции. Можно сделать, например:

Код:
function ForTest:AvadaCedavra()
end

И все так же будет работать. Только в дальнейшем я буду писать "InitGameMode", а вы, если назвали функцию по другому, пишите ее.


Опишем тело нашего метода, например, добавим туда функцию, что выводит что-нибудь в консоль:

Код:
function ForTest:InitGameMode()

print("------------------------------------game init----------------------------------------")   

end

Ути-пути, функция "print()" пишет в консоль то, что в нее помещают. В данном случае в консоли можно будет увидеть "------------------------------------game init----------------------------------------".

Но мы не увидим этого сейчас. Почему? Да потому, что хоть мы и за ручку ходим с "addon_game_mode.lua", она нас все равно не слышит, ибо она глухая на ... . Надо ей записочки разные там оставлять в кармашках. Мы сейчас сделаем одну записочку и тогда наш "ForTest.lua" вдруг заработает:


Код:
if ForTest == nil then
    _G.ForTest = class({})
end

require( 'ForTest' )


function Precache( context )

end


function Activate()
ForTest:InitGameMode()
end

  • Ура, вы великолепны.
  • Идеальная партия.
  • Спасибо, спасибо, хочу передать привет моей маме, моему папе и всем моим родным.

Что мы сделали? Компилятор начинает компилировать. Доходит до нашего "addon_game_mode.lua". По потребностям выполняет в нем метод "Precache" где-то в тот момент, когда грузится ваш loadscreen на экране. Затем берет и запускает функцию "Activate()". И тут мы ему такие "Опа! Чупа-чупса полижи!".
В общем, говорим ему выполнить метод ForTest:InitGameMode().
И он такой: "опа, а что такое "ForTest"? " А мы ему об этом говорим тут:

Код:
if ForTest == nil then
    _G.ForTest = class({})
end

Он такой: "А, да, слышал. А где он спрятался?"

А мы ему об этом как раз тут говорим:
Код:
require( 'ForTest' )

И тогдаааа, он берет и лезет к нам в "ForTest.lua" и спрашивает:

"А где тут у вас InitGameMode() ?"

А мы ему как раз это, уже в "ForTest.lua", сообщаем:


Код:
function ForTest:InitGameMode()

print("------------------------------------game init----------------------------------------")   

end

И тут мы накрываем поляну, устраиваем пирушку, пьем винцо, вы пьете пивко, все довольны, все восхитительны.


Еще раз содержимое обоих файлов:

Код:
if ForTest == nil then
    _G.ForTest = class({})
end

require( 'ForTest' )


function Precache( context )
    --[[
        Precache things we know we'll use. Possible file types include (but not limited to):
            PrecacheResource( "model", "*.vmdl", context )
            PrecacheResource( "soundfile", "*.vsndevts", context )
            PrecacheResource( "particle", "*.vpcf", context )
            PrecacheResource( "particle_folder", "particles/folder", context )
    ]]
end


function Activate()
ForTest:InitGameMode()
end


Код:
function ForTest:InitGameMode()

print("------------------------------------game init----------------------------------------")   

end
Спасибо хороший гайд лови реп+, Но написать как правельно написать твой код чтоб авто выбор перса был. потому что как я говорил у меня не сработало(помоги а то я такой бред могу написать в game_addon)
 
Последнее редактирование модератором:

Илья

Друзья CG
25 Сен 2015
2,348
41
Чувак, если ты не подключал никакого barebones и не используешь его в своем моде (то есть до моей статьи тут, у тебя был лишь один файл в папке со скриптами и это addon_game_mode.lua), то подумав головой, ты все легко поймешь в моем коде (буквально за пять минут). Кроме того, ты всегда можешь вернуться к исходнику - скопируй его куда и если что, вернешь назад.

Если нет, завтра разъясню, на сегодня все.
 
Реклама: