Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Galera tenho uma action que funciona certinho... mas queria que para poder usar ela tenha um comando para habilitar... e se tivesse como desabilitar séria legal, ai vira uma talkaction certo ? tentei colocar function onSay(cid, words, param) no inicio e colocar um talkaction mas não deu....

 

ta ae o script:

 

 

function onSay(cid, words, param)
--local toloot = {11441, 11441, 11443, 11444, 11445, 11446, 11447, 11448, 11449,11450, 11451, 11452, 11453, 11454, 12618, 12232, 12244} -- PREFERENCIAL - SE QUISER APENAS COM ALGUNS ITENS
function onUse(cid, item, frompos, item2, topos)
if getItemAttribute(item.uid, "corpseowner") ~= cid then
doPlayerSendCancel(cid, "You're not the owner.")
return true
end
local items = {}
for x=0, (getContainerSize(item.uid)) do
local itens = getContainerItem(item.uid, x)
--if isInArray(toloot, itens.itemid) then
table.insert(items, {i=itens.itemid, q=itens.type})
doRemoveItem(itens.uid)
--break
--end
end
for y=1, #items do
doPlayerAddItemStacking(cid, items[y].i, items[y].q)
doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".")
end
if #items > 0 then
return true
else
return false
end
end

 

 

Quem ajudar ganha REP+ valeu....

Link para o post
Compartilhar em outros sites

Cara, eu acho mais fácil colocar como action e criar uma talkaction justamente para fixar a action.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Como crio essa talk ?

Link para o post
Compartilhar em outros sites

OBS, Sei que está errado:

 

mas seria tipo assim:

function onSay(cid, words, param)

local pos = {x=655, y=1014, z=7}

doSetItemActionId(pos, 2765)
doSendMagicEffect(getThingPosition(cid), CONST_ME_GREEN_RINGS) 

		return true
end
<talkaction log="yes" words="!mudapoha" access="5" event="script" value="mudaaction.lua"/>	

Se você quiser colocar um item que não seja possível mover no lugar que você quer fazer isso, é possível através de algo parecido com isso...

alguém dá uma luz aqui por favor...


Aì quando você falar !mudapoha , iria mudar a action do piso que a pos está...


Mas ta errado /\ Seria para algum movement OnStepIn

 

 

 

Agora auto loot: você poderia criar uma condição dentro do script, e fazer a talkaction mudar essa condição, para ela ser verdadeira ou falsa...

 

 

Já dei ideia, agora é só alguém executar, to ocupado...

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Qual eh a função desse script?

Obs: vc n apagou a function onUse de dentro do script.

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

OBS, Sei que está errado:

 

mas seria tipo assim:

function onSay(cid, words, param)

local pos = {x=655, y=1014, z=7}

doSetItemActionId(pos, 2765)
doSendMagicEffect(getThingPosition(cid), CONST_ME_GREEN_RINGS) 

		return true
end
<talkaction log="yes" words="!mudapoha" access="5" event="script" value="mudaaction.lua"/>	

Se você quiser colocar um item que não seja possível mover no lugar que você quer fazer isso, é possível através de algo parecido com isso...

alguém dá uma luz aqui por favor...

Aì quando você falar !mudapoha , iria mudar a action do piso que a pos está...

Mas ta errado /\ Seria para algum movement OnStepIn

 

 

 

Agora auto loot: você poderia criar uma condição dentro do script, e fazer a talkaction mudar essa condição, para ela ser verdadeira ou falsa...

 

 

Já dei ideia, agora é só alguém executar, to ocupado...

 

Vlw cara era isso que eu estava pensando só que não manjo nada de .lua... poderia me passar um tutorial ou me explicar ou fazer pra mim ??

 

 

Qual eh a função desse script?

Obs: vc n apagou a function onUse de dentro do script.

 

Se eu apagar a function onUse funciona ???

 

#edit

 

Tirei e não funciono '-'

Editado por GabrielSapient (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Funciona ñ.

Me diga o que é pra esse script fazer exatamente que eu leio ele e tento adaptar.

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

Quero ter um comando para ativar e desativar quando quiser esse action... pode me ajudar ???

Link para o post
Compartilhar em outros sites

Habilitar/desabilitar uma action, no geral? Use uma global storage, é mais simples assim.


Substitua o action script:

function onUse(cid, item)
    local gstor = 54321
    if getGlobalStorageValue(gstor) < 1 then
        return doPlayerSendCancel(cid, "This system is disabled.")
    end
    
        if getItemAttribute(item.uid, "corpseowner") ~= cid then
            return doPlayerSendCancel(cid, "You're not the owner.")
        end
    
            local items = {}
            for x = 0, (getContainerSize(item.uid)) do
                local itens = getContainerItem(item.uid, x)
                table.insert(items, {i=itens.itemid, q=itens.type})
                doRemoveItem(itens.uid)
            end
    
        for y = 1, #items do
            doPlayerAddItemStacking(cid, items[y].i, items[y].q)
            doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".")
        end
        
    if #items < 1 then return false end
    
    return true
end




action.lua (data/talkactions/scripts):

local t = {
    ['enabled'] = {evalue = 1, dvalue = 0, msg = {'The action is now enabled.', 'The action is already enabled.'}},
    ['disabled'] = {evalue = 0, dvalue = 1, msg = {'The action is now disabled.', 'The action is already disabled.'}}
}

function onSay(cid, words, param)
    local p = string.lower(param)
    local gstor = 54321
    
    if p == '' then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You can use the following parameters: enabled/disabled.')
    elseif not t[p] or not tostring(p) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Invalid parameter specified.')
    elseif getGlobalStorageValue(gstor) == t[p].dvalue then
        setGlobalStorageValue(gstor, t[p].evalue)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[p].msg[1])
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[p].msg[2])
    end
    
    return true
end




Tag - talkactions.xml (data/talkactions):

<talkaction log="yes" words="/action" access="4" event="script" value="action.lua"/>
Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

funciono mas sempre fica desativado aparecendo a msg, e não abre o pokémon...pode da uma revisada. eu to usando esse autoloot: www.tibiaking.com/forum/topic/41693-pda-autoloot-igual-pxg/  ele também modifica o some functions... Por favor me ajuda..

 

já dei rep... se me ajudar dou mais um e amanhã tbm... vai cara pf

Editado por GabrielSapient (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Deu algum erro?

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

Nenhum.... aparece This system is disabled na minha opinião configurei certo....

Link para o post
Compartilhar em outros sites

Nenhum.... aparece This system is disabled na minha opinião configurei certo....

 

É porque, do jeito que está configurado, sempre que não estiver com o global storage, vai ficar aparecendo a mensagem...

 

 

Tem que criar outro storage para dar a mensagem só uma vez 

setPlayerStorageValue(cid, key, value)

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Cara abriu o corpo, só que não pego o loot. Lembrando que o suicuide não me passo a tag da action, ai eu peguei a do Tópico do autoloot mesmo que sempre funciono sem essa talk.

Editado por GabrielSapient (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tenta isso para ver se para de mostrar a mensagem e não buga o script:

function onUse(cid, item)
    local gstor = 54321
   
     if getPlayerStorageValue(cid, 2765) < 1 then
     if getGlobalStorageValue(gstor) < 1 then
        return doPlayerSendCancel(cid, "This system is disabled.")
    end
    
    else 
    setPlayerStorageValue(cid, 2765, 1)
    end

        if getItemAttribute(item.uid, "corpseowner") ~= cid then
            return doPlayerSendCancel(cid, "You're not the owner.")
        end
    
            local items = {}
            for x = 0, (getContainerSize(item.uid)) do
                local itens = getContainerItem(item.uid, x)
                table.insert(items, {i=itens.itemid, q=itens.type})
                doRemoveItem(itens.uid)
            end
    
        for y = 1, #items do
            doPlayerAddItemStacking(cid, items[y].i, items[y].q)
            doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".")
        end
        
    if #items < 1 then return false end
    
    return true
end

aí se der certo na primeira vez dentro da talk tem que colocar:

setPlayerStorageValue(cid, 2765, 0)
Editado por Caronte (veja o histórico de edições)

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Cara na outra que você me passo abria o pokémon sem aparecer a msg, agora ta aparecendo a msg... aonde eu boto isso: setPlayerStorageValue(cid, 2765, 0) ???

Link para o post
Compartilhar em outros sites

É porque, do jeito que está configurado, sempre que não estiver com o global storage, vai ficar aparecendo a mensagem...

 

 

Tem que criar outro storage para dar a mensagem só uma vez 

setPlayerStorageValue(cid, key, value)

Cara, o escopo que envolve a checagem da global storage só envia a mensagem caso o mesmo seja true, não tem nada a ver. E usando somente a storage, não vai dar pra determinar um "controle" geral da action, a storage se aplica em um creature ID específico e não para todos (como a global storage).

O problema estava no valor da global storage, acabei esquecendo que por padrão (caso não esteja sendo usada em algum outro script), seria menor que 1 e resultaria nisso.

 

Lembrando que o suicuide não me passo a tag da action

Não tinha necessidade de eu postar uma tag, já que você tem esse action script, bastava substituir os códigos do mesmo.

Enfim, tente invertendo os valores da global storage.

Substitua seu action script:

function onUse(cid, item)
    local gstor = 54321
    if getGlobalStorageValue(gstor) < 1 then
        return doPlayerSendCancel(cid, "This system is disabled.")
    end
    
        if getItemAttribute(item.uid, "corpseowner") ~= cid then
            return doPlayerSendCancel(cid, "You're not the owner.")
        end
    
            local items = {}
            for x = 0, (getContainerSize(item.uid)) do
                local itens = getContainerItem(item.uid, x)
                table.insert(items, {i=itens.itemid, q=itens.type})
                doRemoveItem(itens.uid)
            end
    
        for y = 1, #items do
            doPlayerAddItemStacking(cid, items[y].i, items[y].q)
            doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".")
        end
        
    if #items < 1 then return false end
    
    return true
end

 

Substitua os códigos do talkaction script action.lua:

local t = {
    ['enabled'] = {evalue = 1, dvalue = 0, msg = {'The action is now enabled.', 'The action is already enabled.'}},
    ['disabled'] = {evalue = 0, dvalue = 1, msg = {'The action is now disabled.', 'The action is already disabled.'}}
}

function onSay(cid, words, param)
    local p = string.lower(param)
    local gstor = 54321
    
    if p == '' then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You can use the following parameters: enabled/disabled.')
    elseif not t[p] or not tostring(p) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Invalid parameter specified.')
    elseif getGlobalStorageValue(gstor) == t[p].dvalue then
        setGlobalStorageValue(gstor, t[p].evalue)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[p].msg[1])
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[p].msg[2])
    end
    
    return true
end

 

 

if getPlayerStorageValue(cid, 2765) < 1 then

if getGlobalStorageValue(gstor) < 1 then

return doPlayerSendCancel(cid, "This system is disabled.")

end

else

setPlayerStorageValue(cid, 2765, 1)

end

Se já há uma estrutura de controle que determina o retorno do callback através de um valor de uma global storage, qual a necessidade de aplicar ao creature ID um valor de uma storage?

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Cara na terceira linha o erro não séria ai no edvalue ??? isso ta certo ?


Funciono cara.... mas não to conseguindo desativar aparece The action is already disabled.

 

deve ser por causa desse edvalue ???


E apareceu isso na distro:

 

[24/12/2014 20:43:38] [Error - Action Interface] 
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:onUse
[24/12/2014 20:43:38] Description: 
[24/12/2014 20:43:38] (luaDoRemoveItem) Item not found
 
[24/12/2014 20:43:38] [Error - Action Interface] 
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:onUse
[24/12/2014 20:43:38] Description: 
[24/12/2014 20:43:38] (luaDoPlayerAddItem) Item not found
 
[24/12/2014 20:43:38] [Error - Action Interface] 
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:onUse
[24/12/2014 20:43:38] Description: 
[24/12/2014 20:43:38] data/lib/050-function.lua:227: attempt to index a boolean value
[24/12/2014 20:43:38] stack traceback:
[24/12/2014 20:43:38] data/lib/050-function.lua:227: in function 'getItemNameById'
[24/12/2014 20:43:38] data/actions/scripts/autoloot.lua:20: in function <data/actions/scripts/autoloot.lua:1>
Link para o post
Compartilhar em outros sites

Cara na terceira linha o erro não séria ai no edvalue ??? isso ta certo ?

Veja:

   if getGlobalStorageValue(gstor) < 1 then
        return doPlayerSendCancel(cid, "This system is disabled.")
    end

Caso a estrutura de controle seja true, ou seja, caso o valor da global storage seja menor que 1 (desativado), então retornará aquela mensagem.

