Простые вопросы

Статус
В этой теме нельзя размещать новые ответы.
Я не понял твою ошибку, да и вообще в чем суть кода? Периодически давать голду всем игрокам?
 
1. Городим xуйню на ДД.
2. Отвергаем предложения сделать нормально на луа.
3. Жалуемся что у нас работает не так как нужно.
4. ???.
5. Profit
 
У тебя опыт дается всем в радиусе 90000 от каждого кастера столько раз сколько есть юнитов под аурой
 
У тебя опыт дается всем в радиусе 90000 от каждого кастера столько раз сколько есть юнитов под аурой
И как исправить? (Есть вариант сделать 9 разных юнитов и абилок но хз сработает или нет)
 
Последнее редактирование модератором:
Я не понял твою ошибку, да и вообще в чем суть кода? Периодически давать голду всем игрокам?
Да, за каждый захваченный форт игроку раз в минуту дают голду
 
Последнее редактирование модератором:
Не бойся ты lua - это очень простой язык скриптовой. Потратишь недельку-другую на его приемлемое освоение, а то и меньше. Зато сможешь затем с легкостью реализовывать нестандартные для дд вещи.

Например для твоих фортов: создаешь таймер, что от начала игры периодически раздает голду и опыт исходя из данных таблицы, в которой как раз и будешь хранить принадлежность форта к той или иной тиме. А фортам сделаешь пассивки, что при их захвате (OnDominated) будут запускать скрипт, который будет менять данные в таблице.

Ну или если вариант с пассивкой реализовать нельзя, то попросту так же таймером проверяешь кому принадлежит тот или иной форт. Так тебе вообще не придется что-либо в таблице хранить, но будут небольшие задержки в отработке из-за таймера.
 
Ну можно например давать голду не всем героям подряд, а только владельцу баффа. Но это очень сложная механика.
 
@ DD слишком простой!
@ LUA СЛИШКОМ ПРОСТОЙ!
@ C++ ДЛЯ ИДИОТОВ
@ ASM, йееееееееееееееееееее
 
Крч на костылях сделал пока что, потом мб исправлю.
Код:
function Givegoldability(data)
local hero = data.activator

if hero:FindAbilityByName("gold_per_fort") == nil then
	hero:AddAbility("gold_per_fort")
	local ability = hero:FindAbilityByName("gold_per_fort")
	ability:SetLevel(1)
end
end
Код:
"gold_fort"
	{
		"BaseClass"     			  "ability_datadriven"
		"AbilityBehavior"					"DOTA_ABILITY_BEHAVIOR_PASSIVE"
		"AbilityUnitTargetTeam" "DOTA_UNIT_TARGET_TEAM_FRIENDLY"
		"AbilityTextureName"			"gold"

		"Modifiers"
		{
			"modifier_dota_ability_xp_granter"
			{
				"IsHidden"				"1"
				"Passive"				"1"
				"Attributes" 		"MODIFIER_ATTRIBUTE_MULTIPLE"
				"TextureName"	"gold"
								
				"Aura"					"modifier_get_xp"
				"Aura_Radius"			"90000"
				"Aura_Teams"			"DOTA_UNIT_TARGET_TEAM_FRIENDLY"
				"Aura_Types"			"DOTA_UNIT_TARGET_HERO"
				"Aura_ApplyToCaster"	"0"
				"Aura_Flags"  		"DOTA_UNIT_TARGET_FLAG_NOT_ILLUSIONS"
			}
			"modifier_dota_ability_xp_granter2"
			{
				"IsHidden"				"1"
				"Passive"				"1"
				"TextureName"	"gold"
								
				"Aura"					"modifier_get_xp_stack"
				"Aura_Radius"			"90000"
				"Aura_Teams"			"DOTA_UNIT_TARGET_TEAM_FRIENDLY"
				"Aura_Types"			"DOTA_UNIT_TARGET_HERO"
				"Aura_ApplyToCaster"	"0"
				"Aura_Flags"  		"DOTA_UNIT_TARGET_FLAG_NOT_ILLUSIONS"
			}

			"modifier_get_xp"
			{
				"Passive"    "0"
				"IsHidden"				"1"
				"Attributes" 		"MODIFIER_ATTRIBUTE_MULTIPLE"
				"TextureName"	"gold"
				"EffectName"	""
			}
			"modifier_get_xp_stack"
			{
				"Passive"    "0"
				"TextureName"	"gold"
				"EffectName"	""
				
				"ThinkInterval"	"1.0"
				"OnIntervalThink"
				{
					"RunScript"
					{
						"ScriptFile"	"xp_stack.lua"
						"Function"		"Getxpstack"
						"Target"
						{
							"Center"		"CASTER"
							"radius"		"90000"
							"Types"			"DOTA_UNIT_TARGET_HERO"
							"Flags"			"DOTA_UNIT_TARGET_FLAG_NOT_ILLUSIONS"
						}
					}
				}
				
			}
		}
	}
	
	"gold_per_fort"
		{
			// General
			//-------------------------------------------------------------------------------------------------------------
			"BaseClass"				"ability_datadriven"
			"AbilityBehavior"				"DOTA_ABILITY_BEHAVIOR_PASSIVE | DOTA_ABILITY_BEHAVIOR_HIDDEN"
			"SpellImmunityType"				"SPELL_IMMUNITY_ENEMIES_YES"
			"AbilityTextureName"			"gold"
			"MaxLevel"						"1"
			
			// Time		
			//-------------------------------------------------------------------------------------------------------------
			"AbilityCooldown"				"60.0"
		
			"Modifiers"
			{
				"modifier_gold_per_fort"
				{
					"Passive" "1"
					"IsHidden"	"1"
	
					"ThinkInterval" "0.5"
					"OnIntervalThink"
					{
						"RunScript"
						{
							"ScriptFile"	"xp_stack.lua"
							"Function"		"Getexpandgold"
						}
					}
				}
			}
		}
Код:
function Getxpstack(keys)
local target = keys.target
local modifier = target:FindModifierByName("modifier_get_xp_stack")
local modifierCount = target:GetModifierCount() 
local currentStack = 0 

  for i = 0, modifierCount do
    modifierName = target:GetModifierNameByIndex(i) 

    if modifierName == "modifier_get_xp" then 
      currentStack = currentStack + 1
		  modifier:SetStackCount(currentStack)
    end
	end
end

function Getexpandgold(keys)

	local caster = keys.caster
	local ability = keys.ability
	local casterGold = caster:GetGold()
	local cooldown = ability:GetCooldown(ability:GetLevel() - 1)
		
	local modifierCount = caster:GetModifierCount() 
	local currentStack = 0
	
	if ability:IsCooldownReady() then
	
		for i = 0, modifierCount do
			modifierName = caster:GetModifierNameByIndex(i) 

			if modifierName == "modifier_get_xp" then 
				currentStack = currentStack + 1
			end
		end
		
		caster:ModifyGold(120 * currentStack, true, 0)
		caster:AddExperience(60 * currentStack, false, false)
		ability:StartCooldown(cooldown)
	end
end
 
Последнее редактирование модератором:
Если ты сам писал этот код, то тебе тем более уже проще будет адаптироваться под lua.

Просто сядь и сделай на досуге любой модификатор на lua. Поймешь, как это просто и сразу же захочешь по нормальному переделать свою систему.
 
Какая функция/ метод рандомит в луа ?
Как сделать , чтобы мобы использовали абилки / предметы.
Как настроить сложность игры ?
 
А в кастомках что, отключили рекомендации по предметам? Заметил у себя, попрыгал по чужим - нигде нету.
 
Блин, фигово, они в моем режиме очень важны были. А то без этого всякую дичь собирают, т.к. не знают, что нужно.
 
Какая функция/ метод рандомит в луа ?
Как сделать , чтобы мобы использовали абилки / предметы.
Как настроить сложность игры ?

Про рандом тебе ответили.
Про второй вопрос - самое простое это блок creature (поищи о нем). А так каждый свой ИИ пишет.
А третье - ну как бы ручками самостоятельно. Не очень понятно, что ты вообще подразумеваешь.
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Реклама: