Ir para conteúdo

Rogex Joyz

Membro
  • Registro em

  • Última visita

Tudo que Rogex Joyz postou

  1. Eu gostaria de solicitar minha medalha de 3 anos por gentileza.
  2. Rogex Joyz postou uma resposta no tópico em Mapas de Tibia
    Muito bacana, muitos estão atrás deste mapa. Assim que tiver o restante e puder trazer eu gostaria de baixar para ver como está o trabalho da cip rsrs rep +
  3. Muito bom ! Só estou sentindo falta do dark mode, meus olhos ardem kkk Estou no aguardo.
  4. Vodkart perfeito em tudo que se propõe. Que homem meus amigos, que homem ! Este sistema funcionaria em tfs 0x ?
  5. - O mapa do Croix nos leva diretamente para um mundo de minas, achei o máximo a idéia de vários andares de montanha, me passou uma sensação real de uma mina, tem o meu voto. - O mapa do Nolis ficou show, achei bem interessante a parte de brincar com o ''preto'' como se fosse uma espécie de ''poço'' de mineração. Os cristais deram um toque sofisticado. - O mapa do Korsan também ficou lindo de se ver, na mesma hora eu lembrei daqueles desenhos onde entra em um carrinho e começa a ir por uma montanha russa de mineração. - O mapa do belmont ficou bom, enriqueceu com detalhes.
  6. Rogex Joyz postou uma resposta no tópico em Mapas de Tibia
    Alguém tem idéia de como “copiar" esse mapa com as sprites e tudo para um 8.60 ? Adicionando sprites por sprites no object builder e criando os itens id pelo item editor seria quase impossível
  7. Não entendi. Como assim sai outro efeito ? No gif está saindo o mesmo efeito porém de lados diferentes.
  8. troque maxDamage = 500 -- Qual o dano máximo que você deseja que esta magia tire ? - Lembrando que são dois danos distintos de ida e outro de volta interval = 750 -- Após soltar a magia, quanto tempo levará para o martelo retornar para você ? - Coloque o tempo em milésimos de segundos por maxDamage = 500, -- Qual o dano máximo que você deseja que esta magia tire ? - Lembrando que são dois danos distintos de ida e outro de volta interval = 750 -- Após soltar a magia, quanto tempo levará para o martelo retornar para você ? - Coloque o tempo em milésimos de segundos
  9. recomenda algum programa para fazer gifs ? Eu posto em imagens por ser o jeito que eu conheço. Mas seria ótimo um programa que faz gifs da tela.
  10. Fala galeritcha, este script imita o ''martelo de Thor'', ele funciona da seguinte forma: Após o knight falar a magia (no meu caso exori hur), um martelo vai girando em linha reta de acordo com o lado em que o player estiver virado. O martelo vai em efeito de boomerang, ele vai e volta para o dono da magia dando ataque em todos que estão no caminho, o dano é duplicado (são 2 danos), uma vez que 1 dano corresponde à ida e outro corresponde ao do martelo voltando. 0.x - unknown credits, enjoy. Praticamente as principais coisas são editáveis dentro do script logo no começo, deixarei escrito dentro dele para ficar mais fácil. Let's go ? Em spells/scripts/attack coloque: local config = { distance = 6, -- distância em que o martelo irá chegar (no caso ele está configurado para percorrer 6 sqm's e depois voltar) distEffect = 25, -- efeito que irá causar. Fale /x ingame junto com um número e veja os efeitos que mais te agrada, depois só substituir o 25 pelo número do efeito escolhido. No caso o efeito que eu escolhi é justamente de um martelo. minDamage = 200, --Qual o dano mínimo que você deseja que esta magia tire ? maxDamage = 500, -- Qual o dano máximo que você deseja que esta magia tire ? - Lembrando que são dois danos distintos de ida e outro de volta interval = 750 -- Após soltar a magia, quanto tempo levará para o martelo retornar para você ? - Coloque o tempo em milésimos de segundos } function getPosisBetween(fromPos, toPos) local posis = {} for i = 1, getDistanceBetween(fromPos, toPos) do local choices = {fromPos.x, fromPos.x + 1, fromPos.x - 1} if fromPos.x ~= toPos.x then table.sort(choices, function(a, b) if fromPos.x - toPos.x < 0 then return a > b else return a < b end end) fromPos.x = choices[1] end if fromPos.y ~= toPos.y then choices = {fromPos.y, fromPos.y + 1, fromPos.y - 1} table.sort(choices, function(a, b) if fromPos.y - toPos.y < 0 then return a > b else return a < b end end) fromPos.y = choices[1] end table.insert(posis, {x = fromPos.x, y = fromPos.y, z = fromPos.z}) end return posis end function onCastSpell(cid) local playerPos = getThingPos(cid) local toPos = { [0] = {x = playerPos.x, y = playerPos.y - config.distance, z = playerPos.z}, [1] = {x = playerPos.x + config.distance, y = playerPos.y, z = playerPos.z}, [2] = {x = playerPos.x, y = playerPos.y + config.distance, z = playerPos.z}, [3] = {x = playerPos.x - config.distance, y = playerPos.y, z = playerPos.z} } local spellToPos = toPos[getCreatureLookDirection(cid)] local posis = getPosisBetween(getThingPos(cid), spellToPos) doSendDistanceShoot(getThingPos(cid), spellToPos, config.distEffect) for i = 1, #posis do if not getTileInfo(posis[i]).protection then local pid = getTopCreature(posis[i]).uid if isMonster(pid) or isPlayer(pid) then doTargetCombatHealth(cid, pid, COMBAT_PHYSICALDAMAGE, -config.minDamage, -config.maxDamage, -1) end end end addEvent(function() if not isPlayer(cid) then return true end doSendDistanceShoot(spellToPos, getThingPos(cid), config.distEffect) posis = getPosisBetween(spellToPos, getThingPos(cid)) for i = 1, #posis do if not getTileInfo(posis[i]).protection then local pid = getTopCreature(posis[i]).uid if isMonster(pid) or isPlayer(pid) then doTargetCombatHealth(cid, pid, COMBAT_PHYSICALDAMAGE, -config.minDamage, -config.maxDamage, -1) end end end end, config.interval) return true end Em spells.xml coloque: <instant name="Whirlwind Throw" words="exori hur" lvl="200" mana="500" prem="1" needweapon="1" range="5" needtarget="1" blockwalls="1" exhaustion="1800" maglv="7" needlearn="0" script="attack/Whirlwind Throw.lua"> <vocation id="4"/> <vocation id="8"/> -- em words = o nome que deverá ser dito para soltar a spell mana = quanto de mana gastará ? needweapon = precisa estar equipado com uma arma para soltá-la ? range = configurável dentro do script needtarget = Precisa estar targetando alguém para soltar esta magia ? - Lembrando que caso coloque ''1'', precisará targetar um alvo para soltar a spell, porém isso não influencia na direção da magia. Ela soltará para onde o personagem estiver virado, como um exevo gran vis lux por exemplo. maglv = Qual o magic level necessário para conjurar esta magia ? Espero que divirta bastante gente, eu dei uns berro aqui quando vi ela em pratica haha. See you !
  11. Rogex Joyz postou uma resposta no tópico em Suporte Tibia OTServer
    Não deu erro na distro, porém eu clico na alavanca e aparece: No momento existem jogadores fazendo o BOSS, aguarde até que eles saiam. Sendo que não há ninguém na sala, este erro acontece já de primeira. Ninguém consegue entrar para enfrentar o boss. Sabe o que pode ter ocorrido ? Uso tfs 0.4
  12. Um script simples (sei que existe outros parecidos/iguais, este funcionou perfeitamente pra tfs 0.4), mas que coloca todo um RPG naquela quest/hunt que você quer montar. No caso uma mystic flame fica ao lado (editável) de um empty coal basin (id: 1485) e após colocar um item (editável) em cima desta coal basin, a mystic flame passa a teleportar para um local pré destinado (Funciona exatamente igual ao de acesso as tumbas de Ankrahmun do global). Sem o item no local correto, ela é apenas uma mystic flame sem destino podendo andar em cima dela sem que nada aconteça. Para voltar, coloque outra mystic flame no destino com o AID 19383 (esta mystic flame faz o player retornar sem sacríficio). Vamos ao script ? ? créditos: Andu Em movements.xml adicione estas duas linhas: <movevent type="StepIn" actionid="19382" event="script" value="flametp.lua" /> <movevent type="StepIn" actionid="19383" event="script" value="flametp.lua" /> Em movements crie um arquivo lua com o nome flametp e adicione dentro dele: function onStepIn(cid, item, position, fromPosition) local tileActionID = 19382 -- actionid inserida na primeira mystic flame (a do sacrifício) local tileActionIDBack = 19383 -- actionid inserida na segunda mystic flame (a de retorno sem sacrifício) local coin = 8978 -- id do item que precisará estar na coal basin para que a mystic flame teleporte o player local teleportTo = {x=12687, y=3426, z=14}-- posição em que o player será teleportado ao fazer o sacrifício local teleportBack = {x=14012, y=33793, z=15}-- posição em que o player irá voltar no momento que passar pela mystic flame sem sacrifício local itemPosition = {x=14012, y=33788, z=15, stackpos=STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE} local getItem = getThingFromPos(itemPosition)-- posição em que o item de sacrifício terá que estar para ativar a primeira mystic flame if isPlayer(cid) == TRUE then if item.itemid == 1397 and item.actionid == tileActionID then if getItem.itemid == coin then doRemoveItem(getItem.uid, 1) doTeleportThing(cid, teleportTo) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doSendMagicEffect(getThingPos(item.uid), CONST_ME_TELEPORT) doSendMagicEffect(itemPosition, 15) end elseif item.itemid == 1397 and item.actionid == tileActionIDBack then doTeleportThing(cid, teleportBack) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) doSendMagicEffect(getThingPos(item.uid), CONST_ME_TELEPORT) end end return TRUE end
  13. Alguém sabe explicar este código ? Quem fez ele não soube explicar muito bem (pelo menos eu não entendi). Eu não sei onde deve ir os respectivos AID, a explicação está bem raza. Não consigo entender se o AID é em X local ou N local... Tentei instalar mas foi só dor de cabeça. Se alguém puder pelo menos falar onde deve ser colocado os AIDS e a função deles no script, seria ótimo !! Muito obrigado desde já. O autor do script é o zakius, postado e explicado por Conde e mal interpretado por mim (kk) Em data/lib adicione: function doCreatureSayWithDelay(cid,text,type,delay,e,pcid) if delay<=0 then doCreatureSay(cid,text,type, false,pcid) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type, false,pars.pcid) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e,pcid=pcid}) end end Em movements crie o arquivo inquisition.lua e adicione: local config = { bosses={---actionid, posicao para onde ira, valor que colocara, texto de entrada [1001] = {pos={x=1173, y=1137, z=12, stackpos=1}, value=1, text="Entering The Crystal Caves"}, [1002] = {pos={x=1128, y=1151, z=12, stackpos=1}, value=2, text="Entering The Blood Halls"}, [1003] = {pos={x=1045, y=1204, z=13, stackpos=1}, value=3, text="Entering The Vats"}, [1004] = {pos={x=1152, y=1195, z=13, stackpos=1}, value=4, text="Entering The Arcanum"}, [1005] = {pos={x=1247, y=1295, z=12, stackpos=1}, value=5, text="Entering The Hive"}, [1006] = {pos={x=1064, y=1308, z=13, stackpos=1}, value=6, text="Entering The Shadow Nexus. All hope desapear!"} }, mainroom={---actionid, posicao que ira,menor valor de storage que poder entrar, texto de entrada [2001] = {pos={x=1173, y=1137, z=12, stackpos=1}, value=1, text="Entering The Crystal Caves"}, [2002] = {pos={x=1128, y=1151, z=12, stackpos=1}, value=2, text="Entering The Blood Halls"}, [2003] = {pos={x=1045, y=1204, z=13, stackpos=1}, value=3, text="Entering The Vats"}, [2004] = {pos={x=1152, y=1195, z=13, stackpos=1}, value=4, text="Entering The Arcanum"}, [2005] = {pos={x=1247, y=1295, z=12, stackpos=1}, value=5, text="Entering The Hive"} }, portals={---actionid,texto de entrada [3000] = {pos={x=1065, y=1086, z=14}, text="Entering Inquisition Portals Room"}, [3001] = {pos={x=1098, y=1214, z=12}, text="Entering The Ward of Ushuriel"}, [3002] = {pos={x=1185, y=1067, z=12}, text="Entering The Undersea Kingdom"}, [3003] = {pos={x=1130, y=1213, z=12}, text="Entering The Ward of Zugurosh"}, [3004] = {pos={x=1148, y=1127, z=12}, text="Entering The Foundry"}, [3005] = {pos={x=1113, y=1254, z=12}, text="Entering The Ward of Madareth"}, [3006] = {pos={x=1043, y=1133, z=13}, text="Entering The Battlefield"}, [3007] = {pos={x=1148, y=1254, z=12}, text="Entering The Ward of The Demon Twins"}, [3008] = {pos={x=1195, y=1201, z=13}, text="Entering The Soul Wells"}, [3009] = {pos={x=1187, y=1213, z=12}, text="Entering The Ward of Annihilon"}, [3010] = {pos={x=1193, y=1254, z=12}, text="Entering The Ward of Hellgorak"} }, storage=56123,---storage usado nos teleportes da sala central walkback="You don't have enough energy to enter this portal",---Messagem que aparece se vc nao poder entrar no teleport da sala central e={} }----nao modificar, se nao tiver o creaturesaywithdelay} function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == TRUE then if(config.bosses[item.actionid]) then local t= config.bosses[item.actionid] if getPlayerStorageValue(cid, config.storage)< t.value then setPlayerStorageValue(cid, config.storage, t.value) end doTeleportThing(cid, t.pos) doCreatureSayWithDelay(cid,t.text,19,1, config.e) elseif(config.mainroom[item.actionid]) then local t= config.mainroom[item.actionid] if getPlayerStorageValue(cid, config.storage)>=t.value then doTeleportThing(cid, t.pos) doCreatureSayWithDelay(cid,t.text,19,1,config.e) else doTeleportThing(cid, fromPosition) doCreatureSay(cid, config.walkback, 19) end elseif(config.portals[item.actionid]) then local t= config.portals[item.actionid] doTeleportThing(cid, t.pos) doCreatureSayWithDelay(cid,t.text,19,1,config.e) end end end <movevent type="StepIn" itemid="9773" event="script" value="inquisition.lua"/> E em data/creaturescripts adicione o inquisition.lua e coloque: local config = { timeToRemove = 180, -- segundos message = "Go into the teleport in 180 seconds, else it will disappear.", teleportId = 9773, bosses = { -- Nome do monstro, Posicao do teleporte ["Ushuriel"] = { pos={x=1097, y=1214, z=12, stackpos=1}, aid=1001 }, ["Zugurosh"] = { pos={x=1129, y=1213, z=12, stackpos=1}, aid=1002}, ["Madareth"] = { pos={x=1112, y=1254, z=12, stackpos=1}, aid=1003}, ["Annihilon"] = { pos={x=1187, y=1214, z=12, stackpos=1}, aid=1005}, ["Hellgorak"] = { pos={x=1192, y=1256, z=12, stackpos=1}, aid=1006} }, brothers ={ ["Golgordan"] = {pos={x=1147, y=1254, z=12, stackpos=1},aid=1004, brother = "Latrivan"}, ["Latrivan"] = {pos={x=1147, y=1254, z=12, stackpos=1},aid=1004, brother = "Golgordan"}, brothersArea ={ fromPos = {x = 1139, y = 1244, z = 12}, toPos = {x = 1155, y = 1254, z = 12} } } } local function change(position) doItemSetAttribute(getTileItemById(position, config.teleportId).uid, "aid", 3000) return TRUE end function onKill(cid, target, lastHit) if(config.bosses[getCreatureName(target)]) then local t = config.bosses[getCreatureName(target)] local position = t.pos doItemSetAttribute(getTileItemById(position, config.teleportId).uid, "aid", t.aid) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(change, config.timeToRemove * 1000, position) elseif(config.brothers[getCreatureName(target)]) then local t = config.brothers[getCreatureName(target)] local brother = getCreatureByName(t.brother) if(isMonster(brother) == true) then if(isInRange(getCreaturePosition(brother), config.brothers.brothersArea.fromPos, config.brothers.brothersArea.toPos) == true) then return TRUE end else local position = t.pos doItemSetAttribute(getTileItemById(position, config.teleportId).uid, "aid", t.aid) doItemSetAttribute(teleport, "aid", t.aid) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, position) end end return TRUE end <event type="kill" name="Inquisition" event="script" value="inquisition.lua"/> Adicione este código em cada XML dos bosses na pasta monsters: <script> <event name="Inquisition"/> </script> Explicação do autor a respeito do script: Os teleportes da sala principal deverão ter os Actionid respectivos no script. Sendo que cada um levará ao seu devido lugar apenas se o player já tiver passado nele. Quando o boss morre, o script modifica o teleporte para o player poder voltar para a sala principal. -Todo teleporte de Boss deverá ter o actionid 3000 como default. Pois senão o player não poderá voltar. -Existem maiores explicações no proprio arquivo. Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  14. e porque aparece o nome da guild no erro ? e de monstros como undead dragon ?
  15. Rogex Joyz postou uma resposta no tópico em Ferramentas OpenTibia
    Resumindo, ele cria mapas aleatórios ?
  16. Rogex Joyz postou uma resposta no tópico em Ferramentas OpenTibia
    No caso este programa poderia ser usado para exportar um local todo do tibia 10 para a versão 8.60 ? Suponhamos que eu queira uma cidade recém lançada no global, seria capaz de usar isso para copiar ela e ter em meu ot 8.60 ?
  17. Rogex Joyz postou uma resposta no tópico em Mapas de Tibia
    Muito maneiro ! Vou reaproveitar algumas hunts em um 8.60, tudo bem ? Ficaram lindas. A parte do trilho de trem então, sem comentários!
  18. Funcionou 100%, rep + e obrigado Naze !!!!!!!!!!!!!!!!!!
  19. Erro na hora de compilar na linha: player->getStorage(474758, value); In member function 'ReturnValue Spells::onPlayerSay(Player*, const std::string&)': invalid conversion from 'int' to 'const char*' initializing argument 1 of 'std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]' *** [obj//spells.o] Error 1
  20. Toda vez que meu servidor da o save, aparece esta mensagem na distro. No caso, ''only test'' é o nome da guild que criei por comando ingame para testar. Alguém sabe o que é e como resolver ? Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  21. @luanluciano93 sabe dizer o porque do seu sistema simplesmente parar quando eu uso esse sistema de locker protection ? A mensagem de reward aparece porém nada vai para o depot e nem no corpo do boss.

Informação Importante

Confirmação de Termo