Ir para conteúdo

yoh

Campones
  • Total de itens

    58
  • Registro em

  • Última visita

Histórico de Reputação

  1. Thanks
    yoh recebeu reputação de coyotestark45 em Talkactions Transferencia de Points entre Players   
    Adicione em 050-function
    function getPlayerVipPoints(cid) local Info = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. "") if Info:getID() ~= LUA_ERROR then local Points= Info:getDataInt("premium_points") Info:free() return Points end return LUA_ERROR end function doPlayerAddVipPoints(cid, points) local dif = getPlayerVipPoints(cid) + points if dif >= 0 then db.query("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";") return TRUE end return FALSE end function doPlayerRemoveVipPoints(cid, points) local dif = getPlayerVipPoints(cid) - points if dif >= 0 then db.query("UPDATE `accounts` SET `premium_points` = `premium_points` - " .. points .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";") return TRUE end return FALSE end Adione em Talkactions/scripts
     
    transfer.lua
    function onSay(cid, words, param, channel) local t = param:explode(",") local player = getPlayerByName(t[1]) local m = tonumber(t[2]) if param == "" then return doPlayerSendCancel(cid, "Command requires param.") elseif not isPlayer(player) then return doPlayerSendCancel(cid, "Sorry, not possible.") end if(not m) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Valor nao Digitado.\n Ex: /transfer "..getPlayerName(cid)..", 20") return TRUE end if getPlayerVipPoints(cid) < m then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce nao tem pontos suficiente!!") end doPlayerRemoveVipPoints(cid, m) doPlayerAddVipPoints(player, m) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce Transferiu "..m.." pontos para "..getPlayerName(player)..".") f = io.open("data/logs/Pontos.txt", "a+") f:write("Player: "..getPlayerName(cid).." transferiu "..m.." pontos para "..getPlayerName(player).."\n\n----------------------------------------------------------\n") f:close() return true end XML :
    <talkaction words="/transfer" event="script" value="transfer.lua"/> Eu Utilizo isso no meu Servidor Funciona 100% e sem nenhum Bug !
  2. Upvote
    yoh deu reputação a Tony Araujo em [8.54] The Forgotten Server (Version : OrochiElf 1.0)   
    Fala ai pessoal do Xtibia, ultimamente eu vejo muitos membros querendo abrir o seu proprio projeto, e precisar de umas sourcers para editar e talz, e nao conseguir editar, para sua base.
    Então eu querendo ajudar os membros, fiz uma versão aqui do TFS , e editei umas funçoes que pode ajudar muitos.
    Segue o changelog.
     
     
    ChangeLog - (TFS OrochiElf v1.0)
     
    -Adicionado a funçao doPlayerCastSpell(cid, spell) -Adicionado a funçao doPlayerSetSkillLevel(cid, skillId, value) -Adicionado a funçao doPlayerSetMagicLevel(cid, value) -Adicionado a funçao doSendChannels(cid) -Adicionado AutoStacking Item (Junta os items automaticamente)  
    Aqui vai uma fotozinha para mostrar que o servidor não tem bug algum, está limpo.
     

     
    Bom galera, vou ensinar a usar cada uma das funçoes citadas no changelog
     
    doPlayerCastSpell -> é usado para fazer o player soltar uma magia.[/size] Exemplo de uso : doPlayerCastSpell(cid, "Exori Vis") Isso irá fazer o player executar uma magia, ou no caso, o player iria usar a magia (Exori Vis) é bom para fazer sistema de cooldown. doPlayerSetSkillLevel -> é usado para setar um novo valor para a skill do player. Exemplo de uso : doPlayerSetSkillLevel(cid, 0, getPlayerSkill(cid, 0) + 10) Isso iria me adicionar 10 pontos da minha skillid 0 , ou seja, fist fighting. doPlayerSetMagicLevel -> é usada da mesma forma que o doPlayerSetSkillLevel doSendChannels -> é usado para abrir a caixa de canais, a mesma que mostra os canais (Trade, Help, Report , entre outros)  
    Espero que ajude muitos membros.
     
    Download Link (Tfs OrochiElf v1.0) -> http://www.mediafire...dbd5aa4xm6uux6u
    Scan (Tfs OrochiElf v1.0) -> https://www.virustot...sis/1366158244/
     
    Obs : Os viros citados no site, sao os virus normais do The Forgotten Server.
    Obs²: Não estou obrigando ninquem a baixar , ou a gostar do meu feito. então fica a seu critério.
     
     
    Pedido: Eu gostaria que voces deixassem opnioes, no que deveria ter na versao 1.1 (;
    Obrigado ai galera, espero que ajude
  3. Upvote
    yoh deu reputação a Superior em Mapa + SPR Avatar World   
    Bom galera, no arquivo zipado tem o mapa+spr+item.otb pra vocês poderem criar uma copia do avatar legends, que no qual mudou nome pra avatar world.
     

     
    Link do Download: Avatar.rar
     
    Link do scan: https://www.virustotal.com/pt/file/ba7509d15851ee6699ab93f11c0b4728c3135542d7ebf56b031a454421f353f0/analysis/1476844269/
    Avatar.rar
  4. Upvote
    yoh deu reputação a 115757 em Avatar Zero   
    Introdução

    Este é um OT feito por mim juntamente com o kikim da padaria, mas como não tivemos tempo de deixá-lo online e continuá-lo por conta dos estudos, iremos deixar o download e algumas informações básicas. Recomendo uma experiência de 5x a 15x, pois o mapa foi feito exclusivamente para uma RPG mais vívido (sem tp's ou semelhantes). Mapa 60% próprio (créditos ao kingdom age pelo resto). Acesse o site para outras informações, para tutoriais e explicação de alguns sistemas (incluindo magias, também):

    Link para o site




    As Vocações

    Air Bender:
    São dobradores pouco agressivos. Suas dobras são voltadas para evitar conflito, empurram e puxam com mais facilidade que os outros dobradores, e também são mais velozes que os outros dobradores.

    Fire Bender:
    São os dobradores com maior dano. É voltado especialmente para causar o máximo de estrago possível em seus oponentes.

    Earth Bender:
    É uma vocação balanceada. Causam um bom dano, empurram e fazem barreiras, porém possui menos eficiência que as outras.

    Water Benders:
    São dobradores voltados para o suporte. Eles curam, retiram status (envenamento, drunk), mas possuem um dano mediano.


    Sistemas

    Water Pouch: mana para dobradores de água. Nosso water pouch utiliza um sistema diferentes, por isso, viste está página para saber como usá-lo.

    Forja: Para forjar você deve usar um iron hammer para criar itens à partir de outros, como explica esta página.

    Mineração: Feito para tirar iron ore e gold nugget de um terreno de terra. Fundamental para a forja, como pode ser visto aqui.

    Cortar árvores: Assim como a mineração, é fundamental para forjar certos itens, especialmente flechas e bolts. Veja mais detalhadamente aqui.

    Água ambiente: Certas de magias de água, como w-fish e w-tsnunami, necessitam estar perto da água para serem utilizadas.


    Imagens

    Proteja-se das dobras criando uma barreira de pedra!

     

    Com um poderoso raio, destrua seus oponentes!

     

    ...Você é raio de saudade, meteoro da paixão!...

     

    Provoque uma poderosa tempestade para esmagar seus inimigos!

     


    Informações

    Nós não fizemos nenhuma house, então deixaremos a rigor do editor criá-las ou deletá-las. As spells estão parcialmente balanceadas, ou seja, se encontrarem algum bug ou spell OP (muito forte), fale no tópico.

    Este servidor foi inspirado no Taelin (ou Korelin, para muitos). Taelin foi um antigo servidor de Avatar, muito elogiado por seus jogadores.

    Importante: como o server não utiliza mana (só para o waterpouch, que nem é propriamente dito uma mana), nós não fizemos o uso de Magic Level na construção ou evolução das magias. Tudo se baseia em level, apenas.


    Download e Scan

    Lembrando que o servidor é 8.60 e não faz o uso de client próprio.

    Senha do god: god / 123456

    DOWNLOAD

    SCAN


    Créditos e Considerações Finais

    Obrigado a todos que se recordarem de terem ajudado (pois não foram poucos) e outros que me lembro por ter auxiliado a criação e corrigido alguns bugs.
    E obrigado a você, que chegou até aqui e fará bom uso do conteúdo.

    E algumas considerações especiais:

    Kikim da Padaria: principal editor do OT. Sem ele nada teria acontecido.
    Oneshot: falecido do fórum, porém seus tópicos foram mais que importantes para a criação das spells.
    Roksas: obrigado pela assistência e dedicação.
    Craigmabbit: ajudou na criação de algumas magias mais complexas.
  5. Upvote
    yoh deu reputação a Beeki em [Tutorial] Otb Item Editor   
    Bem a pedido de um amigo DuuhCarvalho estarei elaborando esse tutorial de como criar um novo item usando o OTB Item editor.

    Primeiramente baixe o Item Editor:
    http://www.mediafire.com/?ly576216h4pdx7j Após baixar o Item editor é necessario que você o configure, pegue o Tibia.dat e Tibia.spr e coloque na pasta data e os renomeie da seguinte forma. Tibia.spr = Tibia860.spr / Tibia.dat = Tibia860.dat

    Feito isso siga a vídeo Aula (:






    - Aqui estarei explicando como por o novo item no items.xml

    Bem como foi uma sword, usaremos essa tag.

    <item id="12620" article="a" name="rapier">
    <attribute key="weight" value="1500" />
    <attribute key="defense" value="8" />
    <attribute key="attack" value="10" />
    <attribute key="weaponType" value="sword" />
    <attribute key="extradef" value="1" />
    </item>12620 = ID do Item que criamos na video aula. Weight = o Peso em oz do item. Defense = defesa que o item dará. attack = será o valor em ataque do item. weaponType = é onde definimos o que item será, como no caso é uma sword, usamos o type "sword" extraDef = a defesa adicional que o item dará
  6. Upvote
    yoh recebeu reputação de lucasromero0110 em Spells - Fuin Kai - Kai   
    Chatinho fazer mais é simples :
     
    Na Spells de Travar o Player Coloque :
     
    Não testei porem axo q vai funcionar
     
    Travar o Target
    function onCastSpell(cid, var) local target = getCreatureTarget(cid) local waittime = 60 - tempo para poder travar o player dnv ( em segundos ) local storage = 2521 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Você tem que espera " .. exhaustion.get(cid, storage) .. " segundos.") return false end exhaustion.set(cid, storage, waittime) mayNotMove(target, true) return true end Destravar o Player :
    function onCastSpell(cid, var) local target = getCreatureTarget(cid) local waittime = 5 - tempo para o player poder destravrar a si mesmo ! em segundos local storage = 2521 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Você tem que espera " .. exhaustion.get(cid, storage) .. " segundos.") return false end exhaustion.set(cid, storage, waittime) mayNotMove(cid, false) return true end
  7. Upvote
    yoh deu reputação a FlamesAdmin em Tirar alguns sistemas;   
    Use um Sprite Editor para pegar as imagens das spells no client.
  8. Upvote
    yoh deu reputação a zipter98 em Transfer, Points   
    Esse 20, é a quantidade de pontos, certo?
    Anyway,
    function onSay(cid, words, param, channel) local t = param:explode(", ") local player = getPlayerByName(t[1]) local quantidade = tonumber(t[2]) if param == "" then return doPlayerSendCancel(cid, "Command requires param.") elseif not isPlayer(player) then return doPlayerSendCancel(cid, "Sorry, not possible.") elseif quantidade == nil then return doPlayerSendCancel(cid, "Sorry, not possible.") end if getPlayerVipPoints(cid) < quantidade then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce nao tem pontos suficiente!!") end doPlayerRemoveVipPoints(cid, quantidade) doPlayerAddVipPoints(player, quantidade) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce Transferiu "..quantidade.." pontos para "..getPlayerName(player)..".") f = io.open("data/logs/Pontos.txt", "a+") f:write("Player: "..getPlayerName(cid).." transferiu pontos ("..quantidade..") para "..getPlayerName(player).."\n\n----------------------------------------------------------\n") f:close() return true end Modo de uso: /transfer nome, pontos
  9. Upvote
    yoh deu reputação a Oneshot em Talkactions com erro no console   
    Editei o script acima, errei na ordem do escopo. Acho que pode funcionar agora, sem erros.
  10. Upvote
    yoh deu reputação a Oneshot em Talkactions com erro no console   
    local TRANSFORMATIONS = { -- NARUTO [69] = {outfit = {lookType = 64}, useEffect = 10, pEffect = 18}, [64] = {outfit = {lookType = 31}, useEffect = 24, pEffect = 12}, [31] = {outfit = {lookType = 90}, useEffect = 24, pEffect = 15}, [90] = {outfit = {lookType = 89}, useEffect = 24, pEffect = 11}, -- SASUKE [5] = {outfit = {lookType = 6}, useEffect = 25, pEffect = 9}, [6] = {outfit = {lookType = 7}, useEffect = 23, pEffect = 14}, [7] = {outfit = {lookType = 8}, useEffect = 14, pEffect = 14}, -- SAKURA [9] = {outfit = {lookType = 10}, useEffect = 2, pEffect = 19}, [10] = {outfit = {lookType = 11}, useEffect = 50, pEffect = 19}, [11] = {outfit = {lookType = 12}, useEffect = 33, pEffect = 14}, } local function delayed_magic_effect(cid) if not isCreature(cid) then return true end local outfit = getCreatureOutfit(cid) local tmp = TRANSFORMATIONS[outfit.lookType] if not tmp then return true end doSendMagicEffect(getCreaturePosition(cid), tmp.pEffect) return addEvent(function() delayed_magic_effect(cid) end, 1000) end function onSay(cid, words, param) local outfit = getCreatureOutfit(cid) local tmp = TRANSFORMATIONS[outfit.lookType] if not tmp then return doPlayerSendCancel(cid, "Você não possui transformações.") end local storage = outfit.lookType + 25000 if getCreatureStorage(cid, storage) == 2103 then return doPlayerSendCancel(cid, "Você ainda não completou a quest necessária para usar essa transformação.") end doSendMagicEffect(getCreaturePosition(cid), tmp.useEffect) doSetCreatureOutfit(cid, tmp.outfit, -1) delayed_magic_effect(cid) return true end Dessa vez testei.
     
    Tchau, não volto aqui mais.
  11. Upvote
    yoh deu reputação a Antiemoxml em Spell Absorb +Ou- Igual Do Po   
    function onCastSpell(cid, var) local sangue = getCreaturePosition(cid) local target = getCreatureTarget(cid) local player = getCreaturePosition(target) local exaust = 1 local time = 0 local mana = -90 if target == isMonster or isCreature then setPlayerStorageValue(cid, storage, os.time()+exaust) doCreatureAddHealth(cid,250, player) doCreatureAddHealth(target,-250, sangue) doPlayerAddMana(cid,mana) end end
    eu coloquei o exaust no script por q ele n tinha exasted
     
     
    Gostou de +REP
  • Quem Está Navegando   0 membros estão online

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