- 20 Сен 2014
- 440
- 1
- Проект
- Survival in Taiga XE
Скрипт вызывает срабатывание абилки если значение ~= 0 но для работы нужно прописать значение player которые вызывает CheckFood, проблема в том что когда я присваиваю
(менял keys на event и убирал его и применял в функции "spawn", эффект тот же)
скрипт пишет ошибку в данной строке и не понимает откуда здесь caster пробовал его убирать и прописывать
Вот исходники, что делать ?
Хочу сделать так что бы абилка срабатывала когда кол-во еды = 0 (food)
на данный момент скрипт работает без проверки на кол-во еды, вызывает абилку и применяет её, но теперь как то надо сделать проверку на еду
для function Abbitfood надо прописать SpendFood(player, food_cost) как я упомянул выше что скрипт ругается на player не видит его
(менял keys на event и убирал его и применял в функции "spawn", эффект тот же)
Код:
local player = keys.caster:GetPlayerOwner()
local pID = keys.player:GetPlayerID()
local caster = keys.caster
local ability = keys.ability
скрипт пишет ошибку в данной строке и не понимает откуда здесь caster пробовал его убирать и прописывать
Код:
local enough_food = thisEntity:GetPlayerID() / thisEntity:GetPlayerOwner()
Код:
function Spawn( event )
for i=0, thisEntity:GetAbilityCount()-1 do
if thisEntity:GetAbilityByIndex(i) ~= nil then
thisEntity:RemoveAbility(thisEntity:GetAbilityByIndex(i):GetName())
end
end
for i=1, table.getn(NO_MENU_ABILITIES) do
thisEntity:AddAbility(NO_MENU_ABILITIES[i])
end
ability = thisEntity:FindAbilityByName("hunger_aura_food")
thisEntity:SetContextThink( "Abbitfood", Abbitfood , 1)
InitAbilities(thisEntity)
end
Код:
function Abbitfood()
local food_cost = ability:GetLevelSpecialValueFor("food_cost", ability:GetLevel()-1)
local enough_food
if food_cost ~= nil and food_cost ~= 0 then
enough_food = CheckFood(player, food_cost,true)
else
enough_food = true
end
if enough_food ~= 0 then
if ability:IsFullyCastable() then
thisEntity:CastAbilityNoTarget(ability, -1)
SpendFood(player, food_cost)
end
end
return 1
end
Хочу сделать так что бы абилка срабатывала когда кол-во еды = 0 (food)
на данный момент скрипт работает без проверки на кол-во еды, вызывает абилку и применяет её, но теперь как то надо сделать проверку на еду
Код:
function Spawn( event )
for i=0, thisEntity:GetAbilityCount()-1 do
if thisEntity:GetAbilityByIndex(i) ~= nil then
thisEntity:RemoveAbility(thisEntity:GetAbilityByIndex(i):GetName())
end
end
for i=1, table.getn(NO_MENU_ABILITIES) do
thisEntity:AddAbility(NO_MENU_ABILITIES[i])
end
ability = thisEntity:FindAbilityByName("hunger_aura_food")
thisEntity:SetContextThink( "Abbitfood", Abbitfood , 1)
InitAbilities(thisEntity)
end
Код:
function Abbitfood()
local food_cost = ability:GetLevelSpecialValueFor("food_cost", ability:GetLevel()-1)
local enough_food
if food_cost ~= nil and food_cost ~= 0 then
enough_food = CheckFood(player, food_cost,true)
else
enough_food = true
end
if enough_food ~= true then
return
else
if ability:IsFullyCastable() then
thisEntity:CastAbilityNoTarget(ability, -1)
end
end
return 1
end
Последнее редактирование модератором: