Postado Outubro 7, 2017 7 anos Tenho esse script da desert quest e gostaria que ele funcionasse da seguinte forma, se o jogador não tiver os companheiros para fazer a quest, ele pode fazer sozinho mas tem que desembolsar todos os itens da quest da mesma forma, de todas vocações ! Script: local config = { {fromPosition = Position(1100, 1100, 8), toPosition = Position(1092, 1088, 8), sacrificePosition = Position(1102, 1100, 8), sacrificeId = 2175, vocationId = 1}, {fromPosition = Position(1092, 1100, 8), toPosition = Position(1080, 1088, 8), sacrificePosition = Position(1090, 1100, 8), sacrificeId = 2674, vocationId = 2}, {fromPosition = Position(1096, 1096, 8), toPosition = Position(1086, 1082, 8), sacrificePosition = Position(1096, 1095, 8), sacrificeId = 2455, vocationId = 3}, {fromPosition = Position(1096, 1104, 8), toPosition = Position(1086, 1093, 8), sacrificePosition = Position(1096, 1105, 8), sacrificeId = 2376, vocationId = 4} , guardPositions = { Position(1086, 1088, 8) } } function onUse(player, item, fromPosition, target, toPosition, isHotkey) item:transform(item.itemid == 1945 and 1946 or 1945) if item.itemid ~= 1946 then return true end local position = player:getPosition() local players = {} for i = 1, #config do local creature = Tile(config[i].fromPosition):getTopCreature() if not creature or not creature:isPlayer() then player:sendCancelMessage('You need one player of each vocation for this quest.') position:sendMagicEffect(CONST_ME_POFF) return true end local vocationId = creature:getVocation():getBase():getId() if vocationId ~= config[i].vocationId then player:sendCancelMessage('You need one player of each vocation for this quest.') position:sendMagicEffect(CONST_ME_POFF) return true end local sacrificeItem = Tile(config[i].sacrificePosition):getItemById(config[i].sacrificeId) if not sacrificeItem then player:sendCancelMessage(creature:getName() .. ' is missing ' .. (creature:getSex() == PLAYERSEX_FEMALE and 'her' or 'his') .. ' sacrifice on the altar.') position:sendMagicEffect(CONST_ME_POFF) return true end players[#players + 1] = creature end for i = 1, #players do local sacrificeItem = Tile(config[i].sacrificePosition):getItemById(config[i].sacrificeId) if sacrificeItem then sacrificeItem:remove() end for i = 1, #config.demonPositions do Game.createMonster("Desert Guard", config.guardPositions[i]) end players[i]:getPosition():sendMagicEffect(CONST_ME_POFF) players[i]:teleportTo(config[i].toPosition) config[i].toPosition:sendMagicEffect(CONST_ME_TELEPORT) end return true end
Postado Outubro 7, 2017 7 anos @Chriistian Fiz para funcionar se tiver mais de 1 e menos de 4 também, pode ir com 1, 2, 3 ou 4 players... desde que estejam na posição correta. Mostrar conteúdo oculto local config = { {fromPosition = Position(1100, 1100, 8), toPosition = Position(1092, 1088, 8), sacrificePosition = Position(1102, 1100, 8), sacrificeId = 2175, vocationId = 1}, {fromPosition = Position(1092, 1100, 8), toPosition = Position(1080, 1088, 8), sacrificePosition = Position(1090, 1100, 8), sacrificeId = 2674, vocationId = 2}, {fromPosition = Position(1096, 1096, 8), toPosition = Position(1086, 1082, 8), sacrificePosition = Position(1096, 1095, 8), sacrificeId = 2455, vocationId = 3}, {fromPosition = Position(1096, 1104, 8), toPosition = Position(1086, 1093, 8), sacrificePosition = Position(1096, 1105, 8), sacrificeId = 2376, vocationId = 4}, guardPositions = { Position(1086, 1088, 8) } } function onUse(player, item, fromPosition, target, toPosition, isHotkey) item:transform(item.itemid == 1945 and 1946 or 1945) if item.itemid ~= 1946 then return true end local position = player:getPosition() local players = {} for i = 1, #config do local creature = Tile(config[i].fromPosition):getTopCreature() if creature and creature:isPlayer() then players[#players + 1] = creature local vocationId = creature:getVocation():getBase():getId() if vocationId ~= config[i].vocationId then player:sendCancelMessage('Each vocation need be in correct position for this quest.') position:sendMagicEffect(CONST_ME_POFF) return true end end local sacrificeItem = Tile(config[i].sacrificePosition):getItemById(config[i].sacrificeId) if not sacrificeItem then player:sendCancelMessage(creature:getName() .. ' is missing ' .. (creature:getSex() == PLAYERSEX_FEMALE and 'her' or 'his') .. ' sacrifice on the altar.') position:sendMagicEffect(CONST_ME_POFF) return true end end for i = 1, #players do local sacrificeItem = Tile(config[i].sacrificePosition):getItemById(config[i].sacrificeId) if sacrificeItem then sacrificeItem:remove() end for i = 1, #config.demonPositions do Game.createMonster("Desert Guard", config.guardPositions[i]) end players[i]:getPosition():sendMagicEffect(CONST_ME_POFF) players[i]:teleportTo(config[i].toPosition) config[i].toPosition:sendMagicEffect(CONST_ME_TELEPORT) end return true end E outra, tem coisa no script que nunca é usado, como o código abaixo: Mostrar conteúdo oculto for i = 1, #config.demonPositions do Game.createMonster("Desert Guard", config.guardPositions[i]) end
Postado Outubro 7, 2017 7 anos Autor Em 07/10/2017 em 16:28, antharaz disse: @Chriistian Fiz para funcionar se tiver mais de 1 e menos de 4 também, pode ir com 1, 2, 3 ou 4 players... desde que estejam na posição correta. Mostrar conteúdo oculto Mostrar conteúdo oculto local config = { {fromPosition = Position(1100, 1100, 8), toPosition = Position(1092, 1088, 8), sacrificePosition = Position(1102, 1100, 8), sacrificeId = 2175, vocationId = 1}, {fromPosition = Position(1092, 1100, 8), toPosition = Position(1080, 1088, 8), sacrificePosition = Position(1090, 1100, 8), sacrificeId = 2674, vocationId = 2}, {fromPosition = Position(1096, 1096, 8), toPosition = Position(1086, 1082, 8), sacrificePosition = Position(1096, 1095, 8), sacrificeId = 2455, vocationId = 3}, {fromPosition = Position(1096, 1104, 8), toPosition = Position(1086, 1093, 8), sacrificePosition = Position(1096, 1105, 8), sacrificeId = 2376, vocationId = 4}, guardPositions = { Position(1086, 1088, 8) } } function onUse(player, item, fromPosition, target, toPosition, isHotkey) item:transform(item.itemid == 1945 and 1946 or 1945) if item.itemid ~= 1946 then return true end local position = player:getPosition() local players = {} for i = 1, #config do local creature = Tile(config[i].fromPosition):getTopCreature() if creature and creature:isPlayer() then players[#players + 1] = creature local vocationId = creature:getVocation():getBase():getId() if vocationId ~= config[i].vocationId then player:sendCancelMessage('Each vocation need be in correct position for this quest.') position:sendMagicEffect(CONST_ME_POFF) return true end end local sacrificeItem = Tile(config[i].sacrificePosition):getItemById(config[i].sacrificeId) if not sacrificeItem then player:sendCancelMessage(creature:getName() .. ' is missing ' .. (creature:getSex() == PLAYERSEX_FEMALE and 'her' or 'his') .. ' sacrifice on the altar.') position:sendMagicEffect(CONST_ME_POFF) return true end end for i = 1, #players do local sacrificeItem = Tile(config[i].sacrificePosition):getItemById(config[i].sacrificeId) if sacrificeItem then sacrificeItem:remove() end for i = 1, #config.demonPositions do Game.createMonster("Desert Guard", config.guardPositions[i]) end players[i]:getPosition():sendMagicEffect(CONST_ME_POFF) players[i]:teleportTo(config[i].toPosition) config[i].toPosition:sendMagicEffect(CONST_ME_TELEPORT) end return true end E outra, tem coisa no script que nunca é usado, como o código abaixo: Mostrar conteúdo oculto Mostrar conteúdo oculto for i = 1, #config.demonPositions do Game.createMonster("Desert Guard", config.guardPositions[i]) end @antharaz Muito obrigado, sim eu coloquei pra criar um bixo quanto for teleportado para outra sala, está correto ? vou testar aqui !
Postado Outubro 7, 2017 7 anos @Chriistian Ele nunca cria o bixo que você configurou, se vc mandar a pos, eu deixo aqui pra criar sem problema.
Postado Outubro 7, 2017 7 anos Autor Em 07/10/2017 em 18:10, antharaz disse: @Chriistian Ele nunca cria o bixo que você configurou, se vc mandar a pos, eu deixo aqui pra criar sem problema. Se possível gostaria sim ! @antharaz Editado Outubro 7, 2017 7 anos por Chriistian (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.