Jump to content

roriscrave

Conde
  • Posts

    545
  • Joined

  • Last visited

Reputation Activity

  1. Upvote
    roriscrave reacted to Administrador in [Resolvido] Qual melhor base para começar?   
    Confere ai: http://www.xtibia.com/forum/topic/233829-pacotao-otservers-76/
     
    Também recomendo este:
    http://www.xtibia.com/forum/topic/232996-76-tibia-old-full/
     
     
  2. Upvote
    roriscrave got a reaction from euller15 in Scripting Treinando ML   
    vai em data/movements/scripts e cria um arquivo chamado treinarmana.lua coloque isso dentro
    function onStepIn(cid, item, position, fromPosition) local mana = getCreatureMana(cid) if doCreatureAddMana(cid, -mana) then if doPlayerAddSpentMana(cid, mana) then doSendMagicEffect(getCreaturePosition(cid), 1) return false else doCreatureAddMana(cid, mana) end end doSendMagicEffect(getCreaturePosition(cid), 2) return true end agora no movements,xml coloque assim
    <movevent type="StepIn" actionid="9191" event="script" value="treinarmana.lua"/> agora por fim coloque actionid 9191 em todos tiles que vao treinar mana.
  3. Upvote
    roriscrave got a reaction from Imperatriz in [Resolvido] Distro para de responder   
    mude para linux, pode ajudar. é melhor que windows em caso de proteçao
  4. Upvote
    roriscrave reacted to Night Wolf in Tibia Guitar Hero [0.36~0.4]   
    Fala pessoal do XT, hoje vim trazer pra vocês um sistema que eu desenvolvi nessa última semana e inclusive fiz um tópico na seção de show off (confira o tópico aqui) numa tentativa de agitar um pouco e prover uma certa especulação em relação ao sistema. Bom, eu to aqui hoje pra informar que deu mais que certo e que meu tópico humilde (que eu realmente acreditava que seria ignorado, ainda mais numa seção morta como aquela) teve uma repercursão enorme (inclusive indo parar no portal do XT )

    Bom, toda pessoa quando faz um código espera que ele agrade aos demais e tenha um certo valor, e bem, vocês superaram minhas expectativas.. com isso nada mais justo do que compartilhar com essa comunidade que me recebeu tão bem .
    Chega de falatório e vamos direto aos negócios:

    Introdução: O sistema em si é uma cópia dos jogos de ritmo (GuitarFreaks, Band Hero, Rocksmith e o próprio Guitar Hero). Neste jogo pequenas notas irão cair pela tela até atingir um local especial, onde você poderá usar as teclas (Shift + 7, Shift + 8, Shift + 9, ou apenas 7, 9 e 9 [com Num Lock desativado]) para escolher as direções que as notas estão afim de "ativá-las". Uma vez ativada a nota ela será "queimada" e será considerado 1 acerto. Caso você não consiga ativar a nota e ela passar direto, um efeito de fumaça indicará o "Miss", o mesmo vale para se você tentar ativar uma região sem notas.

    Sistema de pontuação: Haverão 3 classificadores estatísticos para cada música tocada, sendo eles:
    Notas acertadas: O principal fator de ponto, ele que definirá seu recorde e o valor máximo q ele pode assumir será o número de notas da música.
    Movimentos errados: Quantidade de movimentos que você fez para alguma região que não possuia notas, conta como pontuação punitiva.
    Notas passadas/erradas: Quantidade de notas que você deixou escapar, note que as notas acertadas + notas passadas compõe o número total de notas da música.

    Por enquanto o sistema não possui nenhum preço para se jogar mas também não possui nenhuma recompensa, fiz com o intuito de ser apenas um mini game divertido dentro do Tibia. Porém o código é livre e está disponibilizado aqui embaixo pra qualquer um modificar como desejar.
    Video explicativo:

     
    Dificuldades: O mini game possui 3 dificuldades, porém essa quantidade é tão configurável quanto as pré definições de cada dificuldade. Além da quantidade de notas ser diferente, a velocidade com que elas descem e consequentemente o tempo que você tem pra acertá-las fica diminuido.
     
    Diferenciais: Um forte diferencial desse sistema é que ele foi feito seguindo todas as regras possíveis pra melhorar seu desempenho, desde funções recursivas leves até separação em funções encapsuladas que carregam apenas as informações necessárias. O sistema contém também algumas seguranças que serão explicadas mais abaixo juntamente com o código para prevenir bugs e garantir diversão sem dores de cabeça!
    Instalação (Map Editor): Primeiramente faça uma área parecida com essa daqui:


    Não precisa ser igualzinha, apenas seguir a mesma proporção

    Agora use a ferramenta de No-Logout para setar os quadradinhos que contém UID e UID2 escritos como No-Logout, isso vai impedir que players desloguem e fiquem presos dentro da sala (se eles derem exit, quando eles relogarem estarão do lado de fora da sala)

     
    Ainda olhando a foto acima, coloque 42320 nos pisos que estão escritos UID, e 42319 no piso que contém UID2.

    Nas alavancas, coloque uid 2819 em todas elas e coloque actionid 101 para a alavanca do fácil, 102 na alavanca do médio e 103 na do dificil;
    A regra é sempre 100 + dificuldade, como nós estamos utilizando apenas 3 será do 101 ao 103.
    Note que se você esquecer ou colocar uma dificuldade não existente o sistema adotará a dificuldade 1 como padrão para aquela alavanca.





    Se chegou até aqui, meus parabéns. Muito provável que você tenha feito tudo certo. Agora vamos à parte do código.

    Instalação (scripts): Em actions.xml insira essa linha
    <action uniqueid="2819" event="script" value="GHtest.lua"/> Agora em data/actions/scripts crie um arquivo com extensão.lua e chameo de GHtest. Insira o seguinte bloco de instruções dentro dele:



    Aproveite e já configure as posições npos, startPos e finalPos de acordo com as posições do seu map editor (olhe na segunda imagem para ver onde deve ser cada uma das posições com base na sala)

    Feito isso crie um arquivo em data/lib com nome qualquer, aqui em casa eu utilizei o nome 120 - Guitar Hero Lib e a extensão.lua.
    Coloque isto dentro desse arquivo e salve:



    Agora adicione a seguinte tag em data/movements/movements.xml:
    <movevent type="StepIn" uniqueid="42320;42319" event="script" value="GHTestmov.lua"/> Por fim crie um arquivo chamado GHTestmov.lua em data/movements/scripts e preencha seu conteúdo com as linhas abaixo:



    Aproveite para deixar a npos idêntica à npos que você configurou lá no actions se baseando na posição da sua sala no map editor.


    ------------------------ FIM ------------------
    O sistema já deve funcionar como foi planejado, se você não manja de código ou quer o sistema exatamente como foi mostrado no vídeo você pode ignorar a parte abaixo.

    Configurando seu sistema (básico):
    Para as pessoas que querem configurar apenas as coisas básicas, você pode fazê-lo nas primeiras linhas de cada script (actions/movements) ou alterando diretamente na lib, irei ensinar passo a passo aqui oque significa cada coisa.
    Alterando a lib As coisas básicas que podem ser alteradas na lib são as seguintes:
    dif = { -- [dificuldade] = notas que serao tocadas (nil = vazio, 0 = primeira posicao, 1 = segunda e 2 = terceira) [1] = {nil,nil,0,1,2,nil,nil,2,1,1,0,0,2,0,1}, [2] = {nil,nil,0,1,1,2,1,1,0,0,2,0,1,nil,1,2,1,1,0,0,2,0,1}, [3] = {nil,nil,0,nil,1,nil,1,1,0,0,2,0,1,1,1,nil,0,2,1,1,0,0,2,1,1,0,nil,2,2,1,1,1,1,2} } delay = { -- delay entre cada nota de acordo com a dificuldade [dificuldade] = delay [1] = 500, [2] = 400, [3] = 300 } recorde = { -- salva os recordes de cada dificuldade separadamente [1] = 12724, [2] = 12725, [3] = 12726 } dif separa como será cada música de cada dificuldade, as notas sempre serão nesse exato formato. nil significa que não estarei usando posição nenhuma naquela linha, 0 significa a primeira posição (nota verde), 1 significa segunda opção (nota vermelha) e 2 significa terceira opção (nota azul). Eu aconselho a começar todas as músicas com 2 ou mais 'nil' para dar tempo de o player entender que vai começar. A distribuição que eu usei foi meio que aleatória então sinta-se a vontade pra mudar tanto o tamanho das musicas quanto a variedade de notas.
    delay é a tabela que oganiza os delays de cada dificuldade, isso significa que para a dificuldade 1(fácil) nós temos 500 milisegundos para cada mudança de nota (1000 milisegundos = 1 segundo), ou seja, a cada 2 passadas de nota temos 1 segundo dentro da sala. No modo hard a cada 300 milisegundos mudamos a nota, deixando o jogo muito mais rápido e dificil.

    recorde é a tabela que possui os storages que irão salvar os recordes nas respectivas dificuldades.
    Alterando actions
    local storage_point = 12721 -- storage que salva os pontos local storage_erradas = 12722 -- storage que salva as notas erradas local storage_passadas = 12723 -- storage que salva as notas que passaram Apenas mude os storages

    Alterando movements
    local itemid = 1680 --- coloque o id da nota do meio local npos = {x = 141, y = 51, z = 7} -- posicao que ira nascer a primeira nota local storage_point = 12721 -- storage que salva os pontos local storage_erradas = 12722 -- storage que salva as notas erradas local storage_passadas = 12723 -- storage que salva as notas que passaram aconselho mexer somente nos storages, mantendo igual à action.
     
     
     
     
    Só abra o spoiler abaixo se você estiver descontente com a forma que seu código roda e tiver certeza absoluta de que você tem o conhecimento necessário para alterar as coisas que vou explicar.



    Espero que vocês tenham curtido, façam um bom uso e qualquer dúvida postem nos comentários abaixo.

    Agradecimento ao @dalvorsn pela função que limpa a sala antes de começar o jogo e ao pessoal do servidor Refugia que fez um script de guitar hero lá e me deu a idéia. Abraços do Lobo.
     
  5. Upvote
    roriscrave reacted to Deadpool in [Encerrado]Pokémon Open Source *ShowOff* *Atualizado*   
    Bom tarde galera, venho por meio deste tópico, anuncar que, estou terminando de desenvolver um ATS derivado de Tibia.. Um pokémon server.. Bom, vou postar ShowOff, apenas dos sistemas no qual tem no servidor.. Irei resolvendo os Bugs, e então, quando achar que está bom, liberarei o Download do servidor, junto com as devidas sources.
    Eu tambem, colocarei uma lista do que foi feito no servidor.. Desde bugs, até novos sistemas. enfim..
    Bom, como todos sabem, esse servidor contem os sistemas básicos.. Mas ainda não parei para mexer nos sistemas mais simples..
     
    Changelog:
    Adicionado nas sources:
    - DoCreatureSetNick
    - AutoStacking
    - Modificado a função AddItem (estava bugando por causa do autostacking..)
    - Adicionado todas as races pokémons.
    - Modificado a cor da fala dos groups nos channels.
    - Adicionado Passive e Agressive, igual o PokeXGames.
    - Adicionado OnSpawn
    - Adicionado Pokémon Ghost System
    - Adicionado GetCreaturePathTo
    - Adicionado CastSpell
     
    Adicionado no servidor:
    - Novo NPC de mudança de Nick do pokémon;
    - Peguei função do PDA para alterar nomes dos pokémons shinys, e deixado normal. Ex: Antes: Shiny Tangela. Agora: Tangela.
    - Adptado/Adicionado sistema de vantagem e desvantagem do PDA.
    - Copiei as passives do PDA e adpatei para o servidor.
    - Copiei sistema de vantagem e desvantagem do PDA e adpatei para o servidor.
    - Adptado/Adicionado o Clan System do PDA. - Sistema de Icon (acabei de adicionar só adicionei 1 icon pra testar mesmo) ^^ - Retirados o S no final dos pokémons selvagens. - Ao morrer, aparece descrição no corpse, indicando o monstro que matou e o nome de quem morreu. - Sistemas basicos (surf, ride, blink etc.) por order Mudanças nas configurações do servidor:
    -Adicionar/fazer moves, basta fazer igual o PDA. Porem, se você baixar um servidor PDA e pegar a script de "pokémon moves" da LIB, e jogar nesse servidor, não irá funcionar ^^
    -Adicionar pokémons, tambem é só adicionar como se fosse um PDA.
    -Adicionarfazer novas evoluções igual o PDA.
    -Adicionar/fazer novas passives igual o PDA.
     
    Otclient:
    Peguei OTClient na versão 0.6.5;
    - Fiz a barrinha de moves funcionar..
    - Não vou adicionar pokebar
    - Transparency funcionando
    Obs: O Old cliente ainda está usavel, pois não extendi o cliente, nem pretendo extender..
     
    Faltando/Em andamento:
    Arrumar alguns moves
    Refazer nurse joy
    Configurar todos os pokémons e balancear
    Configurar o Clan Sistema
    Configurar Spells
    Confgurar sistema de ovos
    Retirar uns duplicad Itens
    Arrumar os sistemas basicos(hoje ainda deixo 100%)
     
    OBSERVAÇÕES:
    Eu não irei postar ainda, pois o mesmo está em andamento, tem muitos bugs na qual estou resolvendo.
    ***Se alguem quiser me ajudar, basta deixar seu contato.
    ** Não me precionem plis.
    * Sou lindo
    - Irei atualizar todos os dias, e colocar prints e atualizações e modificar o nome do topico com a data de atualização.
    - NÃO irei mexer no mapa, se alguma alma quiser ajudar, pois bem, deixe seu contato e.e
    - NÃO tem level sistema.
    e NÃO é PDA.
     
    CREDITOS:
    Zipter
    OrochiElf
    Arkz
    Elwyn
    GabrielTxu
    Sobre os creditos, *Eu peguei um ou mais sistemas, alguns destes me tiraram duvidas e sou grato*.
     
    PRINTS:

     
    Estou desenvolvendo esse servidor exclusivamente para o XTIBIA, e tambem porque quero ver a galera sair da mermisse do PDA..Durante muito tempo, vi gente criando topicos, pra geral juntar e fazer os sistemas do PDA, ou fazer um servidor que chegue no rastro do PDA.. Então, se alguem quiser me ajudar.. Basta me comunicar..
    OBS: Sempre verifiquem as atualizações abaixo, que é onde eu irei editar sempre e postar atualizações, abram os spoilers.
     
    ATUALIZAÇÕES:
    11/10/2015 00:16
    Parei para mexer no Design do Client.
    novo entergame:



    Atualização *11/10/2015*

     
     
    Atualização *12/10/2015*


    *Vou upar os Prints das atualizações e colocar no tópico*
  6. Upvote
    roriscrave reacted to caotic in Sound System [Injection]   
    Eae galera xtibiana hoje irei disponbilizar um novo sistema de audio.
    Ou melhor 2 sistemas de audios rs acho que alguns viram o sistema de som AFL que disponiblizei para o xtibia.
    Mais ele erá muito limitado e alem de alguns bugs.
     
    Então eu comecei um projeto pokemon(que ainda está em pé) e a primeira coisa que veio na cabeça e um sistema de som completo que não travesse e que funcione no client da cipsoft.
    Então vamos la:
    Vamos escolher qual sistema de som vamos usar primeiramente vou explicar cada ponto:
     
     
    Dll Audio - A dll e compacta e super eficiente mais tem uma instalação um pouco mais dificil e requer conhecimento
    *Junto vem um dll com o ip(127.0.0.1) mais não se preocupe coloquei o projeto do Visual C++ para você mudar o ip e recompilar.
     
    Ela está disponivel aki:
    Audio Dll+Project VC++.rar
     
     
     
    Prontinho agora vamos a instalação:
     
    Primeiro execute o server de audio junto ao seu otserv:
    Server Audio Dll or Vb Form.rar
     
    Instale a blibioteca lua socket no seu otserv:
    http://w3.impa.br/~diego/software/luasocket/
     
     
     
    Agora coloque está funcão na sua lib:
    function sendAudio(cid, audio)require('socket') local ip = "127.0.0.1" -- Seu ip Akilocal client = socket.connect(ip, 1234)local t = "Send,"..doConvertIntegerToIp(getPlayerIp(cid))..","..audio..""    client:send(t.."\n")    client:settimeout(0.1)client:close()end Pronto quando quiser executar um som basta usar a função sendAudio(cid, "id audio")
     
    Se tiver usando a dll todos o sons devem ser guardados junto a ela.
     
    Todos os formatos de audio devem ser ".wav" e todos precisam ser enumerados de 000 a 999 se não seguir tal regra terá varios problemas.
     
    Agora vou passar um codigo em vb que fiz para você injentar a dll antes que o seu client inicie:
    E NECESSARIO EXECUTAR DENTRO DE UM THEARED QUANDO FOR FAZER O SEU LAUNCHER.
     
     
     
    Audio Dll+Project VC++.rar
    Server Audio Dll or Vb Form.rar
  7. Upvote
    roriscrave reacted to Luga03 in Faço Scripts Para Todos   
    ei man eu consegui fazer isto ae 90% doque vc pediu, os outros 10% era a parte de apenas um player entrar na quest, fora isto o resto tudo eu consegui kk vou deixar o code aq pra se alguem quiser terminar:


    local config = { storage = 242134, message1 = "Você já entrou nesta quest!", message2 = "Já tem um player nesta quest, espere ele sair!", notlevel = "Você não tem level Suficiente Para entrar na quest!", level = 10 } local pos = {x = 0, y = 0, z = 0} function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, config.storage) <= 0 then if getPlayerLevel >= level then doTeleportThing(cid, pos) setPlayerStorageValue(cid, config.storage) else doPlayerSendTextMessage(cid, 22, config.notlevel) end else doPlayerSendTextMessage(cid, 22, config.message1) end return true end
    qual quer coisa eu tento terminar a noite, pq agora vou ter que sair
  8. Upvote
    roriscrave reacted to zipter98 in Rank storage de guilds é possivel?   
    Instale o AGS criado pelo Omega e use as seguintes funções para manipulação de guild storages:
     
    setGuildStorageValue(guild_id, key, value) getGuildStorageValue(guild_id, key)
  9. Upvote
    roriscrave reacted to SkyLigh in Rank storage de guilds é possivel?   
    local s = 13695 -- storage if (getPlayerStorageValue(s) ~= getPlayerGuildName(cid)) then doPlayerSendTextMessage(cid, 20, "[GUILD-EVENT] Você e sua guild ganharam o evento!") setPlayerStorageValue(cid, s, getPlayerGuildName(cid)) end vê se é isso
  10. Upvote
    roriscrave reacted to christopher17288 in Stamina chegar a 0, receber uma mensagem   
    Bom dia Roriscrave.. Blz?

    Bom, sou novo na área, então.. Não sei se vou conseguir lhe ajudar, mas..

    vamos lá:

    Arquivo.Lua




    Actions.XML




    Essa action, tem a seguinte função: se você der use nela, ela lhe envia uma mensagem dizendo sua stamina, (não acho mt utíl, mas se quiser.. tá aew.)
    Só mude o id do item.. para qual quiser.
    Ps: a mensagem vai chegar em hrs . minutos.
    Mas se você quiser que eu deixe só em minutos, só falar.. E se você souber, só fazer deixa-lo em minutos.. rs'
    (Acho melhor só em minutos, mas vamos seguir o padrão)

    Também, tem a opção de colocar no "creaturescript" uma checagem para isso.
    Vá em data/creaturescript/scripts/advancesave.lua
    E adiciona esse script:




    Oque vai acontecer? Sempre que o player avançar um skill//level e se a stamina dele for igual a 0, ele vai receber um BroadCast (Mensagem em red na sua tela) informando da sua stamina 0.. Pedindo pra renovar e tal.

    Caso ainda não esteja satisfeito com o processo (de receber a mensagem somente após um avanço no level//skill) você também tem a opção de por esse script em data/creaturescript/scripts/Idle.lua ..
    Ponha em baixo do último end antes do return true..
    Oque vai acontecer?
    Se o player pegar stamina 0 em qualquer lugar, seja upando, ou matando bixos em eventos, ou em qualquer lugar mesmo, o BroadCast vai aparecer para ele.. rs'

    Então, é isso !

    Espero ter lhe ajudado, vlw !


    Resolvido ?
  11. Upvote
    roriscrave reacted to RigBy in Dúvidas com global storage   
    faz um globalevent com onStartup() que resolve
  12. Upvote
    roriscrave reacted to zipter98 in [Resolvido] Gostaria de um Script   
    Ah, me lembrei de uma coisa. O número da outfit em configuration.lua deve ser o valor do Dat Editor subtraído por 351.
    PS: Certifique-se que está pegando o valor correto. Se não funcionar, você fez algo errado (ou pegou o valor errado).
  13. Upvote
    roriscrave reacted to Benny in Queria fazer algumas letras igual as do gesior   
    http://imgur.com/a/MTGrE
     
     
    Abraços,
    Benny
     
  14. Upvote
    roriscrave reacted to Sakegari in .SPR e .DAT PXG 22/03/2015 - DESCOMPILADO   
    Categoria: Download de SPRITES
    Créditos: PokeXGames - PXG

    Conteúdo:
    Cliente da PXG referente a data 22/03/2015 descompilado.

    OBSERVAÇÕES:
    O cliente deve ser aberto utilizando o OBJECT BUILDER, onde as opções EXTENDED e TRANSPARENCY devem estar marcadas.

    FOTOS:





    -

    DOWNLOAD:
    MediaFire

    SCAN:
    Virustotal


  15. Upvote
    roriscrave reacted to RigBy in Limite de player por sala   
    Limite de player por sala
     
    Introdução:
    Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos.
    O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada.
     
    Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe.
     
    Caso a sala esteja lotada.

    Caso não.

     
    Em data/movement/script, crie 
    LimiteArea.lua e adicione.
     
      Em movement/movement.xml Adicione essa tag    
    E depois adicionar o actionid no piso ou teleport pelo mapa editor. O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda. Caso você adicione mais locais você terá que adicione na tag também.        
  16. Upvote
    roriscrave reacted to zipter98 in Monstro não acertar hit em outro monstro (selvagem)   
    function onStatsChange(cid, attacker, type, combat, value)
    if isMonster(attacker) and isMonster(cid) then
    return false
    end
    return true
    end

    Entretanto, você terá que registrar o evento no arquivo .XML de todos os monstros.
    Ou, caso não queira realizar a cansativa tarefa acima, você pode tentar:
    Nas sources do servidor, monster.cpp:
    Abaixo de:
    if(isSummon()) isMasterInRange = canSee(getMaster()->getPosition());

    coloque:
    std::string event = "NOME_DO_EVENT0"; //Nome do evento configurado em creaturescripts.xml. creature->registerCreatureEvent(event);
  17. Upvote
    roriscrave reacted to zipter98 in Qual script sobrecarrega MENOS o server?   
    O primeiro, que eu também particularmente escolheria por ter um processo menos cansativo de configuração.
  18. Upvote
    roriscrave reacted to RigBy in Porta Só passa um player por vez   
    Eu fiz isso porque caso o player deslogue la dentro e o tempo acaba-se o script ia buga e ele poderia fica la pra sempre.
    desculpa, muda o valor de 1 para -1 no setPlayerSto....
    Da uma olhada nessa parte:
    addEvent(function() if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, 21321321) == 1 then doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, -1) end end, tempo * 60 * 1000)
  19. Upvote
    roriscrave got a reaction from RigBy in Porta Só passa um player por vez   
    mano, ele ja postou seu script completo, é so ver acima.
    o erro que deu é pq tu não prestou atenção direito
    29/07/2015 16:51:20] cannot open data/actions/scripts/doorsquest.lua: No such file or directory nao foi encontrado o arquivo chamado doorsquest.lua na sua pasta data/actions/scripts. voce colocou o nome dele errado!
  20. Upvote
    roriscrave reacted to RigBy in Porta Só passa um player por vez   
    substitui o movement por esse:
    -- Do not remove the credits -- -- [MOVEEVENT] Limite de player por sala -- -- Developed by Rigby -- -- Especially for the Xtibia.com -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local pos = {x = 1073, y = 1031, z = 7} -- quando o tempo acaba para onde ele ira ser teleportado local tempo = 10 -- tempo que pode fica em minutos local config = { [5555] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1, teleport = {x = 1037, y = 1025, z = 7}}, } if config[item.actionid] then if #config[item.actionid].area < config[item.actionid].amountOfPlayers then doTeleportThing(cid, config[item.actionid].teleport, false) doPlayerSendTextMessage(cid, 25, "Welcome") setPlayerStorageValue(cid, 21321321, 1) addEvent(function() if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, 21321321) == 1 then doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, -1) end end, tempo * 60 * 1000) else doPlayerSendTextMessage(cid, 25, "The room already reached its limit "..config[item.actionid].amountOfPlayers.." player 's wait someone out .") doTeleportThing(cid, fromPosition) end end return true end function getPlayersInArea(fromPos, toPos) -- Function made ​​by Vodkart local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end e para que ele quando desloga volta pro templo adicione isso. em creaturescript, dentro do Login.lua antes do ultimo return true. .lua if getPlayerStorageValue(cid, 21321321) == 1 then local pos = {x = 1073, y = 1031, z = 7} -- posição para onde ele vai doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, 1) end
  21. Upvote
    roriscrave reacted to DeCarvalho in [8.54] Servidor + Client Naruto B&W [EXCLUSIVO]   
    E pelas imagens deu para perceber que 'a' 'muintos' erros de português.. quem pegar, se for querer fazer algo 'serto' vai ter que corrigir isso..
     
    Mas o que vale é a intenção
     
  22. Upvote
    roriscrave reacted to Mudrock in [8.6 ~ 9.x ] Gesior WebGesiorMudrocK 100%   
    Opa pessoal do XTIBIA tudo bem, tava editando um Gesior para o meu servidor a um tempo mais o projeto acabo dando errado por problemas técnicos, e eu fiquei com meu gesior pronto porem sem utilidade
    então resolvi trazer para vocês

    OBSERVAÇÃO : esse gesior erá de um projeto meu, finalizei ele hoje quando peguei uma base que um amigo meu me passo para ajuda-lo, e acabei implementando alguns sistemas e funções, ESSE GESIOR FOI FEITO APARTIR DOS MEUS GOSTOS, ESTOU SOMENTE DISPONIBILIZANDO-O PARA VOCÊS, PORTANTO FIQUEM A VONTADE PARA EDITAR NOMES, IMAGENS, CORES.


    Bugs arrumados








    Compatibilidade

    TFS 0.3 TFS 0.3.8 TFS 0.4

    Download em anexo
    DATABASE : http://www.mediafire.com/download/w3n1nnw0gtmc2k0/mudrock.sql
    GESIOR : http://www.mediafire.com/download/frfgq96jawas214/mudrockwebgesior.rar



    Créditos
    MudrocK
    Archez
    Aleh
    Hollister
    Matheus ( for top level )
  23. Upvote
    roriscrave reacted to Mega Bomb in [Show Off] Mega Bomb s2   
  24. Upvote
    roriscrave reacted to Bruno in Source Linux vs Windows   
    Tem vários tutoriais ensinando a como fazer man...quando você abre o arquivo no dev, ele já tem algumas libs, as que não tem, precisa baixar, tudo você acha naquela parte de downloads, nas funcionalidades do próprio dev.
  25. Upvote
    roriscrave got a reaction from MonsterB0SS in NPC que troca vocation   
    tente
    Aqui, vá em npcs/script e crie um arquivo chamado vocacao.lua e coloque isso dentro
    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 elseif msgcontains(msg, "sorcerer") or msgcontains(msg, "SORCERER") and talk_state == 1 then doPlayerSetVocation(cid, 1) selfSay("Parabéns, você virou um Sorcerer", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Sorcerer") elseif msgcontains(msg, "druid") or msgcontains(msg, "DRUID") and talk_state == 1 then doPlayerSetVocation(cid, 2) selfSay("Parabéns, você virou um Druid", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Druid") elseif msgcontains(msg, "paladin") or msgcontains(msg, "PALADIN") and talk_state == 1 then doPlayerSetVocation(cid, 3) selfSay("Parabéns, você virou um Paladin", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Paladin") elseif msgcontains(msg, "KNIGHT") or msgcontains(msg, "KNIGHT") and talk_state == 1 then doPlayerSetVocation(cid, 4) selfSay("Parabéns, você virou um Knight", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Knight") elseif(msgcontains(msg, "bye") or msgcontains(msg, "goodbye") or msgcontains(msg, "cya")) then selfSay("cya!", cid, TRUE) closeShopWindow(cid) removeFocus(cid) end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) e depois volte uma pasta, onde fica os xmls dos npc e crie um novo arquivo chamado vocacao.xml e coloque isso dentro
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Vocation Changer" script="data/npc/scripts/vocacao.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="131" head="95" body="95" legs="95" feet="95" corpse="6080"/> </npc>
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...