Aqui:

local t = {
    ['enabled'] = {evalue = 1, dvalue = 0, msg = {'The action is now enabled.', 'The action is already enabled.'}},
    ['disabled'] = {evalue = 0, dvalue = 1, msg = {'The action is now disabled.', 'The action is already disabled.'}}
}

Caso o parâmetro usado seja enabled e a global storage for igual a 0 (desativado), então o valor da mesma será setado para como sendo 1 (ativado). Se o parâmetro usado for disabled, o inverso acontece.

Tente desse modo invertido que fiz acima, se não der, refaço tudo depois que eu voltar.

Abraços e tenha um bom natal.

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

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Poxa cara não funciono valeu pela ajuda, mas não ta dando. REP+

 

Abraço, feliz natal !....

Editado por GabrielSapient (veja o histórico de edições)
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 Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por amoxicilina
      Action: Remover skull
       
       
    • Por Skyligh
      Olá pessoal, venho hoje aqui para postar um sistema de pokemon muito procurado, o famoso, Tm System. Siga o tutorial a risca ou seu trabalho será invão.
      Quote
      Seu Funcionameto: Basícamente funciona assim; ele adiciona um "Attack" novo a um pokemon ou substitui um existente, dependendo da vontado do player.
      Versões testadas: Qualquer derivado do PDA
      http://www.havencrest.co.uk/images/page-divider 2.jpg
      Vamos ao que interessa, vá em actions.xml e cole a seguinte tag:
        <action itemid="id do item que será usado" event="script" value="tmSystem.lua"/> Atenção o item que será usado no system, não deve ter o attributo "Usable" ou você terá erros. Agora crie um arquivo em {data/actions/scripts} chamado tmSystem.lua e cole o seguinte script dentro:
        function onUse(cid, item, frompos, item2, topos) local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemNameById(item2.itemid) local i = item2.itemid if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Need pokemon to learn a "..tmname..".") end if getItemAttribute(slotball, "TM") == tmname then return doPlayerSendCancel(cid, "Your pokemon was learned this TM.") end if isInArray(tm[""..tmname..""], getPokemonName(pokemon)) then doPlayerSetVocation(cid, 49) openChannelDialog(cid) else doPlayerSendCancel(cid, "This TM not compatible in your pokemon.") end return true end http://www.havencrest.co.uk/images/page-divider 2.jpg Agora vamos em {creaturescripts.xml} e colaremos a seguinte tag:
        <event type="joinchannel" name="TmChoose" event="script" value="tmsys.lua"/> Agora crie o arquivo tmsys.lua em {creaturescripts/scripts} e cole isso dentro:
        [CODE] function onJoinChannel(cid, channelId, users, isTv) if getPlayerVocation(cid) == 49 then else return true end local summon = getCreatureSummons(cid)[1] local moves = movestable[getCreatureName(summon)] local n = 1 for a = 1, 12 do local b = getNewMoveTable(moves, a) if b then n = n + 1 end end for b = 13, 23 do if channelId == b then local tm = tmabilities local pokemon = getCreatureSummons(cid)[1] local slotball = getPlayerSlotItem(cid, 8).uid local slotm = getPlayerSlotItem(cid, 9) local tmname = getItemNameById(slotm.itemid) if n >= channelId - 11 then doPlayerSendTextMessage(cid, 27, "Congralutions! Your "..getPokemonName(pokemon).." learn a new TM ("..tmname..").") doItemSetAttribute(slotball, "TM", tmname) doItemSetAttribute(slotball, "TMN", channelId - 11) doSendMagicEffect(getThingPosition(pokemon), 28) doSendMagicEffect(getThingPosition(pokemon), 29) doRemoveItem(slotm.uid) if useKpdoDlls then doUpdateMoves(cid) end else doPlayerSendCancel(cid, "Put tm on at last empty slot.") end return false end end return true end http://www.havencrest.co.uk/images/page-divider 2.jpgNesta parte você precisa de muita atenção, você terá que criar 10 channels como no modelo abaixo:
        <channel id="13" name="[Put on M1]"> <vocation id="49"/> </channel>   <channel id="14" name="[Put on M2]"> <vocation id="49"/> </channel> Em channel id você seguira a ordem 13 a 23, em vocations id pode deixar do jeito que esta. Agora crie uma vocation com o id 49 ou cole a seguinte tag no vocations.xml:
        <vocation id="49" name="TM" description="pokemon trainer" needpremium="0" gaincap="0" gainhp="55" gainmana="0" gainhpticks="0" gainhpamount="0" gainmanaticks="0" gainmanaamount="0" manamultiplier="1.1" attackspeed="-1" soulmax="251" gainsoulticks="-1" fromvoc="1" lessloss="0"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="2" club="2" sword="2" axe="2" distance="2" shielding="2" fishing="2" experience="1.1"/> </vocation> Imagem Postada http://www.havencrest.co.uk/images/page-divider 2.jpgAgora vamos em {data/lib} e crie um arquivo chamado tmSystem.lua e cole as seguintes linhas nele:
        tmabilities = { ["Solar Beam"] = {"Blastoise", "Venusaur", "Charizard"}, ["Fire Blast"] = {"Blastoise", "Venusaur", "Charizard"}, } Nesta parte você edita, para cada magia[""] = nome dos pokemons que poderam ter essa magia por tm. Tipo do jeito que esta ai, se você for tentar colocar um fire blast em um bulba não vai pegar.. Para adicionar mais magias, basta copiar a linha e colocar o nome da magia nova e seus respectivos pokemons. http://www.havencrest.co.uk/images/page-divider 2.jpg Preste atenção, para cada magia feita, terá que haver um item com o nome da magia. E o id deste item deve ser colocado na tag da actions. ou seja(exemplo): abra o item.xml pegue o item que deseje usar e coloque o nome "Solar Beam"(do mesmo jeito da lib), pegue o id dele e cole na tag da actions. Espero que tenham intendido está parte. http://www.havencrest.co.uk/images/page-divider 2.jpg A ultima parte da instalção, vamos em {data/talkactions/scripts} e abra o arquivo move1.lua e substitua a parte de "if it = 1" até o ultimo "end" antes da parte "if not move then":
        local msgs = {"use ", ""} function doAlertReady(cid, id, movename, n, cd) if not isCreature(cid) then return true end local myball = getPlayerSlotItem(cid, 8) if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!") return true end local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) if not p or #p <= 0 then return true end for a = 1, #p do if getItemAttribute(p[a], cd) == "cd:"..id.."" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!") return true end end end function onSay(cid, words, param, channel) if param ~= "" then return true end if string.len(words) > 3 then return true end if #getCreatureSummons(cid) == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.") return 0 end --alterado v1.5 local mypoke = getCreatureSummons(cid)[1] if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end if getCreatureName(mypoke) == "Evolution" then return true end if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then name = getPlayerStorageValue(mypoke, 1010) --edited else name = getCreatureName(mypoke) end --local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke) local it = string.sub(words, 2, 3) local move = movestable[name].move1 local cdzin = "move"..it.."" local slotball = getPlayerSlotItem(cid, 8).uid local tmname = getItemAttribute(slotball, "TM") if it == "2" then if getItemAttribute(slotball, "TMN") == 2 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move2 end elseif it == "3" then if getItemAttribute(slotball, "TMN") == 3 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move3 end elseif it == "4" then if getItemAttribute(slotball, "TMN") == 4 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move4 end elseif it == "5" then if getItemAttribute(slotball, "TMN") == 5 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move5 end elseif it == "6" then if getItemAttribute(slotball, "TMN") == 6 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move6 end elseif it == "7" then if getItemAttribute(slotball, "TMN") == 7 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move7 end elseif it == "8" then if getItemAttribute(slotball, "TMN") == 8 then move = {name = ""..tmname.."", level = 0, cd =15, dist = 0, target = 0} else move = movestable[name].move8 end elseif it == "9" then if getItemAttribute(slotball, "TMN") == 9 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move9 end elseif it == "10" then if getItemAttribute(slotball, "TMN") == 10 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move10 end elseif it == "11" then if getItemAttribute(slotball, "TMN") == 11 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move11 end elseif it == "12" then if getItemAttribute(slotball, "TMN") == 12 then move = {name = ""..tmname.."", level = 0, cd = 12, dist = 0, target = 0} else move = movestable[name].move12 end end if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end if getPlayerLevel(cid) < move.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.") return true end if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.") return true end if getTileInfo(getThingPos(mypoke)).protection then doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.") return true end if getPlayerStorageValue(mypoke, 3894) >= 1 then return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3 end --alterado v1.6 if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!") return true end --alterado v1.6 if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then local target = getCreatureTarget(cid) if isCreature(getMasterTarget(target)) then --alterado v1.6 doSendMagicEffect(getThingPos(target), 211) doSendAnimatedText(getThingPos(target), "TOO BAD", 215) doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false) doSendMagicEffect(getThingPos(target), 211) doFaceCreature(target, getThingPos(mypoke)) return true --alterado v1.6 end end if move.target == 1 then if not isCreature(getCreatureTarget(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.") return 0 end if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then return 0 end if getCreatureHealth(getCreatureTarget(cid)) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.") return 0 end if not isCreature(getCreatureSummons(cid)[1]) then return true end if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.") return 0 end if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then return 0 end end local newid = 0 if isSleeping(mypoke) or isSilence(mypoke) then --alterado v1.5 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.") return 0 else newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd) end doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) local summons = getCreatureSummons(cid) --alterado v1.6 addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin) for i = 2, #summons do if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then docastspell(summons[i], move.name) --alterado v1.6 end end docastspell(mypoke, move.name) doCreatureAddCondition(cid, playerexhaust) if useKpdoDlls then doUpdateCooldowns(cid) end return 0 end Até que enfim.. Se fizeram tudo certo o sistema vai funcionar se não.... Caso não itendam alguma parte da explicação podem me perguntar por aqui...
      Creditos
      Smix
    • Por CaduGTX
      Olá, eu e um amigo fizemos esse script para limpar as casas automaticamente, era um script pessoal mas resolvi postar.
      O Script foi feito em revscript, se for usar da forma antiga, terá que adaptar.

      Basta adicionar um arquivo lua na sua pasta de talkactions:
       
      local function doCheckHouses() local registros = db.storeQuery( "SELECT `houses`.`owner`, `houses`.`id` FROM `houses`,`players` WHERE `houses`.`owner` != 0 AND `houses`.`owner` = `players`.`id`;") if registros ~= false then local count = 0 repeat count = count + 1 local owner = result.getNumber(registros, "owner") local houseId = result.getNumber(registros, "id") local house = House(houseId) if house and (owner > 0) then print(house:getName()) house:setOwnerGuid(0) end until not result.next(registros) result.free(registros) end print('Houses Cleaned') return true end local limparhouse = TalkAction("/limparhouse") function limparhouse.onSay(player, words, param) if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then player:sendCancelMessage("Only admins can use this command.") return true end addEvent(doCheckHouses, 10 * 1000) player:sendCancelMessage("Cleaning houses.") return true end limparhouse:separator(" ") limparhouse:register()  
      Para usar é bem simples, basta usar o comando /limparhouse, e dentro de alguns instantes todas as casas serão limpas.

      Creditos:
      -CaduGTX
      -JameesDavid
       
    • Por tataboy67
      Dungeon System v1.1

      A pedido de um usuário em meu Discord, resolvi ajuda-lo e desenvolver um sistema totalmente interativo e de qualidade aqui para vocês.
      Bom, o sistema se baseia em uma ActionID que ao clicar, podemos ai entrar em uma dungeon, tendo tempo para finaliza-la e até um cooldown, caso queira entrar novamente.

      Imagens do sistema:
       

      Vamos ao Código:

      Em actions, crie um arquivo com o nome de: Dungeon Actions.lua
       
      Em creaturescripts, crie um arquivo com o nome de: Dungeon Creaturescript.lua
       
      Ainda em creaturescripts, crie outro arquivo com o nome de: Type Dungeon Creaturescript.lua
       
       Na LIB, crie um arquivo com o nome de Dungeon System Lib.lua, e adicione:
       
      Em creaturescripts.xml, adicione:
       
       
      Em actions.xml, adicione:
       Em libs.lua, adicione:
      dofile('data/lib/Dungeon System Lib.lua')  
      v1.1 (Nova atualização, agora pode spawnar mobs dentro da DG, e ao sair, eles são removidos)

      (CREDITOS TOTAIS A MIM: @tataboy67)

      Essa é a primeira versão. Ainda pretendo colocar para nascer mobs, remover mobs ao entrar, etc etc...
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo