Ir para conteúdo
  • Cadastre-se

Posts Recomendados

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServScriptingGeral"

Para: "OTServScriptingActions e TalkActions"

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites

@jvcasarin, isso é por que você deve criar esse tipo de tópico nesta seção: http://www.tibiaking.com/forum/forum/291-aprova%C3%A7%C3%A3o-de-t%C3%B3picos-de-conte%C3%BAdos/

 

Para que ele passe por uma avaliação para ajudar a manter o fórum mais limpo e organizado. ^^

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites
  • 10 months later...

Boa tarde, meu querido eu copiei seus script em meu servidor, ele não apareceu nenhum erro no config, a unica coisa é que a minha wand não bate. Ela não sai dano nenhum é a mesma coisa que se eu estivesse usando o fist. como resolvo isso?

 

att

Link para o post
Compartilhar em outros sites
  • 7 months later...
  • 2 months later...
  • 1 year later...
  • 2 weeks later...
  • 2 weeks later...
  • 3 months later...
Em 04/10/2016 em 20:19, doido disse:

O problema se o cara tiver correndo o dano nao pega nele. :(

estamos com esse bug, pq o script é usado getThingPos(target) e no caso quando o target é muito rapido, o script não hita no bixo/player, ajude nos ai tk

Link para o post
Compartilhar em outros sites
12 minutos atrás, Toulouse disse:

estamos com esse bug, pq o script é usado getThingPos(target) e no caso quando o target é muito rapido, o script não hita no bixo/player, ajude nos ai tk

 

tenta usar

 

addEvent(doAreaCombatHealth, 0, cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef)

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
8 minutos atrás, Vodkart disse:

 

tenta usar

 

addEvent(doAreaCombatHealth, 0, cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef)

 

Tipo da uma mini melhorada, ao inves de cancelar uns 5 ataques, cancela uns 3

Link para o post
Compartilhar em outros sites

e se não usar addEvent? já tentou?

@Toulouse

 

tenta assim:

 

w = {
[12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
} 
function onUseWeapon(cid, var)
local min, max = 300, 300 -- dano minimo e maximo
local target = getCreatureTarget(cid)
for stor, info in pairs(w) do
    if getPlayerStorageValue(cid, stor) == 1 then
       if target ~= 0 then
          doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh)
          doAreaCombatHealth(cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef) return true
       end
    end
end
return true
end

 

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
20 minutos atrás, Vodkart disse:

e se não usar addEvent? já tentou?

@Toulouse

 

tenta assim:

 


w = {
[12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
} 
function onUseWeapon(cid, var)
local min, max = 300, 300 -- dano minimo e maximo
local target = getCreatureTarget(cid)
for stor, info in pairs(w) do
    if getPlayerStorageValue(cid, stor) == 1 then
       if target ~= 0 then
          doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh)
          addEvent(doAreaCombatHealth, 100, cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef) return true
       end
    end
end
return true
end

 

ou

 

 


w = {
[12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
} 
function onUseWeapon(cid, var)
local min, max = 300, 300 -- dano minimo e maximo
local target = getCreatureTarget(cid)
for stor, info in pairs(w) do
    if getPlayerStorageValue(cid, stor) == 1 then
       if target ~= 0 then
          doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh)
          addEvent(doAreaCombatHealth, 0, cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef) return true
       end
    end
end
return true
end

 

 

ou então

 

 


w = {
[12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
} 
function onUseWeapon(cid, var)
local min, max = 300, 300 -- dano minimo e maximo
local target = getCreatureTarget(cid)
for stor, info in pairs(w) do
    if getPlayerStorageValue(cid, stor) == 1 then
       if target ~= 0 then
          doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh)
          doAreaCombatHealth(cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef) return true
       end
    end
end
return true
end

 

 

A 3 opção resolveu

Link para o post
Compartilhar em outros sites

Resolveu o problema e como fica o script? pode me passar?

Em 21/05/2018 em 23:33, Vodkart disse:

e se não usar addEvent? já tentou?

@Toulouse

 

tenta assim:

 


w = {
[12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE},
[12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE},
[12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE},
[12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE},
[12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE},
[12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE}
} 
function onUseWeapon(cid, var)
local min, max = 300, 300 -- dano minimo e maximo
local target = getCreatureTarget(cid)
for stor, info in pairs(w) do
    if getPlayerStorageValue(cid, stor) == 1 then
       if target ~= 0 then
          doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh)
          doAreaCombatHealth(cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef) return true
       end
    end
end
return true
end

 

Eu coloquei o attack nem saiu.. 

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 01/02/2015 em 20:49, Sekk disse:

Olá galera, nunca postei aqui no fórum pra tentar ajudar a turma.... Bom, esses dias eu estava procurando uma talkaction aqui no fórum, que mude o elemento da wand... Eu não achei nenhum tópico, porém, achei uma resposta em um tópico e eu decidi postar aqui no fórum. Se estiver na seção errada, por favor, mova para a correta, ou se ja tiver um tutorial assim aqui, pode deletar se possível.

 

Bom vamos lá:

 

1 - Vá em data/creaturescripts/scripts/login.lua e adicione a seguinte tag antes do último "Return True":

 

 

Conteúdo Oculto

 

2 - Vá em data/items/items.xml e adicione isso, ou edite o item desejado:

 

 

Conteúdo Oculto

 

 

3 - Vá em data/talkactions/talkactions.xml e adicione a seguinte tag:

 

 

Conteúdo Oculto

 

 

Ainda em talkactions, abra a pasta scripts e crie um arquivo chamado wand.lua e coloque o seguinte código dentro deste arquivo:

 

 

Conteúdo Oculto

 

4 - Vá em data/weapons/weapons.xml e adicione a seguinte tag:

 

 

Conteúdo Oculto

 

Ainda em weapons, abra a pasta scripts e crie um arquivo chamado wand1.lua e coloque o seguinte código dentro do mesmo:

 

 

Conteúdo Oculto

 

Pronto, basta você retirar o item do loot dos monstros, editar ao seu gosto a wand, e ser feliz com ela  :D

 

Créditos:

Zaruss por postar esse script na resposta de um tópico aqui no TK

jvcasarin(EU) por postar um tópico aqui no TK

 

Se te ajudei, dê um REP+ ai  :D 

 

