Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Postado (editado)

Fala galera, e meu querido @Vodkart que sempre me salva xD

 

Eu tenho um sistema de task igual ao tibia RL, está funcionando 100%.

 

Ele já teletransporta o player para a posição TAL após terminar a task(quando tem boss claro) Porem tenho um problema.

 

Eu preciso de um script que exemplo: Após o NPC checkar a task (isso ele já faz) ele vai teletransportar o player para um ROOM BOSS. Até ai tudo ok.

 

1º - A sala vai ter varios Tiles com a ACTIONID para seu respectivo BOSS. Quando o personagem termina uma task, ele ganha um STORAGE, isso já funciona.

 

Então cada TILE vai ter uma verificação de STORAGE, ou seja se ele terminou a task quando pisar no TILE com a ACTIONID ele vai ser teletransportado para um posição X,Y,Z e o respectivo BOSS sera SUMONADO!

 

3º Caso aconteça dele morrer, o boss some e ele pode pisar no TILE novamente e entrar na sala! Porem se ele matar o boss, ele pode pegar o LOOT do BOSS e entrar no TP para ir embora.

 

Detalhe: Ninguém pode entrar no TILE/BOSS se já tiver alguém la dentro!

 

Obs: Eu preciso apenas dos scripts, o mapa e tudo mais eu vou fazer, preciso apenas do script actions para fazer as verificações dos tiles, sumonar o Boss e/ou movements.

 

E não precisa fazer os scripts para todos os BOSS, apenas 1 e eu adapto para o restante

 

Eu utilizo como base TFS 0.4 rev3777

 

Deu para entender?

Se alguem puder me ajudar eu agradeço, preciso muito deste script para o meu projeto! Eu estou estudando bastante mais ainda não consigo fazer coisas mais complexas .. abraço!

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

Esqueceu uma coisa.

 

Dentro dessa sala, ao matar o boss, esse mesmo boss vai dar uma storage?

 

é pq o jogador não poderá ir novamente se já matou o boss, certo?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado (editado)
  Em 06/02/2020 em 14:06, Vodkart disse:

Esqueceu uma coisa.

 

Dentro dessa sala, ao matar o boss, esse mesmo boss vai dar uma storage?

 

é pq o jogador não poderá ir novamente se já matou o boss, certo?

 

 

Isso mesmo meu querido, minha logica ainda não é muito boa kkkk, mais eu chego lá! Eu achei um script em um forum, estou chegando em casa e jajá vou postar aqui para você dar uma  olhada, as vezes fica mais fácil da gente arrumar, o que acha?

 

EDIT:

@Vodkart seguinte consegui adaptar o sistema para mim! Ficou SHOW de bola! Funcionando 100%.

 

Só tem 1 porem, tem 2 tasks no meu servidor, que em vez de sumonar 1 boss apenas, teria que sumonar 4 boss. um de cada vez.. 

 

Teria como fazer alterações no SCRIPT para ter essa função em apenas 1 task ? Eu tentei mas nao consegui ..

 

Posso postar o codigo aqui para você dar uma olhada para mim ? Obrigado!

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

posta o codigo ai pra mim ver como ficou.

 

eu ja tinha terminado o codigo de tarde no escritorio onde eu trabalho, mas dá nada.

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado

Nao uai vamos ver o seu, por que esse ficou tudo em 1 TP sabe? Vou postar, e eu estou precisanndo de um NPC que não acho de jeito nenhum! Depois vou te mostrar.

 

creaturescripts: No caso está todos com as mesmas POS pois foi só um teste!

local t = {
   [{"The Snapper"}] = {y_storage = 996401, x_storage = 65004},
   [{"Hide"}] = {y_storage = 996402, x_storage = 65005},
   [{"Tiquandas Revenge"}] = {y_storage = 996403, x_storage = 65006},
   [{"The Bloodtusk"}] = {y_storage = 996404, x_storage = 65008},
   [{"Shardhead"}] = {y_storage = 996405, x_storage = 65009},
   [{"Thul"}] = {y_storage = 996406, x_storage = 65011},
   [{"Esmeralda"}] = {y_storage = 996407, x_storage = 65016},
   [{"The Old Widow"}] = {y_storage = 996408, x_storage = 65017},
   [{"The Many"}] = {y_storage = 996409, x_storage = 65018},
   [{"Leviathan"}] = {y_storage = 996410, x_storage = 65019},
   [{"Stonecracker"}] = {y_storage = 996411, x_storage = 65020},
   [{"The Noxious Spawn"}] = {y_storage = 996412, x_storage = 65021},
   [{"Merikh The Slaughterer"}] = {y_storage = 996413, x_storage = 65022},
   [{"Fahim The Wise"}] = {y_storage = 996414, x_storage = 65023},
   [{"Brutus Bloodbeard"}] = {y_storage = 996415, x_storage = 65024},
   [{"Demodras"}] = {y_storage = 996416, x_storage = 65025},
   [{"The Horned Fox"}] = {y_storage = 996417, x_storage = 65026},
   [{"Necropharus"}] = {y_storage = 996418, x_storage = 65027},
   [{"Paiz The Pauperizer"}] = {y_storage = 996419, x_storage = 65028},
   [{"Kerberos"}] = {y_storage = 996420, x_storage = 65029},
   [{"Zanakeph"}] = {y_storage = 996421, x_storage = 65030},
   [{"Ethershreck"}] = {y_storage = 996422, x_storage = 65031},
   [{"God Of Death"}] = {y_storage = 996423, x_storage = 65032}
}
local teleport_position = {x = 32696, y = 32766, z = 6} -- where player will be sent after killing boss

local function teleport_loop(cid, n)
   doCreatureSay(cid, "Teleported out in " .. n .. " seconds!", TALKTYPE_ORANGE_1, cid)
   if n > 0 then
     addEvent(teleport_loop, 1000, cid, n - 1)
   elseif n == 0 then
     doTeleportThing(cid, teleport_position)
   end
end

function onKill(cid, target, damage, flags)
   for v, k in pairs(t) do
     local master = getCreatureMaster(target)
     if(master and master ~= target) then
       return true
     end
     if(bit.band(flags, 1) == 1 and isMonster(target) and isInArray(v, getCreatureName(target))) then
       if getCreatureStorage(cid, k.y_storage) < 1 then
         doCreatureSetStorage(cid, k.y_storage, 1)
         doCreatureSetStorage(cid, k.x_storage, getCreatureStorage(cid, k.x_storage) + 1)
       end
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have defeated " .. getCreatureName(target):lower() .. "!")
       addEvent(teleport_loop, 1000, cid, 15)
     end
   end
   return true
end

 

movements:

 

local config = {
   [1] = {x_storage = 65004, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "The Snapper", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [2] = {x_storage = 65005, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Hide", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [3] = {x_storage = 65006, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Tiquandas Revenge", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [4] = {x_storage = 65008, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "The Bloodtusk", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [5] = {x_storage = 65009, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Shardhead", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [6] = {x_storage = 65011, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Thul", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [7] = {x_storage = 65016, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Esmeralda", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [8] = {x_storage = 65017, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "The Old Widow", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [9] = {x_storage = 65018, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "The Many", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [10] = {x_storage = 65019, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Leviathan", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [11] = {x_storage = 65020, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Stonecracker", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [12] = {x_storage = 65021, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "The Noxious Spawn", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [13] = {x_storage = 65022, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Merikh The Slaughterer", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [14] = {x_storage = 65023, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Fahim The Wise", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [15] = {x_storage = 65024, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Brutus Bloodbeard", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [16] = {x_storage = 65025, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Demodras", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [17] = {x_storage = 65026, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "The Horned Fox", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [18] = {x_storage = 65027, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Necropharus", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [19] = {x_storage = 65028, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Paiz The Pauperizer", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [20] = {x_storage = 65029, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Kerberos", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [21] = {x_storage = 65030, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Zanakeph", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [22] = {x_storage = 65031, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "Ethershreck", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}},
   [23] = {x_storage = 65032, x_storage_value = 1, teleport_pos = {x = 32700, y = 32762, z = 7}, boss_name = "God Of Death", boss_position = {x = 32700, y = 32763, z = 7}, boss_chamber_top_left_pos = {x = 32700, y = 32762, z = 7}, boss_chamber_bottom_right_pos = {x = 32703, y = 32764, z = 7}}
}

local condition = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition, CONDITION_PARAM_TICKS, 5000)

function onStepIn(cid, item, position, fromPosition)
  
   if not isPlayer(cid) then
     return true
   end
  
   for i = 1, #config do
     if getPlayerStorageValue(cid, config[i].x_storage) == config[i].x_storage_value then
       local count = 0
       local monster = 0
       for t = config[i].boss_chamber_top_left_pos.x, config[i].boss_chamber_bottom_right_pos.x do
         for f = config[i].boss_chamber_top_left_pos.y, config[i].boss_chamber_bottom_right_pos.y do
           for n = config[i].boss_chamber_top_left_pos.z, config[i].boss_chamber_bottom_right_pos.z do
             pos = {x = t, y = f, z = n}
             pid = getTopCreature(pos).uid
             if isPlayer(pid) then
               count = count + 1
             end
             if isMonster(pid) then
               monster = pid
             end
           end
         end
       end
       if count ~= 0 then
         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Someone is currently in " .. config[i].boss_name .. "'s chamber. Please wait awhile.")
         doTeleportThing(cid, fromPosition)
         doSendMagicEffect(fromPosition, 10)
         return true
       end
       if monster ~= 0 then
         doRemoveCreature(monster)
       end
       doSendMagicEffect(position, 10)
       doTeleportThing(cid, config[i].teleport_pos)
       doAddCondition(cid, condition)
       local delay = 1000
       for n = 1, 3 do      
         addEvent(doSendMagicEffect, delay, config[i].boss_position, 10)
         delay = delay + 1000
       end
       addEvent(doCreateMonster, 4000, config[i].boss_name:lower(), config[i].boss_position)
       return true
     end
   end
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don't have any required quests completed to access this portal.")
   doTeleportThing(cid, fromPosition)
   doSendMagicEffect(fromPosition, 10)
   return true
end

Ai é o seguinte, apenas um TP com a actionID, quando o player pisa nele, ele checka qual boss Enviar o player, se tem alguem lá, etc..

 

Mais tenho certeza que o seu estará melhor que esse, vamos ver o seu!

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