Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal, então estou com um problema em meu OT este sendo quando eu abro alguma porta (Marrom e amarelo, Gate of Expertise for level X), sempre que eu abro alguma porta deste gênero ela não se fecha mais.

 

Alguém poderia me ajudar ?  :hum:  

Link para o post
Compartilhar em outros sites

data/actions/scripts/other/doors.lua

 

local function checkStackpos(item, position)
position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local thing = getThingFromPos(position)


position.stackpos = STACKPOS_TOP_FIELD
local field = getThingFromPos(position)


return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0)
end


local function doorEnter(cid, item, toPosition)
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition)
end


function onUse(cid, item, fromPosition, itemEx, toPosition)
if(fromPosition.x ~= CONTAINER_POSITION and isPlayerPzLocked(cid) and getTileInfo(fromPosition).protection) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
return true
end


if(getItemLevelDoor(item.itemid) > 0) then
if(item.actionid == 189) then
if(not isPremium(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end


doorEnter(cid, item, toPosition)
return true
end


local gender = item.actionid - 186
if(isInArray({PLAYERSEX_FEMALE,  PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender)) then
if(gender ~= getPlayerSex(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end


doorEnter(cid, item, toPosition)
return true
end


local skull = item.actionid - 180
if(skull >= SKULL_NONE and skull <= SKULL_BLACK) then
if(skull ~= getCreatureSkullType(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end


doorEnter(cid, item, toPosition)
return true
end


local group = item.actionid - 150
if(group >= 0 and group < 30) then
if(group > getPlayerGroupId(cid)) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end


doorEnter(cid, item, toPosition)
return true
end


local vocation = item.actionid - 100
if(vocation >= 0 and vocation < 50) then
local playerVocationInfo = getVocationInfo(getPlayerVocation(cid))
if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return true
end


doorEnter(cid, item, toPosition)
return true
end


if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then
doorEnter(cid, item, toPosition)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
end


return true
end


if(isInArray(specialDoors, item.itemid)) then
if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then
doorEnter(cid, item, toPosition)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
end


return true
end


if(isInArray(keys, item.itemid)) then
if(itemEx.actionid > 0) then
if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then
doTransformItem(itemEx.uid, doors[itemEx.itemid])
return true
end


doPlayerSendCancel(cid, "The key does not match.")
return true
end


return false
end


if(isInArray(horizontalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then
local newPosition = toPosition
newPosition.y = newPosition.y + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
local pzDoorPosition = getTileInfo(doorPosition).protection
local pzNewPosition = getTileInfo(newPosition).protection
if((pzDoorPosition and not pzNewPosition and doorCreature.uid ~= cid) or
(not pzDoorPosition and pzNewPosition and doorCreature.uid == cid and isPlayerPzLocked(cid))) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition)
if(not isInArray(closingDoors, item.itemid)) then
doTransformItem(item.uid, item.itemid - 1)
end
end


return true
end


doTransformItem(item.uid, item.itemid - 1)
return true
end


if(isInArray(verticalOpenDoors, item.itemid) and checkStackpos(item, fromPosition)) then
local newPosition = toPosition
newPosition.x = newPosition.x + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition)
if(not isInArray(closingDoors, item.itemid)) then
doTransformItem(item.uid, item.itemid - 1)
end
end


return true
end


doTransformItem(item.uid, item.itemid - 1)
return true
end


if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then
if(item.actionid == 0) then
doTransformItem(item.uid, doors[item.itemid])
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
end


return true
end


return false
end

Editado por Matsuo (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Eu troquei todo o código porém a porta ainda continua ficando aberta, percebi que o erro ocorre com todas as portas do server. :facepalm:

Link para o post
Compartilhar em outros sites

Eu troquei todo o código porém a porta ainda continua ficando aberta, percebi que o erro ocorre com todas as portas do server. :facepalm:

Qual tfs?

Argon-Online

 

Cast System, Reward System, Flash Client, Support Versão 12.30, All areas, Ferumbras Quest e muito mais...

 

https://www.facebook.com/positiveglobal

Versão: 12.30

________________________________________________________________________________
 

2222.jpg

Link para o post
Compartilhar em outros sites

usa esse :

 

local function checkStackpos(item, position)
position.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local thing = getThingFromPos(position)


position.stackpos = STACKPOS_TOP_FIELD
local field = getThingFromPos(position)


return (item.uid == thing.uid or thing.itemid < 100 or field.itemid == 0)
end


function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getItemLevelDoor(item.itemid) > 0) then
if(item.actionid == 189) then
if(isPremium(cid) ~= TRUE) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return TRUE
end


doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
return TRUE
end


local gender = item.actionid - 186
if(isInArray({PLAYERSEX_FEMALE,  PLAYERSEX_MALE, PLAYERSEX_GAMEMASTER}, gender) == TRUE) then
local playerGender = getPlayerSex(cid)
if(playerGender ~= gender) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return TRUE
end


doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
return TRUE
end


local skull = item.actionid - 180
if(skull >= 0 and skull < 6) then
local playerSkull = getCreatureSkullType(cid)
if(playerSkull ~= skull) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return TRUE
end


doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
return TRUE
end


local group = item.actionid - 150
if(group >= 0 and group < 30) then
local playerGroup = getPlayerGroupId(cid)
if(playerGroup < group) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return TRUE
end


doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
return TRUE
end


local vocation = item.actionid - 100
if(vocation >= 0 and vocation < 50) then
local playerVocationInfo = getVocationInfo(getPlayerVocation(cid))
if(playerVocationInfo.id ~= vocation and playerVocationInfo.fromVocation ~= vocation) then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
return TRUE
end


doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
return TRUE
end


if(item.actionid == 190 or (item.actionid ~= 0 and getPlayerLevel(cid) >= (item.actionid - getItemLevelDoor(item.itemid)))) then
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Only the worthy may pass.")
end


return TRUE
end


if(isInArray(specialDoors, item.itemid) == TRUE) then
if(item.actionid == 100 or (item.actionid ~= 0 and getPlayerStorageValue(cid, item.actionid) > 0)) then
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, toPosition, TRUE)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The door seems to be sealed against unwanted intruders.")
end


return TRUE
end


if(isInArray(keys, item.itemid) == TRUE) then
if(itemEx.actionid > 0) then
if(item.actionid == itemEx.actionid and doors[itemEx.itemid] ~= nil) then
doTransformItem(itemEx.uid, doors[itemEx.itemid])
return TRUE
end


doPlayerSendCancel(cid, "The key does not match.")
return TRUE
end


return FALSE
end


if(isInArray(horizontalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition)) then
local newPosition = toPosition
newPosition.y = newPosition.y + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition, TRUE)
if(isInArray(closingDoors, item.itemid) ~= TRUE) then
doTransformItem(item.uid, item.itemid - 1)
end
end


return TRUE
end


doTransformItem(item.uid, item.itemid - 1)
return TRUE
end


if(isInArray(verticalOpenDoors, item.itemid) == TRUE and checkStackpos(item, fromPosition)) then
local newPosition = toPosition
newPosition.x = newPosition.x + 1
local doorPosition = fromPosition
doorPosition.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE
local doorCreature = getThingfromPos(doorPosition)
if(doorCreature.itemid ~= 0) then
if(getTileInfo(doorPosition).protection and not getTileInfo(newPosition).protection and doorCreature.uid ~= cid) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
else
doTeleportThing(doorCreature.uid, newPosition, TRUE)
if(isInArray(closingDoors, item.itemid) ~= TRUE) then
doTransformItem(item.uid, item.itemid - 1)
end
end


return TRUE
end


doTransformItem(item.uid, item.itemid - 1)
return TRUE
end


if(doors[item.itemid] ~= nil and checkStackpos(item, fromPosition)) then
if(item.actionid == 0) then
doTransformItem(item.uid, doors[item.itemid])
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is locked.")
end


return TRUE
end


return FALSE
end

Link para o post
Compartilhar em outros sites

0.4 DEV  ;D

 

@Matsuo problema ainda está persistindo  :hum:

Editado por Back Man (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

olha vc mudo algo em movements.xml?

 

umas tags desse tipo?

<movevent type="StepIn" itemid="12195" event="script" value="walkback.lua"/>

tente trocar seu walkback

local SPECIAL_QUESTS = {2001}

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
    local container = isContainer(item.uid)
    if((container and not isInArray(SPECIAL_QUESTS, item.actionid) and
        item.uid > 65535) or (fromPosition.x ~= 0 and getTileInfo(fromPosition).floorChange[9])
        or (not container and getTileInfo(position).creatures <= 1)) then
        return true
    end

    if(lastPosition.x == 0) then -- player just logged in
        lastPosition = getTownTemplePosition(getPlayerTown(cid))
        doSendMagicEffect(lastPosition, CONST_ME_TELEPORT)
    end

    doTeleportThing(cid, lastPosition, true)
    return true
end

na lib 000-constant tem as doors lá?

Editado por alissonfgp (veja o histórico de edições)

Argon-Online

 

Cast System, Reward System, Flash Client, Support Versão 12.30, All areas, Ferumbras Quest e muito mais...

 

https://www.facebook.com/positiveglobal

Versão: 12.30

________________________________________________________________________________
 

2222.jpg

Link para o post
Compartilhar em outros sites

Bom, como o problema persistia e não queria incomodar mais vocês eu acabei trocando de servidor e importando o mapa e algumas outras coisas, o problema só foi resolvido trocando de servidor.

 

Obrigado pela ajuda de vocês !

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo