Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''tfs0.4''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Distro Restarter by Yan18 Olá caros amigos do Xtibia, hoje irei ensinar como reiniciar a distro do server automaticamente após um shutdown (no sistema operacional Windows). Decidi fazer esse tutorial após ver muitos pedidos sobre isso, não sei se já existe algum tutorial sobre isso aqui no fórum, mas decidi criar junto com um script que exibe uma mensagem para o server todo alertando que o servidor será reiniciado após X minutos. Para isso, irei trabalhar com um arquivo .bat do Windows, para que ele sempre execute a distro quando não estiver sendo executada. ATENÇÃO: Leia isso antes de seguir o tutorial! Esse método só vai funcionar se a sua distro for em interface GUI! Se for por prompt (linha de comando) não irá funcionar porque a distro já será executada em prompt. Começo do Tutorial - Evento Shutdown Para começar, vamos criar um evento global para dar shutdown e exibir uma mensagem de aviso para todos os jogadores que o servidor será reiniciado, para ficar mais sofisticado e bonito o processo. E eles estarem ciente, assim dá tempo de todos irem para um local seguro! Agora vá em Data/Globalevents/Scripts e crie o arquivo shutdown.lua e insira o código dentro: TFS 0.3/0.4 function avisoShutdown(minutos) local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA if minutos > 0 then doBroadcastMessage("O servidor será reiniciado em " ..minutos) addEvent(avisoShutdown, 60000, cid, minutos - 1) else doSaveServer() addEvent(doShutdown, minutos_shutdown * 60000) return true end end function onTime() avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN end TFS 1.0 / 1.+ function avisoShutdown(minutos) local minutos_shutdown = 1 -- VARIÁVEL PARA DAR UM TEMPO (EM MINUTOS) PARA SALVAR O SERVIDOR E DEPOIS DAR SHUTDOWN EM SEGUIDA if minutos > 0 then if minutos > 1 then broadcastMessage("O servidor será reiniciado em " ..minutos.. " minutos.") else broadcastMessage("O servidor será reiniciado em " ..minutos.. " minuto.") end addEvent(avisoShutdown, 60000, minutos - 1) else saveServer() addEvent(Game.setGameState(GAME_STATE_SHUTDOWN), minutos_shutdown * 60000) return true end end function onTime(interval) avisoShutdown(5) -- MINUTOS MANDAR MENSAGEM DE AVISO PARA SALVAR E DAR SHUTDOWN end Explicação: O script vai fazer um contagem regressiva de minutos (pelo valor definido no parâmetro passado na função avisoShutdown) e depois ele irá ter um delay pelo valor da variável minutos_shutdown. Parece confuso duas variáveis de minutos né? Mas a variável minutos_shutdown é um "delay" para dar tempo de salvar e depois efetuar o shutdown, pois tem servidor que o mapa é grande, tem muitos jogadores e itens, então pode demorar um pouco, ai é só mudar o valor na variável. Está o valor 1 por padrão. E na função chamada pelo evento onTime você coloca os minutos para o player ver os minutos restantes para o servidor ser reiniciado. Agora, abra o arquivo globalevents.xml e adicione a tag: <globalevent name="shutdown_server" time="12:00" event="script" value="shutdown.lua"/> Em time coloque o horário que deseja executar o evento para fazer o shutdown. Agora acabamos a parte do evento e vamos para a parte do reiniciador! - PROMPT (Arquivo .Bat) Agora iremos criar o arquivo bat para reiniciar a distro. Vá no bloco de notas ou no notepad++ (de sua preferência) e insira o seguinte script dentro: title Reinicializador da Distro echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------ echo. echo Status: INICIANDO O SERVIDOR... echo. :begin TFS.exe echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------ echo. echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO. echo. echo Status: O SERVIDOR ESTÁ SENDO REINICIADO! echo. goto begin :goto begin Salve esse script (de preferência com um nome sem espaço) com a extensão .bat. Eu recomendo Restarter, mas fica por sua preferência! OBS: Salve o arquivo com a codificação UTF-8, por padrão já vem, mas caso não venha é só colocar! Explicação: @echo off O "echo off" Oculta informações e o código executado pelo sistema, e o "@echo" oculta a interface durante a execução do programa. É possível juntar os dois modos, assim como fiz acima. title Nessa parte você coloca o título do arquivo bat em seguida da palavra reservada title, que fica na parte superior da interface. Só seguir o exemplo anterior da criação do arquivo. OBS: No título você pode colocar espaço a vontade. echo Aqui é onde vai aparecer as mensagens na interface, pode colocar qualquer caractere desejado, pode usar pontos, acentos (acentos acontecerá algo de errado que será explica mas para o fim do tutorial.) e o que desejar. E para dar uma quebra de linha, é só colocar ponto depois do echo: echo. begin É onde começa a executar o procedimento (executar a distro). Mas ai você pergunta: "Mas e as linhas anteriores com mensagens?". Mas a resposta é que as linhas anteriores não executam o programa, e sim inserem mensagem assim que executamos o arquivo bat (ressaltando que quando abrimos o arquivo bat ele inicia a distro, porém só vai reiniciar a distro sempre que der shutdown ou crashar enquanto o arquivo bat estiver aberto). TFS.exe Em baixo do ":begin" vai ter TFS.exe, e nessa linha é onde coloca o nome do executável (distro). OBS: Evite colocar nome da distro com espaço, ele funciona, mas para evitar problemas, deixe junto! goto begin E por fim temos o goto begin, a palavra reservada goto faz um pulo para o que colocar na frente dela, ou seja, depois que executar tudo que está acima dela, vai ir para o que declara na frente, no nosso caso, o begin (irá fazer um loop de reiniciar sempre que a distro estiver desligada no nosso caso enquanto o arquivo bat estiver rodando). Beleza Yan, acabamos? Ainda não acabamos! Tenha calma, se você chegou até aqui, vai aguentar até o fim! Agora iremos executar o arquivo bat (lembrando que se quer usar o auto restarter, não pode abrir a distro antes do arquivo bat, se não vai dar erro de distro já aberta, porque o arquivo irá abrir novamente). Mas antes de rodar, não se esqueça de colocar o arquivo bat no mesmo diretório (pasta) da distro, tem que ficar junto senão não vai funcionar. Feito isso, execute o arquivo bat, se der tudo certo e seguiu os passos corretamente, irá aparecer assim seguindo nossa criação: E a distro irá iniciar logo em seguida. Agora vamos testar um shutdown na distro (lembre-se de deixar o prompt do arquivo bat aberto!): Agora você vai falar, "Funcionou!! Acabamos?", sim de fato funcionou, porém, se repara as mensagens com acento estão "bugadas". Isso se deve ao fato de que por padrão não lê acento (Windows foi criado na língua inglesa). Então, para funcionar precisaremos ir na primeira linha do código do arquivo bat e colocar: chcp 65001 off Pois essa linha permite acentuação (lembrando de permanecer a codificação UTF-8 ainda). Então o script ficará assim: chcp 65001 @echo off echo. title Reinicializador da Distro echo --------- MENSAGEM QUANDO INICIAR A DISTRO ------------ echo. echo Status: INICIANDO O SERVIDOR... echo. :begin TFS.exe echo --------- MENSAGEM QUANDO DESLIGAR OU REINICIAR A DISTRO COM O ARQUIVO BAT ABERTO ------------ echo. echo Aviso: O SERVIDOR FOI DESLIGADO OU SERÁ REINICIADO. echo. echo Status: O SERVIDOR ESTÁ SENDO REINICIADO! echo. goto begin :goto begin Ficando então o script do arquivo bat: Agora temos o caminho do diretório do executável e uma mensagem do sistema alegando que foi ativado esse comando. Se fizer tudo certo é para aparecer assim! E agora vamos testar o shutdown: Como podemos ver executou corretamente e leu os caracteres com acento. Agora vem a pergunta: "Acabou?", e a resposta é... Sim, acabou! Lembrando que você pode encerrar a distro manualmente (fechando) que o arquivo bat irá reiniciar, não precisa depender só do evento shutdown, mas não esqueça de deixar o restarter aberto. Obrigado por ter chegado até aqui e espero que te ajude o tutorial. Qualquer dúvida só perguntar. Logo estarei preparando um tutorial desses para Linux! Abraços e fiquem com Deus!
  2. Tenho o servidor tfs 0,4 e nele eu consigo equipar qualquer item em qualquer uma das mãos e no slot de flecha, somente os slot de capacete, armor e botas ta certo . Alguém para ajudar ?
  3. Eu uso tfs 0.4 E gostaria de saber se da pra fazer o seguinte: Quando um número X de um monster Y for morto no servidor, uma Raid Z acontece no servidor, por exemplo: Ao ser morto 10.000 dragons no servidor (conta os kills de todos os players do servidor) a Raid de Demodras acontece **(conta os dragons, Dragon lords e os hatchlings)** Desde já agradeço a quem puder ajudar
  4. Tungs

    OTP RETRO

    OtPokémon Retro [+] 8.54 Open Source. [+] Máximo 6 pokémons. [+] Boost Stone. [+] Shiny Stone. [+] Não contém level system. [+] Teleporte que torna morador de cidade. [+] Continentes: Kanto/Hoenn/Vip/johto. [+] Até a 4ª Geração e seus respectivos shinys. [+] OLD client [+] Em breve New [+] Varias Quest :Burned,pesadelos,farol,specialist,halloween,policial jenny,conquest,misterious,lugia e muito mais [+] Language system (!lang en, !lang pt, !lang es). [+] Correr "mais mensagem. [+] Addon System completo. [+] Sistema de sugestão (!sug + sua sugestão). [+] Sistema torneio 150+ -150 e johto. [+] Site: http://www.OTPretro.um sitezinho qualquer/ [+] Página: http://www.facebook.com/otpretro/ PRINTS: FAZENDO UPLOAD
  5. Gostaria de saber se alguém tem o cast system igual do otserv globalwar.com.br? é um que quando tenta entrar no jogo sem por senha ele abre a lista de casters PS: a cast do Mark Samman
  6. Boguemon

    Save 0

    Tenho dois server online, sabem como faço pra os chares que serem criados no world_id = 0 receberem o save 0 lá na database? eles são criados seguindo outros 3 samples que tem save 0, porém quando crio eles ficam com save 1 @EDIT ou um outro jeito
  7. Olá, galera do Xtibia! Estou procurando um parceiro para abrir um baiak (já pronto) hard e bem melhor do que os atuais. No primeiro mês, eu entro com o OT e o parceiro com o dinheiro do host+domínio (somando tudo, o valor gira em torno de 110 reais). Entrar em contato com: miguel_quessada (skype)
  8. Esse script é o de adicionar skill aquele "/addskill Playername, axe" eu queri que alguém me ajudasse a trocar a parte do Playername por um numero que eu vou por no script, tipo um variavel "passcode = [12354]" e que o player precise dizer "/addskill 12354, axe" e ele mesmo ganha o skill, só que tem um outro detalhe, ele tem que verificar se o player tem mais de 0 em uma storage X, e só então a talkaction funciona e da o skill de axe pro cara... esse é o script q tenho function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Not enough params.") return true end local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[1] .. " not found.") return true end t[2] = t[2]:lower() local skill = SKILL_IDS[t[2]] if(not skill) then local tmp = t[2]:sub(1, 1) if(tmp == 'l' or tmp == 'e') then skill = SKILL__LEVEL elseif(tmp == 'm') then skill = SKILL__MAGLEVEL else skill = tonumber(t[2]) if(not skill or skill < SKILL_FIRST or SKILL > SKILL__LAST) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such skill does not exists.") return true end end end local amount = tonumber(t[3]) if(not amount or amount == 0) then amount = 1 end doPlayerAddSkill(pid, skill, amount, true) return true end
  9. Boa noite xtibianos, tudo bem? Estou aqui para fazer 1 pedido diferenciado. Gostaria de 1 sistema de resete modificado, onde o jogador level 120, vai á tal npc fala hi resete , e volta para level 8 com mana e life e um char level 8 da sua classe, e com skill e magic level zerados, porém o jogador receberá em troca prêmios que vai direto para seu depot, 2 prêmios com id 2160 "1 quantia" e 1257. Observações: Para resetar deve ter level 120 e pagar 10k ao npc.
  10. Alguém teria a sprite de neblina ou está afim de fazer uma pra mim? também se tiver um piso que lembro tipo o paraíso eu tbm agradeço (:
  11. Gostaria se alguém pudesse, fazer um script que nele haveriam varios ids de items, e cada item receberia um valor, ex: item 2523 = 1, item 2195 = 2, item 2160 = 3; e com uma variável (soma) que somasse esses 1, 2 e 3, mas só se o item estivesse no slot do inventario (legs/ armor / boots) e então retorna-se o valor como um addon ativo, obviamente que ao remover o item o calculo seria refeito e o novo valor de soma seria posto como addon
  12. OLÁ GALERA, estou aqui para pedir ajuda em uma quest, eu gostaria de um bau que eu poderia abrir ele quantas vezes eu quiser, mais com 1 porem, quando eu abro o bau, eu ganho 1 item e sou teleportado para o templo, esse bau vai ficar no final de uma quest no meu ot, então tipo, se a pessoa quiser fazer a quest varias vezes para pegar o premio, ela pode, mais toda vez que fazer ganha 1 vez e é teleportado o item que eu gostaria que ganha-se é o gold ingot id:9971 gold ingot queria que ganha-se 10 dele localização do meu templo 160 - 54 - 7 se alguem puder me ajudar, REP + para está pessoa !!!
  13. procuro equipe para botar um projeto online, estou com uma base, bem modificada, com varios comandos e muito mais, estou em busca de SCRIPTER's, MAPPER's sever 75% editado, com muitas fotos, e muitos testes online !!!! abaixo algumas fotos de items, e sistemas, !
  14. Olá Xtibianos, estou aqui para pedir uma ajuda com uma talkaction que eu coloquei recentemente no meu servidor !!! coloquei a Talkaction !comprar o problema é que na parte de compra de skills, ela não está funcionando, ela faz o character relogar na hora da compra tudo certinho, cobra a quantidade de moedas para a compra de skills, mais acaba não acrecentando o skill ao player . gostaria de saber se tenho que executar algum comando no phpmyadmin, para funcionar, se alguem puder me ajudar quanto a isso darei REP+ segue a baixo a TALKACTION - lembrando que é apenas as skills's que não são acrecentadas, o resto das vendas do script estão funcionando perfeitamente !!! function onSay(cid, words, param) if (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa está em área [PROTECT ZONE] para utilizar este comando.") return TRUE end if (getPlayerStorageValue(cid, 11548) >= os.time()) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED,"Por medidas de segurança você só pode utilizar este comando em " .. (getPlayerStorageValue(cid, 11548)-os.time()+(0)) .. " segundos.") return TRUE end if(param ~= "") and (param ~= "1kk") and (param ~= "vip10") and (param ~= "vip20") and (param ~= "golden-set") and (param ~= "full-set") and (param ~= "dragon-set") and (param ~= "demon-set") and (param ~= "exp") and (param ~= "skillclub") and (param ~= "skillsword") and (param ~= "skillaxe") and (param ~= "skilldistance") and (param ~= "skillshielding") and (param ~= "magiclevel") and (param ~= "magiclevel2") and (param ~= "skillclub2") and (param ~= "skillsword2") and (param ~= "skillaxe2") and (param ~= "skilldistance2") and (param ~= "skillshielding2") and (param ~= "removerfrag") and (param ~= "removerredskull") and (param ~= "removerblackskull") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Para comprar digite !comprar (nome do item)\nOpcoes:\n1kk = 100 crystal coins por 1 barra.\nvip10 = 10 dias de vip por 50 barras.\nvip20 = 20 dias de vip por 100 barras.\ngolden-set = golden helmet, golden armor, golden legs, golden boots por 3 barras.\nfull-set = demon helmet, magic plate armor, golden legs, mastermind shield por 5 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\ndragon-set = dragon scale helmet, dragon scale mail, dragon scale legs, dragon shield por 7 barras.\ndemon-set = demon helmet, demon armor, demon legs, demonrage sword, demon shield por 10 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nexp = 100000000 pontos de experiencia por 30 barras.\nskillclub = adiciona 1 skill club por 25 barras.\nskillsword = adiciona 1 skill sword por 25 barras.\nskillaxe = adiciona 1 skill axe por 25 barras.\nskilldistance = adiciona 1 skill distance por 25 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillshielding = adiciona 1 skill shielding por 25 barras.\nmagiclevel = adiciona 1 magic level por 25 barras.\nmagiclevel2 = adiciona 2 magic level por 50 barras.\nskillclub2 = adiciona 2 skills club por 50 barras.\nskillsword2 = adiciona 2 skills sword por 50 barras.\nskillaxe2 = adiciona 2 skills axe por 50 barras.\nskilldistance2 = adiciona 2 skill distance por 50 barras.\nskillshielding2 = adiciona 2 skill shielding por 50 barras.\nremoverfrag = remove todos frags por 10 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nremoverredskull = remove red skull por 15 barras.\nremoverblackskull = remove black skull por 25 barras.\n") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O Item desejado não existe em nosso stock. Veja a cima os detalhes dos items disponíveis.") return TRUE end if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Para comprar digite !comprar (nome do item)\nOpcoes:\n1kk = 100 crystal coins por 1 barras.\nvip10 = 10 dias de vip por 50 barras.\nvip20 = 20 dias de vip por 100 barras.\ngolden-set = golden helmet, golden armor, golden legs, golden boots por 3 barras.\nfull-set = demon helmet, magic plate armor, golden legs, mastermind shield por 5 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\ndragon-set = dragon scale helmet, dragon scale mail, dragon scale legs, dragon shield por 7 barras.\ndemon-set = demon helmet, demon armor, demon legs, demonrage sword, demon shield por 10 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nexp = 100000000 pontos de experiencia por 30 barras.\nskillclub = adiciona 1 skill club por 25 barras.\nskillsword = adiciona 1 skill sword por 25 barras.\nskillaxe = adiciona 1 skill axe por 25 barras.\nskilldistance = adiciona 1 skill distance por 25 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nskillshielding = adiciona 1 skill shielding por 25 barras.\nmagiclevel = adiciona 1 magic level por 25 barras.\nmagiclevel2 = adiciona 2 magic level por 50 barras.\nskillclub2 = adiciona 2 skills club por 50 barras.\nskillsword2 = adiciona 2 skills sword por 50 barras.\nskillaxe2 = adiciona 2 skills axe por 50 barras.\nskilldistance2 = adiciona 2 skill distance por 50 barras.\nskillshielding2 = adiciona 2 skill shielding por 50 barras.\nremoverfrag = remove um frag por 10 barras.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "\nremoverredskull = remove red skull por 15 barras.\nremoverblackskull = remove black skull por 25 barras.\n") return TRUE end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ if(param == "1kk") then if getPlayerItemCount(cid, 9971) >= 1 then local bag = doPlayerAddItem(cid, 1997, 1) doAddContainerItem(bag, 2160, 100) doPlayerRemoveItem(cid, 9971, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 1kk com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "vip10") then if getPlayerItemCount(cid, 9971) >= 50 then doPlayerAddPremiumDays(cid, 10) doPlayerRemoveItem(cid, 9971, 50) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 10 dias de [DONATE] com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "vip20") then if getPlayerItemCount(cid, 9971) >= 100 then doPlayerAddPremiumDays(cid, 20) doPlayerRemoveItem(cid, 9971, 100) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 30 dias de [DONATE] com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "golden-set") then if getPlayerItemCount(cid, 9971) >= 3 then local bag = doPlayerAddItem(cid, 1997, 1) doAddContainerItem(bag, 2471, 1) doAddContainerItem(bag, 2466, 1) doAddContainerItem(bag, 2470, 1) doAddContainerItem(bag, 2646, 1) doPlayerRemoveItem(cid, 9971, 10) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 1 Golden-Set com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "full-set") then if getPlayerItemCount(cid, 9971) >= 5 then local bag = doPlayerAddItem(cid, 1997, 1) doAddContainerItem(bag, 2493, 1) doAddContainerItem(bag, 2472, 1) doAddContainerItem(bag, 2470, 1) doAddContainerItem(bag, 2514, 1) doPlayerRemoveItem(cid, 9971, 15) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 1 Full-Set com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "dragon-set") then if getPlayerItemCount(cid, 9971) >= 7 then local bag = doPlayerAddItem(cid, 1997, 1) doAddContainerItem(bag, 2506, 1) doAddContainerItem(bag, 2492, 1) doAddContainerItem(bag, 2469, 1) doAddContainerItem(bag, 2516, 1) doPlayerRemoveItem(cid, 9971, 20) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 1 Dragon-Set com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "demon-set") then if getPlayerItemCount(cid, 9971) >= 10 then local bag = doPlayerAddItem(cid, 1997, 1) doAddContainerItem(bag, 2493, 1) doAddContainerItem(bag, 2494, 1) doAddContainerItem(bag, 2495, 1) doAddContainerItem(bag, 2520, 1) doPlayerRemoveItem(cid, 9971, 20) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 1 Demon-Set com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "exp") then if getPlayerItemCount(cid, 9971) >= 10 then if getPlayerLevel(cid) >= 8 then doPlayerAddExperience(cid, 1000) doPlayerRemoveItem(cid, 9971, 10) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 1kk de exp com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE end if getPlayerLevel(cid) >= 8 then doPlayerAddExperience(cid, 10000) doPlayerRemoveItem(cid, 9971, 15) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 10kk de exp com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE end if getPlayerLevel(cid) >= 8 then doPlayerAddExperience(cid, 100000) doPlayerRemoveItem(cid, 9971, 30) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você comprou 100kk de exp com sucesso.") setPlayerStorageValue(cid,11548,os.time()+30) return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "magiclevel") then if getPlayerMagLevel(cid) >= 200 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter magic level acima de 200.") return TRUE end if(not isSorcerer(cid) and not isDruid(cid) and not isElderDruid(cid) and not isMasterSorcerer(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Sorcerers, Druids podem comprar magic level.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + 1 WHERE `id` = "..pid) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillclub") then if getPlayerSkillLevel(cid, SKILL_CLUB) >= 350 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isKnight(cid) and not isEliteKnight(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de club.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local club = getPlayerSkillLevel(cid, SKILL_CLUB) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (club + 1) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillsword") then if getPlayerSkillLevel(cid, SKILL_SWORD) >= 350 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isKnight(cid) and not isEliteKnight(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de sword.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local sword = getPlayerSkillLevel(cid, SKILL_SWORD) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (sword + 1) .. ", `count` = 0 WHERE `skillid` = 2 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillaxe") then if getPlayerSkillLevel(cid, SKILL_AXE) >= 350 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isKnight(cid) and not isEliteKnight(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de axe.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local axe = getPlayerSkillLevel(cid, SKILL_AXE) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (axe + 1) .. ", `count` = 0 WHERE `skillid` = 3 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skilldistance") then if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 350 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isPaladin(cid) and not isRoyalPaladin(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins podem comprar skill de distance.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local distance = getPlayerSkillLevel(cid, SKILL_DISTANCE) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (distance + 1) .. ", `count` = 0 WHERE `skillid` = 4 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillshielding") then if getPlayerSkillLevel(cid, SKILL_SHIELD) >= 350 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if(not isPaladin(cid) and not isKnight(cid) and not isRoyalPaladin(cid) and not isEliteKnight(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins, Knights podem comprar skill de shield.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local shield = getPlayerSkillLevel(cid, SKILL_SHIELD) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (shield + 1) .. ", `count` = 0 WHERE `skillid` = 5 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "magiclevel2") then if getPlayerMagLevel(cid) >= 196 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter magic level acima de 200.") return TRUE end if(not isSorcerer(cid) and not isDruid(cid) and not isElderDruid(cid) and not isMasterSorcerer(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Sorcerers, Druids podem comprar magic level.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + 2 WHERE `id` = "..pid) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillclub2") then if getPlayerSkillLevel(cid, SKILL_CLUB) >= 341 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isKnight(cid) and not isEliteKnight(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knight podem comprar skill de club.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local club = getPlayerSkillLevel(cid, SKILL_CLUB) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (club + 2) .. ", `count` = 0 WHERE `skillid` = 1 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillsword2") then if getPlayerSkillLevel(cid, SKILL_SWORD) >= 341 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isKnight(cid) and not isEliteKnight(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de sword.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local sword = getPlayerSkillLevel(cid, SKILL_SWORD) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (sword + 2) .. ", `count` = 0 WHERE `skillid` = 2 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillaxe2") then if getPlayerSkillLevel(cid, SKILL_AXE) >= 341 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isKnight(cid) and not isEliteKnight(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Knights podem comprar skill de axe.") return TRUE end if getPlayerItemCount(cid, 9971) >=25 then local pid = getPlayerGUID(cid) local axe = getPlayerSkillLevel(cid, SKILL_AXE) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (axe + 2) .. ", `count` = 0 WHERE `skillid` = 3 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skilldistance2") then if getPlayerSkillLevel(cid, SKILL_DISTANCE) >= 341 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if not isPaladin(cid) and not isRoyalPaladin(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins podem comprar skill de distance.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local distance = getPlayerSkillLevel(cid, SKILL_DISTANCE) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (distance + 2) .. ", `count` = 0 WHERE `skillid` = 4 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "skillshielding2") then if getPlayerSkillLevel(cid, SKILL_SHIELD) >= 341 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode ter skill acima de 350.") return TRUE end if(not isPaladin(cid) and not isKnight(cid) and not isRoyalPaladin(cid) and not isEliteKnight(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Somente Paladins, Knights e podem comprar skill de shield.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then local pid = getPlayerGUID(cid) local shield = getPlayerSkillLevel(cid, SKILL_SHIELD) doPlayerRemoveItem(cid, 9971, 25) setPlayerStorageValue(cid,11548,os.time()+0) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = " .. (shield + 2) .. ", `count` = 0 WHERE `skillid` = 5 and `player_id` = " .. pid .. ";") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "removerfrag") then if getPlayerItemCount(cid, 9971) >= 10 then doPlayerRemoveItem(cid, 9971, 10) db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `unjustified` = 1 AND `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ") LIMIT 1;") setPlayerStorageValue(cid,11548,os.time()+0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você removeu seus frags com sucesso.") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "removerredskull") then if (getCreatureSkullType(cid) == SKULL_RED) == FALSE then doPlayerSendTextMessage(cid,27,"Você não está Red Skull para utilizar este comando.") return TRUE end if getPlayerItemCount(cid, 9971) >= 15 then doPlayerRemoveItem(cid, 9971, 15) db.executeQuery("UPDATE `players` SET `skulltime`=0 WHERE `id` = "..getPlayerGUID(cid)) local skullEnd = getPlayerSkullEnd(cid) doPlayerSetSkullEnd(cid, skullEnd, SKULL_NONE) setPlayerStorageValue(cid,11548,os.time()+0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você removeu sua Red Skull com sucesso.") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- if(param == "removerblackskull") then if (getCreatureSkullType(cid) == SKULL_BLACK) == FALSE then doPlayerSendTextMessage(cid,27,"Você não está Black Skull para utilizar este comando.") return TRUE end if getPlayerItemCount(cid, 9971) >= 25 then doPlayerRemoveItem(cid, 9971, 25) db.executeQuery("UPDATE `players` SET `skulltime`=0 WHERE `id` = "..getPlayerGUID(cid)) local skullEnd = getPlayerSkullEnd(cid) doPlayerSetSkullEnd(cid, skullEnd, SKULL_NONE) setPlayerStorageValue(cid,11548,os.time()+0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabéns você removeu sua Black Skull com sucesso.") return TRUE else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui a quantidade necessária para comprar.") return TRUE end end end
  15. Olá Galera Do Xtibia, Estou aqui para fazer um pedido em um script, eu coloquei o script de GEM igual do servidor FOXWOLRD no meu servidor, mais estou tendo um problema ESTAREI DEIXANDO FOTOS DO CHARACTER TENTANDO USAR A GEM ABAIXO !!!! ele diz que não sou promotion, mais o character está com promotion, os requisitos, para usar GEM são: SER LEVEL 200 + TER A PROMOTION, que no caso do FOXWORLD a promotion maxima são : SORCERER - MASTER SORECER - SUPREME SORCERER DRUID - ELDER DRUID - MAJESTIC DRUID PALADIN - ROYAL PALADIN - LORD PALADIN KNIGHT - ELITE KNIGHT - MONSTER KNIGHT criei um char, coloquei lvl 200, e promotion, mais ainda, não consigo usar a gem, alguem poderia dar uma olhada no script ? darei REP+ a quem puder ajudar !!!! teria como os characters que forem criados, cada 1 começar com 1 aura, da sua vocação, e não precisar ser promotion, nem level 200+ só criar, e já ter a aura, como eu faço isso ? os scripts que eu uso de aura são os abaixo : DATA/ACTION/ACTION.XML - <action itemid="2154" script="gems.lua" /> <action itemid="2155" script="gems.lua" /> <action itemid="2156" script="gems.lua" /> <action itemid="2158" script="gems.lua" /> DATA/ACTION/SCRIPTS/GEMS - function onUse(cid, item, fromPosition, itemEx, toPosition) gem = gems.id[getPlayerVocation(cid)] if item.itemid == gem then if (getPlayerLevel(cid) < 200) then doPlayerSendTextMessage(cid,22,"É necessário level 200 ou maior para absorver uma gema espiritual!") else if (getPlayerPromotionLevel(cid) == 1) then if getPlayerStorageValue(cid,21201) == -1 then setPlayerStorageValue(cid,21201,1) doUseGem(cid, item) doPlayerSendTextMessage(cid,22,"Você absorveu uma gema espiritual!") doSendMagicEffect(getPlayerPosition(cid),65) else doPlayerSendTextMessage(cid,22,"Você ainda possui uma gema espiritual absorvida.") end else doPlayerSendTextMessage(cid,22,"Você precisa estar promoted para usar a gema.") end end else return 0 end return 1 end DATA/LIB/PIVI - function doRemoveGemEffect(cid) local voc = getPlayerVocation(cid) if getPlayerPromotionLevel(cid) > 0 then voc = voc - (getPlayerPromotionLevel(cid) * 4) end if getPlayerStorageValue(cid, gems.storage[voc]) == -1 then else setPlayerStorageValue(cid, gems.storage[voc], 0) end end function doUseGem(cid, item) local level = getPlayerLevel(cid) local voc = getPlayerVocation(cid) local interval = gems.interval[voc] if getPlayerPromotionLevel(cid) > 0 then voc = voc - (getPlayerPromotionLevel(cid) * 4) end if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return FALSE end setPlayerStorageValue(cid, gems.storage[voc], 1) sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) doRemoveItem(item.uid, 1) return TRUE end function sendGemEffect(cid, storage, interval) if isPlayer(cid) then local pos = getThingPos(cid) local voc = getPlayerVocation(cid) local level = getPlayerLevel(cid) local color = 1 if level > 199 then if getPlayerPromotionLevel(cid) > 0 then voc = voc - (getPlayerPromotionLevel(cid) * 4) end if voc == 1 then color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)] elseif voc == 2 then color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)] elseif voc == 3 then color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)] elseif voc == 4 then color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)] end doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color) if getPlayerStorageValue(cid, gems.storage[voc]) >= 1 then addEvent(sendGemEffect, interval, cid, storage, interval) end else stopEvent(sendGemEffect(cid, storage, interval)) end end function doRemoveAllGemEffect(cid) for i = 1, table.maxn(gms.storage) do setPlayerStorageValue(cid, gems.storage, 0) end return TRUE end function isGemActivated(cid) local voc = getPlayerVocation(cid) if getPlayerPromotionLevel(cid) > 0 then voc = voc - (getPlayerPromotionLevel(cid) * 4) end if getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return TRUE end return FALSE end return TRUE end DATA/LIB/PIVI_CONST - gems = { id = {2156, 2155, 2158, 2154, 2156, 2155, 2158, 2154, 2156, 2155, 2158, 2154}, storage = {5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008, 5009, 5010, 5011, 5012}, interval = {600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600} } gemMsg = { rnd = {"´ . ,", ". ´ ,", "` . ,", ", ´ ."}, colorDruid = {180,180}, colorSorcerer = {30,215}, colorPaladin = {251,10}, colorKnight = {204,212}, colorElderDruid = {180,180}, colorMasterSorcerer = {30,215}, colorRoyalPaladin = {251,10}, colorEliteKnight = {204,212} }
  16. olá galera do Xtibia estou aqui hoje, para pedir 1 script simples eu axo, gostaria de um ring, que quando fosse equipado, ele almentace a vida, e a mana como ? assim, vamos supor, que o character tenha, 2000 de vida, 2000 de mana o ring quando colocado, vai deixa-lo com 3000 de vida, 3000 de mana o ring acrescenta 1000 a vida e 1000 a mana, !! darei rep + a quem ajudar, lembrando que isso é pro 8.60 - tfs 0.4
  17. galera gostaria de pedir um script bem simples hoje de um ring vamos supor que um character tem 2000 de vida, 2000 de mana eu gostaria de um ring que almentasse 1000 de vida e mana quando equipado, no cado o character ficaria com 3000 de vida e 3000 de mana, alguem sabe fazer esse tipo de ring ? DAREI REP+ para quem me ajudar nesse script !!
  18. olá galera do XTIBIA, estou aqui com uma duvida adicionei um sistema no meu otserver, e ele usa uma certa 'STORAGE' gostaria de saber, como eu faço para colocar essa STORAGE '11548' em todos os players já estão criados no meu server, incluindo o ACCOUNT MANAGER, OS SAMPLES, no caso tenho site, e uso gesior e no caso, de alguem criar também o 'CHARACTER' já nascer com essa STORAGE alguem poderia me ajudar, ? reputarei quem puder me dar uma força para resolver o problema grato deis de já a todos que ajudarem :biggrin: :biggrin:
  19. Olá galera estou com um projeto de um servidor 8.6 tibia (CUSTOM CLIENT) mais sem fugir muito do tibia original, com poucas coisas modificadas, ex: sprites, magias e etc. servidor será mapa BAIAK e estou procurando um WEBMASTER e dois MAPPERS servidor atualmente conta com: WEBSITE CAST SYSTEM WAR SYSTEM !! SISTEMA AUTOLOOT SISTEMA SPELLS SISTEMA ADDON BONUS LOJA DONATE (IN-GAME) AREA DONATE QUEST VIP [VIP] 1 [VIP] 2 ARENA PVP CASTLE 24 HORAS segue a baixo algumas fotos do servidor atualmente !!! meu contato pessoal caso interece a alguem : https://www.facebook.com/micheel.xavier
  20. Olá Galera do Xtibia, Estou a Procura De pessoas que Entenda da parte de website, saibam fazer edições no 'GESIOR' estou querendo colocar algumas coisas bem simples, no WEBSITE do meu servidor, estou formando uma equipe seria para o servidor, será um 8.6 custom , mais sem fugir muito do tibia tenho 75% do servidor pronto, e gostaria de encontrar uma pessoa que pudesse me ajudar, nas edições da parte de website, para mais informações, contate-me via FACEBOOK. FACEBOOK : https://www.facebook.com/micheel.xavier
  21. Olá Galera Do Xtibia, gostaria de uma ajuda, para colocar, o botão de curtir igual aqui o da pagina do Xtibia no meu site de otserver, estou com muitos problemas para colocar, se alguem puder me ajudar a colocar o botão no meu site, para a galera poder curtir a FANPAGE do servidor, direto pelo site seria muito bom, Darei REP+ para quem me der uma força. obrigado deis de já !!!!
  22. Olá queria saber se alguém pode compilar estás sources pois não estou conseguindo, esta dando erros e como eu não sei nada sobre c++ queria pedir ajuda a alguém, irei colocar o link para o download das minhas sources do tfs 0.4 com War System, Ant-Divulgação, No-Otbm-Check. Quem Conseguir fazer a compilação peço que bote nos comentários o download :3 Obg Link: http://www.mediafire.com/download/auib21zd0i3o40o/sources_7.rar Já consegui compila, não sei pq n tinha dado certo mas pode fecha ak ou sla exclui isso e eu vo disponibiliza a distro ak pra glr
  23. Voces poderiam me ajudar a colocar o tfs0.4 no meu server global 8.6? por favor
×
×
  • Criar Novo...