a script é boa, só que tem um bug não sei se é na script ou no server, o bug é quando você ataca alguem que está em movimento, alguns hits não saem, tipo, sai o efeito da staff, mas não da dano.

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 looktsx
      Salve Rapaziada tudo bom .
      queria ajuda pra cria um teleport ou uma alavanca com tempo ..
      depois do player usa o teleport ou a lavanca ele so poderá usa depois de tal determinado tempo.
       
      SERVIDOR 12.91
      Se alguem poder me ajuda vou fica grato ,
      des de ja agradeço a todos.
      ..
    • Por willian646
      O evento é totalmente baseado no Foxy Quiz proveniente do GLA, no entanto é apenas uma base para vocês alterarem como acharem melhor.
      Para começar será necessario que você crie um arquivo em talkactions>scripts para entrar no evento, como por exemplo : participar.lua
      e entao colocar sua tag em talkactions.xml, como por exemplo: 
      <talkaction words="!participar;/participar" script="!participar.lua"/> Tendo feito isso você irá colar esse codigo dentro desse arquivo: 
      function onSay(cid, words, param)pos = {x=1236, y=1125, z=15} --POSIÇAO QUE O PLAYER IRÁ COM O COMANDO if getGlobalStorageValue(88788) == 1 then doSendMagicEffect(getPlayerPosition(cid),19) doTeleportThing(cid,pos) else doPlayerSendCancel(cid, "Desculpe mas o evento esta fechado !") end return true end Agora iremos para o script principal, vá em global events>scripts e crie o arquivo pokequiz.lua em seguida coloque sua tag em globalevents.xml como por exemplo: 
      <globalevent name="Pokequiz" interval="10" event="script" value="pokequiz.lua"/> Lembrando que o intervalo de inicio do evento é com vcs, Tendo feito isso abra o arquivo e cole o  seguinte código dentro : 
      quizstrg = 88788 local wave = 0 local CPpos = {x=1051, y=1047, z=7} --POSIÇAO QUE O PLAYER IRÁ SE ERRAR function wave_acresc() wave = wave + 1 addEvent(Quiz, 5000) end function Quiz() if wave == 1 then doBroadcastMessage("Na serie pokemon RAYQUAZA possui mega evolucao ?", RED) addEvent(Resposta, 10000) elseif wave == 2 then doBroadcastMessage("Na serie pokemon ARCEUS e considerado um pokemon RARO ?", RED) addEvent(Resposta, 10000) elseif wave == 3 then doBroadcastMessage("Na serie pokemon MEW criou os 3 caes lendarios ?", RED) addEvent(Resposta, 10000) elseif wave == 4 then doBroadcastMessage("Na serie pokemon ARCEUS tem o poder de mudar de tipo livremente ?", RED) addEvent(Resposta, 10000) elseif wave == 5 then doBroadcastMessage("Na serie pokemon GIRATINA possui 2 formas sendo elas alterada e fantasma ?", RED) addEvent(Resposta, 10000) elseif wave == 6 then doBroadcastMessage("Na serie pokemon DIALGA e PALKIA sao rivais ?", RED) addEvent(Resposta, 10000) elseif wave == 7 then doBroadcastMessage("Na serie pokemon CELEBI possui a habilidade de viajar entre dimensoes ?", RED) addEvent(Resposta, 10000) elseif wave == 8 then doBroadcastMessage("Na serie pokemon SOLGALEO e a primeira evolucao de cosmog ?", RED) addEvent(Resposta, 10000) elseif wave == 9 then doBroadcastMessage("Na serie pokemon MAGEARNA e uma das ultra beasts ?", RED) addEvent(Resposta, 10000) elseif wave == 10 then doBroadcastMessage("Na serie pokemon a cor original de MAGEARNA e laranja ?", RED) addEvent(Resposta, 10000) elseif wave == 11 then doBroadcastMessage("O evento Quiz terminou !", RED) addEvent(winPlayers, 5000) end end function Resposta() if wave == 1 then addEvent(TPFalso, 5000) elseif wave == 2 then addEvent(TPVerdadeiro, 5000) elseif wave == 3 then addEvent(TPVerdadeiro, 5000) elseif wave == 4 then addEvent(TPFalso, 5000) elseif wave == 5 then addEvent(TPVerdadeiro, 5000) elseif wave == 6 then addEvent(TPFalso, 5000) elseif wave == 7 then addEvent(TPVerdadeiro, 5000) elseif wave == 8 then addEvent(TPVerdadeiro, 5000) elseif wave == 9 then addEvent(TPVerdadeiro, 5000) elseif wave == 10 then addEvent(TPFalso, 5000) end end function TPFalso() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1236, y=1122, z=15} local posf = {x=1243, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) end addEvent(wave_acresc, 5000) end end function TPVerdadeiro() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1228, y=1122, z=15} local posf = {x=1235, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) end addEvent(wave_acresc, 5000) end end function winPlayers() for _, sid in ipairs(getPlayersOnline()) do local posi = {x=1228, y=1122, z=15} local posf = {x=1243, y=1128, z=15} local pos = getPlayerPosition(sid) if isInArea(pos, posi, posf) then doTeleportThing(sid,CPpos) doPlayerAddItem(sid,2159, 10) end wave = 0 setGlobalStorageValue(88788, 0) end end --AVISOS DE INICIO function finalEventWarning() if getGlobalStorageValue(quizstrg) == 1 then setGlobalStorageValue(88788, 2) doBroadcastMessage("O evento Quiz fechou, a primeira pergunta surgira em 30 segundos.", RED) addEvent(wave_acresc, 30000) end end function secondEventWarning() if getGlobalStorageValue(quizstrg) == 1 then doBroadcastMessage("O evento Quiz ira iniciar em 1 minuto, usem o comando !participar ou /participar.", RED) addEvent(finalEventWarning, 60000) end end function firstEventWarning() if getGlobalStorageValue(quizstrg) == 1 then doBroadcastMessage("O evento Quiz ira iniciar em 3 minutos, usem o comando !participar ou /participar.", RED) addEvent(secondEventWarning, 120000) end end function onThink(interval, lastExecution) if getGlobalStorageValue(quizstrg) == 0 then setGlobalStorageValue(88788, 1) doBroadcastMessage("O evento Quiz ira iniciar em 5 minutos, usem o comando !participar ou /participar.", RED) addEvent(firstEventWarning, 120000) end return true end Já ia me esquecendo, a unica coisa ao qual vocês devem mudar de acordo com as coordenadas do seu mapa e área do evento são as funções TPVerdadeiro , TPFalso, winPlayers , elas servem para indicar qual área é a errada e teleportar quem tiver nessa área pro cp, caso o lado errado seja o esquerdo então será usado a função  TPVerdadeiro, e é a msm coisa para o outro lado, no caso da winPlayers é toda a área do evento.
       
      Aqui vai um exemplo: 
       
      E é isso rapaziada, não sei se já possui algum evento parecido por essas bandas, mas eu não encontrei ,então fiz  e resolvi contribuir com a comunidade, peço que se for repostar em algum outro lugar dê os devidos créditos, obg e até a próxima.
    • Por Ghaz
      Fala pessoal tudo bem?
       
      Estou com dificuldades em um script e preciso da ajuda dos magos do LUA rs.
       
      Tenho um script que quando o player morre (onDeath), ele faz algumas coisas e depois ele chama uma função que deveria retornar uma table (array) para eu fazer o for com o ipairs certinho. Segue abaixo o código:
       
       
      Segue abaixo a função getPlayersInArea:
       
       
      Acontece que no código de cima (do primeiro spoiler) eu dou um print no retorno da função getPlayersInArea, porém ela não tá me retornando a table, tá me retornando só: 2
       
       
       
      Alguém consegue me ajudar em, como raios eu faço a função retornar a lista de players ao invés da quantidade? Acredito que ta retornando o count da table, e não os itens do array.
       
       
      Agradeço desde já, valeu tchurma!
    • Por sannn
      --[[ /////////////////////////////////////////////////////////////////////////////////////////////////////// Discord: San#7791 -- Loja System 2.0 -- TFS 0.3.6 -- para adicionar qualquer item na loja: basta adicionar na tabelinha, seguindo o exemplo do vip! valor = quantidade de DIAMOND a ser cobrada; itemID = item a ser recebido; quantidade = quantidade de itens a ser recebidos; msg = mensagem que o player vai receber após comprar! Feito por San Discord: San#7791 exemplo de como comprar: !loja vip podendo ser adicionado a modules também. tag talkactions.xml // <talkaction words="!loja" case-sensitive="no" event="script" value="Loja System 2.0.lua"/> ////////////////////////////////////////////////////////////////////////////////////////////////////// depois de tantos sistemas com mil elseifs, vim trazer esta contribuição simples, para facilitar a vida de muitos adms! Contribuição pra comunidade =D ]]-- LOJA_CANCEL = "Você não possui diamantes o suficiente." LOJA_INVALID = "Não temos este item a venda na loja!" INVALID = "Comando incorreto" DIAMOND = 2145 -- item que será cobrado; tabelinha = { ["vip"] = {valor = 5, itemID = 2160, quantidade = 1, msg = "Obrigado por comprar um VIP em nossa loja!"}, -- coloque sempre minusculo o nome ! ["vip"]... etc } function onSay(cid, words, param, channel) local msg = string.lower(param) -- Não mexa! if msg == "" then doPlayerSendTextMessage(cid, 22, INVALID) return true end -- verificação if tabelinha[msg] == nil then doPlayerSendTextMessage(cid, 22, INVALID) return true end -- verificação if tabelinha[msg].valor then if getPlayerItemCount(cid, DIAMOND) >= tabelinha[msg].valor then doPlayerRemoveItem(cid, DIAMOND, tabelinha[msg].valor) doPlayerAddItem(cid, tabelinha[msg].itemID, tabelinha[msg].quantidade) doPlayerSendTextMessage(cid, 20, tabelinha[msg].msg) else doPlayerSendTextMessage(cid, 22, LOJA_CANCEL) return true end else doPlayerSendTextMessage(cid, 22, LOJA_INVALID) end return true end  
    • Por DdJs
      Quem já me conhece aqui do fórum sabe que minha área não é script ou nada do gênero. Estou fazendo esse post para ajudar um membro, o @KillerWatts, e outros mais, talvez. 
       
      Introdução:
      Wand/rod que dispara vários elementos aleatórios. O uso dos elementos não é configurável como o modal do @tataboy67, lembrando que esse script é velho e foi testado em OTs versões 8.40 até 8.60
       
      Guia: 
      ef - efeito que irá fazer no alvo (além do efeito comum já do elemento).
      sh - shoot type que traçará o "ar" até o alvo.
      dmg - tipo de dano que causará no alvo.
       
      Eu usei a Jester Staff   (ID: 7958). Você pode usar o item que desejar.
       
      Lista de itens para utilizar como rod/wand:
       
       
      Em weapons/scripts crie um arquivo "wandelement.lua":
       
       
      Para TFS 1.x  (créditos e agradecimento ao @FlavioHulk pelo desenvolvimento):
       
      Em weapons.xml adicione a tag:
       
       
      Em items.xml (aqui tanto faz como vai estar, tirando o "range" que é válido, o que vai contar para o resto é o script em weapons):
       
      Funcionamento:

       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo