Ir para conteúdo

fokus090

Cavaleiro
  • Total de itens

    190
  • Registro em

  • Última visita

  • Dias Ganhos

    1

Posts postados por fokus090

  1.  spacer.png

     

    TibiaGun é um MMORPG inspirado no tíbia. Focado em um mundo destruído e habitado por criaturas, você é um soldado que se voluntariou para ajudar a controlar o aumento agressivo de monstros.

     

     

     

     

    SITEhttp://tibiagun.servegame.com/

    INSTAGRAMhttps://instagram.com/tibia_gun

    FACEBOOKhttps://www.facebook.com/tibiagun

     

     

    spacer.png

    O servidor é construído em cima de uma gameplay envolvendo armas de fogo. Clique e atire, loot automático e itens com sistema de raridade. Tudo preparado para acomodar jogadores amantes de RPG.

     

     

    spacer.png

    Possuímos um mapa próprio, com segredos e missões disponíveis a cada nível que seu personagem alcança. Há missões de tempo, em grupo e até puzzles disponíveis. Basta seguir as localizações no mapa, analisar o ambiente e buscar seu prêmio.

     

    spacer.png

    Queremos que seu tempo seja bem gasto no servidor. Por meio disso, temos um sistema onde você pode ganhar dinheiro sempre que evoluir seu personagem. Jogue, divirta-se e ganhe. É isso o que oferecemos.

     

     

    spacer.png

    Temos um arsenal com mais de 60 magias únicas para equipar em seu personagem. Não possuímos vocações, de modo que todas as magias podem ser usadas por qualquer jogador, sendo sua arma equipada um diferencial de força.

     

     

    spacer.png

    O servidor conta com diversos sistemas únicos, criados do zero e apropriados ao diferencial do servidor.

     

    spacer.png

     

    IMAGENS DO SERVIDOR

    Spoiler

     

    spacer.png

     

    spacer.png

     

     

  2. /\

    mano ja testase oq eu coloquei ali? pois eu ja testei.. se algum item tem o atributo 'unique' ele n podera ser movido, trocado e nem nd do tpw.. u,U

     

    e isso n ta certo..

     

    [12578, 12579, 12580]

    eh bom passar pelo menos um debugger antes de postar.. ;/

     

    edit:

    sinceramente, teu script n faz o menor sentido...

     

    Nossa que Mal Humor! Sinto muito pelo meu comentário infeliz. Não foi minha intenção.

    E com respeito ao que coloquei aí em cima, LINK!

  3. Fiz um aqui mas não testei. Espero que dê certo!

    OBS: Criei o NPC ou qualquer outra coisa aí pra dar a Quest. Dê á Storage 45698, 0.

     

    function onDeath(cid, corpse, killer)
    local monstName = "Dragon" -- Nome do monstro
    local Storage = 45698
    local Monster = "Dragon Lord" -- Nome do Monstro que será Summonado
    local pos = getPlayerPosition(cid)
    
    if isMonster(cid) then
           if string.lower(getCreatureName(cid)) == string.lower(monstName) then
    if getPlayerStorageValue(cid, Storage) < 100 then
    setPlayerStorageValue(killer[1], Storage, 1)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Dragon Morto: " .. getPlayerStorageValue(cid, Storage) .. "/100")
    if getPlayerStorageValue(cid, Storage) == 100 then doCreateMonster(Monster, pos) setPlayerStorageValue(cid, Storage, -100) end
    end
    end
    end 
    
    return TRUE
    end

  4. local item = doPlayerAddItem(cid, 1111, 1)

    doSetItemAttribute(item, "unique", cid)

     

    Apesar dele ter usado á palavra "unique", acredito que não seja isso que ele se referiu.

    Tenta isso :.

     

    crie um arquivo item.lua em movements/scripts e adicione isso:

     

    local uniqueitems = [12578, 12579, 12580]
    function onDeEquip(cid, item)
    if item.itemid == uniqueitems then
    doPlayerSendCancel(cid, "Sorry, this is an unique item.")
    end
    end

     

    tag: <movevent type="DeEquip" itemid="12578,12579,12580 " event="script" value="item.lua"/>

     

    Depois na mesma pasta crie trade.lua e adicione:

     

    function onTradeAccept(cid, target, item, targetItem)
    if item.itemid == 2578 or targetItem.itemid == 12579 or targetItem.itemid == 12580 then
    doPlayerSendCancel(cid, "Sorry, you cannot trade this item.")
    end
    end

     

    tag: <movevent type="tradeaccept" itemid="12578,12579,12580" event="script" value="trade.lua"/>

     

    #OutraPossibilidade

     

    1º Baixe o OtItemEditor' (Ot Item Editor)

    2º Basta abrir o OtItemEditor'

    3º Clique e "File" e logo após clique em "Open"...

    4º Procure o arquivo "items.otb" na pasta do seu OTserver' (geralmente em "data / items / items.otb")...

    5º Como já sabe a ID do item que quer editar... procure-o no Item Editor...

    6º E tire a opções "Moveable" e "Pickupable" que provavelmente estará selecionada'

    7º Salve e pronto'

     

    Tente e Boa Sorte!

  5. NPC.xml

    <?xml version="1.0"?>
    <npc name="NomeDoNPC" script="data/npc/scripts/NomeDoArquivoLua.lua" walkinterval="2000">
     <health now="200" max="200" />
       <look type="136" head="113" body="65" legs="0" feet="96" addons="2"/>
     <parameters>
       <parameter key="message_greet" value="Olá jovem, bem vindo a Town's Ville. Eu posso estar lhe ajudando dando {informações} sobre o {mapa}." />
     </parameters>
    </npc>

     

    NPC/Script

    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    
    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 thinkCallback(cid)
    local rand = math.random(1,50)
    if rand == 1 then
    selfSay('Posso lhe conceber ajuda sobre todas as mudanças que houveram na cidade de Towns Ville...')
    elseif rand == 2 then
    selfSay('Precisa de ajuda em encontrar algum lugar de Towns Ville? Pergunte-me!')
    elseif rand == 3 then
    selfSay('É a sua primeira vez aqui? Eu posso lhe ofereçer ajuda...')
    end
    return true
    end
    
    function greetCallback(cid)
    
    return true
    
    end
    
    local shopModule = ShopModule:new()
    npcHandler:addModule(shopModule)
    
    if(msgcontains(msg, 'Informações') then
    selfSay('Atualmente, posso lhe dizer tudo sobre a cidade, seu {templo}, o {banco}, {lojas}, {locais de magias}, o {deposito} ({dp}), e um pouco sobre os {bairros}.', cid)
    talkState[talkUser] = 1
    -------------------------------------------------------------------------------------------------------------------------------------------------------
    
       elseif(msgcontains(msg, 'templo') and talkState[talkUser] == 1) then
    selfSay('Edite a Informação sobre o {Templo} Aqui!')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'banco') and talkState[talkUser] == 1) then
    selfSay('Edite a Informação sobre o {Banco} Aqui!')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'lojas') and talkState[talkUser] == 1) then
    selfSay('Edite a Informação sobre o {Lojas} Aqui!')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'locais de magias') and talkState[talkUser] == 1) then
    selfSay('Edite a Informação sobre o {locais de magia} Aqui!')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'deposito') or msgcontains(msg, 'dp') and talkState[talkUser] == 1) then
    selfSay('Edite a Informação sobre o {Deposito} Aqui!')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'bairros') and talkState[talkUser] == 1) then
    selfSay('Edite a Informação sobre o {Bairros} Aqui!')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'mapa')) then
    selfSay('Bom, eu posso deixar marcas no seu mapa, mostrando assim, onde fica os principais locais... Você gostaria que eu fizesse isso?')
    talkState[talkUser] = 2
    
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
    selfSay('Ok! Marquei os principais lugares em seu mapa... Caso ainda tenha dúvidas me pergunte!')
    doPlayerAddMapMark(cid, {x=000, y=000, z=0,}, NumeroDaMarcação, 'Templo')
    doPlayerAddMapMark(cid, {x=000, y=000, z=0,}, NumeroDaMarcação, 'Banco')
    doPlayerAddMapMark(cid, {x=000, y=000, z=0,}, NumeroDaMarcação, 'Lojas')
    talkState[talkUser] = 0
    
    elseif(msgcontains(msg, 'no') and talkState[talkUser] == 2) then
    selfSay('Então, já conhece o mapa... Procure-me quando precisar de ajuda!')
    talkState[talkUser] = 0
    
    end 
    return TRUE
    end
    
    npcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)
    npcHandler:setCallback(CALLBACK_GREET, greetCallback)
    
    npcHandler:addModule(FocusModule:new())  

     

    Não Testei, espero que funcione!

    Abraços !!

  6. e como fica todos os players que já passaram do 150 ou 200?

     

    Você tem razão, shausHSUhsuH. Eu esqueci desse detalhe. Mas para resolver isso, basta criar um Script de Login.

     

     

    -- < Script by Frenesy > --
    function onLogin(cid)
    local Name = "Account Manager"
    local Storage = 10010
    local Nivel = 150
    
    if (getCreatureName(cid) ~= Name) then
    if getPlayerStorageValue(cid, Storage) == -1 then
    if getPlayerLevel(cid) >= Nivel and getPlayerLevel(cid) <= 199 then
    doPlayerSendTextMessage(cid, 22, "Você recebeu 5 dias de Premium.")
    doPlayerAddPremiumDays(cid, 5)
    setPlayerStorageValue(cid, Storage, 1)
    end
    end
    end
    return true
    end

     

     

     

    -- < Script by Frenesy > --
    function onLogin(cid)
    local Name = "Account Manager"
    local Storage = 10011
    local Nivel = 200
    
    if (getCreatureName(cid) ~= Name) then
    if getPlayerStorageValue(cid, Storage) == -1 then
    if getPlayerLevel(cid) >= Nivel then
    doPlayerSendTextMessage(cid, 22, "Você recebeu uma Montaria.")
    doPlayerAddMount(cid, ID_DA_MONTARIA)
    setPlayerStorageValue(cid, Storage, 1)
    end
    end
    end
    return true
    end

     

     

    TAG:.

     

     

    <event type="login" name="Premium" event="script" value="NomeDoArquivo.lua"/>
    <event type="login" name="Montaria" event="script" value="NomeDoArquivo.lua"/>

     

    Login.lua :.

     

     

    registerCreatureEvent(cid, 'Premium')
    registerCreatureEvent(cid, 'Montaria')

  7. mais vc sabe como eu colo para o pk do player demora 10 min pra sair!

    pq minha prisao! a saida dela é 1 porta com area pz! e o player fika preso por causa do pk! mai o pk sai muito rapido coisa de 1 min!

     

    Isso é no Config.lua amigo.

     

    whiteSkullTime = 10 * 60 * 1000

  8. Fiz por CreatureScript. Achei que ficaria melhor.

     

    function onAdvance(cid, skill, oldLevel, newLevel)
    registerCreatureEvent(cid, "UpLevel")
    
    local new_level = 150
    
    if skill == 8 then
    if (oldLevel < new_level ) and (newLevel >= new_level) and getPlayerStorageValue(cid, 10010) < 1 then
    doPlayerSendTextMessage(cid, 22, "Você recebeu 5 dias de Premium.")
    doPlayerAddPremiumDays(cid, 5)
    setPlayerStorageValue(cid, 10010, 1)
    
    end
    end
    return TRUE
    end

     

    function onAdvance(cid, skill, oldLevel, newLevel)
    registerCreatureEvent(cid, "UpLevel0")
    
    
    local new_level = 200
    local montaria = ID_DA_MONTARIA
    
    if skill == 8 then
    if (oldLevel < new_level ) and (newLevel >= new_level) and getPlayerStorageValue(cid, 10011) < 1 then
    doPlayerSendTextMessage(cid, 22, "Você recebeu uma Montaria.")
    doPlayerAddMount(cid, montaria)
    setPlayerStorageValue(cid, 10011, 1)
    
    end
    end
    return TRUE
    end

     

     

    TAG :.

    ​<event type="Advance" name="UpLevel"  script="NomeDoArquivo.lua"/>
    <event type="Advance" name="UpLevel0"  script="NomeDoArquivo.lua"/>

     

    Em Login.lua adicione isso :.

    registerCreatureEvent(cid, 'UpLevel')
    registerCreatureEvent(cid, 'UpLevel0')

  9. Tag da Action.xml :.

     

    <action uniqueid="7200" event="script" value="NomeDoArquivo.lua" />

     

    function onUse(cid, item, frompos, item2, topos)
    --================ Vocation 1 =================--
    PlayerPosF = {x=504, y=497, z=5, stackpos=253} --== Posição de onde a Vocação 1 Deve ficar.
    PlayerTileF = getThingFromPos(PlayerPosF) --== Verifica o Jogador no Tile da Vocation 1.
    PlayerTPF = {x=504, y=501, z=5} --== Posição final para onde o Jogador irá.
    --================ Vocation 2 =================--
    PlayerPosG = {x=506, y=497, z=5, stackpos=253} --== Posição de onde a Vocação 2 Deve ficar.
    PlayerTileG = getThingFromPos(PlayerPosG) --== Verifica o Jogador no Tile da Vocation 2.
    PlayerTPG = {x=506, y=501, z=5} --== Posição final para onde o Jogador irá.
    
    
    
    
    if item.uid == 7200 and item.itemid == 1945 then --== Alavanca ID 1945 com UniqueID 7200.
    if PlayerTileF.itemid > 0 and PlayerTileG.itemid > 0 then --== Verifica se Todos os Jogadores estão nos seus Devidos Tiles.
    PlayerVocF = getPlayerVocation(getTopCreature(PlayerPosF).uid) --== Verifica a Vocation do Jogador no Tile da Vocation 1.
    PlayerVocG = getPlayerVocation(getTopCreature(PlayerPosG).uid) --== Verifica a Vocation do Jogador no Tile da Vocation 2.
    
    if PlayerVocF == 1 and PlayerVocG == 2 then --== Verifica se os Jogadores estão nos Tiles Corretos de sua Vocation.
    doTeleportThing(PlayerTileF.uid, PlayerTPF) --== Teleporta o Jogador da Vocation 1.
    doTeleportThing(PlayerTileG.uid, PlayerTPG) --== Teleporta o Jogador da Vocation 2.
    
    doSendMagicEffect(PlayerTPF, 10) --== Efeito na Nova Posição da Vocation 1.
    doSendMagicEffect(PlayerTPG, 10) --== Efeito na Nova Posição da Vocation 2.
    
    doTransformItem(item.uid,item.itemid+1)
    else
    doSendMagicEffect(getPlayerPosition(cid), 2)
    doPlayerSendCancel(cid, "Algum Jogador não está no Tile de sua Vocação.")
    end
    else
    doPlayerSendCancel(cid, "Todos os Jogadores devem ficar nos Tiles.")
    end
    
    elseif item.uid == 7200 and item.itemid == 1946 then
    doTransformItem(item.uid,item.itemid-1)
    end
    return TRUE
    end

     

    OBS [1] :. Só há duas Posições Configuradas. Basta colocar as Outras seguindo o Modelo do Script.

    OBS [2] :. Testei em um Servidor 8.60. Não tenho nenhum Otserv PokeTibia no meu PC.

  10.  

     

    function getRepelTiles(cid)

    local tile = {

    {20, 3},

    {40, 4},

    {50, 5},

    {80, 6},

    {100, 7},

    {120, 8}

    }

    table.sort(tile, function(a, b) return a[1] > b[1] end)

    for _, t in ipairs(tile) do

    if(getPlayerLevel(cid) >= t[1]) then

    return t[2]

    end

    end

    return tile[1][2]

    end

     

    function getNextPos(cid, tiles)

    p = getCreaturePosition(cid)

    x,y,z = p.x,p.y,p.z

    local places = {

    [0] = {x=x, y=(y-tiles), z=z, stackpos = 253},

    [1] = {x=(x+tiles), y=y, z=z, stackpos = 253},

    [2] = {x=x, y=(y+tiles), z=z, stackpos = 253},

    [3] = {x=(x-tiles), y=y, z=z, stackpos = 253}}

    return places[getPlayerLookDir(cid)]

    end

     

    function doRepel(cid, target, tiles)

    if queryTileAddThing(cid, getNextPos(cid, 2)) == RETURNVALUE_NOERROR then

    doCreatureSetLookDirection(target, getCreatureLookDirection(cid))

    repeat

    doTeleportThing(target, getNextPos(target, 1), true)

    doSendMagicEffect(getCreaturePosition(target), CONST_ME_GROUNDSHAKER)

    tiles = tiles-1

    until tiles == 0 or queryTileAddThing(target, getNextPos(target, 1)) ~= RETURNVALUE_NOERROR

    end

    end

     

    function onCastSpell(cid, var)

    targ = getThingfromPos(getNextPos(cid, 1))

    if (isPlayer(targ.uid)) or (isMonster(targ.uid)) then

    if queryTileAddThing(cid, getNextPos(cid, 2)) == RETURNVALUE_NOERROR then

    if (isPlayer(targ.uid)) or (isMonster(targ.uid)) and getTilePzInfo(getCreaturePosition(cid)) == FALSE then

    doRepel(cid, targ.uid, getRepelTiles(cid))

    doCreatureAddHealth(targ.uid, -getPlayerLevel(cid))

    doCreatureAddMana(cid, -10)

    end

    else

    doPlayerSendCancel(cid, "Something is in the way to repel the target.")

    end

    else

    doPlayerSendCancel(cid, "There is no target to repel.")

    end

    end

     

     

  11. Mais uma vez fique barrado devido á um obstáculo que não consigo ultrapassar.

    Conto com a ajuda de vocês. Segue Abaixo:.

     

    Tenho um Sistema onde é preciso Clicar em uma Estátua. Esse Script foi feito pelo @Leoxtibia e ele faz o seguinte:

     

    Caso o Player clique na Estátua, e esse jogador não está em Nenhum Grupo, ele é 'Teleportado para dentro da Quest' e nenhum outro jogador poderá entrar no mesmo local até ele sair de lá.

     

    Mas, caso o Player clique na Estátua, e esse jogador 'Está em um Grupo', ele é teleportado para dentro da Quest. E qualquer outro jogador 'que esteja no mesmo grupo daquele que está dentro da Quest' poderá, ao clicar na estátua, ser teleportado para dentro da Quest. Mas qualquer outro jogador que não esteja dentro do Grupo, seja Barrado de entrar.

     

     

    O Meu pedido é bem simples. Queria apenas colocar para que o Jogador precisa-se de "1 Item" para ser Teleportado. Já tentei mais não obtive sucesso. Apenas consegui para que todos no Grupo precisasem ter o "Item (ItemID: 2349)" para poderem ser Teleportados, nessa part do Script:

     

     if (getPlayerItemCount(k, 2349) < 1) then
               doPlayerSendCancel(cid, "Todos os Jogadores devem ter o item para entrar nesta Dangerous.")
    	    return true
       end

     

    O Script faz a verificação do Jogador dentro da Quest. Se tiver jogador lá dentro, o Player de fora não entra. O Script é esse :.

     

    local t = {
    level = 10, --- Nível necessário para ser Teleportado.
    party = 2,  --- Mínimo de Jogadores no Grupo.
    quest = {x=427,y=374,z=14} --- local da Dangerous.
    }
              	 --==============================================================================================================================--
                               local fromPos,toPos = {x = 358, y = 364, z = 14},{x = 488, y = 480, z = 14} --- Começo e Final da Área.
              	 --==============================================================================================================================--
    
    function onUse(cid, item, position, fromPosition, itemEx, toPosition)
               local test = {}
               local players = getPartyMembers(getPartyLeader(cid))
    
       if (getPlayerParty(cid)) then
       if(getPlayerParty(cid) == cid) then
       if #players >= t.party then
    	    for x = fromPos.x, toPos.x do
    	    for y = fromPos.y, toPos.y  do
    	    local pos = {x=x, y=y, z=fromPos.z}
    	    local m = getTopCreature(pos).uid
       if m ~= 0 and isPlayer(m) then return doPlayerSendCancel(cid, "Alguém já está fazendo esta Dangerous") end
       end
       end
    
    
    		    --===============================================================================================================================--  
    
               for i, k in ipairs(players) do
       if (getPlayerLevel(k) < t.level) then
    	    doPlayerSendCancel(cid, "Todos os Jogadores devem ter Nível "..t.level.." ou maior para entrar nesta Dangerous.")
    	    return true
       end
       if (getPlayerItemCount(k, 2349) < 1) then
               doPlayerSendCancel(cid, "Todos os Jogadores devem ter o item para entrar nesta Dangerous.")
    	    return true
       end
       table.insert(test, k)
       end
    
    
    		    --===============================================================================================================================--
    
    	    for i, tid in ipairs(test) do
    	    doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
    	    doTeleportThing(tid, t.quest, true)
               doPlayerRemoveItem(tid, 2349, 1)
    	    doSendMagicEffect(t.quest, CONST_ME_ENERGYAREA)
    
    
       end
           else		     
           return doPlayerSendCancel(cid, "É necessário pelo menos "..t.party.." Jogadores no Grupo.")
       end
        else
           return doPlayerSendCancel(cid, "O Líder do Grupo deve usar a Estátua Primeiro.")
       end
        else
    	    for x = fromPos.x, toPos.x do
    	    for y = fromPos.y, toPos.y  do
               local pos = {x=x, y=y, z=fromPos.z}
               local m = getTopCreature(pos).uid
       if m ~= 0 and isPlayer(m) then return doPlayerSendCancel(cid, "Alguém já está fazendo esta Dangerous") end
       end
       end
       end
       return true
    end
    

     

    Aguardo Respostas.

    Abraços !!

  • Quem Está Navegando   0 membros estão online

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