Ir para conteúdo
  • 0

ONMOVEITEM TO CONTAINER... TFS 1.2


Pergunta

Olá, estou tentando cancelar que o player mova itens para o SHOP INBOX...

 

O maximo que fiz foi deixar ele sem enviar mas tambem nao consegue tirar e ficava dando erro na distro... alguém pode me auxiliar? está comentado no codigo onde eu estava tentando.. OBS: É NO ARQUIVO DATA/EVENTS/SCRIPTS/PLAYER.LUA

 

 

 

 

 

 

 

 

 

local blockTeleportTrashing = truefunction Player:onBrowseField(position)    return trueendfunction Player:onLook(thing, position, distance)    local description = ''    if thing:isItem() then        if thing.actionid == 5640 then            description = description .. 'a honeyflower patch.'        elseif thing.actionid == 5641 then            description = description .. 'a banana palm.'        else            description = description .. thing:getDescription(distance)        end    else        description = description .. thing:getDescription(distance)    end            if thing:isCreature() and thing:isPlayer() then        thing:sendTextMessage(MESSAGE_EVENT_ORANGE, "" .. self:getName() .. " acabou de dar look em voce!")            --description = string.format('%s\nIP: %s.', description, Game.convertIpToString(thing:getIp()))        end        if self:getGroup():getAccess() then        if thing:isItem() then            description = string.format('%s\nItem ID: %d', description, thing.itemid)            local actionId = thing.actionid            if actionId ~= 0 then                description = string.format('%s, Action ID: %d', description, actionId)            end            local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)            if uniqueId > 0 and uniqueId < 65536 then                description = string.format('%s, Unique ID: %d', description, uniqueId)            end            description = description .. '.'            local itemType = thing:getType()            local transformEquipId = itemType:getTransformEquipId()            local transformDeEquipId = itemType:getTransformDeEquipId()            if transformEquipId ~= 0 then                description = string.format('%s\nTransforms to: %d (onEquip)', description, transformEquipId)            elseif transformDeEquipId ~= 0 then                description = string.format('%s\nTransforms to: %d (onDeEquip)', description, transformDeEquipId)            end            local decayId = itemType:getDecayId()            if decayId ~= -1 then                description = string.format('%s\nDecays to: %d', description, decayId)            end        elseif thing:isCreature() then            local str = '%s\nHealth: %d / %d'            if thing:getMaxMana() > 0 then                str = string.format('%s, Mana: %d / %d', str, thing:getMana(), thing:getMaxMana())            end            description = string.format(str, description, thing:getHealth(), thing:getMaxHealth()) .. '.'        end        local position = thing:getPosition()        description = string.format(            '%s\nPosition: %d, %d, %d',            description, position.x, position.y, position.z        )        if thing:isCreature() and thing:isPlayer() then            --description = string.format('%s\nIP: %s.', description, Game.convertIpToString(thing:getIp()))        end    end        self:sendTextMessage(MESSAGE_INFO_DESCR, description)endfunction Player:onLookInBattleList(creature, distance)    local description = 'You see ' .. creature:getDescription(distance)            if creature:isCreature() and creature:isPlayer() then        creature:sendTextMessage(MESSAGE_EVENT_ORANGE, "" .. self:getName() .. " acabou de dar look em voce!")            --description = string.format('%s\nIP: %s.', description, Game.convertIpToString(thing:getIp()))        end    if self:getGroup():getAccess() then        local str = '%s\nHealth: %d / %d'        if creature:getMaxMana() > 0 then            str = string.format('%s, Mana: %d / %d', str, creature:getMana(), creature:getMaxMana())        end        description = string.format(str, description, creature:getHealth(), creature:getMaxHealth()) .. '.'        local position = creature:getPosition()        description = string.format('%s\nPosition: %d, %d, %d',description, position.x, position.y, position.z)        if creature:isPlayer() then            --description = string.format('%s\nIP: %s.', description, Game.convertIpToString(creature:getIp()))        end    end        self:sendTextMessage(MESSAGE_INFO_DESCR, description)endfunction Player:onLookInTrade(partner, item, distance)    self:sendTextMessage(MESSAGE_INFO_DESCR, 'You see ' .. item:getDescription(distance))endfunction Player:onLookInShop(itemType, count)    return trueendfunction Player:onMoveItem(item, count, fromPosition, toPosition)    if blockTeleportTrashing and toPosition.x ~= CONTAINER_POSITION then        local thing = Tile(toPosition):getItemByType(ITEM_TYPE_TELEPORT)        if thing then                    self:sendCancelMessage('Sorry, not possible.')            self:getPosition():sendMagicEffect(CONST_ME_POFF)            return false        end                if toPosition.x == 65535 or Tile(toPosition):getItemCount() <= 500 then                return true    else           self:sendCancelMessage('Sorry, not possible.')            return false       end                    end    -- local containerId = toPosition.x - 64    -- local container = self:getContainerById(containerId) -- local itemId = container:getId()        -- if itemId == ITEM_STORE_INBOX or itemId == ITEM_STORE_INBOX then           -- self:sendCancelMessage('Sorry, not possible.')           -- return false       -- end       -- Players cannot throw items on teleports if set to true           if isInArray({1714, 1715, 1716, 1717, 1738, 1740, 1741, 1747, 1748, 1749}, item.itemid) and item.actionid > 0 or item.actionid == 5640 then        self:sendCancelMessage('You cannot move this object.')        return false    elseif item.itemid == 7466 then        self:sendCancelMessage('You cannot move this object.')        return false    end        -- if toPosition.x == Container(toPosition):getContainerById(26052) then-- --    if toPosition.x ~= CONTAINER_POSITION and toCylinder and toCylinder:getId() == 26052 then        -- self:sendCancelMessage(RETURNVALUE_NOTPOSSIBLE)        -- return false        -- else            -- return true    --end        if fromPosition.x == CONTAINER_POSITION and toPosition.x == CONTAINER_POSITION            and item.itemid == 8710 and self:getItemCount(8710) == 2 and self:getStorageValue(Storage.RookgaardTutorialIsland.cockroachLegsMsgStorage) ~= 1 then        self:sendTextMessage(MESSAGE_INFO_DESCR, 'Well done, you have enough cockroach legs! You should head back to Santiago with them. Climb the ladder to the north to exit.')        self:setStorageValue(Storage.RookgaardTutorialIsland.cockroachLegsMsgStorage, 1)        self:setStorageValue(Storage.RookgaardTutorialIsland.SantiagoNpcGreetStorage, 6)    end    return trueendfunction Player:onMoveCreature(creature, fromPosition, toPosition)    return trueendfunction Player:onTurn(direction)    return trueendfunction Player:onTradeRequest(target, item)    if isInArray({1738, 1740, 1747, 1748, 1749, 8766}, item.itemid) and item.actionid > 0 or item.actionid == 5640 then        self:sendCancelMessage('Sorry, not possible.')        return false    end    return trueendfunction Player:onTradeAccept(target, item, targetItem)    return trueendlocal soulCondition = Condition(CONDITION_SOUL, CONDITIONID_DEFAULT)soulCondition:setTicks(4 * 60 * 1000)soulCondition:setParameter(CONDITION_PARAM_SOULGAIN, 1)local function useStamina(player)    local staminaMinutes = player:getStamina()    if staminaMinutes == 0 then        return    end    local playerId = player:getId()    local currentTime = os.time()    local timePassed = currentTime - nextUseStaminaTime[playerId]    if timePassed <= 0 then        return    end    if timePassed > 60 then        if staminaMinutes > 2 then            staminaMinutes = staminaMinutes - 2        else            staminaMinutes = 0        end        nextUseStaminaTime[playerId] = currentTime + 120    else        staminaMinutes = staminaMinutes - 1        nextUseStaminaTime[playerId] = currentTime + 60    end    player:setStamina(staminaMinutes)endfunction Player:onGainExperience(source, exp, rawExp)    if not source or source:isPlayer() then        return exp    end    -- Soul regeneration    local vocation = self:getVocation()    if self:getSoul() < vocation:getMaxSoul() and exp >= self:getLevel() then        soulCondition:setParameter(CONDITION_PARAM_SOULTICKS, vocation:getSoulGainTicks() * 1000)        self:addCondition(soulCondition)    end    -- Apply experience stage multiplier    exp = exp * Game.getExperienceStage(self:getLevel())    -- Stamina modifier    if configManager.getBoolean(configKeys.STAMINA_SYSTEM) then        useStamina(self)        local staminaMinutes = self:getStamina()        if staminaMinutes > 2400 and self:isPremium() then            exp = exp * 1.5        elseif staminaMinutes <= 840 then            exp = exp * 0.5        end    endif self:getStorageValue(20000) >= -99 then    exp = exp*2endif self:getStorageValue(20000) == 1 then    exp = exp*2end--exp = exp*2 --AKI    return expendfunction Player:onLoseExperience(exp)    return expendfunction Player:onGainSkillTries(skill, tries)    if APPLY_SKILL_MULTIPLIER == false then        return tries    end    if skill == SKILL_MAGLEVEL then        return tries * configManager.getNumber(configKeys.RATE_MAGIC)    end    return tries * configManager.getNumber(configKeys.RATE_SKILL)end
 

OBS: ARRUMEI, APENAS TROQUEI A FUNÇÃO PARA Player:onMoveItem(item, count, fromPosition, toPosition, fromCylinder, toCylinder)

 

e pra nao mover usei isso: Se alguem precisar também..

 

 if toPosition.x == CONTAINER_POSITION and toCylinder and toCylinder:getId() == 26052 then        self:sendCancelMessage('Voce nao pode mover itens para o SHOP INBOX.')        return false        else        return true    end

 

Editado por Cleberadm
Link para o comentário
https://xtibia.com/forum/topic/242191-onmoveitem-to-container-tfs-12/
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

×
×
  • Criar Novo...