Postado Fevereiro 6, 2020 5 anos 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. 2º 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 Fevereiro 6, 2020 5 anos por grillo1995 (veja o histórico de edições)
Postado Fevereiro 6, 2020 5 anos 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? [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Fevereiro 6, 2020 5 anos Autor 12 horas atrás, 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 Fevereiro 7, 2020 5 anos por grillo1995 (veja o histórico de edições)
Postado Fevereiro 7, 2020 5 anos 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. [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Fevereiro 7, 2020 5 anos Autor 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.