Ir para conteúdo

Featured Replies

Postado
  • Autor
  1. 5 horas atrás, wevertonvrb disse:

    man vamos la eu fiz pra voce um por movement sendo assim vc n precisa de comando nem nada
    para fazer este script eu usei uma bota crocodile boots para testar e ficou 100%

    modo de usar.
    quando voce equipar a bota vai sair um efeito do personagem ou seja se vc tiver com esta bota no pé do teu personagem o efeito acontece e caso vc tire a bota o efeito para

    vamos la

    vá em data/movements 
    abre o movements.xml e cole isso
    <movevent type="DeEquip" itemid="3982" slot="feet" event="script" value="botas.lua"/>
    <movevent type="Equip" itemid="3982" slot="feet" event="script" value="botas.lua"/>

    salve e fecha lenbrando que o 3982 é o id da crocodile boots caso queira usar outro item basta trocar pelo id do item que queira
    outra coisa o feet significa pés ou seja isso so server para botas caso queira por uma armadura ou outro item deixarei como mudar abaixo
     

      Ocultar conteúdo

      [capacetes] = "Head"
      [colar] = "Neck"''necklace''
      [mochila] = "Back"''backpack''
      [armadura] = "Body"
      [mão direita] = "Right"''two-handed''
      [mão esquerda] = "Left"''two-handed''
      [calças] = "Leg"''legs''
      [botas] = "Feet"
      [dedos, aneis] = "Finger" "ring''
      [munição] = "Ammo"

    caso queria que o item a dar o efeito seja uma armadura coloque body onde esta feet e coloque o id da armadura no ludar do id da crocodile boots e assim vai

    agora vamos ao script 

     

     

    vá em data/movements/scripts copie e cole um arquivo qualquer e renomeie para botas.lua

      Ocultar conteúdo

    local config = {
        tempo = 3, --tempo em segundos, voce pode colocar de quanto em quanto tempo o efeito vai aparecer eu deixei 3 segundos mas pode deixar o quanto quizer
        efeito = 15, --aqui voce coloca o eveito que tu quer eu deixei 15 mas voce pode alterar como quizer para ver os efeitos disponiveis abra o object builder e vá em effects e seja feliz
       }
    function AURA(cid)
    if getPlayerStorageValue(cid, 554466) == 1 then

        doSendMagicEffect(getCreaturePosition(cid), config.efeito)
        addEvent(AURA, config.tempo*1000, cid)
        end
    end

    function onEquip (cid, item, slot)
    setPlayerStorageValue(cid, 554466, 1)
    AURA(cid)
          return true
          end


    function onDeEquip(cid, item, slot)
    setPlayerStorageValue(cid, 554466, -1)
    return true
    end
     

     

    Então funcionou não .-.

Voce vez a creaturescripts da aura antes?

pq aqui não quis da certo

  • Respostas 36
  • Visualizações 3.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • é o mesmo principio do item, só pode usar a talk se tiver x storage, so fazer o npc vender ela:   npc/scripts/aura.lua     npc/Aura.xml <?xml version="1.0" encoding="

  • @samuel.show   Amigo, como assim dar use em um item e ativar aura? Essa aura seria o que afinal? E esse item qualquer um pode usar ou somente players vips? E também, me diz se ao dar use nes

  • ele quer uma funcão onequipe quando equipar o item sei la (bota por ex) vai ficar saindo um efeito do personagem 

Posted Images

Postado

creaturescripts/scripts/aura.lua

local config = {
    tempo = 1, -- tempo em segundos
    efeito = 15, -- efeito q vc quer
   }
local stor = 25950

function aura(cid)
    doSendMagicEffect(getCreaturePosition(cid), config.efeito)
    addEvent(aura, config.tempo*1000, cid)
end

function onThink(cid, interval)
	if getPlayerStorageValue(cid, stor) == 1 then
		aura(cid)
	end
return true
end

creaturescripts.xml

<event type="think" name="AuraS" event="script" value="aura.lua"/>

 

e registra isso no login.lua

registerCreatureEvent(cid, "AuraS")

 

Postado
16 horas atrás, samuel.show disse:
  1. Então funcionou não .-.

Voce vez a creaturescripts da aura antes?

pq aqui não quis da certo

é movement não creaturescript

você fez algo errado!
era algum erro? se sim me mande
e vefifique isso pois é movement

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

Postado
  • Autor
Em 11/03/2017 ás 16:56, Sekk disse:

é o mesmo principio do item, só pode usar a talk se tiver x storage, so fazer o npc vender ela:

 

npc/scripts/aura.lua

  Ocultar conteúdo


local storage = 191029

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)                npcHandler:onCreatureAppear(cid)            end
function onCreatureDisappear(cid)             npcHandler:onCreatureDisappear(cid)            end
function onCreatureSay(cid, type, msg)            npcHandler:onCreatureSay(cid, type, msg)        end
function onThink()                    npcHandler:onThink()                    end

function creatureSayCallback(cid, type, msg)
    if(not npcHandler:isFocused(cid)) then
        return false
    end
    msg = msg:lower();
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if msgcontains(msg, 'aura') or msgcontains(msg, 'buy') then
        if getPlayerStorageValue(cid, storage) >= 1 then
            selfSay("Você já tem permissão.", cid)
         else
            doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)
            selfSay("Pronto, agora você já pode usar a aura a vontade!", cid)
            setPlayerStorageValue(cid, storage, 1)
        end
    end
end    

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

npc/Aura.xml


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Aura Seller" script="data/npc/scripts/aura.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="149" head="57" body="59" legs="40" feet="76" addons="0"/>
    <parameters>
        <parameter key="message_greet" value="Olá |PLAYERNAME|, deseja ter permissão para usar a sua {aura}?"/>
        </parameters>
</npc>

 

O que eu devo colocar na 
TalkAction?

 

segue abaixo a Script da TalkAction

Obrigado 

 

 

 

 

 

 

-- CONFIGURAÇÕES
    aurastr = 25950 -- storage da aura
    estr = 25951 -- storage para o exhaust
    porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem
    quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
    tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
    tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
    efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)

-- Função que chama a aura
function efeitosAura(i,tm,cid)
    if(isCreature(cid)) then
            local atual = getCreaturePosition(cid)
        local posaura = {
            {x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
            {x=atual.x, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
            {x=(atual.x)+1, y=atual.y, z=atual.z},
            {x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
            {x=atual.x, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
            {x=(atual.x)-1, y=atual.y, z=atual.z},
        }
        local chances = math.random(100)
        if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
            if(i<=8 and i>1) then
                doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura)
            else
                doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
            end
            doSendMagicEffect(atual, efeitocura)
        end
        if(i==8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
        elseif(i<8) then
            doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
        end
        if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
            i = i+1
            tm = tempo/8
            return addEvent(efeitosAura,tm,i,tm,cid)
        elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
            return efeitosAura(1,0,cid)
        else
            return TRUE
        end
    else
        return TRUE
    end
end

-- Função principal
function onSay(cid, words, param, channel)
    if(param=="on") then
        if getPlayerStorageValue(cid, estr) > os.time() then
            doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.")
        else
            if(getPlayerStorageValue(cid, aurastr)==2) then
                doPlayerSendCancel(cid,"Sua aura já está habilitada.")
            elseif(getPlayerStorageValue(cid, aurastr)==-1) then
                doPlayerSendCancel(cid,"Aura ligada!")
                setPlayerStorageValue(cid, aurastr, 2)
                efeitosAura(1,tempo/8,cid)
            end
        end
    elseif(param=="off") then
        if(getPlayerStorageValue(cid, aurastr)==2) then
            setPlayerStorageValue(cid, estr, os.time()+2)
            setPlayerStorageValue(cid, aurastr, -1)
            doPlayerSendCancel(cid,"Aura desligada!")
        end
    else    
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.")
    end
    return TRUE
end 

@Sekk @KotZletY

Editado por samuel.show (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo