Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Runa de puxar


Ir para solução Resolvido por zipter98,

Posts Recomendados

Bom dia/tarde/noite galera, vim aqui fazer um pedido de runa que funciona assim:

 

-Você clica na runa e joga no alvo, aí de repente o alvo aparece na frente do caster da magia, soltando um efeito nos dois locais, de onde ele saiu e pra onde ele foi.

 

PS: Preciso muito que seja uma runa, porque é pro meu server com base do OTNaruto e lá toda spell é por runa... 

 

Brigadão galera, Abraços

Nb3SnA.gifRnGIf3.gifYIEW9W.gif

 

Ajudei ? Foda-se

Não ajudei ? Rep -

Link para o post
Compartilhar em outros sites
  • Solução

Er, sou meio newbie quanto a runas. Como exatamente elas funcionam? São actions? No código delas, é necessário setar o exhaust/remover o item, ou isso já é configurado na tag da mesma? Se puder me explicar (:  (ps: um exemplo de script também seria de grande ajuda)

Pra todo caso, fiz uma action básica que cumpre seus requisitos. Se quiser, você pode adaptá-la para o formato de um código de runa.

local function isWalkable(pos, creature, proj, pz)-- by Nord
    if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
    if getTopCreature(pos).uid > 0 and creature then return false end
    if getTileInfo(pos).protection and pz then return false, true end
    local n = not proj and 3 or 2
    for i = 0, 255 do
        pos.stackpos = i
        local tile = getTileThingByPos(pos)
        if tile.itemid ~= 0 and not isCreature(tile.uid) then
            if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                return false
            end
        end
    end
    return true
end
function onUse(cid, item, fromPosition, item2, toPosition)
    local effect = xxx    --Efeito.
    local exh = xxx       --Exhaust, em segundos.
    if isCreature(item2.uid) and not isNpc(item2.uid) then
        if getPlayerStorageValue(cid, 1870) > os.time() then
            local msg = "Wait %d seconds to use this rune again."
            return doPlayerSendCancel(cid, msg:format(getPlayerStorageValue(cid, 1870) - os.time()))
        end
        local positions = {
            [0] = {x = getThingPos(cid).x, y = getThingPos(cid).y - 1, z = getThingPos(cid).z},
            [1] = {x = getThingPos(cid).x + 1, y = getThingPos(cid).y, z = getThingPos(cid).z},
            [2] = {x = getThingPos(cid).x, y = getThingPos(cid).y + 1, z = getThingPos(cid).z},
            [3] = {x = getThingPos(cid).x - 1, y = getThingPos(cid).y, z = getThingPos(cid).z},
        }
        local lookdir = getCreatureLookDirection(cid)
        local newPosition = positions[lookdir] 
        if not isWalkable(newPosition) then
            newPosition = getClosestFreeTile(cid, getThingPos(cid))
        end
        if newPosition then
            doTeleportThing(item2.uid, newPosition)
            doSendMagicEffect(newPosition, effect)
            doSendMagicEffect(toPosition, effect)
            setPlayerStorageValue(cid, 1870, os.time() + exh)
        else
            return doPlayerSendCancel(cid, "Couldn't execute the rune.")
        end
    else
        return doPlayerSendCancel(cid, "Use this rune only on creatures.")
    end
    return true
end
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

É impressão minha ou no seu script não é possível usar isso em monsters ?

 

Aqui está o exemplo, esse é um Spell de Naruto, então não sei se já viu isso em algum lugar.

 

local temp = {

exhausted = 2,
}
 
local confg = {
chakra = 5,
}
 
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
if not isCreature(cid) then
return true
end
 
local level = getPlayerLevel(cid) 
local jutsuDmg = 12
local skill_factor = math.ceil((jutsuSkill_factor(cid, 1) + level)/2)
local dmg = - math.max(1, math.ceil(((skill_factor*0.5) * jutsuDmg)*0.30))
 
-----[Restrições]-----
 if getPlayerVocation(cid) ~= 5 then
  return true
 end
 
if impossibleUse(cid) then
return true
end
 
if checkDoing(cid) then
return true
end
 
-----[Restrições]-----
   if isPlayer(cid) then
        removeChakraLife(cid, - confg.chakra)
addEvent(doCreatureSay, 100, cid, "Katon:", TALKTYPE_MONSTER)
addEvent(doCreatureSay, 300, cid, "Endan no Jutsu!", TALKTYPE_MONSTER)
stopNow(cid, 800)
addEvent(actionMove, 0, cid, 385, 200)
addEvent(actionMove, 300, cid, 386, 300)
 
 
addEvent(doSendDistanceShoot, 300, getCreaturePosition(cid), toPosition, 27)
addEvent(doAreaCombatHealth, 400, cid, COMBAT_FIREDAMAGE, toPosition, 0, dmg, dmg, 5)
setPlayerStorageValue(cid, sto_jutsu[1], os.time() + temp.exhausted)
end
return true

end

 

Abraços.

Nb3SnA.gifRnGIf3.gifYIEW9W.gif

 

Ajudei ? Foda-se

Não ajudei ? Rep -

Link para o post
Compartilhar em outros sites

Exatamente, coloquei pra usar só em players. My bad. Logo edito meu comentário removendo essa condição.

Pronto, editei. Agora você pode usar a runa em criaturas em geral (com exceção de NPCs).

E, como suspeitei, as runas são actions. Basta, então, criar um arquivo com extensão .lua em data/actions/scripts e colocar meu código. A tag, suponho que você saiba fazer. Caso contrário, informe aqui.

Já sobre as charges da runa, provavelmente são configuradas em items.xml.

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

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Não precisa de mais nada, script funcionando COMPLETAMENTE :D

 

Excepcional :P

 

REP ++ :D

Nb3SnA.gifRnGIf3.gifYIEW9W.gif

 

Ajudei ? Foda-se

Não ajudei ? Rep -

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo