up
info
Grupo: Campones
Registrado: 01/02/12
Posts: 54
Reputação: 0
Char no Tibia: Dran Dargus

info
Grupo: Visconde
Registrado: 20/06/15
Posts: 331
Reputação: +205
Gênero: Masculino

Em Actions/Scripts/Quests
local playerPosition = {
{x = 247, y = 659, z = 13},
{x = 247, y = 660, z = 13},
{x = 247, y = 661, z = 13},
{x = 247, y = 662, z = 13}
}
local newPosition = {
{x = 189, y = 650, z = 13},
{x = 189, y = 651, z = 13},
{x = 189, y = 652, z = 13},
{x = 189, y = 653, z = 13}
}
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
if item.itemid == 1945 then
local players = {}
for _, position in ipairs(playerPosition) do
local topPlayer = Tile(position):getTopCreature()
if topPlayer == nil or not topPlayer:isPlayer() or topPlayer:getLevel() < 100 or topPlayer:getStorageValue(30015) ~= -1 then
player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_NOTPOSSIBLE))
return false
end
players[#players + 1] = topPlayer
end
for i, targetPlayer in ipairs(players) do
Position(playerPosition[i]):sendMagicEffect(CONST_ME_POFF)
targetPlayer:teleportTo(newPosition[i], false)
targetPlayer:getPosition():sendMagicEffect(CONST_ME_ENERGYAREA)
end
item:transform(1946)
elseif item.itemid == 1946 then
player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_NOTPOSSIBLE))
end
return true
end
Em Actions/Actions.xml
<action uniqueid="30015" script="quests/annihilator.lua" />
info
Grupo: Campones
Registrado: 01/02/12
Posts: 54
Reputação: 0
Char no Tibia: Dran Dargus

Essa script não sumona os monstros =S
Eu soube adaptar a script para fazer o mesmo. Parece que uma script que verifique se há jogadores e sumone monstros não existe assim tão fácil. Mas vlw por ajudar.
info
Grupo: Visconde
Registrado: 20/06/15
Posts: 331
Reputação: +205
Gênero: Masculino

Esse script é muito bom, ele não permite usar moonk's como jogadores nos tile.
Basta você adicionar os demons nos locais corretos e diminuir o tempo de respawn deles, isso não trará problema algum.
info
Grupo: Campones
Registrado: 01/02/12
Posts: 54
Reputação: 0
Char no Tibia: Dran Dargus

Sim, foi o que fiz mesmo. Obrigado rapaz ![]()
Tópico Movido
Este tópico foi movido de "OTServ → Suporte OTServ → Suporte Spriting"
para "OTServ → Suporte OTServ → Suporte Scripting → Pedidos e dúvidas resolvidos - Scripting".




info
Grupo: Campones
Registrado: 01/02/12
Posts: 54
Reputação: 0
Char no Tibia: Dran Dargus
Saudações,

Quando a alavanca para anihi é usada com sucesso ela é vira para a esquerda, e se outras 4 pessoas tentarem usar a alavanca novamente sem ter sucesso (sem que haja um jogador nível 100 em um dos sqm), sobe uma sequencia enorme de erros no distro que chega a travar todo o servidor. Mas se tentarem puxar a alavanca pela primeira vez (a alavanca estará para direita), mesmo que tenha alguém com nível inferior a 100, não dá erro algum no distro (aparece apenas que todos os jogadores precisam ter nível 100 ou mais, oque está correto).
Script da anihi:
function onUse(cid, item, frompos, item2, topos) if item.uid == 7000 then if item.itemid == 1946 then player1pos = {x=1445, y=959, z=7, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=1444, y=959, z=7, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=1443, y=959, z=7, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=1442, y=959, z=7, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then player1level = getPlayerLevel(player1.uid) player2level = getPlayerLevel(player2.uid) player3level = getPlayerLevel(player3.uid) player4level = getPlayerLevel(player4.uid) questlevel = 100 if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then demon1pos = {x=1435, y=984, z=6, stackpos=253} demon2pos = {x=1437, y=984, z=6, stackpos=253} demon3pos = {x=1436, y=988, z=6, stackpos=253} demon4pos = {x=1439, y=986, z=6, stackpos=253} demon5pos = {x=1440, y=986, z=6, stackpos=253} demon6pos = {x=1438, y=988, z=6, stackpos=253} doSummonCreature("Demon", demon1pos) doSummonCreature("Demon", demon2pos) doSummonCreature("Demon", demon3pos) doSummonCreature("Demon", demon4pos) doSummonCreature("Demon", demon5pos) doSummonCreature("Demon", demon6pos) nplayer1pos = {x=1438, y=986, z=6, stackpos=253} nplayer2pos = {x=1437, y=986, z=6, stackpos=253} nplayer3pos = {x=1436, y=986, z=6, stackpos=253} nplayer4pos = {x=1435, y=986, z=6, stackpos=253} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,1945) else doPlayerSendCancel(cid,"All players must have level 100 to enter.") end else doPlayerSendCancel(cid,"You need 4 players in your team.") end end if item.itemid == 1945 then starting={x=188, y=111, z=10, stackpos=253} checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos} ending={x=210, y=122, z=10, stackpos=253} players=0 totalmonsters=0 monster = {} repeat creature= getThingfromPos(checking) if creature.itemid > 0 then if getPlayerAccess(creature.uid) == 0 then players=players+1 end if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then totalmonsters=totalmonsters+1 monster[totalmonsters]=creature.uid end end checking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 end until checking.y>ending.y if players==0 then trash= {x=233, y=125, z=10} current=0 repeat current=current+1 doTeleportThing(monster[current],trash) until current>=totalmonsters doTransformItem(item.uid,1946) end end end if item.uid == 5006 then queststatus = getPlayerStorageValue(cid,100) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have found a demon armor.") doPlayerAddItem(cid,2494,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5007 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a magic sword.") doPlayerAddItem(cid,2400,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5008 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.") doPlayerAddItem(cid,2431,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end if item.uid == 5009 then queststatus = getPlayerStorageValue(cid,100) if queststatus ~= 1 then doPlayerSendTextMessage(cid,22,"You have found a Thunder Hammer.") doPlayerAddItem(cid,2421,1) setPlayerStorageValue(cid,100,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end end return 1 endPoderia me ajudar? Obrigado pela atenção.
up!
up!
Editado Setembro 12 por SirUndead