Как обнулить уровень игрока или снизить его?

  • Автор темы Автор темы Danis
  • Дата начала Дата начала
  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

Danis

Продвинутый
12 Июн 2016
285
0
Проект
Custom Hero Arena
Знает кто как это реализовать?
При добавлении отрицательного опыта игра вылетает.
 
Знает кто как это реализовать?
При добавлении отрицательного опыта игра вылетает.
Илья пару месяцев назад задавал такой же вопрос, выхода кроме замены героя на нового не нашли вроде.
 
Последнее редактирование модератором:
На тот момент да. На текущий хз, может что-то новое и появилось.
Вот тут я делал сброс уровня игроку.

Ток смотри, там надо еще удалять прошлого героя, чего я тогда почему-то не делал.
 
По идеи RemoveSelf(), однако я открыл еще один свой проект, не такой старый: три месяца назад делал. И там тоже нет удаления:

Код:
function ResetLevel(data)
	local caster = data.caster
	local ability = nil
  local point = nil
	local item = nil
	local first = 0
	
	for i = 0, 5 do
		item = caster:GetItemInSlot(i)
		if item ~= nil then
			if item:GetAbilityName() == "item_oblivion_print" and first == 0 then
				caster:RemoveItem(item)
				first = 1
			end
		end
	end

	caster = PlayerResource:ReplaceHeroWith(caster:GetPlayerID(), caster:GetName(), caster:GetGold(), 0)
	caster:SetAbilityPoints(1)

	data.caster:AddNoDraw()
	data.caster = caster

  if caster:GetTeamNumber() == 2 then
  	point = Vector(-6409,-11192,128)
  else
  	point = Vector(11008,10624,128)
  end

  caster:SetAbsOrigin(point) 
	FindClearSpaceForUnit(caster, point, false) 
	caster:Stop()

	PlayerResource:SetCameraTarget(caster:GetPlayerOwnerID(),caster)
	GameRules:GetGameModeEntity():SetContextThink(string.format("CameraThink_%d", caster:GetPlayerOwnerID()), 
	function()
		PlayerResource:SetCameraTarget(caster:GetPlayerOwnerID(), nil)	
	return nil
	end,
	1)

end

Без понятия, почему я этого не делал. Однако в памяти лежит, что где-то делал. Посмотришь сам, может с Remove что-то не так.
 
Последнее редактирование модератором:
Знает кто как это реализовать?
При добавлении отрицательного опыта игра вылетает.
Выходит если набивать опыт в минус то это менять героя и давать ему колво опыта, кек
 
Последнее редактирование модератором:
Реклама: