Ir para conteúdo

TeteuziiN

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    TeteuziiN deu reputação a paulo thush em New Baiak 8.6 Editado. V2.0   
    AGORA NA VERSÃO 2.0

    Ola amigo Tibiaking vim trazer uma novidade a vocês...
    sei que existem varios Baiaks por ai.. todos diferentes alguns são até iguais mais com funções inovadoras..

    A um tempo atras resolvi criar um Baiakão pra mim rsrs. E pior que deu certo, em 5 dias online consegui conquistar mais de 100 players fixos online. mais acabei ficando sem tempo de resolver tudo sozinho e resolvi fechar.

    o server ficou parado aqui.. muitos no msn me pedirão e eu nunca tive coragem de entregar ele assim de mão beijada né guardei por um bom tempo.. Mais.... hoje resolvi dar uma olhada nele e enquanto eu via o mapa .. funções.. e outras coisas mais , acabei achando interessante eu liberar ele aqui pra vocês ... Então chega de papo e vamos ao que Importa....

    Baiak 8.60
    Usando Crystal server
    All features, actions, funções 100%
    Addons 100%
    Spells 100%
    Vocações balanceadas.
    Estabilidade garantida.
    Serve save sem lag
    Clean 100%
    Talkactions GOD, CM, GM 100%

    MAPA
    Baiak Yourots Editado por mim.
    INQ. Quest 100%
    POI 100%
    Anihi 100%
    Areá VIP com Hunts e teleports 100%
    Sala de teleports Arenas e muito mais...

    LAST UPDATE
    VIP 1 - 100%
    VIP 2 - 100%
    Adicionado Comando !buyvip por 3kk
    Adicionado Novos Outfits "Elf e Vampire"
    Mapa com novo visual
    npcs concertados e melhorados
    Novas quests
    novas hunts
    novas arenas

    PRINTS...















    É isso ai galera .. já que viram um pouco do mapa.. irei postar abaixo beleza xD acho que sera util para alguem que esteja a proucura de um baiak estavel.. Se a galera curtir estarei disponibilizando ele na versão 9.44 do Crystal server...

    ACC GOD = god/god

    CREDITOS:
    Tryller - desenvolvedor crystal server.
    Erimyth - Edição, melhorias e adaptações de novas actions.
    Equipe Baiak Yourots.

    DOWNLOAD:
    LINK ON - >>> Mediafire <<<

    SCAN: CLICK AQUI - VIRUSTOTAL <- Scan atualizado com a versão 2.0
  2. Gostei
    TeteuziiN deu reputação a MaXwEllDeN em [Aula 5] Variáveis e Comentários   
    << Aula 4 - Operadores e Bibliotecas
    Variaveis
    Aula 5
    Olá, bem-vindos a nossa 5ª aula de scripting. Nesta aula iremos tratar de uma coisa indispensável em todos os scripts: Variáveis. As variáveis podem ser entendidas como uma "caixa"que armazena um valor na memória RAM, ou um substituto de um valor, uma igualdade de um valor, como se ela fosse o valor em si.
     
    Toda variável deve ter um nome definido por você, mas existem regras para definí-los: quando for escolher o nome da variável, não use números no começo e nunca use caracteres especiais, como acentos, sifrões ou asteríscos. Use apenas a-z, A-Z e pode-se usar números também, desde que não estejam no começo da variável. Existem também palavras que são reservadas e não podem ser declaradas como variáveis: (if while true nil for repeat until do break return function false in end else elseif or and). Na maioria das vezes, você deve declarar (Dar um valor) a variável, senão ela retornará nil (Vimos isto na Aula 2).
    Vamos ao um exemplo de como declarar uma variável.
      numero = 27 Repare, eu criei uma variável chamada numero, e ao mesmo tempo ela vale 27, então quando eu for usa-lá em algum lugar eu posso escrever 27 ou então escrever numero. Vamos ao um exemplo em si:
      numero = 27 print(numero) print(27) Veja, eu declarei a nossa variável como 27, em seguida a função print irá mostrar o valor dela no caso 27, e em baixo mostra a você o número 27. Ambos irão mostrar a mesma coisa, pois você declarou que numero é 27. As variáveis podem ser modificadas no decorrer do script como o exemplo:
      numero = 10 numero = numero * 3 print(numero) print(10) Nesse caso é diferente, vamos por linhas para ser mais fácil. Em sua primeira linha declaramos que a variável vale 10. Logo na segunda linha redeclaramos a variável como sendonumero igual a numero (seu valor atual) vezes 3. No caso ela vai passar a valer 30, pois 10 * 3 = 30. Na terceira linha o script ira mostrar a você o valor da variável, que nesse caso é 30. Na quarta linha ele irá mostrar 10, sim 10 não é 30, mas nós não declaramos ela como 10? Sim, mas acontece que na segunda linha modificamos seu valor. Apenas para ressaltar vamos falar mais uma vez brevemente o que vimos na aula 2. Os tipos de variáveis. Nossas variáveis podem ser de vários tipos. Como vimos acima se chama number (Número), mas temos tambem:
    (Curiosidade: Funções são armazenadas em variáveis!) Bem, em OTServ, quando se declara uma variável, como por exemplo o nome numero em um script x ela acaba sendo chamada de variável global, isso quer dizer que apos executar uma vez o script x, quando se executar o script y e chamar a variável sem ser declarada ela será usada com o valor que foi declarado no script x. Normalmente isso atrapalha muito e ainda consome memória do seu PC, pois a variável fica guardada ocupando memória a toa. Existe um modo de evitar isso, esse modo é declarar a variável como local, que no caso quando o script terminar de executar a variável, ela vai ser deletada e não ficará consumindo memória do seu PC. E isso se faz assim:
      local texto = "Ola pessoas." --- ou assim local algo Veja que quando declarada local na 3ª linha eu não coloquei = valor, isso se dá porque você declarou ela como local, mas não declarou valor. So se pode fazer isso quando ela é declarada local, depois você pode colocar o valor que quiser, ela apenas está como local mais ainda é nil. Não se preocupem ainda com variáveis locais e globais. Veremos mais afundo na próxima aula. criar um comentário basta iniciá-lo com --. A cada linha do comentário você deve adicionar mais dois - (menos) assim:
      -- Ola gente, eu estou comentando!!!!!! -- que coisa o0 -- uhahuahuahuauhauhahu -- oi? ------- eu posso fazer com mais de um porem o minimo é 2 Quando se inicia um comentário ele fica até o final da linha. Pode se fazer comentários com varias linhas sem ter que ficar adicionando -- toda hora, se faz usando [[, assim:
      --[[ ahuahuahuhua eu sei comentar em comentarios ]] --- aqui vai seu script Usa-se muito isso para inserir créditos ou explicar algo, mesmo.
     
    Exercício.
     
    Crie um pequeno script que tenha 3 variáveis, que e o valor de cada uma deve ser modificado de alguma forma e insira comentários em cada linha e no final um comentários com + de uma linha usando [[ ]].
     
    Resposta:
     
     
    Essa aula foi escrita por um urso gordo Mock, todos os créditos são dele.
    Aula 6 - Escopo >> Comentarios Essa parte é simples, ajuda quando se esta fazendo um script, ou quando quer explicar alguma coisa no script para uma pessoa que vai ver. São os comentários. Eles servem apenas para você "falar" ou comentar alguma coisa no script. Elas não influenciam em nada do script (Em sua execução). Para
  3. Gostei
    TeteuziiN deu reputação a MaXwEllDeN em [Aula 2] Lógica da Programaçao   
    << Aula 1 - Introdução
     
     
     
     
    Lógica da Programação
    Aula 2
     
     
     
     
    O que é a Lógica da Programação?
    Bem, tudo o que é escrito em alguma linguagem de programação deve seguir uma lógica para poder funcionar. Vamos pegar um exemplo simples e curto: Um script de SD. (Sudden Death Rune)
     
    Quando o script de SD for chamado (Alguém usou a SD), ela segue passos básicos, que é basicamente a execução dela. Primeiro o script vai verificar se quem usou a SD possui nível, magic level, etc... suficiente para poder usar a SD. Se não possuir opa! Ela vai enviar uma mensagem de erro ao jogador, um efeito de fumaça e vai encerrar a execução. Caso contrário: se for um jogador com todos os requerimentos básicos para usar uma SD, então o script vai verificar se o alvo é um Player ou Monstro. Se não for vai enviar uma mensagem de erro, efeito, e vai parar de executar. Se for um monstro ou player, então o script fará um efeito da SD atingindo o alvo, toda aquela piromancia louca, e então vai tirar o devido dano do jogador.
     
    Um pouco cansativo de ler tudo isso, mas observe o exemplo abaixo:
     
     
      Quando uma SD for usada, então faça: Verifique se o jogador que usou a SD possui nível igual ou maior que 45, e se possui nível mágico maior ou igual a 15. Se possuir, faça: Se o alvo da SD for um Monstro ou Jogador, então faça: Calcule o dano que causará ao alvo. Remova uma carga da SD. Execute o efeito de SD. Calcule o dano que causará ao alvo e execute-o no alvo, tirando a vida dele ou mana, no caso de o alvo estiver usando o Magic Shield (Utamo Vita). Mas se o alvo da SD não for um Monstro ou Jogador, então faça: Envie uma mensagem de erro ao jogador. Envie um efeito de fumaça na posição do jogador. Aqui termina a verificação se o alvo da SD é um Monstro ou Jogador, ou nenhum dos dois. Mas se o jogador não possuir estes requerimentos, então faça: Envie uma mensagem de erro ao jogador. Envie um efeito de fumaça na posição do jogador. Aqui termina a verificação se o jogador possui ou não os requerimentos. Aqui termina a execução da SD. Agora, depois deste algoritmo, talvez tenha ficado mais claro como os programas de computador funcionam. Tudo não passa de um processo lógico, onde a linguagem de programação só serve como uma "máscara" para que o programador escreva o código seguindo esta lógica, por isso é ultra importante saber a lógica da programação antes de começar a programar. O que é um Algoritmo? O "código" que eu escrevi acima (Dentro da caixa de texto) representando o uso da SD foi um algoritmo. Os algoritmos são formas de representar a lógica seguida pelo programa. São passos que o programa segue para atingir determinado objetivo ou em outras palavras, completar uma tarefa (No caso da SD, matar ou não o alvo, ou enviar uma mensagem de erro). Um exemplo de algoritmo são as operações matemáticas, como somar, dividir, multiplicar, subtrair... Quando você soma 2 mais 2, você está executando um algoritmo para ele atingir o objetivo (O resultado!!), que é 4. Um programa ou script é basicamente a escrita dos algoritmos em uma linguagem de programação que é executada pelo computador de forma lógica.
     
    Esta aula foi curta pois eu prefiro lhes ensinar as estruturas lógicas conforme ensino as mesmas em Lua, assim trabalhando a lógica e Lua ao mesmo tempo. Primeiro ensino como funciona a estrutura na Lógica e depois ensino como aplicar em Lua.
     
    Exercícios-Tarefa:
     
    1. Monte o algoritmo de um script de "Shovel (Pá)".
    2. Monte o algoritmo de um script de "Pedra que troca sexo".
    3. Monte o algoritmo de "Ir ao cinema".
    4. Monte o algoritmo de "Fazer bolo".
     
     
     
    Respostas: Só abra depois de ter tentado resolver os exercícios!
     
    Exercício 1:
     
     
     
    Exercício 2:
     
     
    Exercício 3:
     
     
    Exercício 4:
     
     
     
    OBS: Nota-se que já fiquei cansado nas respostas do exercício 3 e 4... 
     
    Aqui só serão aceitas dúvidas ou reporte de erros. Qualquer coisa que não se encaixe nesta descrição será apagado sem aviso.
     
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
     
     
    Aula 3 - Primeiros Passos >>
  4. Gostei
    TeteuziiN deu reputação a MaXwEllDeN em [Aula 1] Introdução   
    Introdução
    Aula 1
    O que é scripting?
    Do modo mais simples possível: scripting é o ato de programar. O nome scripting vem do nome "script".
    O que é um script?
    De um modo geral, um script é um bloco de código escrito em uma linguagem de programação interpretada, ou seja, ele precisa que alguma coisa leia ele e possa "traduzir" seu conteúdo. Lembre-se de que "script" não é um termo específico de Open Tibia Servers.
    O que é uma linguagem de programação interpretada?
    Os brasileiros falam português, ingleses falam inglês e chineses falam mandarim, e com isso o mundo é composto por várias línguas.
    No mundo da programação não é diferente. Existem várias línguas que podem ser usadas, cada uma com uma característica e modo de escrever diferente (Assim como o português é diferente do inglês).
    Entre estas linguagens, existem 2 tipos: as linguagens interpretadas e as linguagens compiladas (Não-interpretadas). Podemos fazer uma comparação tosca com a vida real: o português seria uma linguagem interpretada (Nosso cérebro precisa "traduzir" a mensagem), e os desenhos seriam a língua compilada (Nosso cérebro reconhece automaticamente a "mensagem" do desenho).
    As linguagens compiladas são aquelas que não precisam ser lidas por nenhum programa, pois "conversam" diretamente com o computador, enquando a linguagem interpretada não consegue se comunicar com o computador, então a linguagem compilada recebe a mensagem do codigo interpretado e traduz numa linguagem que o computador entenda, dai a linguagem interpretada pode conversar com o computador (Desde que alguém traduza suas mensagens).
    Voltando para a parte de Open Tibia Servers, a linguagem compilada é a linguagem usada no seu servidor: o .exe no Windows, por exemplo, e a linguagem interpretada são os scripts .lua. O seu servidor compilado vai ler os scripts .lua e traduzir o conteúdo deles para que o computador possa executar o que o script manda.
    Se os scripts são escritos em linguagens interpretadas, qual é a linguagem dos script usados nos Open Tibia Servers?
    Os Open Tibia Servers usam uma linguagem de programação (Interpretada) chamada Lua, que foi feita aqui no Brasil mesmo.
    Características da linguagem de programação Lua:
    Linguagem de Programação Interpretada Linguagem de Programação Imperativa ou Programação Procedural Linguagem de Scripts ou Linguagem de Extensão Pequena, Fácil, Leve e Eficiente " Lua foi criada por um time de desenvolvedores do Tecgraf da PUC-Rio, a princípio, para ser usada em um projeto da Petrobras. Devido à sua eficiência, clareza e facilidade de aprendizado, passou a ser usada em diversos ramos da programação, como no desenvolvimento de jogos (a LucasArts, por exemplo, usou a linguagem no jogo Escape from Monkey Island), controle de robôs, processamento de texto, etc. Também é freqüentemente usada como uma linguagem de propósito geral. "
    Wikipédia - Lua (Linguagem de Programação)
    O que eu preciso para aprender Lua e começar a produzir meus scripts?
    Paciência (Embora seja de fácil aprendizado, você vai levar algum tempo para aprender a linguagem)
      Humildade (Nunca se sinta o melhor, nem ridicularize aqueles que tiverem um conhecimento menor que o seu)
      Vontade (Não adianta fazer as coisas sem o menor interesse, você não chegará a lugar nenhum sem vontade)
      Criatividade (O principal para produzir um script é ter a idéia do que você vai fazer)
      Conhecer a Lógica da Programação (Não se preocupe, eu vou ensinar a Lógica da Programação nas próximas aulas.)
      Interpretador Lua (Para testar seus scripts, claro. Você pode usar o seu OTServer para testar, e ainda usar um interpretador Lua para testar seus scripts simples fora do OTServer)
      Editor Lua (Não é realmente necessário, uma vez que você pode usar um editor de textos qualquer, como o bloco de notas, mas ter um Editor Lua vai ajudar muito, e alguns até vêm com um Interpretador Lua junto!)
      Pagar uma taxa de R$ 700,00, afinal, não estou escrevendo estas aulas de graça! (OK, não precisa pagar nada, mas no mínimo poste seus scripts aqui e ajude a seção a crescer ) Onde posso encontrar um Interpretador e/ou Editor Lua?
    Como interpretador (No caso de produzir scripts para Open Tibia Servers) você deve usar um servidor próprio, pessoal somente para testar os scripts que você fez, e pode usar também um Interpretador Lua geral, para testar seus scripts fora dos OTServers.
    Como Editor Lua você pode usar qualquer editor de textos, mas eu recomendo usar um editor que seja próprio para a linguagem Lua. Existem dois editores que já vem com um Interpretador Lua "embutido". São eles: OTScript Live! [Download] e SciTE (Scintilla) [Download].
    Exercício-Tarefa:
    Pesquise mais na internet sobre a linguagem Lua, Scripts, etc...
    Somente dúvidas serão aceitas aqui! Comentários que não forem dúvidas serão apagados e os autores serão reportados!
    Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele.
    Aula 2 - Lógica da programação >> Script Live By colex.rar
  5. Gostei
    TeteuziiN deu reputação a Victor Fasano Raful em [2015] Gesior 1.0 - VictorWEBMaster   
    Salve TK!
     
    Após a morte subta de um ... bom vocês estão aparte do acontecido... Bom, resolvi disponibilizar minhas versões dos meus websites compatível com o mais novo e complexo TFS 1.0 (The Forgotten Server 10.20 ~10.3x).
     
    Bom, este website está em uma versão BETA, ou seja. Há erros, não há falhas de invasão e algo relacionado a intervenções in game ou no site. NÃO tem a possibilidade de clonar points, não garanto itens pois isto é um processo ingame... Não há possibilidade de fazer falsos pagamentos e ter pontos sendo creditados.

    Bom, esta versão estava sendo disponibilizada por minha pessoa por um preço de R$200, resolvi postar pois estou sem mais cabeça de ficar fazendo negociações com iniciantes. Então resolvi postar aqui e deixar com que vocês quebrem as suas próprias cabeças.

    Com certeza esta não é minha melhor versão do site, pois tenho que lucrar algo com isto né..

    Bom, apreciem com moderação!

    Website foi testado com uma base desconhecida do TFS 1.0 na versão 10.37. Obteve funcionabilidade de 97% de sucesso.
    Download Website VictorWEBMaster 1.0 Scan Website VictorWEBMaster 1.0  
    >> Quais quer que sejam os bugs, por favor reportem no tópico ou eventualmente na sessão correta de dúvidas de websites. <<
  6. Gostei
    TeteuziiN deu reputação a Ryzor em Movement [Anti-Exit]   
  7. Gostei
    TeteuziiN deu reputação a thiagobji em Advanced Vocation Changer   
    Eu tavo navegando de boa na internet, e encontrei esse Sistema muito show (Na minha opnião), então quero compartilhar aqui com vocês
    OBS: Não sei se tem no TK, se tiver me desculpem.

    Nome: Advanced Vocation Changer
    Autor: JoseJunior23
    Server: TFS 3.6


    Como functiona?
    É simples, funciona assim:
    Você é Knight e quer ser Sorcerer, basta você digitar /acv 1 e sua vocação será mudada para sorcerer.
    OBS: O melhor de tudo é você não irá perder seus SKILLS/ML, pois eles serão guardados, cada vocação fica com seus ml/skills guardados em diferentes storages. enquanto ao HP/MANA será igual ao seu vocations.xml porem fiz a minha maneira, oque quer dizer que você irá ter que configurar essa parte.

    Comandos
    /acv 1 = sorcerer
    /acv 2 = druid
    /acv 3 = paladin
    /acv 4 = knight


    Instalação

    1º na pasta server/mods cria um arquivo XML chamado Advanced Change Vocation e coloque isso dentro:


    <?xml version="1.0" encoding="UTF-8"?> <mod name="ADVANCED CHANGE VOCATION" version="1.0" author="josejunior23" contact="[email protected]" enabled="yes"> <talkaction words="/acv" case-sensitive="yes" event="script" value="ACV.lua"/> <event type="logout" name="acv_logout" event="script" value="ACV_logout.lua"/> <event type="login" name="acv_login" event="script" value="ACV_login.lua"/> <event type="death" name="acv_death" event="script" value="ACV_death.lua"/> </mod> 2º na pasta server/mods/scripts cria um arquivo LUA chamado ACV e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onSay(cid, words, param, channel) if(acv_exhaustion.enable == true) and (isExhausted(cid)) then doPlayerSendTextMessage(cid, acv_msg_color, "You can't change your vocation now! You still need to wait: " .. fixTimer(getPlayerStorageValue(cid, acv_exhaustion.storage))) return true end if not (param) or not (isNumber(param)) or (tonumber(param) > 4) or (tonumber(param) < 1) then doPlayerSendTextMessage(cid, acv_msg_color, "You can change your vocation up to 1 till 4 vocations (/acv VOCATIONID)!\n 1 = sorcerer, 2 = druid, 3 = paladin and 4 = knight.") return true end if(tonumber(param) == getVocationCfg(getPlayerVocation(cid))) then doPlayerSendTextMessage(cid, acv_msg_color, "You are already " .. getArticle(getPlayerVocationName(cid)) .. " " .. getPlayerVocationName(cid) .. ".") return true end if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doPlayerSendTextMessage(cid, acv_msg_color, "You may not change your vocation while in battle.") return true end local newvoc = acv_config[tonumber(param)] if(newvoc) then savePlayerVocation(cid) local vocID = getPlayerVocation(cid) local vocStorage = getVocationStorage(vocID) if(acv_fun_cfg.text.doCreatureSay == true) then doCreatureSay(cid, acv_fun_cfg.text.text, acv_fun_cfg.text.talkType) end if(acv_fun_cfg.effect.doSendMagicEffect == true) then doSendMagicEffect(getCreaturePosition(cid), acv_fun_cfg.effect.effect) end if(acv_exhaustion.enable == true) then addExhausted(cid, acv_exhaustion.time) end changePlayerVocation(cid, tonumber(param)) end return true end 3º na pasta server/mods/scripts cria um arquivo LUA chamado acv_login e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onLogin(cid) if(getPlayerPromotionLevel(cid) == 1) and (getPlayerVocation(cid) <= 4) then doPlayerSetVocation(cid, getPlayerVocation(cid) + 4) end if(acv_enable_msg_on_login == true) then doPlayerSendTextMessage(cid, acv_msg_color, "Your vocation is: " .. getPlayerVocationName(cid) .. ".") end local events = {"acv_logout", "acv_death"} for i = 1, #events do registerCreatureEvent(cid, events[i]) end return true end 4º na pasta server/mods/scripts cria um arquivo LUA chamado acv_logout e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onLogout(cid) savePlayerVocation(cid) return true end 5º na pasta server/mods/scripts cria um arquivo LUA chamado acv_death e coloque isso dentro: -- Advanced Vocation Changer! -- scripted by josejunior23 function onDeath(cid, corpse, deathList) savePlayerVocation(cid) return true end 6º na pasta server/data/lib cria um arquivo LUA chamado ACV_lib e coloque isso dentro: LEMBRE-SE DE CONFIGURAR O CODIGO ESSA PARTE! -- Advanced Vocation Changer! -- scripted by josejunior23 acv_enable_msg_on_login = true; acv_msg_color = MESSAGE_STATUS_CONSOLE_ORANGE; -- message colour send in default channel acv_exhaustion = {enable = true, storage = "acv_exh", time = 5}; -- time in seconds 60 x 60 = 3600 = 1 hour acv_first_storage = "firstvoc"; -- saves players first vocation acv_fun_cfg = { text = {doCreatureSay = true, text = "#CHANGING VOCATION#", talkType = TALKTYPE_ORANGE_1}, effect = {doSendMagicEffect = true, effect = 10} -- effect 10 = teleport } acv_config = { -- make sure none of those storages are already in use! [1] = 73974, -- sorcerer UNIQUE STORAGE!!! [2] = 73983, -- druid UNIQUE STORAGE!!! [3] = 73992, -- paladin UNIQUE STORAGE!!! [4] = 73991 -- knight UNIQUE STORAGE!!! } getFormula = function(cid) -- how to config -> change the numbers below to the same as vocations.xml (gainhp, gainmana) return { health = { -- Sorcerer [1] = 5, -- sorcerer gains X HEALTH each level (gainhp) [5] = 5, -- master sorcerer gains X HEALTH each level (gainhp) -- Druid [2] = 5, -- druid gains X HEALTH each level (gainhp) [6] = 5, -- elder druid gains X HEALTH each level (gainhp) -- Paladin [3] = 10, -- paladin gains X HEALTH each level (gainhp) [7] = 10, -- royal paladin gains X HEALTH each level (gainhp) -- Knight [4] = 22, -- knight gains X HEALTH each level (gainhp) [8] = 22 -- elite knight gains X HEALTH each level (gainhp) }, mana = { -- Sorcerer [1] = 30, -- sorcerer gains X MANA each level (gainmana) [5] = 30, -- master sorcerer gains X MANA each level (gainmana) -- Druid [2] = 30, -- druid gains X MANA each level (gainmana) [6] = 30, -- elder druid gains X MANA each level (gainmana) -- Paladin [3] = 15, -- paladin gains X MANA each level (gainmana) [7] = 15, -- royal paladin gains X MANA each level (gainmana) -- Knight [4] = 5, -- knight gains X MANA each level (gainmana) [8] = 5 -- elite knight gains X MANA each level (gainmana) } } end function fixTimer(v) local seconds, minutes, hours = v - os.time(), 0, 0 while seconds >= 60 do minutes = minutes + 1 seconds = seconds - 60 end while minutes >= 60 do hours = hours + 1 minutes = minutes - 60 end local str1, str2, str3 = hours > 1 and hours .. " hours, " or "" .. "", minutes > 1 and minutes .. " minutes and " or "" .. "", seconds .. " seconds." or "" .. "" return str1 .. str2 .. str3 end function isExhausted(cid) return getPlayerStorageValue(cid, acv_exhaustion.storage) > os.time() and true or false end function addExhausted(cid, time) -- time in seconds return setPlayerStorageValue(cid, acv_exhaustion.storage, os.time() +time) end function setStorageString(cid, storage, string) return setPlayerStorageValue(cid, storage, "S" .. string) end function getStorageString(cid, storage) return string.sub(getPlayerStorageValue(cid, storage), 2) end function getVocationStorage(id) return acv_config[getVocationCfg(id)] end function getPlayerFirstVocation(cid) return getPlayerStorageValue(cid, acv_first_storage) end function getVocationCfg(id) if(id > 4) then id = id - 4 end return id end function savePlayerVocation(cid) local maglevel, fist, club, sword, axe, dist, shield, fish = getPlayerMagLevel(cid), getPlayerSkillLevel(cid, 0), getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3), getPlayerSkillLevel(cid, 4), getPlayerSkillLevel(cid, 5), getPlayerSkillLevel(cid, 6) local vocID = getPlayerVocation(cid) local vocStorage = getVocationStorage(vocID) if(getPlayerPromotionLevel(cid) == 1) and (getPlayerVocation(cid) <= 4) then vocID = getPlayerVocation(cid) + 4 doPlayerSetVocation(cid, vocID) end return setStorageString(cid, vocStorage, maglevel .. "-" .. fist .. "-" .. club .. "-" .. sword .. "-" .. axe .. "-" .. dist .. "-" .. shield .. "-" .. fish .. "-" .. vocID) end function setupPlayerVocation(cid, arg) local pid = getPlayerGUID(cid) doRemoveCreature(cid, true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. arg.maglevel .. " WHERE `id` = ".. pid .. ";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.fist .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 0 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.club .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.sword .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.axe .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.dist .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.shield .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = " .. arg.fish .. " WHERE `player_id` = ".. pid .. " and `skillid` = ".. 6 ..";") return true end function changePlayerVocation(cid, id) savePlayerVocation(cid) local newVoc = getVocationStorage(id) if(getPlayerStorageValue(cid, newVoc) == -1) or (getPlayerStorageValue(cid, newVoc) == 0) then local level = getPlayerLevel(cid) local vocationsset = { [1] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 1, -- default Sorcerer [2] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 2, -- default Druid [3] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 3, -- default Paladin [4] = 1 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 10 .. "-" .. 4 -- default Knight } setStorageString(cid, newVoc, vocationsset[getVocationCfg(id)]) end if(getPlayerFirstVocation(cid) == -1) or (getPlayerFirstVocation(cid) == 0) then setPlayerStorageValue(cid, acv_first_storage, getPlayerVocationName(cid)) end local get = string.explode(getStorageString(cid, newVoc), "-") local maglevel, fist, club, sword, axe, dist, shield, fish, voc = get[1], get[2], get[3], get[4], get[5], get[6], get[7], get[8], get[9] voc = tonumber(voc) if(getPlayerPromotionLevel(cid) == 1) and (voc <= 4) then voc = voc + 4 end doPlayerSetVocation(cid, voc) setCreatureMaxHealth(cid, getPlayerLevel(cid) * getFormula(cid).health[voc]) doCreatureAddHealth(cid, getPlayerLevel(cid) * getFormula(cid).health[voc]) setCreatureMaxMana(cid, getPlayerLevel(cid) * getFormula(cid).mana[voc]) doCreatureAddMana(cid, getPlayerLevel(cid) * getFormula(cid).mana[voc]) setupPlayerVocation(cid, {maglevel = maglevel, fist = fist, club = club, sword = sword, axe = axe, dist = dist, shield = shield, fish = fish}) return true end

    É isso galera, como foi dito no início do tópico, não foi eu que criei esse script, tavo pesquisando na net e achei esse script muito legal e vim compartilhar com vocês.
  8. Gostei
    TeteuziiN deu reputação a Vodkart em [Resolvido][Pedido] Retirar Coração ao Matar Player   
    function onDeath(cid, corpse, deathList) function getHeartFromNivel(cid) local t = { [{1000,2000}] = 5943, [{2001,3000}] = 2353, [{3001,4000}] = 1685, [{4001,5000}] = 11361, [{5001,6000}] = 10552, [{6001,math.huge}] = 10577 } for var, ret in pairs(t) do if getPlayerLevel(cid) >= var[1] and getPlayerLevel(cid) <= var[2] then k = ret end end return k end if isPlayer(cid) and getPlayerLevel(cid) >= 1000 and isPlayer(deathList[1]) then local item = getHeartFromNivel(cid) doItemSetAttribute(doPlayerAddItem(deathList[1],item, 1), "description", "This is the heart of "..getPlayerName(cid).." killed at Level "..getPlayerLevel(cid).." by "..getPlayerName(deathList[1])..".") if getPlayerLevel(cid) >= 5000 then doBroadcastMessage("O Jogador ".. getCreatureName(deathList[1]) .. "[" .. getPlayerLevel(deathList[1]) .. "] Matou " .. getCreatureName(cid) .. "[" .. getPlayerLevel(cid) .. "] E retirou seu "..getItemNameById(item),18) end doSendMagicEffect(getPlayerPosition(deathList[1]), 12) end return true end

Informação Importante

Confirmação de Termo