Ir para conteúdo

MatteusDeli

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    MatteusDeli recebeu reputação de Shootz em erro gesior   
    O que está acontecendo é um problema de privilegio no banco de dados. Tente abrir o arquivo config.php na pasta do site html/config/config.php e procure por esta linha (ela está lá pro final do arquivo) $SQLlink = mysqli_connect("localhost", "root", "123456", "baiak"); Aonde está com a cor verde é a password de acesso ao banco de dados.
     
    Algumas soluções: 
     
    1° Tente remover a senha que está em verde, deixando ela vazia, apenas com as aspas "";
    $SQLlink = mysqli_connect("localhost", "root", "", "baiak");  
    2° Caso você deixando em branco e a conexão não estabeleça, você terá que checar se o seu banco de dados está com alguma senha de acesso, caso esteja coloque ela aonde está em verde dentro das aspas.
    $SQLlink = mysqli_connect("localhost", "root", "SUA_SENHA_AQUI", "baiak");  
  2. Curtir
    MatteusDeli recebeu reputação de locauty.13 em erro gesior   
    Bom dia, entre na pasta do seu servidor (no meu caso é o xampp) e procuro pelo arquivo config.inc.php que geralmente fica na pasta do phpMyAdmin, abra este arquivo e procure pela linha $cfg['Servers'][$i]['password'] ao achar essa variável você altera ela para a senha que você colocou no seu banco de dados.
     
    Espero ter ajudado.
  3. Curtir
    MatteusDeli recebeu reputação de Muvukaa em Reflect stones (storage)   
    @FearWar
     
    data\creaturescripts\scripts crie um arquivo chamado reflectStone.lua e adicione isso nele:
    local lvldodge = 48903 local percent = 0.5 function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then value = math.ceil(value*(percent)) doCreatureAddHealth(attacker, -value) doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6) return false end end return true end  
    creaturescripts.xml:
    <event type="statschange" name="ReflectStone" event="script" value="reflectStone.lua"/>  
    login.lua:
    registerCreatureEvent(cid, "ReflectStone")  
  4. Gostei
    MatteusDeli recebeu reputação de Doidodepeda em (Resolvido)Tile que gasta soul ao entrar   
    @deza Boa noite, não testei o script mais acho que seria isso
     
    em data/movements crie um arquivo chamado soul.lua e cole isso nele
     
    local config = { soul = 10, -- Quantidade de soul que será removida message = { text = "Voce nao possui soul suficiente para passar aqui", color = MESSAGE_STATUS_CONSOLE_BLUE } } function onStepIn(cid, item, position, fromPosition) local playerSoul = getPlayerSoul(cid) if not isPlayer(cid) then return false end if playerSoul < config.soul then doPlayerSendTextMessage(cid, config.message.color, config.message.text) doTeleportThing(cid, fromPosition) return false end doPlayerAddSoul(cid, -config.soul) return true end  
    em movements.xml adicione esta linha nele:
     
    <movevent event="StepIn" actionid="XXXX" script="soul.lua" />  
    Aonde esta XXXX você coloca o actionId do tile que ativará o script
  5. Obrigado
    MatteusDeli recebeu reputação de ricardo3 em SCRIPTS ANTIGOS   
    @ricardo3 Boa tarde, o script do outfit:
    local config = { exhaustionInSeconds = 30, storage = 34534 } function onSay(cid, words, param) if(exhaustion.check(cid, config.storage) == TRUE) then doPlayerSendCancel(cid, "You can change outfit only 1 time per " .. config.exhaustionInSeconds .. " seconds.") return TRUE end local playerGuild = getPlayerGuildId(cid) if(playerGuild == FALSE) then doPlayerSendCancel(cid, "Sorry, you're not in a guild.") return TRUE end local playerGuildLevel = getPlayerGuildLevel(cid) if(playerGuildLevel < GUILDLEVEL_LEADER) then doPlayerSendCancel(cid, "You have to be Leader of your guild to change outfits!") return TRUE end local players = getPlayersOnline() local outfit = getCreatureOutfit(cid) local message = "*Guild* Your outfit has been changed by leader. (" .. getCreatureName(cid) .. ")" local members = 0 local tmp = {} for i, tid in ipairs(players) do if(getPlayerGuildId(tid) == playerGuild and cid ~= tid) then tmp = outfit if(canPlayerWearOutfit(tid, outfit.lookType, outfit.lookAddons) ~= TRUE) then local tidOutfit = getCreatureOutfit(tid) tmp.lookType = tidOutfit.lookType tmp.lookAddons = tidOutfit.lookAddons end doSendMagicEffect(getCreaturePosition(tid), 66) doCreatureChangeOutfit(tid, tmp) doPlayerSendTextMessage(tid, MESSAGE_INFO_DESCR, message) members = members + 1 end end exhaustion.set(cid, config.storage, config.exhaustionInSeconds) doPlayerSendCancel(cid, "Guild members outfit has been changed. (Total: " .. members .. ")") return TRUE end  
    <talkaction words="!go" event="script" value="guildOutfit.lua"/>  
  6. Obrigado
    MatteusDeli recebeu reputação de Spraiinedweb em [AULA] Entendendo a diferença entre ItemID, ActionID e UniqueID   
    Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
     
    Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
     
    Como poderíamos resolver isso?
     
    É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
     

    (tiles sem as ActionIDs no valor de 1000)
     
    Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
     
    Vamos adicionar as ActionIDs então:
     

    (tiles com as ActionIDs adicionados no valor de 1000)
     
    Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
     
    Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
     
    O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
     

     
    Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
     
    Concluindo…
     
    O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
     
    A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
     
    O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
     
    Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
  7. Gostei
    MatteusDeli recebeu reputação de kleytonbm em Npc que Adiciona Skill   
    Olá Tibianos do Tibia King. (Vou direto para o script) 
     
    Vamos lá: Vá até a pasta data/npc copie e cole algum arquivo XML renomeie para stoned.xml e substitua por isto: (OBS esse é o NPC 1, vocações Paladin, Druid e Sorcerer)
     
     
    Em Roxo você pode alterar o looktype dele e o nome (Entre aspas). -- Não é obrigatório alterar isso--
     
    Agora volte para a pasta data/npc e copie e cole outro arquivo XML e renomeie para stonedkina.xml e substitua por isto:
     
     
    (--Mesma coisa do anterior --)
    Em Roxo você pode alterar o looktype dele e o nome (Entre aspas). -- Não é obrigatório alterar isso--
     
    ----SCRIPT DO NPC DE PALADIN, SORCERER E DRUID----
     
    Vá na pasta data/npc/scripts copie e cole algum arquivo, renomeie para stoned.lua e cole isso dentro:
     
     
    Em Verde é o ID dos itens que o player vai precisar para ganhar a quantidade de skill.
    Em Azul são os efeitos que vai aparecer embaixo do Player. Se quiser deixe com esses efeitos mesmo :D ---(Os efeitos vão de 1 a 68, caso queira vê-los apenas digite /z 1.. 68 com o GOD)
    Em Laranja é a quantidade de EXP de skill o Player vai ganhar ao entregar o ITEM. (Eu aconselho não colocar numero exorbitante como 9999999, pode acontecer de o script travar pela quantidade de skill adicionada).
    Em Vermelho é a quantidade do ITEM que ele vai precisar ter. (Caso for itens como Armors, Legs, Swords, Axes etc... Deixe 1 se for itens agrupáveis como TALONS, SCARAB COINS etc... Você pode colocar de 1 até 100).
     
    -----SCRIPT DO NPC DE KNIGHT------
     
    Vá na pasta data/npc/scripts copie e cole algum arquivo, renomeie para stonedkina.lua e cole isso dentro:
     
     
    <-> As Configurações são as mesmas <->
     
    Em Verde é o ID dos itens que o player vai precisar para ganhar a quantidade de skill.
    Em Azul é o efeito que vai aparecer embaixo do Player. Se quiser deixe com esses efeitos mesmo :D ---(Os efeitos vão de 1 a 68, caso queira vê-los apenas digite /z 1.. 68 com o GOD)
    Em Laranja é a quantidade de EXP de skill o Player vai ganhar ao entregar o ITEM. (Eu aconselho não colocar numero exorbitante como 9999999, pode acontecer de o script travar pela quantidade de skill adicionada).
    Em Vermelho é a quantidade do ITEM que ele vai precisar ter. (Caso for itens como Armors, Legs, Swords, Axes etc... Deixe 1 se for itens agrupáveis como TALONS, SCARAB COINS etc... Você pode colocar de 1 até 100).
     
    Por fim é só Importar os NPC'S pelo mapa Editor e adicionar! :D
     
    Obrigado e Bom uso do script!!!
     
     
  8. Gostei
    MatteusDeli recebeu reputação de Vodkart em [AULA] Entendendo a diferença entre ItemID, ActionID e UniqueID   
    Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
     
    Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
     
    Como poderíamos resolver isso?
     
    É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
     

    (tiles sem as ActionIDs no valor de 1000)
     
    Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
     
    Vamos adicionar as ActionIDs então:
     

    (tiles com as ActionIDs adicionados no valor de 1000)
     
    Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
     
    Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
     
    O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
     

     
    Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
     
    Concluindo…
     
    O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
     
    A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
     
    O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
     
    Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
  9. Gostei
    Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
     
    Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
     
    Como poderíamos resolver isso?
     
    É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
     

    (tiles sem as ActionIDs no valor de 1000)
     
    Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
     
    Vamos adicionar as ActionIDs então:
     

    (tiles com as ActionIDs adicionados no valor de 1000)
     
    Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
     
    Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
     
    O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
     

     
    Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
     
    Concluindo…
     
    O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
     
    A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
     
    O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
     
    Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
  10. Obrigado
    MatteusDeli recebeu reputação de FeeTads em [AULA] Entendendo a diferença entre ItemID, ActionID e UniqueID   
    Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
     
    Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
     
    Como poderíamos resolver isso?
     
    É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
     

    (tiles sem as ActionIDs no valor de 1000)
     
    Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
     
    Vamos adicionar as ActionIDs então:
     

    (tiles com as ActionIDs adicionados no valor de 1000)
     
    Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
     
    Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
     
    O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
     

     
    Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
     
    Concluindo…
     
    O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
     
    A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
     
    O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
     
    Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
  11. Obrigado
    MatteusDeli recebeu reputação de Strikerzerh em AJUDA NPC 8.60   
    @Strikerzerh Boa noite
     
    XML do Npc
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Traveller" script="data/npc/scripts/traveler.lua" walkinterval="1000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="96" body="99" legs="76" feet="115" addons="1"/> </npc>  
    Na pasta data/npc/scripts crie um arquivo chamado traveler.lua e adicione isso dentro: 
    local TELEPORT_EFFECT = 10 local config = { ['Demonland'] = { position = { x=160, y=54, z=7 }, items = { [2160] = { count = 1 }, [2124] = { count = 1 } } }, ['Orc Hall'] = { position = { x=160, y=54, z=7 }, items = { [8299] = { count = 1 }, } }, -- [DESTINO] = { -- position = { x=160, y=54, z=7 }, -- items = { -- [ITEM_ID] = { count = QUANTIDADE_DO_ITEM }, -- } -- }, } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if (not checkDestinyExists(msg)) then selfSay('Este lugar nao existe. Por favor diga outro.', cid) return false end local destinyData = getDestinyData(msg) if msgcontains(string.lower(msg), string.lower(destinyData.destiny)) then local items = {} for item, data in pairs(destinyData.data.items) do if (getPlayerItemCount(cid, item) < data.count) then table.insert(items, { item = item }) end end if (#items <= 0) then removePlayerItems(cid, destinyData.data.items) doTeleportThing(cid, destinyData.data.position) doSendMagicEffect(getThingPos(cid), TELEPORT_EFFECT) selfSay('Ate mais.', cid) return true end selfSay('Voce nao possui todos os itens necessarios para viajar.', cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) function checkDestinyExists(destiny) for dest, _ in pairs(config) do if (string.lower(dest) == string.lower(destiny)) then return true end end return false end function getDestinyData(destiny) for dest, data in pairs(config) do if (string.lower(dest) == string.lower(destiny)) then return { destiny = dest, data = data } end end end function removePlayerItems(cid, items) for item, data in pairs(items) do doPlayerRemoveItem(cid, item, data.count) end end  
  12. Curtir
    MatteusDeli recebeu reputação de Strikerzerh em Alguem ajuda? [ 8.60 ]   
    @Strikerzerh Boa tarde
     
    local config = { item = 8988, -- ID ou ACTIONID que o item do player será usado, exemplo seria uma porta teleport = { position = { x=160, y=54, z=7 }, -- Posição para onde o player será teleportado effect = 10 -- Efeito do teleporte } } function onUse(cid, item, fromPos, itemEx, toPos) if (itemEx.itemid == config.item or itemEx.actionid == config.item) then doTeleportThing(cid, config.teleport.position) doSendMagicEffect(getThingPos(cid), config.teleport.effect) end return true end  
    <action itemid="ID_ITEM" script="ARQUIVO.lua" />  
    ID_ITEM = É o item que o player usara para realizar a ação, exemplo de uma key
     
    Obs: Recomendo usar o item com action_id para diferencia-lo.
     
    <action actionid="ACTIONID_ITEM" script="ARQUIVO.lua" />  
  13. Curtir
    @Muvuka Boa noite.
     
    local items = {} local sellTable = { [2498] = 40000, [2475] = 6000, [2497] = 9000, [2491] = 5000, [2462] = 4000, [2663] = 500, [2458] = 35, [2459] = 30, [2645] = 400000, [2195] = 40000, [2646] = 100000, [2472] = 100000, [2492] = 60000, [2494] = 90000, [2466] = 30000, [2487] = 20000, [2476] = 5000, [2656] = 15000, [2500] = 2500, [2463] = 400, [2465] = 200, [2464] = 100, [2470] = 80000, [2488] = 15000, [2477] = 6000, [2647] = 500, [2487] = 100, [2514] = 80000, [2520] = 40000, [2523] = 150000, [2522] = 100000, [2534] = 25000, [2536] = 8000, [2537] = 4000, [2519] = 5000, [2528] = 4000, [2515] = 200, [2518] = 1500, [2525] = 100, [2390] = 150000, [2408] = 100000, [2400] = 90000, [2393] = 10000, [2407] = 6000, [2396] = 4000, [2392] = 3000, [2409] = 1500, [2383] = 800, [2377] = 400, [2413] = 70, [2406] = 30, [2376] = 25, [2414] = 10000, [2431] = 90000, [2427] = 7500, [2432] = 10000, [2430] = 2000, [2387] = 200, [2381] = 200, [2378] = 100, [2388] = 20, [2391] = 6000, [2421] = 90000, [2436] = 1000, [2434] = 2000, [2423] = 200, [2417] = 60, [2398] = 30, } function get_items_container(cid, uid) local size = getContainerCap(uid) for slot = (size - 1), 0, -1 do local item = getContainerItem(uid, slot) if item.uid > 0 then if sellTable[item.itemid] then table.insert(items, item.itemid) elseif isContainer(item.uid) then get_items_container(cid, item.uid) end end end return items end function onSay(cid, words, param, channel) items = {} local backpack = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK).uid if (words == "!sellall") then sellAllItems(cid, backpack) return true end if (words == "!sell") then if (param == nil) then return false end sellItem(cid, param, backpack) return true end return true end function sellItem(cid, item, backpack) local items = get_items_container(cid, backpack) if #items <= 0 then return false end local itemId = items[1] local money = sellTable[itemId] local itemName = getItemNameById(itemId) if string.lower(itemName) ~= string.lower(item) then return false end sell(cid, itemId, money) return true end function sellAllItems(cid, backpack) local items = get_items_container(cid, backpack) if #items <= 0 then return false end for i = 1, #items do local item = items[i] local money = sellTable[item] sell(cid, item, money) end return true end function sell(cid, item, money) doPlayerAddMoney(cid, money) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sold ".. getItemNameById(item) .." for ".. money .." gold.") doPlayerRemoveItem(cid, item, 1) end  
  14. Curtir
    MatteusDeli recebeu reputação de Danijo em poketibia(npc de poke)   
    @Margela Só alterar na lista: 
     
    local pokePrice = {
    ["Bulbasaur"] = 3000,                                                   
    ["Ivysaur"] = 4500,        --alterado v1.6
    ["Venusaur"] = 12000,
    }
     
    Se voce quiser que o npc pague 20 dls pelo bulbasaur, é só voce alterar o 3000 para 30.
     
    Exemplo: 
    30 = 30 dls
    300 = 300 dls
    3.000 = 3k
    30.000 = 30k
    300.000 = 300k
    3.000.000 = 3kk
    E assim por diante... 
     
     
  15. Curtir
    MatteusDeli recebeu reputação de Breniinx em Quest diaria por IP   
    @Breniinx talkactions/scripts dailyQuestIpTime.lua:
     
    local storage = 18000 -- Manter essa storage igual a que esta no bau local ip = getPlayerIp(cid) function onSay(cid, words, param) if getIpStorageValue(ip, storage) - os.time() > 0 then return false end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Espere " .. timeString(getIpStorageValue(ip, storage) - os.time()) .. " para pegar um novo item!") return true end  
    talkactions.xml: 
    <talkaction words="/dailyTime" event="script" value="dailyQuestIpTime.lua"/>  
    Créditos:
    @Vodkart
  16. Obrigado
    MatteusDeli deu reputação a Carlinhous1996 em editar sistema de lavanca   
    isso mesmo cê e foda. valeu!!
  17. Gostei
    MatteusDeli recebeu reputação de Carlinhous1996 em editar sistema de lavanca   
    @Carlinhous1996 Boa noite, seria isso?
     
    local config = { pos = {x=7508, y=12624, z=11}, stoneOne = 7522, stoneTwo = 7524, time = 20 -- time in seconds to remove the stone } function onUse(cid, item, fromPosition, itemEx, toPosition) local posItemOne = getTileItemById(config.pos, config.stoneOne).uid if (posItemOne > 0) then doRemoveItem(posItemOne, 1) doCreateItem(config.stoneTwo, config.pos) doPlayerSendTextMessage(cid,22,"a parede falsa foi removida.") doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED) addEvent(function() local posItemTwo = getTileItemById(config.pos, config.stoneTwo).uid doRemoveItem(posItemTwo, 1) doCreateItem(config.stoneOne, config.pos) doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED) end, config.time * 1000) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) end return true end  
     
  18. Curtir
    MatteusDeli deu reputação a koyotestark em [TFS 0.4 860] {Pedido} NPC de quest de 3 etapas   
    Pra quem é novo, funcionou direitinho, tinha um probleminha q eu botei pra ele dar item na etapa 4, mas ele dava sempre q eu dava quest, yes, entao adicionei etapa 5 só deixando mensagem que nao tinha mais nada pra fazer ali. assim fechando a quest. 
     Sobre as alavancas, é q posteriormente achei mais interessante botar o script direto no mob, obrigado aos dois, usarei os 2 scripts. em quests diferentes. fazer essa quest consegui material pra outras quests.
  19. Obrigado
    MatteusDeli recebeu reputação de koyotestark em [TFS 0.4 860] {Pedido} NPC de quest de 3 etapas   
    @underpunk Boa tarde, seria isso?
     
    npc.xml
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Stages" script="data/npc/scripts/stages.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> </npc>  
    data/npcs/scripts
    loadmodlib('npc_stages_config') local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local stage = nil 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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (getPlayerStorageValue(cid, storage) == (#stages + 1)) then selfSay('Voce ja completou todos os estagios', cid) return end for storage, data in pairs(stages) do if (msg == data.msg) then data.storage = storage stage = data selfSay('Voce deseja ir para o ' ..data.msg.. ' ?', cid) talkState[talkUser] = 1 return end end if(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerStorageValue(cid, storage) <= 0) then setPlayerStorageValue(cid, storage, 1) end if (getPlayerStorageValue(cid, storage) == stage.storage) then doTeleportThing(cid, stage.teleport) else selfSay('Voce nao tem permissao para ir no ' ..stage.msg, cid) end stage = nil talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
    criar um arquivo chamado npc_stages_config.lua na pasta LIB e adicionar isso nele, aqui ficará toda a configuração dos estágios caso você queira adicionar mais de 3
    storage = 12000 bossName = "Demon" -- Seguir na sequencia entre cochetes 1, 2, 3, 4 ... stages = { [1] = { msg = 'training 1', teleport = { x=156,y=49,z=8 } }, [2] = { msg = 'training 2', teleport = { x=156,y=54,z=9 } }, [3] = { msg = 'training 3', teleport = { x=141,y=61,z=6 } } --[4] = { msg = 'training 4', teleport = { x=0,y=0,z=0 } } }  
    data/actions/scripts
    loadmodlib('npc_stages_config') function onUse(cid, item, fromPosition, itemEx, toPosition) setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) return true end  
    actions.xml
    <action actionid="13000" script="stages.lua"/>  
    data/creaturescripts/scripts
    loadmodlib('npc_stages_config') function onKill(cid, target) local monsterName = getCreatureName(target) if (string.lower(monsterName) == string.lower(bossName)) then setPlayerStorageValue(cid, storage, (#stages + 1)) end return true end  
    creaturescripts.xml
    <event type="kill" name="BossStages" event="script" value="stages.lua"/>  
    data/creaturescripts/scripts/login.lua
    registerCreatureEvent(cid, "BossStages")  
  20. Curtir
    MatteusDeli deu reputação a Vodkart em Quest diaria por IP   
    function onSay(cid, words, param) local storage, ip = 18000, getPlayerIp(cid) return doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, getIpStorageValue(ip, storage) - os.time() <= 0 and "Voce esta habilitado para receber sua recompensa." or "Espere " .. timeString(getIpStorageValue(ip, storage) - os.time()) .. " para pegar um novo item!") end  
  21. Gostei
    MatteusDeli recebeu reputação de Vodkart em Quest diaria por IP   
    @Breniinx talkactions/scripts dailyQuestIpTime.lua:
     
    local storage = 18000 -- Manter essa storage igual a que esta no bau local ip = getPlayerIp(cid) function onSay(cid, words, param) if getIpStorageValue(ip, storage) - os.time() > 0 then return false end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Espere " .. timeString(getIpStorageValue(ip, storage) - os.time()) .. " para pegar um novo item!") return true end  
    talkactions.xml: 
    <talkaction words="/dailyTime" event="script" value="dailyQuestIpTime.lua"/>  
    Créditos:
    @Vodkart
  22. Obrigado
    MatteusDeli recebeu reputação de DeathRocks em [AJUDA] ESTATUA VOCATION   
    @DeathRocks Tenta agora
     
    local storage = 62669 local message = "Voce nao pode treinar essa skill, escolha a estatua de sua vocacao." local config = { [1444] = { -- ID statue vocations = {4, 8}, -- Knight and Elite Knight skill = SKILL_SWORD }, [8836] = { vocations = {4, 8}, -- Knight, Elite Knight skill = SKILL_AXE }, [8834] = { vocations = {1, 2, 5, 6}, -- Sorcerer, Druid, Master Sorcerer, Elder Druid skill = SKILL__MAGLEVEL }, [8626] = { vocations = {4, 8}, -- Knight, Elite Knight skill = SKILL_CLUB }, [10353] = { vocations = {3, 7}, -- Paladin, Royal Paladin skill = SKILL_DISTANCE }, } function onUse(cid, item, fromPosition, itemEx, toPosition) for i = 1, #config[item.itemid].vocations, 1 do local vocation = config[item.itemid].vocations[i] local skill = config[item.itemid].skill if (getPlayerVocation(cid) == vocation and item.actionid == 6341) then doCreatureSetStorage(cid, storage, skill) doRemoveCreature(cid) break else doPlayerSendCancel(cid, message) end end return true end  
  23. Obrigado
    MatteusDeli recebeu reputação de koyotestark em (Resolvido)Tile que gasta soul ao entrar   
    @deza Boa noite, não testei o script mais acho que seria isso
     
    em data/movements crie um arquivo chamado soul.lua e cole isso nele
     
    local config = { soul = 10, -- Quantidade de soul que será removida message = { text = "Voce nao possui soul suficiente para passar aqui", color = MESSAGE_STATUS_CONSOLE_BLUE } } function onStepIn(cid, item, position, fromPosition) local playerSoul = getPlayerSoul(cid) if not isPlayer(cid) then return false end if playerSoul < config.soul then doPlayerSendTextMessage(cid, config.message.color, config.message.text) doTeleportThing(cid, fromPosition) return false end doPlayerAddSoul(cid, -config.soul) return true end  
    em movements.xml adicione esta linha nele:
     
    <movevent event="StepIn" actionid="XXXX" script="soul.lua" />  
    Aonde esta XXXX você coloca o actionId do tile que ativará o script
  24. Gostei
    MatteusDeli recebeu reputação de So volto tarde em (Resolvido)Tile que gasta soul ao entrar   
    @deza Boa noite, não testei o script mais acho que seria isso
     
    em data/movements crie um arquivo chamado soul.lua e cole isso nele
     
    local config = { soul = 10, -- Quantidade de soul que será removida message = { text = "Voce nao possui soul suficiente para passar aqui", color = MESSAGE_STATUS_CONSOLE_BLUE } } function onStepIn(cid, item, position, fromPosition) local playerSoul = getPlayerSoul(cid) if not isPlayer(cid) then return false end if playerSoul < config.soul then doPlayerSendTextMessage(cid, config.message.color, config.message.text) doTeleportThing(cid, fromPosition) return false end doPlayerAddSoul(cid, -config.soul) return true end  
    em movements.xml adicione esta linha nele:
     
    <movevent event="StepIn" actionid="XXXX" script="soul.lua" />  
    Aonde esta XXXX você coloca o actionId do tile que ativará o script
  25. Obrigado
    MatteusDeli recebeu reputação de juvelino em (Resolvido)Como arrumar o npc que da vocation apos level 200?   
    @juvelino Opa, não testei mais creio que é isso:
     
    local config = { storage = 457771, cost = 1000000, -- Quantidade em gold (1000000 = 1kk) minimumLevel = 200, -- Level minimo necessario vocation = { sorcerer = { id = 1, name = "Sorcerer"}, druid = { id = 2, name = "Druid"}, paladin = { id = 3, name = "Paladin"}, knight = { id = 4, name = "Knight"}, } } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 local choose = {} local cancel = {} local available = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid if(msgcontains(msg, "info")) then selfSay("Olá "..getCreatureName(cid)..", Você quer trocar de vocação, digite o nome da sua proxima vocação. Temos Sorcerer, Druid, Knight e Paladin.", cid) talkState[talkUser] = 1 if canChangeVocation(cid) == false then selfSay("Desculpe, mais voce so pode trocar de vocacao apenas uma vez", cid) talkState[talkUser] = 0 return false end if haveEnoughLevel(cid) == false then selfSay("Desculpe, voce nao possui level suficiente", cid) talkState[talkUser] = 0 return false end removeMoney(cid) elseif msgcontains(msg, "sorcerer") or msgcontains(msg, "SORCERER") and talkState[talkUser] == 1 then addVocation(cid, config.vocation.sorcerer.id, config.vocation.sorcerer.name) elseif msgcontains(msg, "druid") or msgcontains(msg, "DRUID") and talkState[talkUser] == 1 then addVocation(cid, config.vocation.druid.id, config.vocation.druid.name) elseif msgcontains(msg, "paladin") or msgcontains(msg, "PALADIN") and talkState[talkUser] == 1 then addVocation(cid, config.vocation.paladin.id, config.vocation.paladin.name) elseif msgcontains(msg, "KNIGHT") or msgcontains(msg, "KNIGHT") and talkState[talkUser] == 1 then addVocation(cid, config.vocation.knight.id, config.vocation.knight.name) elseif(msgcontains(msg, "bye") or msgcontains(msg, "goodbye") or msgcontains(msg, "cya")) then selfSay("cya!", cid, TRUE) closeShopWindow(cid) removeFocus(cid) end end function canChangeVocation(cid) if getPlayerStorageValue(cid, config.storage) <= 0 then return true end return false end function haveEnoughLevel(cid) if getPlayerLevel(cid) >= config.minimumLevel then return true end return false end function removeMoney(cid) if getPlayerMoney(cid) < config.cost then selfSay("Voce nao possui dinheiro suficiente.", cid) return false end doPlayerRemoveMoney(cid, config.cost) end function addVocation(cid, id, name) doPlayerSetVocation(cid, id) selfSay("Parabéns, você virou um "..name, cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um "..name) setPlayerStorageValue(cid, config.storage, 1) end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
    Na parte que o npc não estar adicionando a vocação, voce pode checar em data/XML o arquivo de vocations.xml acho que bug pode estar lá, vou deixar um exemplo do script padrão dele: (Tente alterar para o script abaixo e faça o teste se irá funcionar)
    <?xml version="1.0" encoding="UTF-8"?> <vocations> <vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="4.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="2" name="Druid" description="a druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="2"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="3" name="Paladin" description="a paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="8" gainhpamount="1" gainmanaticks="4" gainmanaamount="2" manamultiplier="1.4" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="3"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation> <vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="4"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation> <vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="2" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="6" name="Elder Druid" description="an elder druid" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="2" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="6" gainhpamount="1" gainmanaticks="3" gainmanaamount="2" manamultiplier="1.4" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation> <vocation id="8" name="Elite Knight" description="an elite knight" needpremium="1" gaincap="25" gainhp="15" gainmana="5" gainhpticks="4" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation> <!-- <vocation id="9" name="Epic Master Sorcerer" description="an epic master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="1" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="5" lessloss="50"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="10" name="Epic Elder Druid" description="an epic elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="12" gainhpamount="1" gainmanaticks="1" gainmanaamount="2" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="6" lessloss="50"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="1.8" sword="1.8" axe="1.8" distance="1.8" shielding="1.5" fishing="1.1" experience="1.0"/> </vocation> <vocation id="11" name="Epic Royal Paladin" description="an epic royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="1" gainmanaticks="2" gainmanaamount="2" manamultiplier="1.4" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="7" lessloss="50"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.2" club="1.2" sword="1.2" axe="1.2" distance="1.1" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation> <vocation id="12" name="Epic Elite Knight" description="an epic elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="8" lessloss="50"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/> </vocation> --> </vocations>  

Informação Importante

Confirmação de Termo