Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa noite, galera do TK.

 

Eu to montando um servidor RPG, e to usando uma script de annihilator de 4 pessoas, para ser 5 pessoas, porém está dando um erro que é parte da minha script

"18:27 You need 5 players to do this quest."

Porém os 5 players estão em seus lugares, e todos são lvl 10, sendo que a quest requer level 8.

Segue a script:

        -- Annihilator by Shawak v2.1

        -- CONFIG --

        local room = {     -- room with demons
        fromX = 1128,
        fromY = 246,
        fromZ = 9,
        --------------
        toX = 1245,
        toY = 322,
        toZ = 13
        }

        local monster_pos = {
        [1] = {pos = {1170, 270, 9}, monster = "Blood Bug"},
        [2] = {pos = {1164, 271, 9}, monster = "Blood Bug"},
        [3] = {pos = {1162, 290, 9}, monster = "Blood Bug"},
        [4] = {pos = {1161, 269, 8}, monster = "Blood Bug"},
        [5] = {pos = {1162, 280, 8}, monster = "Blood Bug"},
		[6] = {pos = {1161, 290, 8}, monster = "Blood Bug"},
        [7] = {pos = {1163, 292, 8}, monster = "Blood Bug"},
        [8] = {pos = {1161, 288, 10}, monster = "Blood Bug"},
        [9] = {pos = {1162, 286, 10}, monster = "Blood Bug"},
        [10] = {pos = {1157, 275, 10}, monster = "Blood Bug"},
		[11] = {pos = {1147, 280, 10}, monster = "Blood Bug"}
        }

        local players_pos = {
        {x = 1160, y =273, z = 3, stackpos = 253},
        {x = 1159, y =274, z = 3, stackpos = 253},
        {x = 1159, y =275, z = 3, stackpos = 253},
		{x = 1161, y =274, z = 3, stackpos = 253},
        {x = 1161, y =275, z = 3, stackpos = 253}
        }

        local new_player_pos = {
        {x = 1141, y = 264, z = 8},
        {x = 1140, y = 265, z = 8},
        {x = 1140, y = 266, z = 8},
        {x = 1142, y = 265, z = 8},		
        {x = 1142, y = 266, z = 8}
        }

        local playersOnly = "yes"
        local questLevel = 8

        ------------------------------------------------------
        --- CONFIG END ---------------------------------------
        ------------------------------------------------------

function onUse(cid, item, fromPosition, itemEx, toPosition)
        local all_ready, monsters, player, level = 0, 0, {}, 0
        if item.itemid == 1945 then
                for i = 1, #players_pos do
                        table.insert(player, 0)
                end
                for i = 1, #players_pos do
                        player[i] = getThingfromPos(players_pos[i])
                        if player[i].itemid > 0 then
                                if string.lower(playersOnly) == "yes" then
                                        if isPlayer(player[i].uid) == TRUE then
                                                all_ready = all_ready+1
                                        else
                                                monsters = monsters+1
                                        end
                                else
                                        all_ready = all_ready+1
                                end
                        end
                end
                if all_ready == #players_pos then
                        for i = 1, #players_pos do
                                player[i] = getThingfromPos(players_pos[i])
                                if isPlayer(player[i].uid) == TRUE then
                                        if getPlayerLevel(player[i].uid) >= questLevel then
                                                level = level+1
                                        end
                                else
                                        level = level+1
                                end
                        end
                        if level == #players_pos then
                                if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then
                                        local door = getTileItemById({x=33225, y=31659, z=13}, 5109).uid

										for _, area in pairs(monster_pos) do
                                                        doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]})
                                        end
                                        for i = 1, #players_pos do
                                                doSendMagicEffect(players_pos[i], CONST_ME_POFF)
                                                doTeleportThing(player[i].uid, new_player_pos[i], FALSE)
                                                doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA)
                                                doTransformItem(item.uid,1946)
                                        end
                                else
                                        doPlayerSendTextMessage(cid,19,"Only players can do this quest.")
                                end
                        else
                                doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.")
                        end
                else
                        doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.")
                end
        elseif item.itemid == 1946 then
                local player_room = 0
                for x = room.fromX, room.toX do
                        for y = room.fromY, room.toY do
                                for z = room.fromZ, room.toZ do
                                        local pos = {x=x, y=y, z=z,stackpos = 253}
                                        local thing = getThingfromPos(pos)
                                        if thing.itemid > 0 then
                                                if isPlayer(thing.uid) == TRUE then
                                                        player_room = player_room+1
                                                end
                                        end
                                end
                        end
                end
                if player_room >= 1 then
                        doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.")          
                elseif player_room == 0 then
                        for x = room.fromX, room.toX do
                                for y = room.fromY, room.toY do
                                        for z = room.fromZ, room.toZ do
                                                local pos = {x=x, y=y, z=z,stackpos = 253}
                                                local thing = getThingfromPos(pos)
                                                if thing.itemid > 0 then
                                                        doRemoveCreature(thing.uid)
                                                end
                                        end
                                end
                        end
                        doTransformItem(item.uid,1945)
                end
        end
        return TRUE
end

 

<action uniqueid="5000" script="quests/annihilator.lua" />

Alguém poderia me ajudar, por favor mesmo, de coração. s2

Link para o post
Compartilhar em outros sites
27 minutos atrás, Trayron1 disse:

Ajuda eu, por favor 

Não ta fazendo muito sentido a primeira parte do script:

		local room = {     -- room with demons
        fromX = 1128,
        fromY = 246,
        fromZ = 9,
        toX = 1245,
        toY = 322,
        toZ = 13
        }

From seria o canto superior esquerdo < /\

E to seria o canto inferior direito > \/

Da sala que os players vão parar após puxarem a alavanca. (o from e o to seriam no mesmo andar.)

Corrige isso e vê se o problema continua.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites
Agora, Trayron1 disse:

Certo, vou olhar e já retorno.

vi agora que os monstros também nascem em diferentes andares, não sei se esse script vai servir pra você, tendo em vista que ele checa se há players na sala pra não deixar o proximo time ir, e você esta usando vários andares. Mas estranho o erro ser relacionado ao numero de jogadores.

asdukeeh.jpg

Link para o post
Compartilhar em outros sites

Exato, os monstros nascem em andares diferentes, a intenção é fazer com que a pessoa não fique dentro do local esperando o respaw aparecer, e sim, só aparecer e matar quando entrarem ...

Não funcionou por as dimensios da sala naquele lugar lá, eu acho que na realidade não tem vinculo com esse erro ...

o erro é o mesmo

Citar

18:03 You need 5 players to do this quest.

 

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Beyond Sky
      Estou voltando ao mundo do Open Tibia (na área de desenvolvimento) e estou testando meu potencial em scriptings quando me fiz ausente tinha um conhecimento bom já não tão grande mas quebrava um galho agora voltei e percebi que regredi bastante. Enfim, eu estava pegando uns scripts pra dar uma estudada e me deparei com uma coisa louca e gostaria muito que vocês experientes me ajudassem com isso.
       
      Peguei esse script da annihilator lever e está muito louco bem diferente do antigo postarei os dois e gostaria de saber qual a diferença entre os dois e se pudessem me explicar as vantagens e as condições usada no novo pq me embananei todo olhando esse script.
       
      Script Novo (que não entendi nada, o que aconteceu com a famosa function onUse(cid, item, frompos, item2, topos)) :
       
      local players_area = { {x = 33225, y = 31671, z = 13}, {x = 33222, y = 31671, z = 13} } local new_player_pos = { {x = 33222, y = 31659, z = 13}, {x = 33221, y = 31659, z = 13}, {x = 33220, y = 31659, z = 13}, {x = 33219, y = 31659, z = 13} } local demonPos = { {x = 33219, y = 31657, z = 13}, {x = 33221, y = 31657, z = 13}, {x = 33223, y = 31659, z = 13}, {x = 33224, y = 31659, z = 13}, {x = 33220, y = 31661, z = 13}, {x = 33222, y = 31661, z = 13} } function getPlayerCountInArea(toPos, fromPos) local count = 0 local cid = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = toPos.z, toPos.z do local creature = getTopCreature({x = x, y = y, z = z, stackpos = 255}).uid if(creature > 0) then if(isPlayer(creature)) then table.insert(cid, creature) count = count + 1 if(getPlayerLevel(creature) < 100) then return "All players must be above level 100." end elseif(isMonster(creature)) then return "Players are allowed only." end end end end end if(count < 4) then return "You need 4 players." else for i = 1,4 do Player(cid[5-i]):teleportTo(new_player_pos[i]) Player(cid[5-i]):getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end return true end function SummonDemon(Pos) local count = 0 local cid = {} for x = Pos[1].x, Pos[4].x do for y = Pos[1].y, Pos[6].y do for z = Pos[1].z, Pos[6].z do local creature = getTopCreature({x = x, y = y, z = z, stackpos = 255}).uid if(creature > 0) then if(isPlayer(creature)) then return "A team is already inside the quest room." elseif(isMonster(creature)) then table.insert(cid, creature) count = count + 1 end end end end end for i = 1, #cid do doRemoveCreature(cid[i]) end for i = 1, #Pos do doSummonCreature("Demon", Pos[i]) end return getPlayerCountInArea(players_area[1], players_area[2]) end function onUse(cid, item) if(item.itemid == 1946) then local condition = SummonDemon(demonPos) if(condition ~= true) then doPlayerSendCancel(cid, condition) end else Item(item.uid):transform(1946) end return true end  
      Script Antigo (do qual tenho total conhecimento sobre o que acontece ou não e por que)
      -- Alavanca Annihilator Quest -- by Nottinghster   function onUse(cid, item, frompos, item2, topos)         if item.uid == 7000 and item.itemid == 1945 then                 player1pos = {x=1109, y=1204, z=11, stackpos=253}                 player1 = getThingfromPos(player1pos)                   player2pos = {x=1110, y=1204, z=11, stackpos=253}                 player2 = getThingfromPos(player2pos)                   player3pos = {x=1111, y=1204, z=11, stackpos=253}                 player3 = getThingfromPos(player3pos)                   player4pos = {x=1112, y=1204, z=11, stackpos=253}                 player4 = getThingfromPos(player4pos)                     if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then                         queststatus1 = getPlayerStorageValue(player1.uid,7000)                         queststatus2 = getPlayerStorageValue(player2.uid,7000)                         queststatus3 = getPlayerStorageValue(player3.uid,7000)                         queststatus4 = getPlayerStorageValue(player4.uid,7000)                           if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then                                 nplayer1pos = {x=1128, y=1181, z=11}                                 nplayer2pos = {x=1129, y=1181, z=11}                                 nplayer3pos = {x=1130, y=1181, z=11}                                 nplayer4pos = {x=1131, y=1181, z=11}                                   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,item.itemid+1)                         else                                 doPlayerSendCancel(cid,"Alguém em seu time já fez esta quest.")                         end                 else                         doPlayerSendCancel(cid,"Você precisa de um grupo de 4 pessoas para esta quest.")                 end           elseif item.uid == 7000 and item.itemid == 1946 then                 if getPlayerAccess(cid) > 0 then                         doTransformItem(item.uid,item.itemid-1)                 else                         doPlayerSendCancel(cid,"Desculpe, não é possível.")                 end         else                 return FALSE         end           return TRUE end
    • Por onix
      Boa tarde amigos, pra quem manja essa deve ser fácil, gostaria que alguém retirasse do script a condição de checar se 4 jogadores irão fazer a quest, pra que eu possa fazer a anihi quest solo, com 2, 3 ou os 4 jogadores no meu server. Ta aí o meu script. Obrigado.



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo