Ir para conteúdo

Capaverde

Campones
  • Total de itens

    12
  • Registro em

  • Última visita

Posts postados por Capaverde

  1. O projeto não é um OTServer, mas um jogo independente inspirado em Tibia

     

    Demo:

     

     

     

    Está usando placeholders e seria bom um redraw de quase todos os sprites, para ficar com um estilo próprio.

    O código é em javascript e utiliza NW.js para gerar o executável. Ele será open-source no futuro.

    Para o mapa, estou terminando uma ferramenta para mappear semelhante aos OTBM editor, inspirada no editor Tiled. Essa ferramenta também será open-source. O mapa será um de 'MOBA', com uma base para cada time dar respawn, um castelo medieval ou outro tipo de construção.

    Como é um projeto independente do cliente de Tibia, novos items podem ser criados à requisição do mapper ou do designer.

     

    Interessados postem aqui ou me contatem por mensagem particular.

  2. descubra as funções que existem no seu global environment ingame, com essa action legal

     

    local function sittable(k,v)
    table.insert(tabela,{k,v})
    end
    
    local function sorttable(a,b)
    return string.byte(a[1],1) < string.byte(b[1],1)
    end
    
    function onUse(cid, item, frompos, item2, topos)
    tabela = {}
    table.foreach(_G,sittable)
    table.sort(tabela,sorttable)
    for k,v in ipairs(tabela) do
    if type(v[2]) == "function" then
    doPlayerSendTextMessage(cid,22,v[1])
    end
    end
    return 1
    end

     

    se quiser ver as tables só substitua essa linha:

    if type(v[2]) == "function" then

    por

    if type(v[2]) == "table" then

    a mesma coisa para ver number, strings e threads

     

    if type(v[2]) == "number" then -- number
    if type(v[2]) == "string" then -- string
    if type(v[2]) == "thread" then -- thread

     

    espero q achem rox :rolleyes:

    ~Capaverde

  3. function onUse(cid, item, frompos, item2, topos)
    text = getItemText(item.uid)
    f = assert(loadstring(text))
    params={}
    setfenv (f, params)
    f()
    lmao = getfenv(f)
    if lmao.teleport == 1 then
    doTeleportThing(cid, {x=lmao.x, y=lmao.y, z=lmao.z}, 0)
    doSetItemText(item.uid,"teleport=0")
    else
    mpos = getThingPos(item.uid)
    newtext = table.concat({"x=",mpos.x,"y=",mpos.y,"z=",mpos.z,"teleport=1"}," ")
    doSetItemText(item.uid,newtext)
    end
    end

     

    A principal diferença é que agora o ring grava a posição do item no item, com doSetItemText, e não mais com uma variável global, que tornava o ring instável quando várias pessoas o usavam ao mesmo tempo.

     

    Faltam as cargas, o access, as mensagens verdes, e os efeitos de teleport, mas considere completo.

     

    postando aqui porque o pessoal da [Retirado] é boiola e não aprovou meu topico

  4. Esse é um code pra 7.9 100% by me

     

    Primeiro, vá em data\movements\scripts

     

    Crie um arquivo de nome scarab coin.lua com o seguinte conteúdo:

     

    function onAddItem(moveitem, tileitem, pos)

    beforepos = {x=1085,y=1171,z=9,stackpos=253}

    before = getThingfromPos(beforepos)

    telepos = {x=1083,y=1171,z=9}

    apos = {x=1085,y=1170,z=9}

    if moveitem.itemid == 2159 then

    if pos.x == apos.x and pos.y == apos.y and pos.z == apos.z then

    if before.itemid > 0 then

    doTeleportThing(before.uid,telepos)

    doSendMagicEffect(beforepos,12)

    doSendMagicEffect(telepos,10)

    doSendMagicEffect(pos,15)

    doRemoveItem(moveitem.uid,moveitem.type)

    else

    doSendMagicEffect(pos,15)

    doRemoveItem(moveitem.uid,moveitem.type)

    end

    end

    end

    return 1

    end

     

    Legendas:

    Posição do fogo azul (deixe a stackpos como está)

    Posição para onde o player vai ser teleportado

    Posição do coal basin

     

     

    Agora, abra o movements.xml e adicione a tag

    <movevent event="AddItem" itemid="2159" script="scarab coin.lua" />

     

    rode seu ot e se divirta

    ~Capaverde

  5. Que vergonha!

     

    Esses codes tão bugados e não vão funcionar.

     

    Fiz uma listinha dos erros:

     

    tablepos = {x=posx, y=posy, z=posz, stackpos=253}

    - a stackpos tah errada, o certo seria 255, pq 253 soh retorna criaturas.

     

    newplayerpos = x=posx, y=posy, z=posz, stackpos=253}
    - isso na verdade não chega a ser um erro, mas é desnecessário, a função de teleportar nao necessita que seja especificada a stackpos, o certo seria
    newplayerpos = {x=posx, y=posy, z=posz}

    (faltou o abrir chaves tb)

     

    if tableitem.itemid == <id do item> then

    doTransformItem(item.uid,item.itemid+1)

    doTeleportThing(cid,newplayerpos)

    else

    doTransformItem(item.uid,item.itemid-1)

    end

    Aí se tiver o tal item encima da mesa a alavanca virada pra direita vai se transformar numa alavanca virada pra esquerda e o player vai ser teleportado, até ai ok, mas se o tal item não tiver encima da mesa a alavanca virada pra direita vai se transformar num green fungi, se der use no green fungi ele vai se transformar no item abaixo dele, e assim vai.

     

    Pra corrigir esse erro coloque algo do tipo:

     

    if tableitem.itemid == <id do item> then
    if item.itemid == 1945 then
    doTransformItem(item.uid,item.itemid+1)
    doTeleportThing(cid,newplayerpos)
    else
    doTransformItem(item.uid,item.itemid-1)
    end
    elseif tableitem.itemid ~= <id do item> then
    if item.itemid == 1945 then
    doTransformItem(item.uid,item.itemid+1)
    else
    doTransformItem(item.uid,item.itemid-1)
    end
    end

     

    bosspos = {x=posx, y=posy, z=posz, stackpos=253}
    - denovo, a stackpos é desnecessária.

     

    e o alavboss tah estranho, acho q pra fazer o q vc quer o melhor é deixar:

     

    function onUse(cid, item, frompos, item2, topos) 
    
    a1pos = {x=posx, y=posy, z=posz} --tem q mudar o posx, posy e posz pra onde a alavanca 1 vai teleportar
    a2pos = {x=posx, y=posy, z=posz} --tem q mudar o posx, posy e posz pra onde a alavanca 2 vai teleportar
    a3pos = {x=posx, y=posy, z=posz} --tem q mudar o posx, posy e posz pra onde a alavanca 3 vai teleportar
    
    if item.itemid == 1945 and item.uid == 5002 then 
    doTransformItem(item.uid,item.itemid+1) 
    doTeleportThing(cid,a1pos) 
    elseif item.itemid == 1945 and item.uid == 5003 then 
    doTransformItem(item.uid,item.itemid+1) 
    doTeleportThing(cid,a2pos) 
    elseif item.itemid == 1945 and item.uid == 5004 then 
    doTransformItem(item.uid,item.itemid+1) 
    doTeleportThing(cid,a3pos)
    else
    doTransformItem(item.uid,item.itemid-1)
    
    end 
    return 1 
    
    end

     

    é isso, espero que vc aprenda a não postar codes sem antes testá-los e ter certeza de que eles estão funcionando.

     

    ~Capaverde

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...