Postado Setembro 26, 2017 7 anos Ola tk, hoje venho pedir ajuda com 2 scripts, creio eu que um deles seja simples, vamos la. Script 1: Precisava de um script onde somente um Royal paladin possa passar em uma porta, e apenas se ele tiver assassin full. Script 2 : Um script onde somente jogadores Premium Account possam abrir portas que tenham esse script. Agradeço desde ja
Postado Setembro 27, 2017 7 anos Em actions/scripts: premiumdoor.lua Spoiler function onUse(player, item, fromPosition, target, toPosition, isHotkey) local itemId = item:getId() if not player:isPremium() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Only premium players can pass.") return true end if table.contains(horizontalOpenDoors, itemId) or table.contains(verticalOpenDoors, itemId) then local doorCreature = Tile(toPosition):getTopCreature() if doorCreature ~= nil then toPosition.x = toPosition.x + 1 local query = Tile(toPosition):queryAdd(doorCreature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING)) if query ~= RETURNVALUE_NOERROR then toPosition.x = toPosition.x - 1 toPosition.y = toPosition.y + 1 query = Tile(toPosition):queryAdd(doorCreature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING)) end if query ~= RETURNVALUE_NOERROR then player:sendTextMessage(MESSAGE_STATUS_SMALL, query) return true end doorCreature:teleportTo(toPosition, true) end if not table.contains(openSpecialDoors, itemId) then item:transform(itemId - 1) end return true else item:transform(itemId + 1) player:teleportTo(toPosition, true) end return true end No actions.xml: <action actionid="900" script="premiumdoor.lua"/> -- É só colocar o actionid 900 na porta addondoor.lua Spoiler local vocId = 1 -- id da vocação local outfit = {[0] = 111, [1] = 222} -- [sexo] = lookType -> coloque o lookType correto function onUse(player, item, fromPosition, target, toPosition, isHotkey) local itemId = item:getId() if player:getVocation():getId() ~= vocId then player:sendCancelMessage("Your vocation is not allowed to pass.") return true end if (not player:hasOutfit(outfit[player:getSex()], 3)) then player:sendCancelMessage("You don't have assassin full addon.") return true end if table.contains(horizontalOpenDoors, itemId) or table.contains(verticalOpenDoors, itemId) then local doorCreature = Tile(toPosition):getTopCreature() if doorCreature ~= nil then toPosition.x = toPosition.x + 1 local query = Tile(toPosition):queryAdd(doorCreature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING)) if query ~= RETURNVALUE_NOERROR then toPosition.x = toPosition.x - 1 toPosition.y = toPosition.y + 1 query = Tile(toPosition):queryAdd(doorCreature, bit.bor(FLAG_IGNOREBLOCKCREATURE, FLAG_PATHFINDING)) end if query ~= RETURNVALUE_NOERROR then player:sendTextMessage(MESSAGE_STATUS_SMALL, query) return true end doorCreature:teleportTo(toPosition, true) end if not table.contains(openSpecialDoors, itemId) then item:transform(itemId - 1) end return true else item:transform(itemId + 1) player:teleportTo(toPosition, true) end return true end Em actions.xml: <action actionid="750" script="addondoor.lua"/> -- É só colocar o actionid 750 na porta Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Setembro 27, 2017 7 anos Autor Muito obrigado @Dwarfer, o da porta do addon funcionou perfeitamente. Já o da Premium não funcionou, talvez pode ser pela tfs?? uso a 3.7, e queria saber também se o script tem como ser uniqueid(pra poder colocar em portas de com level) Agradeço a ajuda, Reputado ;p Editado Setembro 27, 2017 7 anos por FaaSouzax (veja o histórico de edições)
Postado Setembro 27, 2017 7 anos O que acontece que não funcionou? Descreva melhor o erro para que possa ser solucionado, acabei de testar aqui e tá funcionando. Pra colocar uniqueid é só alterar a tag: <action uniqueid="900" script="premiumdoor.lua"/> Caso não consiga, utilize assim: Spoiler local newpos = Position(1,1,1) -- posição que será levado function onUse(player, item, fromPosition, target, toPosition, isHotkey) local itemId = item:getId() if not player:isPremium() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "Only premium players can pass.") return true end player:teleportTo(newpos) newpos:sendMagicEffect(CONST_ME_TELEPORT) return true end Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Setembro 28, 2017 7 anos Autor @Dwarferna verdade não da erro algum, simplesmente o personagem não passa a porta 23:59 You see a gate of expertise for level 60. Item ID: 6265, Action ID: 1060, Unique ID: 9050. Position: 435, 283, 3 a unica coisa que acontece ao tentar passar é isso da imagem, fala que não posso usar. Esse ultimo no caso eu teria que fazer um para cada porta vip que eu fosse usar né? -Edit , desculpa vi só agr Editado Setembro 28, 2017 7 anos por FaaSouzax (veja o histórico de edições)
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.