Ir para conteúdo

CainOTServer

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    CainOTServer deu reputação a Ackerzin em Mana&Life 100/100 sem bug.   
    Mana e Life 100/100


     
    Salve galerinha, estive procurando em vários tópicos, algum codigo de life e mana 100/100, e nenhum deles funcionava perfeito para oque eu precisava, todos eles paravam de funcionar quando o player atingia o level 715835 ou mana/life "21474847" o numero 100 da vida virava 65750 ou da mana, de qual você atingisse primeiro "21474847" e pra quem quer por high XP isso é um problema, mas depois de muito, MUITO,MUITO,muito esforço de um amigo, @Rusherzin, ele conseguiu burla isso, e agora você pode pegar quantos de level/mana/life quiser que não vai sair de 100/100, então é isso vamos ao que interessa.
    TFS 0.4 foi testado !
    Nas SOURCES arquivo protocolgame.cpp procure por:
    void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) e substitua por isso:
     
     
    Imagem mostrando certinho a life/mana 
    Créditos:
    99% @Rusherzin  Por fazer tudo !
    1% @Zzyzx Por ficar incomodando até ele fazer !
     
     
  2. Gostei
    assim man, para muitos players esse sistema nao é legal, joguei wodbo antigo e tinha esse sistema de reverte 0 mana, e era um saco pq tinha q ficar transformando toda hora. 
  3. Gostei
    CainOTServer deu reputação a WooX em Zombie Event [DIFERENCIADO]   
    Zombie Event

    Zombie Event é um evento já muito conhecido em que os participantes são jogados em uma arena e zombies são invocados até que reste apenas um jogador, quando um jogador é tocado por um zombie ele é teleportado para o templo, o ultimo jogador a ficar na arena é definido como vencedor e o evento é finalizado ai. Já faz um bom tempo que tive a ideia de mudar o funcionamento deste tradicional evento e finalmente decidi por a mão na massa, irei explicar melhor o que foi alterado abaixo.
     
     
    Sobre o sistema

    O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4
     
    Pra quem quiser esse evento funcional para TFS 1.x, o @Movie se comprometeu a fazer a adaptação, então podem mandar mensagem privada pra ele cobrando que ele gosta.
     
    Quem é familiar com filmes e séries de zombies sabe que quando um zombie morde alguém a pessoa que foi mordida não simplesmente morre, mas ela se torna um zombie, é isso que torna a ideia de um apocalipse zombie tão aterrorizante. Pensando nisso eu tive a ideia de alterar o sistema pra que quando algum player fosse pego por um zombie ele também se transformasse em um e não fosse simplesmente teleportado para o templo. Essa alteração deixa a interação entre os jogadores no evento mais dinâmica pois eventualmente se torna um jogo de Player vs Player ao invés de Player vs Maquina, embora no fim continue sendo uma batalha entre vivos e mortos.
     
    Irei listar abaixo mais algumas características do evento.
     
    É possivel configurar para que seja permitido ou não o uso de MCs. Todos os jogadores ao entrar na arena ficam com a mesma velocidade. Para tornar mais competitivo e divertido, não é permitido utilizar a função Follow dentro do evento. O jogador que foi transformado em zombie que mais contaminar outros jogadores também recebe uma recompensa. Os jogadores que forem transformados em zombies podem subir de rank conforme forem contaminando outros jogadores, alterando assim sua aparência e velocidade na arena.  
    Vídeozinho
     
    Instalação

    Este sistema utiliza de funções contidas na lib do link abaixo, então antes de mais nada é necessário adicionar esta lib no servidor.
     
    Todos os arquivos necessários para instalação do evento estão anexados no tópico, irei apenas mostrar como deve ser configurado.
     
    Toda configuração do sistema se encontra na lib do mesmo, segue abaixo explicação de como configurar.
     
    startTime: configuração de horários para inicio do evento a depender do dia da semana (para cada horário diferente definido aqui um registro extra é necessário no globalevents.xml) announcement: mensagem a ser exibida quando o teleporte para o evento for aberto. startEvent: mensagem a ser exibida quando o teleporte para o evento for fechado e o evento iniciado. playerBitten: mensagem a ser exibida quando um jogador for mordido por um zombie. endEvent: mensagem a ser exibida quando o evento for finalizado. notEnoughPlayers: mensagem a ser exibida quando não houver players suficiente para o evento. zombiesRant: falas que serão randomicamente selecionadas para um jogador que foi transformado em zombie falar.  
    minOnlinePlayers: define a quantidade minima de jogadores online para o teleporte do evento ser aberto. minPlayers: define a quantidade minima de jogadores na arena para o evento ser iniciado. closeTeleportTime: tempo para fechar o teleporte após o anuncio (o valor deve ser definido em minutos). countDownTime: tempo para iniciar o evento após o fechamento do teleporte (o valor deve ser definido em segundos).  
    zombieRatio: define a quantidade inicial de zombies baseado na quantidade de jogadores participando do evento. playerSpeed: define a velocidade que o jogador terá durante o evento (valido apenas para jogadores que não foram transformados em zombies). delayToTransform: define o intervalo para um jogador que foi mordido se transformar em um zombie (o valor deve ser definido em segundos). allowMultiClient: pode ser definido como true ou false, se definido como falso não irá permitir a entrada de jogadores com o mesmo IP no evento.  
    rewards: define as recompensas a serem entregues tanto para o ultimo sobrevivente na arena como para o zombie que mais contaminar outros jogadores. zombiesRank: define os ranks dos zombies, a quantidade de pontos necessária para avançar de rank, aparência e velocidade (valido apenas para jogadores que foram transformados em zombies). area: define a área onde ocorrerá o evento, deve ser preenchido as coordenadas do ponto superior-esquerdo, ponto inferior-direito e o andar do local. teleportAid: define a actionID a ser adicionado no teleporte de entrada do evento (este valor deve ser o mesmo a ser registrado na tag XML do script de movements). teleportPos: define as coordenadas onde deve ser criado o teleporte de entrada para o evento.  
    Créditos

    @LeandroRissa por testar todo o sistema.
    event zombie.xml lib_zombie.lua zombieEvent.lua zombieEvent_creature.lua zombieEvent_movement.lua
  4. Gostei
    CainOTServer deu reputação a Ackerzin em Minimap generator   
    Olá, achei esse codigo em outro forum, ele foi desenvolvido para abrir o mapa do old cliente, mas ele foi feito para 1.2+, gostaria de saber se alguem poderia passar ele para 0.4.

    crédito Gesior.pl
  5. Gostei
    CainOTServer deu reputação a Cain Suicide em Site do NTOROX   
    Salve tk, Não tem muito oque falar vou estar disponibilizando o meu site que fiz em algumas horas.
    Modern acc
     

    Possui painel administrativo ( modern acc ) *adicionar noticias,itens etcs.
     
     
    Baixar:  https://www.mediafire.com/file/v6zoue1lw6hlj0u/htdocs.rar/file
    Scan: https://www.virustotal.com/gui/file/28d82646f303fcd155f8fe289af5b6198fa89b1928856c07f698f3ca6d9a6c31/detection
    Bom se quiser ver como é pode acessar o http://ntorox.ddns.net:8090         
     
     
  6. Gostei
    CainOTServer deu reputação a EddyHavoc em [MODERN AAC] Missing tables etc... [Tutorial]   
    Já teve esses erros? 
    Quer se livrar deles? 
    Já postou esses erros e ninguem te ajuda ?? Exemplos:
     
     
     
     
     
     
     
    Trago aqui uma listinha básica com a Solução !!
    Você só tem que procurar o seu erro ou o que está faltando usando CRTL + F aqui no tópico...
    ALTER TABLE `accounts` ADD `page_access` int(11); ALTER TABLE `accounts` ADD `page_lastday` int(11); ALTER TABLE `accounts` ADD `email_new` varchar(255); ALTER TABLE `accounts` ADD `email_new_time` int(15); ALTER TABLE `accounts` ADD `rlname` varchar(255); ALTER TABLE `accounts` ADD `location` varchar(255); ALTER TABLE `accounts` ADD `created` int(16); ALTER TABLE `accounts` ADD `email_code` varchar(255); ALTER TABLE `accounts` ADD `next_email` int(11); ALTER TABLE `accounts` ADD `premium_points` int(11); ALTER TABLE `accounts` ADD `nickname` char(48); ALTER TABLE `accounts` ADD avatar char(48); ALTER TABLE `accounts` ADD about_me text; ALTER TABLE `accounts` ADD `nickname` varchar(255) not null default ''; ALTER TABLE `accounts` CHANGE `key` `key` VARCHAR( 128 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT ''; ALTER TABLE `players` ADD `old_name` varchar(255); ALTER TABLE `players` ADD `hide_char` int(11); ALTER TABLE `players` ADD `worldtransfer` int(11); ALTER TABLE `players` ADD `created` int(16); ALTER TABLE `players` ADD `nick_verify` int(11); ALTER TABLE `players` ADD `comment` text; UPDATE `players` SET `hide_char` = 0; UPDATE `accounts` SET `key` = ''; INSERT INTO `players` (`name`, `world_id`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `rank_id`, `guildnick`, `lastlogout`, `blessings`, `balance`, `stamina`, `direction`, `loss_experience`, `loss_mana`, `loss_skills`, `loss_containers`, `loss_items`, `premend`, `online`, `marriage`, `promotion`, `deleted`, `description`, `created`, `nick_verify`, `old_name`, `hide_char`, `worldtransfer`, `comment`) VALUES ('Rook Sample', 0, 1, 1, 1, 0, 150, 150, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 50, 50, 7, '', 400, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0, 'This player has no comment at this moment.'), ('Sorcerer Sample', 0, 1, 1, 8, 1, 185, 185, 4200, 0, 0, 0, 0, 110, 0, 0, 35, 35, 0, 0, 1, 50, 50, 7, '', 440, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0, 'This player has no comment at this moment.'), ('Druid Sample', 0, 1, 1, 8, 2, 185, 185, 4200, 0, 0, 0, 0, 110, 0, 0, 35, 35, 0, 0, 1, 50, 50, 7, '', 440, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0, 'This player has no comment at this moment.'), ('Paladin Sample', 0, 1, 1, 8, 3, 185, 185, 4200, 0, 0, 0, 0, 110, 0, 0, 35, 35, 0, 0, 1, 50, 50, 7, '', 440, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0, 'This player has no comment at this moment.'), ('Knight Sample', 0, 1, 1, 8, 4, 185, 185, 4200, 0, 0, 0, 0, 110, 0, 0, 35, 35, 0, 0, 1, 50, 50, 7, '', 440, 0, 0, 0, 0, 0, 0, 0, '', 0, 0, 0, 201660000, 0, 100, 100, 100, 100, 100, 0, 0, 0, 0, 0, '', 0, 0, '', 0, 0, 'This player has no comment at this moment.'); CREATE TABLE IF NOT EXISTS `bugtracker` ( `id` int(11) NOT NULL AUTO_INCREMENT, `category` int(3) NOT NULL, `time` int(11), `author` int(11) NOT NULL, `text` text, `title` varchar(120), `done` tinyint(3), `priority` tinyint(3), `closed` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), FOREIGN KEY (`author`) REFERENCES `players` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `friends` ( `id` int(11) NOT NULL AUTO_INCREMENT, `with` int(11), `friend` int(11), `time` int(11), `active` tinyint(1), PRIMARY KEY (`id`), FOREIGN KEY (`with`) REFERENCES `accounts` (`id`) ON DELETE CASCADE, FOREIGN KEY (`friend`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `messages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `from` int(11), `to` int(11), `title` varchar(120), `text` tinytext, `time` int(11), `delete_from` tinyint(1), `delete_to` tinyint(1), `unread` tinyint(1), PRIMARY KEY (`id`), FOREIGN KEY (`from`) REFERENCES `accounts` (`id`) ON DELETE CASCADE, FOREIGN KEY (`to`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `news` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(150) DEFAULT '', `body` text, `time` int(11) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `comments` ( `id` int(11) NOT NULL AUTO_INCREMENT, `news_id` int(11), `body` text, `time` int(11) DEFAULT '0', `author` int(11) DEFAULT '0', PRIMARY KEY (`id`), FOREIGN KEY (`news_id`) REFERENCES `news` (`id`) ON DELETE CASCADE, FOREIGN KEY (`author`) REFERENCES `players` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `forums` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(120), `description` tinytext, `access` smallint(5) DEFAULT '1' COMMENT 'Min. access to see the board', `closed` tinyint(1), `moderators` tinytext, `order` int(6), `requireLogin` tinyint(1), PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ALTER TABLE `forums` ADD `guild` int(11); CREATE TABLE IF NOT EXISTS `threads` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(120), `sticked` tinyint(1), `closed` tinyint(1), `author` varchar(64), `time` int(11), `board_id` int(11), PRIMARY KEY (`id`), FOREIGN KEY (`board_id`) REFERENCES `forums` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(120) , `text` text, `time` int(11), `author` varchar(64), `board_id` int(11), `thread_id` int(11), PRIMARY KEY (`id`), FOREIGN KEY (`board_id`) REFERENCES `forums` (`id`) ON DELETE CASCADE, FOREIGN KEY (`thread_id`) REFERENCES `threads` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `videos` ( `id` int(11) NOT NULL AUTO_INCREMENT, `author` int(11) , `title` varchar(120), `description` tinytext, `youtube` varchar(45), `views` int(11), `time` int(11), PRIMARY KEY (`id`), FOREIGN KEY (`author`) REFERENCES `players` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `video_comments` ( `id` int(10) NOT NULL AUTO_INCREMENT, `author` int(11), `video` int(11), `time` int(11), `text` tinytext, PRIMARY KEY (`id`), FOREIGN KEY (`video`) REFERENCES `videos` (`id`) ON DELETE CASCADE, FOREIGN KEY (`author`) REFERENCES `players` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `poll` ( `id` int(11) NOT NULL AUTO_INCREMENT, `question` varchar(150) , `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `date_start` datetime , `date_end` datetime , `status` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `question` (`question`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `poll_answer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `poll_id` int(11) NOT NULL, `answer` varchar(150) , PRIMARY KEY (`id`), FOREIGN KEY (`poll_id`) REFERENCES `poll` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `poll_votes` ( `id` int(11) NOT NULL AUTO_INCREMENT, `answer_id` int(11) , `poll_id` int(11) , `account_id` int(11) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`answer_id`) REFERENCES `poll_answer` (`id`) ON DELETE CASCADE, FOREIGN KEY (`poll_id`) REFERENCES `poll` (`id`) ON DELETE CASCADE, FOREIGN KEY (`account_id`) REFERENCES `accounts` (`id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Novo Erros:
     
     
    Solução
    CREATE TABLE `z_ots_comunication` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `type` VARCHAR(255) NOT NULL, `action` VARCHAR(255) NOT NULL, `param1` VARCHAR(255) NOT NULL, `param2` VARCHAR(255) NOT NULL, `param3` VARCHAR(255) NOT NULL, `param4` VARCHAR(255) NOT NULL, `param5` VARCHAR(255) NOT NULL, `param6` VARCHAR(255) NOT NULL, `param7` VARCHAR(255) NOT NULL, `delete_it` INT(2) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 Créditos:
    Amiroslo
    EddyHavoc 
     
     
     
     
    Espero que tenho te ajudado.

  7. Gostei
    CainOTServer deu reputação a LeoTK em Cliente Old - Spr/Dat Extended & Versão Unt16   
    Salve galera recentemente tive alguns problemas com o uso de certas Dlls por conta do cliente é um problema bem especifico que o cliente não abria o spr e dat estendido normalmente sem qualquer uso de dll sendo assim não dava para utilizar a proteção.cab + dll para fazer o cliente abrir estendido caso utilizar as duas gera um conflito e da erro.

    Para acabar com esse problema e possíveis outros estarei disponibilizando esse cliente a diferença dele é que ele vai abrir o spr e dat estendido sem qualquer uso de dll sendo assim você não terá problemas para injetar qualquer dll de proteção etc... 
     
    Habilitado em unt16 - sua source precisa estar com a modificação para não ter erros
    Versão: 8.60
    Cliente Extended unt16.exe
    Scan
    Obs: Falso positivo por conta das modificações que foram feitas no exe
     
    Não darei suporte estou disponibilizando o cliente para quem já sabe como utilizar e tenha feito todas as alterações necessárias para utilizar o mesmo.
     
    Créditos
    Madzix
     
  8. Gostei
    CainOTServer deu reputação a jeremias em Comando /newtype reformulado.   
    Olá Pessoal, refiz o script do comando /newtype, deixei o código um pouco mais legível e compactado. Corrigi um erro que quando você adicionava mais outfits no seu cliente o comando não reconhecia, agora basta você configura no script a quantidade de outfits que tem no seu cliente e pronto.     
     
    como coloco em meu servidor?
    --< Script reformulado por Jeremias 14/03/2017 local quantidadeDeOutfits = 1500 -- < coloque a quantidade de outfits do seu servidor. function onSay(cid, words, param, channel) if(param == "") then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Complemente o comando com o parametro adequado.") end param = string.explode(param, ",") if (words == "/newtype") and (not param[2]) then if (tonumber(param[1]) <= quantidadeDeOutfits) then doCreatureChangeOutfit(cid, {lookType = param[1]}) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esta Outfit nao existe.") end else doCreatureChangeOutfit(getPlayerByName(param[2]), {lookType = param[1]}) end return true end Caso tenha alguma sugestão para implementar no script é só falar.
  9. Gostei
    CainOTServer deu reputação a Dwarfer em (Resolvido)Acrescentar função no sistema ppoints   
    No creaturescripts:
     
     
    E retire a tag  <event type="logout" name="PlayerResetPointsTimer" event="script" value="points.lua"/> do creaturescripts.xml.
     
    No globalevents:
     
     
    No talkactions:
     
     
  10. Gostei
    CainOTServer deu reputação a Vodkart em [TFS] New Auto Loot Unlimited Edition 2.0   
    [ + ] Descrição: Autoloot refeito para VERSÃO TFS e adicionado algumas outras funções que estarei explicando ao decorrer do tópico.
     
    [ + ] Se você quer o Autoloot para VERSÃO OTX clica neste Link: AUTOLOOT OTX
     
     

     
     
    [ + ] Imagem do comando:
     

     
    [ + ] Features:
     
    [ - ] Você pode ativar ou desativar o autoloot a hora que achar necessário.
    [ - ] Também existe um comando para ativar ou desativar mensagens do loot que o autoloot coleta!
    [ - ] Você pode escolher a cor do texto em que irá aparecer a coleta do loot!
    [ - ] O autoloot informará para você se estiver com pouco slots na sua backpack, e o jogador poderá escolher se quer habilitar ou não está função no autoloot.
    [ - ] Versão ilimitada de itens(não ficam armazenadas em storages).
    [ - ] O jogador poderá optar por depositar direto no banco os golds que forem dropados.
     
    [ + ] Instalação:
     
    Primeiramente CRIE uma PASTA VAZIA chamanda "autoloot" em DATA/LOGS, ficando assim:
     

     
     
    Depois instale o MODS normalmente na pasta MODS do seu servidor.
     

     
     
    new_perfect_autoloot_tfs.xml
     
    Link: https://pastebin.com/raw/0xJR4nwr
     
     
     [ + ] Configuração:
     
    Dentro do mods tem essa tabela
    info = { distro = 1, -- 1 = TFS // 2 = talk modificada directory = "data/logs/autoloot", -- não mexer Warn_Bp_Slots = 5, -- quando tiver 5 ou menos slots na BP vai avisar o jogador Talkaction_delay = 5, -- em segundos // delay para remover e adicionar item BlockMonsters = {}, -- Lista de monstros que o autoloot nao vai funcionar BlockItemsList = {2123,2515}, -- Lista de itens que o autoloot nao coleta Money_ids = {2148, 2152, 2160}, -- id das moedas do ot Max_Slots = {free = 3, premium = 5}, -- quantidade de itens que podem ser adicionados no autoloot por free e premium Storages = {988801, 988802, 988803, 988804, 988805, 988806, 988807} -- não mexer }  
    Sobre o distro = 1
     
    Isso significa que ele usa versão padrão (1), pois existem 2 versões, caso aconteça esse error no seu console ao usar a talkaction do autoloot:
     
    [8/10/2020 19:19:58] [Error - TalkAction Interface]
    [8/10/2020 19:19:58] local words = "!autoloot"
    (...)
    [8/10/2020 19:19:59] return true
    [8/10/2020 19:19:59] Description: 
    [8/10/2020 19:19:59] (LuaInterface::luaGetItemIdByName) Item not found
     
    Você deverá colocar:
     
    distro = 2
     
    Pq? acontece que em alguns servidores não reconhecem o parâmetro "false" da função "getItemIdByName"
     
    OBS: Estarei anexando o autoloot já atualizado na versão 2.0 para quem tiver preguiça de copiar e colar!!
     
     
     
    new_perfect_autoloot_tfs.xml
  11. Gostei
    CainOTServer deu reputação a Dwarfer em Item Key System   
    Fala, galerinha! Há um tempo atrás tinha feito esse sisteminha simples, como achei que não seria muito útil, acabou sumindo nas profundezas das pastas do meu computador. No entanto, como vi o pedido do membro @DboHere, acho que outras pessoas podem precisar.
     
    Como funciona:
    Uma key única que pode ser usada somente uma vez adicionará um item ao player quando for utilizada.
     
    - Criando uma key contendo 10 crystal coins: 
    !createkey 2160,10 ou !createkey crystal coin,10 
     
    O player receberá a mensagem: "You have created the key: rXo-980376. You can add other items using !addkey."
     
    - Adicionando novos itens à mesma key:
    !addkey rXo-980376,2463,1
     
    O player receberá a mensagem: "You have added other items to the key rXo-980376."
     
    - Checando os itens que uma key possui:
    !checkkey rXo-980376
     

     
    - Utilizando a key o player receberá todos os itens associados a essa key. Depois disso, a key ficará inválida.
    !key rXo-980376
     
    - Deletando a key da database (apenas se necessário):
    !deletekey rXo-980376
     
    Configuração:
     
    Execute o seguinte comando no mysql do seu servidor:
     
    CREATE TABLE `code_key` ( `id` INT NOT NULL AUTO_INCREMENT, `key` VARCHAR(255) NOT NULL, `item_id` INT NOT NULL, `count` INT NOT NULL, `invalid` INT NOT NULL DEFAULT 0, PRIMARY KEY (`id`) );  
    Em talkactions/scripts, crie um arquivo:
     
    keysystem.lua
     
     
    Em "access" edite o grupo que pode utilizar cada comando. No exemplo abaixo, apenas players com acesso maior que 3 podem utilizar o comando !createkey.
     
    ["!createkey"] = {access = 3}, 
     
    Em talkactions.xml, adicione a tag: <talkaction words="!key;!createkey;!deletekey;!checkkey;!addkey" event="script" value="keysystem.lua"/>
     
    E é isso, espero que seja útil  
  12. Gostei
    CainOTServer deu reputação a DboHere em Apelido já existe. Erro Modern Acc   
    Para Resolver esse problema e simples abre a database, vai nas ACCOUNTS, abre a ESTRUTURA e vai em NICKNAME, lá vc troca o INT por CHAR 
     
    Feito isso aperta em guardar e pronto Funcionando normal
     
    Vlw+++ Rep
  13. Gostei
    CainOTServer deu reputação a Vodkart em (Resolvido)Mostrar Level em que deu Reborn   
    entendi, o reborn ele desloga o char... usa assim o npc:
     
    local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('???') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) local rstorage = 149501 if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then selfSay('Olá! Se voce está pronto, diga "reborn".') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Desculpe, ' .. getCreatureName(cid) .. '! Hey!.') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'reborn') and getPlayerStorageValue(cid,30023) == 4 then selfSay('Desculpe, mas voce já é rebornado.') focus = 0 talk_start = 0 elseif msgcontains(msg, 'reborn') and (getPlayerLevel(cid) < 200 and getPlayerStorageValue(cid,30023) ~= 4) or (getPlayerLevel(cid) > 600 and getPlayerStorageValue(cid,30023) ~= 4) then selfSay('Apenas level 200 até 600 podem rebornar.') focus = 0 talk_start = 0 elseif msgcontains(msg, 'reborn') then selfSay('Realmente quer isto?') talk_state = 2 --_GOKU_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 8 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,10,9) talk_state = 0 --_VEGETA_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 23 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,25,24) talk_state = 0 --_PICCOLO_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 36 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,42,37) talk_state = 0 --_C17_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 49 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,50,50) talk_state = 0 --_GOHAN_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 63 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,62,64) talk_state = 0 --_TRUNKS_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 75 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,74,76) talk_state = 0 --_CELL_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 87 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,81,88) talk_state = 0 --_FREEZA_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 101 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,88,102) talk_state = 0 --_MAJIN BOO_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 117 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,98,118) talk_state = 0 --_BROLY_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 131 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,113,132) talk_state = 0 --_C18_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 144 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,50,145) talk_state = 0 --_UUB_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 156 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,128,157) talk_state = 0 --_GOTEN_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 170 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,142,171) talk_state = 0 --_CHIBI TRUNKS_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 184 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,151,185) talk_state = 0 --_COOLER_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 197 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,153,198) talk_state = 0 --_DENDE_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 210 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,169,211) talk_state = 0 --_TSUFUL_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 222 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,180,223) talk_state = 0 --_BARDOCK_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 235 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,194,236) talk_state = 0 --_KURIRIN_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 248 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,205,249) talk_state = 0 --_PAN_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 260 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,212,261) talk_state = 0 --_KAIO_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 272 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,221,273) talk_state = 0 --_VIDEL_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 284 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,227,285) talk_state = 0 --_JANEMBA_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 296 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,234,297) talk_state = 0 --_TENSHINHAN_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 308 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,246,309) talk_state = 0 --_JENK_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 320 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,257,321) talk_state = 0 --_RADITZ_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 332 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,265,333) talk_state = 0 --_C16_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 344 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,277,345) talk_state = 0 --_TURLES_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 356 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,285,357) talk_state = 0 --_BULMA_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 368 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,296,369) talk_state = 0 --_SHENRON_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 380 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,302,381) talk_state = 0 --_VEGETTO_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 392 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,308,393) talk_state = 0 --_TAPION_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 404 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,321,405) talk_state = 0 --_KAME_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 417 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,335,418) talk_state = 0 --_KING VEGETA_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 429 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,347,430) talk_state = 0 --_KAGOME_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 441 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,357,442) talk_state = 0 --_ZAIKO_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 453 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,368,454) talk_state = 0 --_LORD CHILLED_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 465 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,375,466) talk_state = 0 --_C8_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 482 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,517,483) talk_state = 0 --_Goku Black_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 534 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,592,535) talk_state = 0 --_Golden Freeza_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 544 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,88,545) talk_state = 0 --_Bills_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 554 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,502,555) talk_state = 0 --_Zamasu_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 564 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,607,565) talk_state = 0 --_Whiss_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 574 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,617,575) talk_state = 0 --_Vados_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 584 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,624,585) talk_state = 0 --_Vegetto Black_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 594 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,630,595) talk_state = 0 --_Blue Gogeta_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 604 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,640,605) talk_state = 0 --_Vegetto Blue_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 614 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,308,615) talk_state = 0 --_Zeno_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 624 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,641,625) talk_state = 0 --_Goku Black Evo_-- elseif msgcontains(msg, 'yes') and talk_state == 2 and getPlayerLevel(cid) >= 200 and getPlayerLevel(cid) <= 600 and getPlayerVocation(cid) == 634 then setPlayerStorageValue(cid, rstorage, getPlayerLevel(cid)) doReborn(cid,1,651,635) talk_state = 0 elseif msgcontains(msg, 'yes') and talk_state == 2 then selfSay('Desculpe, ' .. getCreatureName(cid) .. '! Voce deve estar na ultima transformação.') elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Adeus!') focus = 0 talk_start = 0 end end end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 45 then if focus > 0 then selfSay('Próximo por favor...') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Adeus!') focus = 0 end end end  

Informação Importante

Confirmação de Termo