T
Tibia Demon
Guest
i made mistake checking table again
i made this script player should use levers with actionid 5009 in different positions around map
1 if player use lever he didnt use before it send teleport effect and add storage
2 if player use lever he clicked before it send poff effect
3 when player used all levers it and try reuse any lever again it add one last storage more
4 when player used all levers and got last storage too and try reuse any lever again it send poff effect
i need all 4 check pls no remove any i use later for missions
it was working i think i made mistake with end or return true
i explained with tag too in script
i will add sendTextMessage later for next mission i wait friend translate
i made this script player should use levers with actionid 5009 in different positions around map
1 if player use lever he didnt use before it send teleport effect and add storage
2 if player use lever he clicked before it send poff effect
3 when player used all levers it and try reuse any lever again it add one last storage more
4 when player used all levers and got last storage too and try reuse any lever again it send poff effect
i need all 4 check pls no remove any i use later for missions
it was working i think i made mistake with end or return true
i explained with tag too in script
i will add sendTextMessage later for next mission i wait friend translate
Lua:
local Mission3Lever = Action()
local LeverAID = 5009
local kickPosition = Position(1070, 1225, 7)
local LastLeverStorage = PlayerStorageKeys.lastleverstorage -- storage to add after used all levers but have to reuse 1 time more
local LeverMission3Table = {
{
leverstorage = PlayerStorageKeys.leverstorage1, -- storage to add to player
leverpos = Position(1070, 1109, 7)
},
{
leverstorage = PlayerStorageKeys.leverstorage2, -- storage to add to player
leverpos = Position(1087, 1115, 7)
},
{
leverstorage = PlayerStorageKeys.leverstorage3 -- storage to add to player
leverpos = Position(1098, 1120, 7)
}
}
function Mission3Lever.onUse(player, item, fromPosition, target, toPosition, isHotkey)
local hasAllStorages = true
for v, k in pairs(LeverMission3Table) do
if player:getStorageValue(k.leverstorage) ~= 1 then
hasAllStorages = false
end
local tile = Tile(k.leverpos)
if not tile then
return true
end
if toPosition == k.leverpos then
if player:getStorageValue(k.leverstorage) ~= 1 then -- here when player didnt use all levers so it add lever storage by checking lever position in table
player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
player:setStorageValue(k.leverstorage, 1)
toPosition:sendMagicEffect(CONST_ME_TELEPORT)
player:teleportTo(kickPosition)
elseif not hasAllStorages and player:getStorageValue(k.leverstorage) == 1 then -- here when player try to use same lever he already done used before
toPosition:sendMagicEffect(CONST_ME_POFF)
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:teleportTo(kickPosition)
end
elseif hasAllStorages and player:getStorageValue(LastLeverStorage) == 1 then -- here when used all lever in map and gained (LastLeverStorage) so it only kick with poff effect
toPosition:sendMagicEffect(CONST_ME_POFF)
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:teleportTo(kickPosition)
elseif hasAllStorages and player:getStorageValue(LastLeverStorage) ~= 1 then -- here when used all lever in map but need to use any lever of them one more time to gain (LastLeverStorage) i need LastLeverStorage for other missions
player:setStorageValue(LastLeverStorage, 1)
toPosition:sendMagicEffect(CONST_ME_POFF)
player:getPosition():sendMagicEffect(CONST_ME_POFF)
player:teleportTo(kickPosition)
end
end
return true
end
Mission3Lever:aid(LeverAID)
Mission3Lever:register()