Welcome to xTibia - Sua comunidade de Otserv e Tibia

Registre-se para utilizar nossas ferramentas e baixar conteúdos. Quando registrado e logado em sua conta, lhe garantimos uma experiência incrível em nossa comunidade!

Leoxtibia

Visconde
  • Conteúdo

    489
  • Registrado

  • Última visita

  • Days Won

    13

Sobre Leoxtibia

  • Data de Nascimento 15-07-1995

Perfil

  • Gênero Masculino

Informações

  • Forma que conheci o xTibia Sites de Busca
  • Sou Scripter

Últimos Visitantes

2.057 visualizações
  1. pedido scripts

    local from, to = {x=1, y =1, z=1}, {x=1, y =1, z=1} local newpos = {x=1, y =1, z=1} function onStatsChange(cid, attacker, type, combat, value) if isInRange(getPlayerPosition(cid), from, to) and type == STATSCHANGE_HEALTHLOSS and value >= getCreatureHealth(cid) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid)) doTeleportThing(cid, newpos) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) return false end return true end <event type="statschange" name="MorteTp" event="script" value="NOMEDOARQUIVO.lua"/> No login.lua: registerCreatureEvent(cid, "MorteTp")
  2. O BM_CLICK você pode testar usando SendMessage mesmo. PostMessage, você tem que incluir a API no seu código, procura aí, acha easy.
  3. Algumas aplicações bloqueiam essas ações com SendMessage e funções afins. No entanto, existem alternativas como tentar utilizar o BM_CLICK no SendMessage. Const BM_CLICK As Long = &HF5& Ou, você pode tentar o PostMessage e algo como: PostMessage(hWindow, WM_KEYUP, VK_RETURN, (MapVirtualKey(VK_RETURN, MAPVK_VK_TO_VSC)) * 0x10000 + 0xC0000000 + 1) PostMessage(hWindow, WM_KEYDOWN, VK_RETURN, (MapVirtualKey(VK_RETURN, MAPVK_VK_TO_VSC)) * 0x10000 + 1) hWindow é o seu handle.
  4. pedido scripts

    @Brunds Quando eu disse "fora", queria dizer FORA!! kk
  5. pedido scripts

    Sim, em movements: local id = 1111 -- id da bp function onEquip(cid, item, slot) if item.itemid == id and (slot == CONST_SLOT_RIGHT or slot == CONST_SLOT_LEFT) then return false end <movevent type="Equip" itemid="1111" slot="pickupable" script="NOMEDOSCRIPT.lua"/> Aproveita e posta aí como ficou seu script do OnMove.
  6. pedido scripts

    @Fjinst A função que eu citei é creaturescripts e tem que ser adicionada na source. Ou, para evitar precisar mexer nas sources, que tal tentarmos algo "meio doido"? Eu pensei em evitar que o player: 1 - Movesse um item de sua backpack para a backpack a ser bloqueada 2 - Colocasse a backpack a ser bloqueada no chão e tentasse mover um item 3 - Colocasse a backpack a ser bloqueada dentro de outro container no chão e tentasse mover um item Vê aí. Em creaturescripts/scripts crie o arquivo: bpBlock.lua No login.lua, registre o evento: registerCreatureEvent(cid, "BlockBp") Em creaturescripts.xml, adicione a tag: <event type="think" name="BlockBp" event="script" value="bpBlock.lua"/>
  7. É a mesma coisa que o script
  8. pedido scripts

    @Brunds Na hora de escrever, esqueci do end. E não coloque a função dentro da outra. A função abaixo fica fora. function doShowTimeByPos(uid, pos, duration, type) type = type or 20 for i = 0, (duration - 1) do addEvent(function() if isCreature(uid) then doSendAnimatedText(pos, tostring(duration - i), type) end end, i * 1000) end return true end
  9. pedido scripts

    Se quiser que mande a mensagem em todas as posições ao redor do target, adicione depois dessa linha doCreateItem(5750,1,posicao) Isso: doShowTimeByPos(cid, posicao, 5, COLOR_RED) Se quiser só em uma posição que esteja ao redor do target, adicione a mesma linha acima, antes de: addEvent(function() Se quiser que o tempo seja mostrado na posição do player, adicione antes da mesma linha acima: doShowTimeByPos(cid, getPlayerPosition(cid), 5, COLOR_RED) E claro, não esqueça da função. Melhor escrevê-la assim: function doShowTimeByPos(uid, pos, duration, type) type = type or 20 for i = 0, (duration - 1) do addEvent(function() if isCreature(uid) then doSendAnimatedText(pos, tostring(duration - i), type) end end, i * 1000) end return true
  10. pedido scripts

    Você já tem essa função adicionada à source né? Tente algo como: function onMoveItem(cid, item, count, toContainer, fromContainer, fromPos, toPos) if toContainer.itemid == 8908 and toPos.x == CONTAINER_POSITION then doPlayerSendTextMessage(cid, 25, "Você não pode adicionar itens a essa backpack.") return false end end
  11. Testei aqui agora no tfs 0.4 e funcionou 100%. A vocação que você testou é um dos ids que eu tinha colocado? [1], [2], [3] ou [4]? Se não for, adicione lá. A resistência ali funciona da seguinte forma: resistence = 10 -- vai bloquear 10%, ou seja, se o player tiver resistência ao elemento o hit que seria de 10 será de 9 Resumindo, vai mostrar o hit normal e o quanto healou devido a resistência ao elemento: 10 +1 Seus tipos de danos são esses também? Se não for, troque para os seus. COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048
  12. Rapaz, acho que assim vai. Em creaturescripts/scripts: elementResistence.lua Lembrando que os elementos são: (pelo menos para alguns servidores) COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 No login.lua: Em creaturescripts.xml, adicione a tag: <event type="statschange" name="AbsorbElement" event="script" value="elementResistence.lua"/>
  13. suporte scripts

    Para que possa ajudar outros.
  14. suporte scripts

    Tinha colocado uma linha a mais: function onTimer() if #getPlayersInArea(torneio.area) > 1 then return true end for _, pid in ipairs(getPlayersInArea(torneio.waitArea)) do rand = math.random(-2, 2) doTeleportThing(pid, {x = torneio.tournamentFight.x + rand, y = torneio.tournamentFight.y + rand, z = torneio.tournamentFight.z}) end doBroadcastMessage("O torneio de johto 150+ começou!") return true end
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.