Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Hola queria saber como botar sistema de fly no meu otserver naruto

seria o seguinte teria algumas vocaçoes que poderiam voar (ex: deidara no seu passaro de argila, sai no seu passaro de tinta, gaara na sua  areia....)

queria saber se tem como criar um sistema de !fly com up e down 

e so sertas vocaçoes poderiam voar ou so possa voar caso tenha um item( de preferencia so se tiver um item)

e que as vocaçoes que possam voar cada uma tenha seu looktype

é possivel

ja ouvi falar de colocar um chão invisivel usando rme 

n sei direito por favor me ajudem que eu quero mto msmo

estarein dando rep+5

por 5 dias seguidos para quem me ajudar

presmo que não seja mto diferente de sistema fly de pokemon

AJUDEI? DA REP +

 

original.giftumblr_m84zj0xTC31qi8ipgo1_400.gif

Link para o post
Compartilhar em outros sites

amigão, eu não tenho esse script e não sei como fazer, mas talvez o script do Mock possa ser útil, não sei se vai funcionar mas vou tentar ;p

 

Créditos: Mock

CONST_FLYVOID = 460
CONT_FLYOUTFIT = 239
IGNORED = {6495,7096,7099,5167,5162,5163,405,7100,
5315,5521,5316,5193,5192,5191,945,5048,923,950,951,
952,953,3623,954,955,949,9101,3352,9106,9103,1524,
1111,437,433,443,434,442,436,445,941,444,435,943,
1027,925,930,926,928,922,921,1112,406,904,931,934,
932,933,5319} --- Config here


up = {}
down = {}
fly = {}
fly.win = function(cid)-- Script by mock
    setPlayerStorageValue(cid, 102015,1)
    doPlayerSendTextMessage(cid,27,'Now you can fly.')
end
fly.add = function(cid)-- Script by mock
    if getPlayerStorageValue(cid, 102015) == -1 or getPlayerStorageValue(cid,13241) == 1 then
        return false
    end
    if getPlayerStorageValue(cid, 102059) <= 0 then
        local outfit = getCreatureOutfit(cid)
        outfit.lookType = CONT_FLYOUTFIT
        doSetCreatureOutfit(cid, outfit, -1)
        setPlayerStorageValue(cid, 102059,1)
        doChangeSpeed(cid, 390)
        doPlayerSendTextMessage(cid,27,'Fale \'up\' e \'down\'.' )
        return true
    else
        doPlayerSendTextMessage(cid,27, "Você ja esta voando.")
        return false
    end

end
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
fly.using=function(cid)-- Script by mock
return getPlayerStorageValue(cid, 102059) > 0
end
fly.logout = function(cid)-- Script by mock
    if fly.using(cid) then
        local p = getCreaturePosition(cid)
        setPlayerStorageValue(cid, 102010,1)
        setPlayerStorageValue(cid, 102011,p.x)
        setPlayerStorageValue(cid, 102012,p.y)
        setPlayerStorageValue(cid, 102013,p.z)
        deletarEmVolta(p)
        fly.del(cid)
    end
    return true
end
fly.login = function(cid)-- Script by mock
    if getPlayerStorageValue(cid, 102010) ~= -1 then
        setPlayerStorageValue(cid, 102010,-1)
        local p = {}
        p.x = getPlayerStorageValue(cid, 102011)
        p.y = getPlayerStorageValue(cid, 102012)
        p.z = getPlayerStorageValue(cid, 102013)
        if not checkAround(p) then
            fly.add(cid)
            down.gerarEmVolta(p)
            doTeleportThing(cid,p)
        end
    end
    return true
end
fly.die = function(cid)-- Script by mock
    if fly.using(cid) then
        local p = getCreaturePosition(cid)
        setPlayerStorageValue(cid, 102011,-1)
        setPlayerStorageValue(cid, 102012,-1)
        setPlayerStorageValue(cid, 102013,-1)
        deletarEmVolta(p)
        fly.del(cid)
    end
    return true
end
fly.del = function(cid)-- Script by mock
    if getPlayerStorageValue(cid, 102059) > 0 then
        if getSqmId(getCreaturePosition(cid)).itemid == CONST_FLYVOID then
            return false
        end
        doRemoveCondition(cid, CONDITION_OUTFIT)
        setPlayerStorageValue(cid, 102059,-1)
        doChangeSpeed(cid, -390)
        return true
    end
end
function hasSqm2(pos)-- Script by mock
    local f = getTileThingByPos(pos)
    if f.itemid ~= 0 and f.itemid ~= 1 and (not isWalkable(pos) and not isInArray(IGNORED,f.itemid)) then
        return true
    end
    return false
end
function hasSqm3(pos)-- Script by mock
    local f = getTileThingByPos(pos)
    if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID and not isInArray(IGNORED,f.itemid) then
        return true
    end
    return false
end
function deletar(pos)-- Script by mock
    if hasSqm(pos) then
        local sqm = getSqmId(pos)
        if sqm.itemid == CONST_FLYVOID then
            doRemoveItem(sqm.uid,1)
        end
    end
end
function deletarEmVolta(pos)
    for x=-1,1 do
        for y=-1,1 do
            deletar({x=pos.x+x,y=pos.y+y,z=pos.z})
        end
    end
end
function checkAround(pos)-- Script by mock
    for x=-1,1 do
        for y=-1,1 do
            if hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z}) then
                return true
            end
        end
    end
    return false
end

function fly.checkAround(pos)-- Script by mock
    local n = 0
    for x=-1,1 do
        for y=-1,1 do
            local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z})

            if g.itemid == CONST_FLYVOID then
                n = n+1
            end
            if isCreature(getTopCreature({x=pos.x+x,y=pos.y+y,z=pos.z}).uid) then
                return false
            end
        end
    end
    if n == 9 then
        return true
    end
    return false
end

function up.checkAround(pos)-- Script by mock
    for x=-1,1 do
        for y=-1,1 do
        local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z})
            if hasSqm3({x=pos.x+x,y=pos.y+y,z=pos.z}) or g.itemid == CONST_FLYVOID then
                return true
            end
        end
    end
    return false
end

function down.checkAround(pos,f)-- Script by mock
    for x=-1,1 do
        for y=-1,1 do
        local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z})
            if (not f and hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z})) or g.itemid == CONST_FLYVOID then
                return true
            end
        end
    end
    return false
end
function gerarEmVolta(pos)-- Script by mock
    local n = 30000
    for x=-1,1 do
        for y=-1,1 do
            n =n+1
            doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n)
        end
    end
end
function doItem(pos,a,d)-- Script by mock
    if not hasSqm2(pos) then
        doCreateTile(CONST_FLYVOID,pos)
        pos.stackpos = 0
        local c = getTileThingByPos(pos)
        doSetItemActionId(c.uid, a)
    end
end
function getSqmId(pos,t)-- Script by mock
    if hasSqm(pos) or t then
        pos.stackpos = 0
        local i = getTileThingByPos(pos)
        return i
    end
    return nil
end

function down.doItem(pos,a)-- Script by mock
    if not hasSqm(pos) then
        doCreateTile(CONST_FLYVOID,pos)
        pos.stackpos = 0
        local c = getTileThingByPos(pos)
        doSetItemActionId(c.uid, a)
    end
end

function down.gerarEmVolta(pos)-- Script by mock
    local n = 30000
    for x=-1,1 do
        for y=-1,1 do
            n =n+1
            down.doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n)
        end
    end
end

function doCreateTile(id,pos) -- Script by mock
    doAreaCombatHealth(0,0,pos,0,0,0,255)
    doCreateItem(id,1,pos)
end

Agora é 1 scritp em creaturescripts, 3 em talkactions e 1 em movements.

Creaturescripts

Em seu login.lua coloque isso:
fly.login(cid)

no seu logout.lua coloque isso:
fly.logout(cid)

e no script que o player morre coloque isso:
fly.die(cid)

Isso é para quando o player entrar e sair do server pra voltar onde ele estava :coolface:

Movements

Em movements.xml:

<movevent type="StepIn" actionid="30001" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30002" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30003" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30004" event="script" value="fly.lua"/>
    <movevent type="StepOut" actionid="30005" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30006" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30007" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30008" event="script" value="fly.lua"/>
    <movevent type="StepIn" actionid="30009" event="script" value="fly.lua"/>
    <movevent type="AddItem" tileitem="1" itemid="460" event="script" value="fly.lua"/>

E no script fly.lua

---Script by mock the bear
function doCopyItem(item,pos) ---Script by mock the bear
    for i=1,6 do
        pos.z = pos.z+1
        if hasSqm(pos) and getSqmId(pos).itemid ~= 10217 then
                local i = doCreateItem(item.itemid,item.type,pos)
                if item.actionid ~= 0 then
                    doSetItemActionid(i,item.actionid)
                end
                doSendMagicEffect(pos,9)
                return i
        else
            local p2 = {x=pos.x+1,y=pos.y+1,z=pos.z}
            doSendDistanceShoot(pos,p2,40)
            doSendMagicEffect(pos,2)
        end
    end
end
function onAddItem(item,pos,k) ---Script by mock the bear
doCopyItem(item,k)
doRemoveItem(item.uid,item.type == 0 and 1 or item.type)
end
function onStepIn(cid, item, position, fromPosition) ---Script by mock the bear
    local dir = {
    [30004] = {0,6,7},
    [30007] = {7,0,6,1,5},
    [30008] = {1,5,7},
    [30009] = {5,4,2,1,7},
    [30006] = {2,5,4},
    [30003] = {4,3,6,2,5},
    [30002] = {3,4,6},
    [30001] = {6,0,7,3,4},
    }
    if isPlayer(cid) then
        local chkps = {x=position.x,y=position.y,z=position.z}
        local ig = false
        for i,b in pairs(dir[item.actionid]) do
            local nw = getPosByDir(chkps,b)
            local g = getTileThingByPos(nw)
            if hasSqm3(nw) or g.itemid == CONST_FLYVOID or nw.x < 35 or nw.y < 35 then
                ig = true
                break
            end
        end
        if not ig then
            deletarEmVolta(fromPosition)
            gerarEmVolta(getCreaturePosition(cid))
        else
            doTeleportThing(cid,fromPosition,false)
            doPlayerSendTextMessage(cid,27, "Sorry, you cannot fly here.")
        end
    end
end
function onStepOut(cid, item, position, fromPosition,q)
    addEvent(function(pos) if fly.checkAround(pos) then deletarEmVolta(pos) end end,10000,position)
end

Talkactions

Em talkactions.xml

<talkaction words="up" case-sensitive="no" event="script" value="flyup.lua"/>
    <talkaction words="down" case-sensitive="no" event="script" value="flydown.lua"/>
    <talkaction words="!fly" case-sensitive="no" event="script" value="fly.lua"/>



Em fly.lua

function onSay(cid, words, param) --- By moc kthe bear (MTB)
    if param ~= '' and getPlayerGroupId(cid) > 3 then
        local cida = getPlayerByName(param)
        if cida and isPlayer(cida) then
            fly.win(cida)
        end
        return true
    end
    if fly.using(cid) then
        local p = getCreaturePosition(cid)
        p.stackpos = 0
        local f = getTileThingByPos(p)
        if fly.del(cid) then
            if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID then
                return true
            else
                setPlayerStorageValue(cid,10941,1)
                local p = getCreaturePosition(cid)
                setPlayerStorageValue(cid, 102011,p.x)
                setPlayerStorageValue(cid, 102012,p.y)
                setPlayerStorageValue(cid, 102013,p.z)
                return true
            end
        else
            doPlayerSendTextMessage(cid,27,'You cannot turn off the fly here.')
        end
    else
        if fly.add(cid) then
            local pos = getCreaturePosition(cid)
            if getSqmId(pos).itemid == 10217 then
                down.gerarEmVolta(pos)
            end
            return true
        else
            doPlayerSendTextMessage(cid,27,'You cannot fly.')
            return true
        end
    end
    return true
endFlyup.lua
function onSay(cid)--- By moc kthe bear (MTB)
    local time = os.time()
    if time < getPlayerStorageValue(cid, 102054) then
        doPlayerSendCancel(cid, "You are exhausted.")
        return true
    end
    if not fly.using(cid) then
        return false
    end
    local pos = getCreaturePosition(cid)
    pos.z = pos.z-1
    if hasSqm(pos) or pos.z < 0 or up.checkAround(pos) then
        doPlayerSendTextMessage(cid,27,'You cannot fly higger.')
        return true
    else
        gerarEmVolta(pos)
        doTeleportThing(cid,pos)
        pos.z = pos.z+1
        deletarEmVolta(pos)
    end
    return true
endFlydown.lua
function onSay(cid)--- By moc kthe bear (MTB)
    local time = os.time()
    if time < getPlayerStorageValue(cid, 102054) then
        doPlayerSendCancel(cid, "You are exhausted.")
        return true
    end
    if not fly.using(cid) then
        return false
    end
    local pos = getCreaturePosition(cid)
    pos.stackpos = 0
    local g = getTileThingByPos(pos)
    pos.z = pos.z+1
    local f = getTileThingByPos(pos)
    if getSqmId(getCreaturePosition(cid)).itemid ~= CONST_FLYVOID
        or down.checkAround(pos)
        or (g.itemid ~= CONST_FLYVOID and f.itemid ~= CONST_FLYVOID and f.itemid ~= 0 and f.itemid ~= 1)
        or (not isWalkable(pos,true,false,false) and hasSqm(pos))
        or (hasSqm(pos) and not getTileHouseInfo(pos)) == 0 then
        doPlayerSendTextMessage(cid,27,'You cannot go to down here.')
        return true
    else
        down.gerarEmVolta(pos)
        doTeleportThing(cid,pos)
        pos.z = pos.z-1
        deletarEmVolta(pos)
    end
    return true
end
Link para o post
Compartilhar em outros sites

cara é só mudar o Oufit para o do Deidara se não souber como Mudar me avise te explico 

Link para o post
Compartilhar em outros sites
  • 2 months later...
  • 1 year later...

lilian98 esse aviso "you connot fly" significa que você não ativou seu char para ativa-lo e só fala !fly nickname

Editado por Gokussj5 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 year later...
  • 1 month later...
Em 31/07/2013 ás 07:08, Daaniel disse:

a segunda linha


CONT_FLYOUTFIT = 239

se for para coloca vocation diferente como eu fasso

NTO PANZER SERVIDOR 24H 

1554689_1.png

http://narutopanzer.blogspot.com.br/

RATE  EXP 999

 

DBO SERVIDOR 24H 

1549171_1.png

http://dbowtf.ddns.net/

RATE EXP 400

 

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo