Помогите оптимизировать код

den4iccc

Друзья CG
20 Сен 2014
440
1
Проект
Survival in Taiga XE
При использовании абилки предметы из инвентаря дропаются рядом с игроком как и задуманно, ешё если в инвентаре есть определённый предмет то все предметы не дропаются проблема в этом, как сделать проверку только для одного предмета что бы допустим при использовании дропались все предметы кроме одного который лежит в инвентаре

Код:
function Drop(keys)
	local player = keys.caster:GetPlayerOwner()
	local pID = player:GetPlayerID()
   local caster = keys.caster
  local point = keys.target_points[1]
    local itemsToDrop = {}
  for i=0,5 do
    local item = caster:GetItemInSlot(i)
      if item then
      table.insert(itemsToDrop, item)
    end
  end
	
  if caster:HasItemInInventory("item_meat") then return
	else
  local itemCount = #itemsToDrop
	
     if itemCount > 0 then
    local origin = caster:GetAbsOrigin()
    local rotate_pos = point + Vector(1,0,0) * 50
    local angle = 360 / itemCount
    for k,item in pairs(itemsToDrop) do
      local position = RotatePosition(point, QAngle(0, angle*k, 0), rotate_pos)
          caster:DropItemAtPositionImmediate(item, origin)
    end
  end
end
end
 
Последнее редактирование модератором:
Блин, ден, у тебя такие вопросы, просто бери и вешайся. Ты как будто сидел за моддингом всю ночь, а теперь голова отключилась и ты перед отдыхом скидываешь оставшиеся загагулины, но после отдыха ты сам на них легко ответишь.

Код:
  local itemsToDrop = {}
  for i=0,5 do
    local item = caster:GetItemInSlot(i)
      if item then
      table.insert(itemsToDrop, item)
    end
  end

Вот тут не включай в список свою эту уникальную не дропающуюся вещь и все, нет проблем.
 
Код:
  if caster:HasItemInInventory("item_meat") then return

Вот тут ты как раз и говоришь коду: не дропай мне ничего, если у меня есть эта шмотка.
Просто не заноси её в список дропа. Делай там выше проверку в духе :

Код:
if not item:GetAbilityName() == "item_meat" then
table.insert(itemsToDrop, item)
end
 
Последнее редактирование модератором:
Эт я к тому, чтобы ты не переутруждался. А то уже раза три за последний месяц ты заходишь на форум, задаешь подобный вопрос, сам же на него отвечаешь на следующий день. Я за людей с головой всегда переживаю в таких ситуациях.
 
Эт я к тому, чтобы ты не переутруждался. А то уже раза три за последний месяц ты заходишь на форум, задаешь подобный вопрос, сам же на него отвечаешь на следующий день. Я за людей с головой всегда переживаю в таких ситуациях.
ахха да не у меня прост бошка не варит слишком много уделяю времени
 
Последнее редактирование модератором:
да я чё пришёл домой часа 4 попилил проект сходил покурил погулял и опять сел делать почти каждый день)
 
Реклама: